56 lines
1.9 KiB
C
56 lines
1.9 KiB
C
|
#ifndef __SYSTEM_STM32L4XX_H
|
||
|
#define __SYSTEM_STM32L4XX_H
|
||
|
#include <stdint.h>
|
||
|
|
||
|
/** @file
|
||
|
* @brief Základní nastavení CPU.
|
||
|
*
|
||
|
* Doplněné o DBGMCU pro debug ve sleep módu.
|
||
|
* */
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
/** System Clock Frequency (Core Clock) */
|
||
|
extern uint32_t SystemCoreClock;
|
||
|
/** Inicializace jádra a hodin periferií */
|
||
|
extern void SystemInit (void);
|
||
|
/** Spočte frekvenci jádra v závislosti na nastavení */
|
||
|
extern void SystemCoreClockUpdate (void);
|
||
|
|
||
|
/** Inicializace jen tabulky vektorů, hodiny a flash inicializovány bootloaderem */
|
||
|
extern void UserSystemInit (void);
|
||
|
/// Control registr DEBUG MCU
|
||
|
typedef union {
|
||
|
struct {
|
||
|
uint32_t DBG_SLEEP : 1; //!< Debug Sleep mode
|
||
|
uint32_t DBG_STOP : 1; //!< Debug Stop mode
|
||
|
uint32_t DBG_STANDBY : 1; //!< Debug Standby mode
|
||
|
uint32_t UNUSED1 : 2;
|
||
|
uint32_t TRACE_IOEN : 1; //!< Trace pin assignment control
|
||
|
uint32_t TRACE_MODE : 2; //!< TRACE pin assignment for Asynchronous/Synchronous Mode, TRACEDATA size
|
||
|
uint32_t UNUSED2 : 24;
|
||
|
} B; //!< jednotlivé bity
|
||
|
uint32_t R; //!< Celková hodnota
|
||
|
} DBGMCU_CR;
|
||
|
/// Blok řízení DEBUG MCU
|
||
|
typedef struct {
|
||
|
volatile uint32_t IDCODE; //!< ID procesoru
|
||
|
volatile DBGMCU_CR CR; //!< Řízení debug při low power modech.
|
||
|
volatile uint32_t APB1_FZ1; //!< chování periferií při debug
|
||
|
volatile uint32_t APB1_FZ2; //!< chování periferií při debug
|
||
|
volatile uint32_t APB2_FZ; //!< chování periferií při debug
|
||
|
} DBGMCU_L4;
|
||
|
/// Adresa DBGMCU bloku
|
||
|
static DBGMCU_L4 * const MDBGMCU = (DBGMCU_L4 *) 0xE0042000;
|
||
|
/// Pokud použijeme v programu wfi/wfe, je nutné povolit debug i v tt. módu.
|
||
|
static inline void EnableDebugOnSleep (void) {
|
||
|
MDBGMCU->CR.B.DBG_SLEEP = 1;
|
||
|
}
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif /*__SYSTEM_STM32L4XX_H */
|