2008-11-25 12:22 AM
2011-05-17 02:52 AM
I resolved last issue...
Now I'm debugging an eeprom emulation program and it work's well on the basic standard usage of uPSD, i.e. typical memory map where code is in the big eeprom and data is in the second eprom. But I have huge amount of data and I would like tu use big main eeprom for data and code in the second. I have modified in pdsoft express under ''define PSD'' pane to specify main PSD flash to data space only and secondary to program space only. I changed ChipSelectEquations and reflected changes on loading hex file on the CSBOOT section instead of FS and after download I could see code in the RIDE simulator but Ride reset ptr is around 6000h instead of real start routine and when I press ''go'' nothing happens... when I stop I'm in the middle of nowhere... I'm able to execute few first instructions where I read VM register to verify code/data and they are correct. I kept addresses CSIOP, RS identical to avoid to change them in all tools. Also, code start at 0000 in both cases, to avoid another possible issue there. Here is the one who work's: Label Page Bit start end Mem comments y=page(don't care) fs0 0byyyyyyyy 0x0000 0x7FFF F // & !pdn fs1 0byyyyy000 0x8000 0xFFFF F // & !pdn fs2 0byyyyy001 0x8000 0xFFFF F // & !pdn fs3 0byyyyy010 0x8000 0xFFFF F // & !pdn fs4 0byyyyy011 0x8000 0xFFFF F // & !pdn fs5 0byyyyy100 0x8000 0xFFFF F // & !pdn fs6 0byyyyy101 0x8000 0xFFFF F // & !pdn fs7 0byyyyy110 0x8000 0xFFFF F // & !pdn csboot0 0byyyyyyyy 0x8000 0x9FFF F // & !pdn csboot1 0byyyyyyyy 0xA000 0xBFFF F // & !pdn csboot2 0byyyyyyyy 0xC000 0xDFFF F // & !pdn csboot3 0byyyyyyyy 0xE000 0xFFFF F // & !pdn rs0 0byyyyyyyy 0x0000 0x1FFF V // & !pdn csiop 0byyyyyyyy 0x7F00 0x7FFF V // & !pdn psel0 0byyyyyyyy 0x7E00 0x7EFF Peripheral // & !pdn & _psen And this one which refuse to operate: Label Page Bit start end Mem comments y=page(don't care) fs0 0byyyyyy00 0x8000 0xBFFF F // & !pdn fs1 0byyyyyy00 0xC000 0xFFFF F // & !pdn fs2 0byyyyyy01 0x8000 0xBFFF F // & !pdn fs3 0byyyyyy01 0xC000 0xFFFF F // & !pdn fs4 0byyyyyy10 0x8000 0xBFFF F // & !pdn fs5 0byyyyyy10 0xC000 0xFFFF F // & !pdn fs6 0byyyyyy11 0x8000 0xBFFF F // & !pdn fs7 0byyyyyy11 0xC000 0xFFFF F // & !pdn csboot0 0byyyyyyyy 0x0000 0x1FFF F // & !pdn csboot1 0byyyyyyyy 0x2000 0x3FFF F // & !pdn csboot2 0byyyyyyyy 0x4000 0x5FFF F // & !pdn csboot3 0byyyyyyyy 0x6000 0x7FFF F // & !pdn rs0 0byyyyyyyy 0x0000 0x1FFF V // & !pdn csiop 0byyyyyyyy 0x7F00 0x7FFF V // & !pdn psel0 0byyyyyyyy 0x7E00 0x7EFF Peripheral // & !pdn & _psen Any ideas???2011-05-17 02:52 AM
Your map looks OK, and there should be no problem running code there. I've got a 3400 happily running with:
- Boot code in CS - Service code in an FS sector for interrupts etc - Flash disk emulation in the rest of the FS - EEPROM emulation running in gaps in the disk structure using the 32k limited RIDE and homebrew banking code. Beware that what RIDE debugger tells you it can see in code space isn't necessarily there - it displays what *should* be there not what *is*. When I get problems like this (executing into space) it usually means I've messed something up in the project definition in PSDSoft and and not looking at the same files in RIDE as in the chip. It can be hard to tell. Usually you eventually get ''error in exploring'', if you keep stepping long enough. If you are absolutely stuck, try uploading from the chip in PSDSoft and checking the hex is actually what you are looking at.