Browse Source

MRO: Set up MPU after boot to app

This is needed in case the bootloader configured the MPU, which could interfere with the app as the bootloader memory map / configuration is different.
release/1.12
Lorenz Meier 3 years ago committed by Daniel Agar
parent
commit
15e6ca9e1e
No known key found for this signature in database
GPG Key ID: FD3CBA98017A69DE
  1. 12
      boards/mro/ctrl-zero-h7-oem/src/init.c
  2. 12
      boards/mro/ctrl-zero-h7/src/init.c
  3. 12
      boards/mro/pixracerpro/src/init.c

12
boards/mro/ctrl-zero-h7-oem/src/init.c

@ -60,6 +60,8 @@ @@ -60,6 +60,8 @@
#include <px4_platform/gpio.h>
#include <px4_platform/board_dma_alloc.h>
#include <mpu.h>
__BEGIN_DECLS
extern void led_init(void);
extern void led_on(int led);
@ -121,6 +123,16 @@ __EXPORT void board_on_reset(int status) @@ -121,6 +123,16 @@ __EXPORT void board_on_reset(int status)
************************************************************************************/
__EXPORT void stm32_boardinitialize(void)
{
// clear all existing MPU configuration from bootloader
for (int region = 0; region < CONFIG_ARM_MPU_NREGIONS; region++) {
putreg32(region, MPU_RNR);
putreg32(0, MPU_RBAR);
putreg32(0, MPU_RASR);
// save
putreg32(0, MPU_CTRL);
}
/* Reset PWM first thing */
board_on_reset(-1);

12
boards/mro/ctrl-zero-h7/src/init.c

@ -60,6 +60,8 @@ @@ -60,6 +60,8 @@
#include <px4_platform/gpio.h>
#include <px4_platform/board_dma_alloc.h>
#include <mpu.h>
__BEGIN_DECLS
extern void led_init(void);
extern void led_on(int led);
@ -121,6 +123,16 @@ __EXPORT void board_on_reset(int status) @@ -121,6 +123,16 @@ __EXPORT void board_on_reset(int status)
************************************************************************************/
__EXPORT void stm32_boardinitialize(void)
{
// clear all existing MPU configuration from bootloader
for (int region = 0; region < CONFIG_ARM_MPU_NREGIONS; region++) {
putreg32(region, MPU_RNR);
putreg32(0, MPU_RBAR);
putreg32(0, MPU_RASR);
// save
putreg32(0, MPU_CTRL);
}
/* Reset PWM first thing */
board_on_reset(-1);

12
boards/mro/pixracerpro/src/init.c

@ -60,6 +60,8 @@ @@ -60,6 +60,8 @@
#include <px4_platform/gpio.h>
#include <px4_platform/board_dma_alloc.h>
#include <mpu.h>
__BEGIN_DECLS
extern void led_init(void);
extern void led_on(int led);
@ -121,6 +123,16 @@ __EXPORT void board_on_reset(int status) @@ -121,6 +123,16 @@ __EXPORT void board_on_reset(int status)
************************************************************************************/
__EXPORT void stm32_boardinitialize(void)
{
// clear all existing MPU configuration from bootloader
for (int region = 0; region < CONFIG_ARM_MPU_NREGIONS; region++) {
putreg32(region, MPU_RNR);
putreg32(0, MPU_RBAR);
putreg32(0, MPU_RASR);
// save
putreg32(0, MPU_CTRL);
}
/* Reset PWM first thing */
board_on_reset(-1);

Loading…
Cancel
Save