This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

LM3S6965, RTX link error in hal_cm3.0

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!

    Thnx

  • OK, implementing 'SysTick_Handler' in Startup.s does the trick (seems logical now...). I now have the cooperative multitasking blinky running (feels good!).

    Eric