We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
I'm trying to get my Luminary evaluation kit for the LM3S6965 processor running under Keil RTX. Updating to MDK3.11 already gave me some important updated files (RTX_Config.c). I re-wrote good old blinky to get blinking in a RTX environment. Compiling now goes fine, linking however gives a problem I can't resolve. Linker says:
.\obj\test.axf: Error: L6218E: Undefined symbol Stack_Top (referred from hal_cm3.o).
What did I forget, do wrong ?
Thnks for any help,
Eric
looks like you are using an older version of the STARTUP.S file. Take a look to the folder: C:\Keil\ARM\Boards\Luminary\dk-lm3s102\RTX_Blinky The Startup.S file defines this symbol.
Thnx Reinhard,
Ok, I overlooked that item in the Startup.s :-)
I tried to add a simular statement to the Startup.s for the LM3S6965 processor: ; ; EXPORT Stack_Top Stack_Top EQU StackMem + Stack ; ;
using 'StackMem + Stack' based on the first entry in the vector table somewhere down the Startup.s.
Compiling / Linking goes fine but running my little Blincky crashes, entering os_sys_init call. Using the debugger it seems that os_sys_init_user -> os_init_context -> os_alloc_stk crashes and ends up in a call to the IntDefaultHandler due to an unexpected interrupt.
Obvious it still has to do something with my definition of Stack_top ...
Any help is welcome !
Thnx
SVC_Handler is missing. An endless loop is implemented in startup file. Import the SVC handler from the library and delete it from startup file and it will work.
Franc
Thanx Franc,
Yet again, made some progress!
after adding the SVC_Handler, the programm starts running, however taskswitching doesn't seem to work. After calling os_dly_wait() function the IntDefaultHandler again is activated and my programm halts (endless loop). It seems to me that another handler might be missing? my best guess is the 'SysTick Handler', but what os implementation is meant for this?
Hope you can help me!
OK, implementing 'SysTick_Handler' in Startup.s does the trick (seems logical now...). I now have the cooperative multitasking blinky running (feels good!).