 Question: I'm trying to simulate a FIFO interface
to C6201.
I'm using rev 2.0 of the PC Simulator and have setup address 0x1600000 (label ADADDR)
as my IOPORT in the map configuration. I use PINC and MC to connect interrupt INT7 and
file input for ADADDR The address should then be read using the DMA controller. All
configurations show up correct when using PINL or ML. Problems: There are STW *ADADDR,reg
instructions resulting in : MEMORY Map violation for write at 0x1600000 When the DMA
starts I get: Memory Map violation for read at 0x1600000 The DMA transfers all read 0xF3FF
(when configured as 16 bit data). It does not use the data I provide in the file connected
to ADADDR. I also tried to setup ADADDR in the map as RAM. Same result.
Answer: Address 0x1600000 is not part of
the C6201 memory map. For MAP 0 the external range 0 covers addresses 0 to 0x0FFFFF. Range
1 is 0x100000 to 0x13FFFF. Range 2 is 0x2000000 through 0x2FFFFF. And Range 3 is 0x3000000
to 0x3FFFFF. Your range falls between internal program memory and the on-chip peripheral
registers. (Even in map 1 we just change internal program memory at 0x1400000 to 0 and
swap place with ranges 0 and 1). |