Other Parts Discussed in Thread: UNIFLASH, CC3220SF
Hi,
Firstly this is a duplicate post to the tens or hundreds of posts regarding CC3220, UniFLASH, Secure Programming, etc. I'm sorry if its a repeat, but there is really quite a bit of conflicting info about this process and NO documented methods that I could find for debugging failed boot attempts.
My problem is that I've completed an application, tested is using JTAG and now wish to move to development mode by programming the binary onto my CC3220SF and then having it boot for me.
Here are the steps I've followed:
CCS:
- Develop an application in CCS using a RAM linker script (i.e. all of the sections are loaded into SRAM)
- Tested the application.
- Switched to a release build, in which I used a FLASH based linker script where FLASH is from 0x01000800 as detailed in swru465.pdf section 21.6 (CC3220SF Boot Flow)
- In my Release directory from the CCS build there is a .out file and a .bin file. I am only considering the .bin file.
UniFLASH (V1.0.19.8)
- Create a new project for CC3220SF in DEVELOPMENT Mode
- Add the service pack.
- Advanced View -> User Files
- load dummy-root-ca-cert
- load dummy-trusted-ca-cert
- load dummy-trusted-cert
- All files are from the certificate-playground directory in SDK 2.30.00.05
- Development Mode -> Files -> Trusted Root Certificate Catalog
- Select certcatalogPlayGround20160911.lst
- Select certcatalogPlayGround20160911.lst.signed_3220.bin
- All files are from the certificate-playground directory in SDK 2.30.00.05
- From the action drop down list -> "Select MCU Image"
- load the .BIN file from my release directory.
- Select Failsafe, Secure and Public Write options
- Private Key File Name -> Select dummy-trusted-cert-key
- Certification File Name -> Select dummy-trusted-cert
- Save
- Set SOP to 010 on the board
- Burn
- Set SOP to 000 on the board
- Nothing Happens.
I check the /sys/mcuflashimage.bin file on the file system and I note two things:
- It has the additional 20 bytes appended to the start of it. This is as clearly defined in swru469c.pdf section 5.11.1 (Host App for the CC32xxSF Devices)
- The mcuflashimage.bin file is still readable, it is not encrypted, is this correct?
Some Additional Notes:
- I uploaded the certs from certificate-playground as per swru461b.pdf section 5. There is no mention here of the KEY files
- The TI Resource Explorer (Software/ Simple Link Academy 2.30.00.02 / UniFLASH Image Creator Basics) Says: "To add an MCU image to the project, click Browse and navigate to your application BIN file. This action will sign the MCU image with the
dummy_root_ca_cert_key
and add thedummy_root_ca_cert
to your project's user files. In simple mode, how can this be if we have not uploaded the -KEY file?
My questions are:
- Have I done anything wrong here?
- Is there any way of debugging the boot process to see what has gone wrong and why the CC3220SF won't boot?
- Do I need to encrypt by mcuflashimage.bin BEFORE uploading to UniFLASH?
- Do I need to add a dummy-root-ca-cert-KEY file to the user files so as UniFLASH can sign the BIN?
- swru461b.pdf says to use the "dummy-trusted-cert" but TI Resource Explorer says to use the dummy-root-ca-cert to sing the mcuflashimage.bin. Which one is correct?
Thanks
Stomp!