I've been trying to get some answers, and you may know how hard is to find them.
This topic is related to hex2bix utility.
Few things that I found out about doing it. If your code is larger that the internal memory, it will have to reside outside, and you need to convert you hex file with the -E option instead of -I. I guess -E stands for external and -I for internal. If you use -E of course your code is large, so you will need to specify -M as for memory I think. They never say if the number you should put there is in decimal or hexadecimal, they just say it is 8k default. Well 8k default is ambigous and doesn't tell you the format. I found out that when hex2bix gives you the error: Input image too bog for output file size, it also gives you a addr = 0x???? and len. So his addr number is in hexadecimal format, and it is the address in bits. So in my case it was addr = 0x4aec. Now 8K is 0x2000 in hex, that is 8kbits now this address is well beyond that default. So I set my -M to 0x8000 and it worked.
Of course you need to know that -V and -P need to go there as well.
Now here is what I don't know, I'm using GPIF and the frameworks, there are a lot of variables defined as xdata, does this mean that the firmware is loades to external ram? external as of off-chip. I mean this because the file sizes are different, my .hex file is 8983bytes and the resultant .iic file is 3431bytes. So why is this BIG difference? What is really copied to program memory? How can I know? I have no idea if I am using external (off-chip) memory or not. How to check this?
I can load my firmware (hex file) with the USB Control Center and with the EZ-USB Control Panel. Also with the USB Control Center I burned the eeprom with my iic file and it is also running.
Can someone at cypress explain this? How do I know if my firmware is running from on chip or off chio ram?
Thanks in advance.
Gabriel Camiro
|