We are encountering a problem when we load a .bin file via the ROM boot loader usb dfu. The problem is when the device is loaded via DFU the bin image is corrupted causing the device to be bricked.
Target processor: TM3C1233H6PM on a custom board
IDE: CCS V6.0.0.00190
Uniflash version: 3.1.0.00026
Some things that we managed to rule out:
- When the .bin image is small (ie <32k) the system runs fine after performing a DFU.
- When the .bin image is big (>32k) the system fails after performing the DFU and is "bricked"
- When the .out file is loaded via JTAG regardless of size the system runs as expected
- When the .bin image is loaded via JTAG and is small (<32k)the system runs as expected
- When the .bin image is loaded via JTAG and is big(>32k) the system fails and is "bricked"
- The memory dumped after loading the .out via jtag compared against the created .bin file from the compiler are identical.
- The memory dumped after loading the .bin file via DFU against the created .bin file from the compiler are different.
- The memory dumped after loading the .out file via JTAG against the created .bin file from the compiler are identical.
- The device uses a battery but was in tolerable limits to allow device flashing.
- The USB DFU process uses an external 16mHz oscillator of better then recommended precision to clock the USB since the internal clock cannot support USB.
Questions:
- I recognize that the 32k limit is a common limit when using the free license for CCS but I am currently on an evaluation license with greater then a month remaining. However, if I was limited to 32k, does the compiler not output an error saying the limit is exceeded?
- We have a valid license and the results are the same. Are there other project settings that need to be taken into consideration when building a "large" project?
- Any other courses of action that we need to take in order to fix this problem?
-Matt