acados on ARM Cortex-M7 microcontroller

Dear acados developers,

I am attempting to run acados on a STM32F767 Nucleo-144 microcontroller. It has an ARM Cortex-M7 processor clocked at 246 MHz, with 512 kB SRAM and 2 MB flash memory. To compile acados I use the gcc-none-eabi compiler as a part of the MCU’s toolchain. The source codes are compiled on a x64 based computer running Linux, and acados with its python templates works fine here.

My hope is to use the source codes generated via python (c_generated_code), modify it appropriately and compile using gcc-none-eabi for the target microcontroller. However, here i run into two issues:

  • First, I would like to ask if it is possible to run acados without the presence of an OS, which is the case of my MCU. When executing acados from the c_generated_codeobtained from the python interface, I encountered a problem that the acados library needs to be compiled in .so format, and the path to this file needs to be added in the system variable $LD_LIBRARY_PATH. Therefore, I would like to know how to solve this on a microcontroller with no OS, which shall run the main application as one firmware.

  • Second, I have recently read on this forum that there is some problem with 32-bit processors: ACADOS on 32-bit AURIX™ Microcontroller based on TriCore Based on the discussion or the Issue section, I am not quite sure whether such implementation is possible or not; the opinions seem to differ. Therefore, I would like to ask if it is possible to compile acados on ARM Cortex-M7 type controller, which is also 32bit.

Thank you in advance,

Dominik

Hello, I am very interested in this issue as well! Can anyone provide some help on this, please?

1 Like

Hi,

Regarding 32-Bit architectures: Unfortunately, I didn’t have time to look into this again since I opened this issue:

Unfortunately, I also don’t have experience with this kind of hardware and how linking works there.
I am not sure what you have, if there is no OS.
In Linux, you could also put the libraries in /lib.
Did you previously link some libraries on that hardware?

Sorry to be of little help here…

Best,
Jonathan

Please see Working example for STM32H7 (Cortex-M7, 32-bit)