Other Parts Discussed in Thread: TMS320C5515,
Hi,
I know this subject has been touched upon previously, but my issue currently persists and I have no solid leads to how to get it working.
So I'm using a new prototype custom board based on a previous TMS320C5515 design that works perfectly both under JTAG emulation and flashing of the 24-bit FLASH memory using the available tools etc.
My new board is based on a TMS320C5505 instead of the TMS320C5515 as we are considering a higher clock speed on this new custom board.
This TMS320C5505 custom board runs under JTAG emulation the development board test code that we have adapted from a previous design to test the new design.
However when I program the FLASH memory using programmer.out with the usual 71 device option and restart the module, it does NOT boot the flashed .bin code.
All this time we have been using the C55BootImage Utility with a customized register file boot option (this is a .dat file that is generated for the purpose of using the application .out file to create a .bin file for flashing on to the FLASH). We have been using this procedure for many years now on the existing C5515 boards in production, with "secure encrypt" possibility as and when required.
With the new C5505 based custom board, the flashed application code does not seem to boot, even with GEL file removed, with register file removed etc. Its almost as if the entry point address to which the DSP should be going to after a boot is wrong or not correctly flashed.
Here is a log of the programmer.out execution showing the .bin file being correctly flashed :
Choose the device...
0XX - CPLD setup only
1x - NAND Flash [CSx: 2,3,4,5]
2x - NOR Flash [CSx: 2,3,4,5]
3 - SPI EEPROM
4 - IIC EEPROM
5 - MMC; 6 - SD
7x - SPI Flash [PinMap x: 1=EVM,2=FDK]
71
Operation to perform...
0 - CPLD setup for this device
1<file> - Program device with <file>
2<file> - Read device data to output <file>
1C:\TEST_CODE_APPI_MAX_R3_B.bin
SPI Flash...
Writing data to device...
Opening C:\TEST_CODE_APPI_MAX_R3_B.bin...
Input file opened
Erasing chip, this may take a while...
Chip erase done.
Programming Complete
So the FLASH memory appears to be correctly programmed with the .bin file
Looking at the .bin file I can see the first word, 0x09AA boot signature, followed by the application execution entry point 0x0001F501 which appears to be correct as in the .map output file.
And the output .map file :
So when I power up the board the code does NOT execute from the programmed FLASH memory. I have included in the main() an infinite loop at the start to toggle some of the GPIOs so that I can measure on the oscilloscope any program activity after initial boot, but no such activity is observed. When I run the exact same application code with the infinite loop under emulation, all is fine. and the oscilloscope shows me the correct GPIO pin toggling.
So in summary :
- Previous custom board based on the C5515, programs correctly and the application test code is booted and executed as expected with or without a register file, with our without a GEL file in CCS.
- New C5505 based board with same test infinite loop to toggle the GPIO pins does run under emulation no problems, but when flashed with the same tools already used, I get not apparent execution of the booted code, with or without register file or GEL file loaded. No toggling of the GPIOs is observed etc....
So I would like if possible some kind of explanation to why this might be happening, what makes the execution of the code under emulation with JTAG apparently different when flashed on the same type of memory we've been using for a while on the C5515 based boards, but on the new C5505 custom board there is an apparent problem with the booting and execution of the infinite loop at the start of the main(). How do I know to what point the boot occurs and at what point it might hang-up the code so that it does not continue correct execution as when emulated ?
Would appreciate any suggestions how to get further and beyond this issue. Many thanks in advance.
Regards, Mike