This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
The document SPRUGO0a is complete, but confusing. It does not make it immediately clear just how simple it is to flash your code using SCI communication. You do not need to write anything to Flash your code, you do not need to call the Boot Rom API, you do not need to include Boot API symbols in your code, or do anything in your application to communicate with the SCI port for loading. You do not need to write a RAM-based boot loader, or copy anything flash-related to RAM at run-time The Boot ROM inside the TMS320F28035 already does everything you need to place your code into flash memory. Here's what you do:
This is the simplest way to upload and run a program. Hope this helps someone.
Murray,
Murray Kopit said:. You do not need to write a RAM-based boot loader, or copy anything flash-related to RAM at run-time The Boot ROM inside the TMS320F28035 already does everything you need to place your code into flash memory
thanks for the details. The steps you listed will work well for a RAM based application (as long as program.out is all linked to RAM). One cannot program flash using the above steps, because the ROM loaders on the device don't support flash programming yet. User applications have to take care of that.
Users will have to write a kernel (a RAM based application that calls into flashAPI library (via either ROM linkage or direct API libs linkage)) to program the application in flash. This kernel will also have to take care of how it can receive the application data - via SCI/any peripheral. Depending on the application size if it can fit in RAM user can decide to load it onto the device along with the kernel.
Best Regards
Santosh
Hi Santosh,
Thank you for your feedback. I see now that I was premature in my advice, that it only applies to a RAM located application.
In my product, I must flash a F28035 from a binary image stored in another microprocessor. So, I first upload over SCI a RAM bootloader, based on your example in C:\TI\controlSUITE\libs\utilities\flash_api\2803x\v100a\example_ccsv5. My RAM bootloader will then upload and flash over SPI my DSP program, using a CRC checker and retry scheme which I am about to write. Do you know of any code which already exists to do this?
Thanks,
Murray
Murray,
what you say is perfectly possible. Load the 'SPI_kernel' over SCI and once the SPI kernel starts it will downlaod and flash the application over SPI interface. Unfortunately we don't have an example for that. We are working towards providing such examples but they wont be coming out soon enough.
I can however assist you in your development if that is of any help, what you are looking for is below.
> an application that calls back in the FlashAPI in ROM to be able to program data/code into flash - TI releases Flash API ROM symbols library and SW flashAPI library. Take a look at http://www.ti.com/tool/sprc907 this explains how to use it pretty clearly. If you have any questions please let us know.
> the application should be able to receive and decode the data over SPI and program the data into flash. Here the data format coming into the device is your application dependent, you are welcome to reuse the SPI ROM loaders code/format here - its pretty simple and versatile. TI releases ROM sources for this use. If you look into the ROM laoders they decode the data and program data into RAM based on the destination address in the incoming data header, right after the loader function decodes the data and finds out the destination address you will have to call respective flash API to program it into flash, if the destination address is flash.
hope it helps, please let me know if you have any further questions.
Best Regards
Santosh
Dear Santosh/Murray,
Does this mean that if we use the method specified by Murray, and lets say we power off the device, then on turning it ON again, it won't run the latest flashed program?
Hi guys,
Just a comment: After hours I was not able to get this working with TerraTerm. No problem with RealTerm. Correct me if I’m wrong but I don’t think it is working with TerraTerm. It probably sends the data from the x.b00 file in a different way.