RDB1768_CMSIS2_USB Bootloader

Discussion created by lpcware Employee on Jun 15, 2016
Latest reply on Jun 15, 2016 by lpcware
Content originally posted in LPCWare by Andre Schoeman on Thu Dec 05 00:23:11 MST 2013

I'm using the CMSIS2_USB boot loader on an LPC1768.
It seemed to be working, USB download works, code runs, but recently we identified the following behaviour.

I parse messages from a Bluetooth module using the strcmp function.
For example

if(strcmp(t[0],"MYID" == 0)
    ...we found the string do something...

I repeat this many times for different instructions and it works when the build configuration is DEBUG.
When the build is for RELEASE_BIN, this creates the binary file for USB transfer some, not all, of these lines no longer work. (this file is loaded via USB and then tested.)

I have checked that the RELEASE_BIN uses alternate linker script files to move the program higher up in memory.

It's as though some string constant are omitted from the build.
I have seen the same thing with an array of constants which were not applied in a set of calculations.

I have inspected the binary file and the ("MYID") strings are in the file.
I have done a memory dump from the LPC1768 and the strings appear to be on the chip.

The general code seems to work, drive motors, maintain a Bluetooth and other serial connections.

It seems odd that only some strings and constant arrays are impacted.

Anybody have any suggestions?