Part Number: AM6422
I am use CCS v12, MCU SDK+ AM64X v 11_02_00_24.
I am using example project "open-pru\examples\empty_c" as a starting point. When I build and load to me TMDS64VM, it works as expected.
I manually add a new code file to the project to expand on the functionality, and the new code file is added ahead of "main" in the resulting binary file, resulting in the program incorrectly starting execution at the new code file instead of main. [Starts at "PRU_SetupFrameTimer" in map file shown below.] How do I force main back to the program entry point?
Memory map resulting from this:
SECTION ALLOCATION MAP
output attributes/
section page origin length input sections
-------- ---- ---------- ---------- ----------------
.text 0 00000000 000001f4
00000000 000000dc PRU_Timer.obj (.text:PRU_SetupFrameTimer)
000000dc 00000084 main.obj (.text:main)
00000160 00000070 PRU_TaskManager.obj (.text:PRU_SetupTaskMgr)
000001d0 00000024 PRU_TaskManager.obj (.text:TestFunction)
.data 1 00000000 0000001d
00000000 00000010 main.obj (.data)
00000010 00000008 PRU_Timer.obj (.data:ui64IEP0Cmp0Count)
00000018 00000004 PRU_TaskManager.obj (.data)
0000001c 00000001 PRU_Timer.obj (.data)
.cinit 1 00000000 00000000 UNINITIALIZED
...
GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name
page address name
---- ------- ----
0 00000000 PRU_SetupFrameTimer
0 00000160 PRU_SetupTaskMgr
0 000001d0 TestFunction
abs 00033000 __PRU_CREG_BASE_MII_G_RT
abs 00032400 __PRU_CREG_BASE_MII_MDIO
abs 00032000 __PRU_CREG_BASE_MII_RT
...
abs 0000001f __PRU_CREG_RSVD31
abs 0000000a __PRU_CREG_TM_CFG_PRU1
abs ffffffff __c_args__
1 00000008 frame
1 00000018 framecount
0 000000dc main
1 0000000c sharedRAM
1 00000000 step
1 00000010 ui64IEP0Cmp0Count
1 0000001c ui8IEP0Cmp0Incr
1 00000004 wait