Azure RTOs Threadx Module example running on Cortex M7

Timothy Fields 21 Reputation points
2021-12-06T16:17:22.613+00:00

I am trying to get the Threadx Module "Example Build" to run on my hardware which is a Cortex-M7 (STM32H753) using IAR tools. The provided example runs in the simulator, but when I modify the memory locations to try to get it to work on my harware, it doesn't work. Do you having any Threadx Module example that run on Cortex HW?

Azure RTOS
Azure RTOS
An Azure embedded development suite including a small but powerful operating system for resource-constrained devices.
333 questions
0 comments No comments
{count} votes

Accepted answer
  1. Scott Azure RTOS 4,051 Reputation points
    2021-12-06T17:11:53.967+00:00

    Hi Tim,

    ST has many Modules projects available for their various development boards. I suggest you peruse their Github. Here's one example: https://github.com/STMicroelectronics/x-cube-azrtos-f7/tree/main/Projects/STM32F769I-Discovery/Applications/ThreadX/Tx_MPU

    0 comments No comments

2 additional answers

Sort by: Most helpful
  1. Timothy Fields 21 Reputation points
    2021-12-06T21:38:15.447+00:00

    @Scott Larson
    That's exactly what I was looking for and I can get this to work. Thank you very much.

    One further question. Since there is a project for both the module and the module manager, they both create .out files. Is there a practical way to debug the module? I loaded the debug symbols for Module while debugging the module manager, but that didn't seem to help since I can't set breakpoints in the module while running the module manager. Any help would be much appreciated.


  2. Licio MAPELLI 51 Reputation points
    2022-05-05T09:32:28.797+00:00

    Hello, i succeeded in Module debugging using IAR toolchain on ARM M33, the step i followed are listed below:

    1. from the Module prj generate the Module.bin (raw binary file) and Module.out (ELF file with debugging symbols), remember to disable all compiler optimizations. Read the Module.out (the ELF) with readelf Linux cmd or also can read the ELF on some website offering the readelf capability

    199139-image.png

    2) from the Module Manager IAR prj Options->Debugger->Images enable the checkbox "Download extra image" enter the Offset 0x34 (from the ELF) and enable the checkbox "Debug info only"

    3) Using IAR debugger flash on the target both the Module Manager main application and the Module PIC & PID library, from now on it possible to place a breakpoint in module code.

    Please consider the above procedure works if module is "executed in place" calling txm_module_manager_in_place_load() because in that case the module is executed from the same flash mem address for which it was compiled (see the linker script).

    While, loading the Module from file, instead of flashing it together with the ModuleManager app, (eg. calling txm_module_manager_file_load()) load and execute the module from SDRAM so it will end up in a random SDRAM address different than the one specified in the Module linker scrip, in that case the Module debug does not work for me.
    Hope it helps, regards


Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.