Part Number: TMS320F28335
I am working on a TMS320F28335 device with the following flash memory usage:
-
Flash A → Bootloader
-
Flash D → Application 1
-
Flash G → Application 2
What I am doing
-
I program Flash A (bootloader) and Flash D (Application 1) through JTAG.
-
I build Application 2 and generate a HEX file which is linked to run in Flash D.
-
During runtime, Application 1 copies this HEX file
from Flash D → Flash G using the Flash API. -
I am using an offset of 0x18000 while writing into Flash G
and using a jump address at 0x308000 for execution. -
The Flash API write into Flash G completes successfully.
What works correctly
-
If I directly program separate HEX files into
Flash D and Flash G using Flash API programming,
both applications run correctly. -
Direct programming (Flash API or JTAG) works fine.
What does NOT work
-
When Application 1 copies the HEX image from Flash D → Flash G
at runtime and I attempt to execute it from Flash G,
the application fails to run. -
The HEX file was originally built for addresses
0x320000 to 0x320002 (Flash D address range). -
When I write the same HEX file into Flash G using an offset and then jump to 0x308000, the application does not execute.
What I believe is wrong
-
There is likely a problem with the offset used while writing,
or the jump address when executing from Flash G.