You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Sep 15, 2025. It is now read-only.
Now it's not necessary to do this modifications. The modification are already pushed
In this guide I'll show how to made the necessary modifications which allow you to run a driver in this board.
After some experimenting with this board and comparisons with other boards, I saw that the the configuration of this board don't load the drivers at the boot time, not allowing you to run any peripheral device.
In a near future my goal is to push the modifications by default in the repository. But at the moment I think it's better to do the change manually.
We must go to nuttx/configs/olimex-stm32-e407/src/stm32_appinit.c and copy all the code.
In the same folder, create the file "stm32_bringup.c" and paste inside all the code.
Modify the name of the function from int board_app_initialize(uintptr_t arg) to int stm32_bringup().
Go to "stm32_boot.c". In the function void board_initialize(void) comment board_app_initialize() and add stm32_bringup().
Go to "Olimex-stm32-e407.h" and inside #ifndef __ASSEMBLY__ add int stm32_bringup(void);
Finally in Makefile, you must change this CSRCS = stm32_boot.c to this CSRCS = stm32_boot.c stm32_bringup.c
Once we have modify all the file, it's necessary to modify the configuration, so go to menuconfig and check the next things:
RTOS Features->RTOS Hooks->Custom board/driver initialization(Checked)-> Board Initialization thread (Checked)
If you don't do this modifications, the result that I receive it was that in some case (depending which thing I'm trying to run) some functionalities are still not initialize and crash or I try to initialize so late and I'm not been able to register the device.