Programming manufacturing data during production

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Hi,

During production, we want to be able to program some manufacturing data (serial number, etc) to the BLE module. We could do this with a UART interface (or another serial interface), but I wanted to see if it's possible to perform action after the firmware download sequence using the HCI UART. I may have read another post about this possibility (and it may have stated that it wasn't possible) but I can't find this post anymore and so wanted to ask.

If it's not possible to customize the HCI UART at all to do this manufacturing data programming, would it instead be possible to add memory sections to a linker file so that it has a memory location that can contain manufacturer data. Then, after generating the hex file, overwrite this static memory location with the manufacturer data? (The application code would read from this memory location on start up to fill the manufacturer data.) It seems like it might be possible since this post:

Programming the 20732S MODULE USING 2073xTAG Board

talks about how the "BD_ADDR" should always be at offset Byte 21, and that the following 6 bytes can be modified (in the HEX file) to change the BD ADDR for a subsequent device.

The question probably is whether or not we developers have access to a linker file to specify this static memory location.

Thanks,

Mike

0 Likes
1 Solution
asridharan
Employee
Employee
10 comments on KBA 5 comments on KBA First comment on KBA

The linker memory map only applies to the execution region (the RAM) and not the load region (the NV storage). Unlike traditional load regions in the .elf, we remap them to NV, so linker symbols will not help you get to the data in NV at runtime. You have to use known/fixed offsets that are not used by the FW for storage.

Firmware security (20732) is probably what you are looking for. The .hex file that is downloaded to NV by the download tools in the SDK uses Intel hex format. So if you do have unique serial number etc to burn during factory programing, you should be able to edit the hex file (with appropriate tools) to insert this data in the location where you need it to be and then use chipload to download this new hex file.

View solution in original post

8 Replies