Skip to content
This repository was archived by the owner on Sep 15, 2025. It is now read-only.
This repository was archived by the owner on Sep 15, 2025. It is now read-only.

Necessary modifications in Nuttx for Olimex-STM32-E407 to allow external drivers. #4

@jfm92

Description

@jfm92

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.

  1. We must go to nuttx/configs/olimex-stm32-e407/src/stm32_appinit.c and copy all the code.
  2. In the same folder, create the file "stm32_bringup.c" and paste inside all the code.
  3. Modify the name of the function from int board_app_initialize(uintptr_t arg) to int stm32_bringup().
  4. Go to "stm32_boot.c". In the function void board_initialize(void) comment board_app_initialize() and add stm32_bringup().
  5. Go to "Olimex-stm32-e407.h" and inside #ifndef __ASSEMBLY__ add int stm32_bringup(void);
  6. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions