OpenRTX/platform/mcu/STM32H7xx/boot/bsp.cpp

75 lines
2.4 KiB
C++

/***************************************************************************
* Copyright (C) 2024 by Silvano Seva IU2KWO, *
* Federico Terraneo *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 3 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, see <http://www.gnu.org/licenses/> *
***************************************************************************/
/***********************************************************************
* bsp.cpp Part of the Miosix Embedded OS.
* Board support package, this file initializes hardware.
************************************************************************/
#include <interfaces/bsp.h>
#include <kernel/kernel.h>
#include <kernel/sync.h>
#include "stm32h743xx.h"
namespace miosix
{
//
// Initialization
//
void IRQbspInit()
{
RCC->AHB4ENR |= RCC_AHB4ENR_GPIOAEN | RCC_AHB4ENR_GPIOBEN
| RCC_AHB4ENR_GPIOCEN | RCC_AHB4ENR_GPIODEN
| RCC_AHB4ENR_GPIOEEN | RCC_AHB4ENR_GPIOHEN;
RCC_SYNC();
GPIOA->OSPEEDR=0xaaaaaaaa; //Default to 50MHz speed for all GPIOS
GPIOB->OSPEEDR=0xaaaaaaaa;
GPIOC->OSPEEDR=0xaaaaaaaa;
GPIOD->OSPEEDR=0xaaaaaaaa;
GPIOE->OSPEEDR=0xaaaaaaaa;
GPIOH->OSPEEDR=0xaaaaaaaa;
// Configure SysTick
SysTick->LOAD = SystemCoreClock / miosix::TICK_FREQ;
}
void bspInit2()
{
}
//
// Shutdown and reboot
//
void shutdown()
{
reboot();
}
void reboot()
{
disableInterrupts();
miosix_private::IRQsystemReboot();
}
} //namespace miosix