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

Call stack doesn't work anymore

Hello,

a while ago, we updated from RTX4 to RTX5. Since the update the Call stack window doesn't show all threads anymore.

I already tried this: http://www.keil.com/support/docs/4026.htm Now the call stack shows the main thread und the call stack for the main thread works, but all other threads are missing.

This http://www.keil.com/support/docs/4124.htm also can't help because we're using uVision V5.29.

Our project ist a Multi-Project Workspace with 3 projects (board-level, core and application). The board and core project are compiled to a lib and the libs are included in the application project. All 3 projects contain threads.

The project organization was the same with RTX 4 and there it worked without any problem. We only updated the RTX and uVision.

We have also some older projects which still are using RTX4 and there is still works (with uVision V5.29).

Did anyone had the same problem or knows a solution?

Thanks for your support!

Patrick

Parents
  • Thanks for your reply!

    We're using the static object allocation. We've only implemented the "Level 1 Migration" (http://www.keil.com/pack/doc/CMSIS_Dev/RTOS2/html/os2MigrationGuide.html) because the core project is also used in other projects where we can't update to RTX5.

    The placing of the control block in the sections is done in cmsis_os.h when the CMSIS version is smaller 2 (osCMSIS < 0x20000U) and i think it works when i take a look at the map file:

    os_thread_cb_app_main 0x2000bf78 Data 68 main.o(.bss.os.thread.cb)
    [Anonymous Symbol] 0x2000bf78 Section 0 main.o(.bss.os.thread.cb)
    os_thread_cb_runUpdate 0x2000bfbc Data 68 app_update.o(.bss.os.thread.cb)
    [Anonymous Symbol] 0x2000bfbc Section 0 app_update.o(.bss.os.thread.cb)
    os_idle_thread_cb 0x2000c000 Data 68 rtx_lib.o(.bss.os.thread.cb)
    [Anonymous Symbol] 0x2000c000 Section 0 rtx_lib.o(.bss.os.thread.cb)
    os_timer_thread_cb 0x2000c044 Data 68 rtx_lib.o(.bss.os.thread.cb)
    os_thread_cb_runKeyboard 0x2000c088 Data 68 hal_keyboard.o(.bss.os.thread.cb)
    [Anonymous Symbol] 0x2000c088 Section 0 hal_keyboard.o(.bss.os.thread.cb)

    So the thread control blocks are placed contiguously in the memory.

    Also the "RTX OS" view is working since i added the component viewer description file.

Reply
  • Thanks for your reply!

    We're using the static object allocation. We've only implemented the "Level 1 Migration" (http://www.keil.com/pack/doc/CMSIS_Dev/RTOS2/html/os2MigrationGuide.html) because the core project is also used in other projects where we can't update to RTX5.

    The placing of the control block in the sections is done in cmsis_os.h when the CMSIS version is smaller 2 (osCMSIS < 0x20000U) and i think it works when i take a look at the map file:

    os_thread_cb_app_main 0x2000bf78 Data 68 main.o(.bss.os.thread.cb)
    [Anonymous Symbol] 0x2000bf78 Section 0 main.o(.bss.os.thread.cb)
    os_thread_cb_runUpdate 0x2000bfbc Data 68 app_update.o(.bss.os.thread.cb)
    [Anonymous Symbol] 0x2000bfbc Section 0 app_update.o(.bss.os.thread.cb)
    os_idle_thread_cb 0x2000c000 Data 68 rtx_lib.o(.bss.os.thread.cb)
    [Anonymous Symbol] 0x2000c000 Section 0 rtx_lib.o(.bss.os.thread.cb)
    os_timer_thread_cb 0x2000c044 Data 68 rtx_lib.o(.bss.os.thread.cb)
    os_thread_cb_runKeyboard 0x2000c088 Data 68 hal_keyboard.o(.bss.os.thread.cb)
    [Anonymous Symbol] 0x2000c088 Section 0 hal_keyboard.o(.bss.os.thread.cb)

    So the thread control blocks are placed contiguously in the memory.

    Also the "RTX OS" view is working since i added the component viewer description file.

Children