mirror of
https://github.com/IcedRooibos/py32f0-template.git
synced 2025-10-29 08:52:04 -07:00
feat: demo of changing option bytes
This commit is contained in:
parent
a4d988ebcf
commit
cc03e09ad7
81
Examples/LL/Flash/RestoreOptionBytes/main.c
Normal file
81
Examples/LL/Flash/RestoreOptionBytes/main.c
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
/**
|
||||||
|
* Demo: Reset Option Bytes
|
||||||
|
*
|
||||||
|
* Board: PY32F003W1XS (SOP16)
|
||||||
|
*
|
||||||
|
* This demo will restore reset pin
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "main.h"
|
||||||
|
#include "py32f0xx_bsp_printf.h"
|
||||||
|
#include "py32f0xx_bsp_clock.h"
|
||||||
|
|
||||||
|
|
||||||
|
static void APP_GPIOConfig(void);
|
||||||
|
static void APP_FlashSetOptionBytes(void);
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
BSP_RCC_HSI_24MConfig();
|
||||||
|
|
||||||
|
BSP_USART_Config(115200);
|
||||||
|
printf("PY32F0xx GPIO Example\r\nClock: %ld\r\n", SystemCoreClock);
|
||||||
|
LL_mDelay(1000);
|
||||||
|
|
||||||
|
if(READ_BIT(FLASH->OPTR, FLASH_OPTR_NRST_MODE) == OB_RESET_MODE_GPIO)
|
||||||
|
{
|
||||||
|
printf("Configurate RESET as RESET\r\n");
|
||||||
|
/* This will reset the MCU */
|
||||||
|
APP_FlashSetOptionBytes();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printf("RESET has been configurated as RESET\r\n");
|
||||||
|
}
|
||||||
|
/* Don't config GPIO before changing the option bytes */
|
||||||
|
APP_GPIOConfig();
|
||||||
|
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
LL_GPIO_TogglePin(GPIOA, LL_GPIO_PIN_0);
|
||||||
|
printf("echo\r\n");
|
||||||
|
LL_mDelay(1000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void APP_GPIOConfig(void)
|
||||||
|
{
|
||||||
|
// PA0
|
||||||
|
LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOA);
|
||||||
|
LL_GPIO_SetPinMode(GPIOA, LL_GPIO_PIN_0, LL_GPIO_MODE_OUTPUT);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void APP_FlashSetOptionBytes(void)
|
||||||
|
{
|
||||||
|
FLASH_OBProgramInitTypeDef OBInitCfg;
|
||||||
|
|
||||||
|
LL_FLASH_Unlock();
|
||||||
|
LL_FLASH_OB_Unlock();
|
||||||
|
|
||||||
|
OBInitCfg.OptionType = OPTIONBYTE_USER;
|
||||||
|
OBInitCfg.USERType = OB_USER_BOR_EN | OB_USER_BOR_LEV | OB_USER_IWDG_SW | OB_USER_WWDG_SW | OB_USER_NRST_MODE | OB_USER_nBOOT1;
|
||||||
|
OBInitCfg.USERConfig = OB_BOR_DISABLE | OB_BOR_LEVEL_3p1_3p2 | OB_IWDG_SW | OB_WWDG_SW | OB_RESET_MODE_RESET | OB_BOOT1_SYSTEM;
|
||||||
|
LL_FLASH_OBProgram(&OBInitCfg);
|
||||||
|
|
||||||
|
LL_FLASH_Lock();
|
||||||
|
LL_FLASH_OB_Lock();
|
||||||
|
/* Reload option bytes */
|
||||||
|
LL_FLASH_OB_Launch();
|
||||||
|
}
|
||||||
|
|
||||||
|
void APP_ErrorHandler(void)
|
||||||
|
{
|
||||||
|
while (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef USE_FULL_ASSERT
|
||||||
|
void assert_failed(uint8_t *file, uint32_t line)
|
||||||
|
{
|
||||||
|
while (1);
|
||||||
|
}
|
||||||
|
#endif /* USE_FULL_ASSERT */
|
||||||
60
Examples/LL/Flash/RestoreOptionBytes/main.h
Normal file
60
Examples/LL/Flash/RestoreOptionBytes/main.h
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file main.h
|
||||||
|
* @author MCU Application Team
|
||||||
|
* @brief Header for main.c file.
|
||||||
|
* This file contains the common defines of the application.
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* <h2><center>© Copyright (c) Puya Semiconductor Co.
|
||||||
|
* All rights reserved.</center></h2>
|
||||||
|
*
|
||||||
|
* <h2><center>© Copyright (c) 2016 STMicroelectronics.
|
||||||
|
* All rights reserved.</center></h2>
|
||||||
|
*
|
||||||
|
* This software component is licensed by ST under BSD 3-Clause license,
|
||||||
|
* the "License"; You may not use this file except in compliance with the
|
||||||
|
* License. You may obtain a copy of the License at:
|
||||||
|
* opensource.org/licenses/BSD-3-Clause
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||||
|
#ifndef __MAIN_H
|
||||||
|
#define __MAIN_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Includes ------------------------------------------------------------------*/
|
||||||
|
#include "py32f0xx_ll_rcc.h"
|
||||||
|
#include "py32f0xx_ll_bus.h"
|
||||||
|
#include "py32f0xx_ll_system.h"
|
||||||
|
#include "py32f0xx_ll_exti.h"
|
||||||
|
#include "py32f0xx_ll_cortex.h"
|
||||||
|
#include "py32f0xx_ll_utils.h"
|
||||||
|
#include "py32f0xx_ll_pwr.h"
|
||||||
|
#include "py32f0xx_ll_dma.h"
|
||||||
|
#include "py32f0xx_ll_flash.h"
|
||||||
|
#include "py32f0xx_ll_gpio.h"
|
||||||
|
|
||||||
|
#if defined(USE_FULL_ASSERT)
|
||||||
|
#include "py32_assert.h"
|
||||||
|
#endif /* USE_FULL_ASSERT */
|
||||||
|
|
||||||
|
/* Private includes ----------------------------------------------------------*/
|
||||||
|
/* Private defines -----------------------------------------------------------*/
|
||||||
|
/* Exported variables prototypes ---------------------------------------------*/
|
||||||
|
/* Exported functions prototypes ---------------------------------------------*/
|
||||||
|
void APP_ErrorHandler(void);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __MAIN_H */
|
||||||
|
|
||||||
|
/************************ (C) COPYRIGHT Puya *****END OF FILE******************/
|
||||||
59
Examples/LL/Flash/RestoreOptionBytes/py32_assert.h
Normal file
59
Examples/LL/Flash/RestoreOptionBytes/py32_assert.h
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file py32_assert.h
|
||||||
|
* @brief PY32 assert file.
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* <h2><center>© Copyright (c) Puya Semiconductor Co.
|
||||||
|
* All rights reserved.</center></h2>
|
||||||
|
*
|
||||||
|
* <h2><center>© Copyright (c) 2016 STMicroelectronics.
|
||||||
|
* All rights reserved.</center></h2>
|
||||||
|
*
|
||||||
|
* This software component is licensed by ST under BSD 3-Clause license,
|
||||||
|
* the "License"; You may not use this file except in compliance with the
|
||||||
|
* License. You may obtain a copy of the License at:
|
||||||
|
* opensource.org/licenses/BSD-3-Clause
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||||
|
#ifndef __PY32_ASSERT_H
|
||||||
|
#define __PY32_ASSERT_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef USE_FULL_ASSERT
|
||||||
|
/* Exported types ------------------------------------------------------------*/
|
||||||
|
/* Exported constants --------------------------------------------------------*/
|
||||||
|
/* Includes ------------------------------------------------------------------*/
|
||||||
|
#include "stdint.h"
|
||||||
|
|
||||||
|
/* Exported macro ------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The assert_param macro is used for function's parameters check.
|
||||||
|
* @param expr: If expr is false, it calls assert_failed function
|
||||||
|
* which reports the name of the source file and the source
|
||||||
|
* line number of the call that failed.
|
||||||
|
* If expr is true, it returns no value.
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
#define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__))
|
||||||
|
/* Exported functions ------------------------------------------------------- */
|
||||||
|
void assert_failed(uint8_t* file, uint32_t line);
|
||||||
|
#else
|
||||||
|
#define assert_param(expr) ((void)0U)
|
||||||
|
#endif /* USE_FULL_ASSERT */
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __PY32_ASSERT_H */
|
||||||
|
|
||||||
|
/************************ (C) COPYRIGHT Puya *****END OF FILE******************/
|
||||||
84
Examples/LL/Flash/RestoreOptionBytes/py32f0xx_it.c
Normal file
84
Examples/LL/Flash/RestoreOptionBytes/py32f0xx_it.c
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file py32f0xx_it.c
|
||||||
|
* @author MCU Application Team
|
||||||
|
* @brief Interrupt Service Routines.
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* <h2><center>© Copyright (c) Puya Semiconductor Co.
|
||||||
|
* All rights reserved.</center></h2>
|
||||||
|
*
|
||||||
|
* <h2><center>© Copyright (c) 2016 STMicroelectronics.
|
||||||
|
* All rights reserved.</center></h2>
|
||||||
|
*
|
||||||
|
* This software component is licensed by ST under BSD 3-Clause license,
|
||||||
|
* the "License"; You may not use this file except in compliance with the
|
||||||
|
* License. You may obtain a copy of the License at:
|
||||||
|
* opensource.org/licenses/BSD-3-Clause
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Includes ------------------------------------------------------------------*/
|
||||||
|
#include "main.h"
|
||||||
|
#include "py32f0xx_it.h"
|
||||||
|
|
||||||
|
/* Private includes ----------------------------------------------------------*/
|
||||||
|
/* Private typedef -----------------------------------------------------------*/
|
||||||
|
/* Private define ------------------------------------------------------------*/
|
||||||
|
/* Private macro -------------------------------------------------------------*/
|
||||||
|
/* Private variables ---------------------------------------------------------*/
|
||||||
|
/* Private function prototypes -----------------------------------------------*/
|
||||||
|
/* Private user code ---------------------------------------------------------*/
|
||||||
|
/* External variables --------------------------------------------------------*/
|
||||||
|
|
||||||
|
/******************************************************************************/
|
||||||
|
/* Cortex-M0+ Processor Interruption and Exception Handlers */
|
||||||
|
/******************************************************************************/
|
||||||
|
/**
|
||||||
|
* @brief This function handles Non maskable interrupt.
|
||||||
|
*/
|
||||||
|
void NMI_Handler(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles Hard fault interrupt.
|
||||||
|
*/
|
||||||
|
void HardFault_Handler(void)
|
||||||
|
{
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles System service call via SWI instruction.
|
||||||
|
*/
|
||||||
|
void SVC_Handler(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles Pendable request for system service.
|
||||||
|
*/
|
||||||
|
void PendSV_Handler(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles System tick timer.
|
||||||
|
*/
|
||||||
|
void SysTick_Handler(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************************************/
|
||||||
|
/* PY32F0xx Peripheral Interrupt Handlers */
|
||||||
|
/* Add here the Interrupt Handlers for the used peripherals. */
|
||||||
|
/* For the available peripheral interrupt handler names, */
|
||||||
|
/* please refer to the startup file. */
|
||||||
|
/******************************************************************************/
|
||||||
|
|
||||||
|
/************************ (C) COPYRIGHT Puya *****END OF FILE******************/
|
||||||
49
Examples/LL/Flash/RestoreOptionBytes/py32f0xx_it.h
Normal file
49
Examples/LL/Flash/RestoreOptionBytes/py32f0xx_it.h
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file py32f0xx_it.h
|
||||||
|
* @author MCU Application Team
|
||||||
|
* @brief This file contains the headers of the interrupt handlers.
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* <h2><center>© Copyright (c) Puya Semiconductor Co.
|
||||||
|
* All rights reserved.</center></h2>
|
||||||
|
*
|
||||||
|
* <h2><center>© Copyright (c) 2016 STMicroelectronics.
|
||||||
|
* All rights reserved.</center></h2>
|
||||||
|
*
|
||||||
|
* This software component is licensed by ST under BSD 3-Clause license,
|
||||||
|
* the "License"; You may not use this file except in compliance with the
|
||||||
|
* License. You may obtain a copy of the License at:
|
||||||
|
* opensource.org/licenses/BSD-3-Clause
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||||
|
#ifndef __PY32F0XX_IT_H
|
||||||
|
#define __PY32F0XX_IT_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Private includes ----------------------------------------------------------*/
|
||||||
|
/* Exported types ------------------------------------------------------------*/
|
||||||
|
/* Exported constants --------------------------------------------------------*/
|
||||||
|
/* Exported macro ------------------------------------------------------------*/
|
||||||
|
/* Exported functions prototypes ---------------------------------------------*/
|
||||||
|
void NMI_Handler(void);
|
||||||
|
void HardFault_Handler(void);
|
||||||
|
void SVC_Handler(void);
|
||||||
|
void PendSV_Handler(void);
|
||||||
|
void SysTick_Handler(void);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __PY32F0XX_IT_H */
|
||||||
|
|
||||||
|
/************************ (C) COPYRIGHT Puya *****END OF FILE******************/
|
||||||
90
Examples/LL/Flash/WriteOptionBytes/main.c
Normal file
90
Examples/LL/Flash/WriteOptionBytes/main.c
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
/**
|
||||||
|
* Demo: Write Option Bytes
|
||||||
|
*
|
||||||
|
* Board: PY32F003W1XS (SOP16)
|
||||||
|
*
|
||||||
|
* This demo shows how to config reset pin as gpio output
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "main.h"
|
||||||
|
#include "py32f0xx_bsp_printf.h"
|
||||||
|
#include "py32f0xx_bsp_clock.h"
|
||||||
|
|
||||||
|
|
||||||
|
static void APP_GPIOConfig(void);
|
||||||
|
static void APP_FlashSetOptionBytes(void);
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
BSP_RCC_HSI_24MConfig();
|
||||||
|
|
||||||
|
BSP_USART_Config(115200);
|
||||||
|
printf("PY32F0xx GPIO Example\r\nClock: %ld\r\n", SystemCoreClock);
|
||||||
|
LL_mDelay(1000);
|
||||||
|
|
||||||
|
if(READ_BIT(FLASH->OPTR, FLASH_OPTR_NRST_MODE) == OB_RESET_MODE_RESET)
|
||||||
|
{
|
||||||
|
printf("Configurate RESET as GPIO\r\n");
|
||||||
|
/* This will reset the MCU */
|
||||||
|
APP_FlashSetOptionBytes();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printf("RESET has been configurated as GPIO\r\n");
|
||||||
|
}
|
||||||
|
/* Don't config GPIO before changing the option bytes */
|
||||||
|
APP_GPIOConfig();
|
||||||
|
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
LL_GPIO_TogglePin(GPIOA, LL_GPIO_PIN_0);
|
||||||
|
LL_GPIO_TogglePin(GPIOF, LL_GPIO_PIN_0);
|
||||||
|
printf("echo\r\n");
|
||||||
|
LL_mDelay(1000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void APP_GPIOConfig(void)
|
||||||
|
{
|
||||||
|
// PA0
|
||||||
|
LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOA);
|
||||||
|
LL_GPIO_SetPinMode(GPIOA, LL_GPIO_PIN_0, LL_GPIO_MODE_OUTPUT);
|
||||||
|
// PF0 -> GPIO output, PF2 -> analog
|
||||||
|
LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOF);
|
||||||
|
LL_GPIO_SetPinMode(GPIOF, LL_GPIO_PIN_0, LL_GPIO_MODE_OUTPUT);
|
||||||
|
// PY32F003W1XS: PF0 and PF2 share the same pin, it's recommended to set PF2 as analog
|
||||||
|
LL_GPIO_SetPinMode(GPIOF, LL_GPIO_PIN_2, LL_GPIO_MODE_ANALOG);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void APP_FlashSetOptionBytes(void)
|
||||||
|
{
|
||||||
|
FLASH_OBProgramInitTypeDef OBInitCfg;
|
||||||
|
|
||||||
|
LL_FLASH_Unlock();
|
||||||
|
LL_FLASH_OB_Unlock();
|
||||||
|
|
||||||
|
OBInitCfg.OptionType = OPTIONBYTE_USER;
|
||||||
|
OBInitCfg.USERType = OB_USER_BOR_EN | OB_USER_BOR_LEV | OB_USER_IWDG_SW | OB_USER_WWDG_SW | OB_USER_NRST_MODE | OB_USER_nBOOT1;
|
||||||
|
/*
|
||||||
|
* The default value: OB_BOR_DISABLE | OB_BOR_LEVEL_3p1_3p2 | OB_IWDG_SW | OB_WWDG_SW | OB_RESET_MODE_RESET | OB_BOOT1_SYSTEM;
|
||||||
|
*/
|
||||||
|
OBInitCfg.USERConfig = OB_BOR_DISABLE | OB_BOR_LEVEL_3p1_3p2 | OB_IWDG_SW | OB_WWDG_SW | OB_RESET_MODE_GPIO | OB_BOOT1_SYSTEM;
|
||||||
|
LL_FLASH_OBProgram(&OBInitCfg);
|
||||||
|
|
||||||
|
LL_FLASH_Lock();
|
||||||
|
LL_FLASH_OB_Lock();
|
||||||
|
/* Reload option bytes */
|
||||||
|
LL_FLASH_OB_Launch();
|
||||||
|
}
|
||||||
|
|
||||||
|
void APP_ErrorHandler(void)
|
||||||
|
{
|
||||||
|
while (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef USE_FULL_ASSERT
|
||||||
|
void assert_failed(uint8_t *file, uint32_t line)
|
||||||
|
{
|
||||||
|
while (1);
|
||||||
|
}
|
||||||
|
#endif /* USE_FULL_ASSERT */
|
||||||
60
Examples/LL/Flash/WriteOptionBytes/main.h
Normal file
60
Examples/LL/Flash/WriteOptionBytes/main.h
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file main.h
|
||||||
|
* @author MCU Application Team
|
||||||
|
* @brief Header for main.c file.
|
||||||
|
* This file contains the common defines of the application.
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* <h2><center>© Copyright (c) Puya Semiconductor Co.
|
||||||
|
* All rights reserved.</center></h2>
|
||||||
|
*
|
||||||
|
* <h2><center>© Copyright (c) 2016 STMicroelectronics.
|
||||||
|
* All rights reserved.</center></h2>
|
||||||
|
*
|
||||||
|
* This software component is licensed by ST under BSD 3-Clause license,
|
||||||
|
* the "License"; You may not use this file except in compliance with the
|
||||||
|
* License. You may obtain a copy of the License at:
|
||||||
|
* opensource.org/licenses/BSD-3-Clause
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||||
|
#ifndef __MAIN_H
|
||||||
|
#define __MAIN_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Includes ------------------------------------------------------------------*/
|
||||||
|
#include "py32f0xx_ll_rcc.h"
|
||||||
|
#include "py32f0xx_ll_bus.h"
|
||||||
|
#include "py32f0xx_ll_system.h"
|
||||||
|
#include "py32f0xx_ll_exti.h"
|
||||||
|
#include "py32f0xx_ll_cortex.h"
|
||||||
|
#include "py32f0xx_ll_utils.h"
|
||||||
|
#include "py32f0xx_ll_pwr.h"
|
||||||
|
#include "py32f0xx_ll_dma.h"
|
||||||
|
#include "py32f0xx_ll_flash.h"
|
||||||
|
#include "py32f0xx_ll_gpio.h"
|
||||||
|
|
||||||
|
#if defined(USE_FULL_ASSERT)
|
||||||
|
#include "py32_assert.h"
|
||||||
|
#endif /* USE_FULL_ASSERT */
|
||||||
|
|
||||||
|
/* Private includes ----------------------------------------------------------*/
|
||||||
|
/* Private defines -----------------------------------------------------------*/
|
||||||
|
/* Exported variables prototypes ---------------------------------------------*/
|
||||||
|
/* Exported functions prototypes ---------------------------------------------*/
|
||||||
|
void APP_ErrorHandler(void);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __MAIN_H */
|
||||||
|
|
||||||
|
/************************ (C) COPYRIGHT Puya *****END OF FILE******************/
|
||||||
59
Examples/LL/Flash/WriteOptionBytes/py32_assert.h
Normal file
59
Examples/LL/Flash/WriteOptionBytes/py32_assert.h
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file py32_assert.h
|
||||||
|
* @brief PY32 assert file.
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* <h2><center>© Copyright (c) Puya Semiconductor Co.
|
||||||
|
* All rights reserved.</center></h2>
|
||||||
|
*
|
||||||
|
* <h2><center>© Copyright (c) 2016 STMicroelectronics.
|
||||||
|
* All rights reserved.</center></h2>
|
||||||
|
*
|
||||||
|
* This software component is licensed by ST under BSD 3-Clause license,
|
||||||
|
* the "License"; You may not use this file except in compliance with the
|
||||||
|
* License. You may obtain a copy of the License at:
|
||||||
|
* opensource.org/licenses/BSD-3-Clause
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||||
|
#ifndef __PY32_ASSERT_H
|
||||||
|
#define __PY32_ASSERT_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef USE_FULL_ASSERT
|
||||||
|
/* Exported types ------------------------------------------------------------*/
|
||||||
|
/* Exported constants --------------------------------------------------------*/
|
||||||
|
/* Includes ------------------------------------------------------------------*/
|
||||||
|
#include "stdint.h"
|
||||||
|
|
||||||
|
/* Exported macro ------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The assert_param macro is used for function's parameters check.
|
||||||
|
* @param expr: If expr is false, it calls assert_failed function
|
||||||
|
* which reports the name of the source file and the source
|
||||||
|
* line number of the call that failed.
|
||||||
|
* If expr is true, it returns no value.
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
#define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__))
|
||||||
|
/* Exported functions ------------------------------------------------------- */
|
||||||
|
void assert_failed(uint8_t* file, uint32_t line);
|
||||||
|
#else
|
||||||
|
#define assert_param(expr) ((void)0U)
|
||||||
|
#endif /* USE_FULL_ASSERT */
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __PY32_ASSERT_H */
|
||||||
|
|
||||||
|
/************************ (C) COPYRIGHT Puya *****END OF FILE******************/
|
||||||
84
Examples/LL/Flash/WriteOptionBytes/py32f0xx_it.c
Normal file
84
Examples/LL/Flash/WriteOptionBytes/py32f0xx_it.c
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file py32f0xx_it.c
|
||||||
|
* @author MCU Application Team
|
||||||
|
* @brief Interrupt Service Routines.
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* <h2><center>© Copyright (c) Puya Semiconductor Co.
|
||||||
|
* All rights reserved.</center></h2>
|
||||||
|
*
|
||||||
|
* <h2><center>© Copyright (c) 2016 STMicroelectronics.
|
||||||
|
* All rights reserved.</center></h2>
|
||||||
|
*
|
||||||
|
* This software component is licensed by ST under BSD 3-Clause license,
|
||||||
|
* the "License"; You may not use this file except in compliance with the
|
||||||
|
* License. You may obtain a copy of the License at:
|
||||||
|
* opensource.org/licenses/BSD-3-Clause
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Includes ------------------------------------------------------------------*/
|
||||||
|
#include "main.h"
|
||||||
|
#include "py32f0xx_it.h"
|
||||||
|
|
||||||
|
/* Private includes ----------------------------------------------------------*/
|
||||||
|
/* Private typedef -----------------------------------------------------------*/
|
||||||
|
/* Private define ------------------------------------------------------------*/
|
||||||
|
/* Private macro -------------------------------------------------------------*/
|
||||||
|
/* Private variables ---------------------------------------------------------*/
|
||||||
|
/* Private function prototypes -----------------------------------------------*/
|
||||||
|
/* Private user code ---------------------------------------------------------*/
|
||||||
|
/* External variables --------------------------------------------------------*/
|
||||||
|
|
||||||
|
/******************************************************************************/
|
||||||
|
/* Cortex-M0+ Processor Interruption and Exception Handlers */
|
||||||
|
/******************************************************************************/
|
||||||
|
/**
|
||||||
|
* @brief This function handles Non maskable interrupt.
|
||||||
|
*/
|
||||||
|
void NMI_Handler(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles Hard fault interrupt.
|
||||||
|
*/
|
||||||
|
void HardFault_Handler(void)
|
||||||
|
{
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles System service call via SWI instruction.
|
||||||
|
*/
|
||||||
|
void SVC_Handler(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles Pendable request for system service.
|
||||||
|
*/
|
||||||
|
void PendSV_Handler(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles System tick timer.
|
||||||
|
*/
|
||||||
|
void SysTick_Handler(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************************************/
|
||||||
|
/* PY32F0xx Peripheral Interrupt Handlers */
|
||||||
|
/* Add here the Interrupt Handlers for the used peripherals. */
|
||||||
|
/* For the available peripheral interrupt handler names, */
|
||||||
|
/* please refer to the startup file. */
|
||||||
|
/******************************************************************************/
|
||||||
|
|
||||||
|
/************************ (C) COPYRIGHT Puya *****END OF FILE******************/
|
||||||
49
Examples/LL/Flash/WriteOptionBytes/py32f0xx_it.h
Normal file
49
Examples/LL/Flash/WriteOptionBytes/py32f0xx_it.h
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file py32f0xx_it.h
|
||||||
|
* @author MCU Application Team
|
||||||
|
* @brief This file contains the headers of the interrupt handlers.
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* <h2><center>© Copyright (c) Puya Semiconductor Co.
|
||||||
|
* All rights reserved.</center></h2>
|
||||||
|
*
|
||||||
|
* <h2><center>© Copyright (c) 2016 STMicroelectronics.
|
||||||
|
* All rights reserved.</center></h2>
|
||||||
|
*
|
||||||
|
* This software component is licensed by ST under BSD 3-Clause license,
|
||||||
|
* the "License"; You may not use this file except in compliance with the
|
||||||
|
* License. You may obtain a copy of the License at:
|
||||||
|
* opensource.org/licenses/BSD-3-Clause
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||||
|
#ifndef __PY32F0XX_IT_H
|
||||||
|
#define __PY32F0XX_IT_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Private includes ----------------------------------------------------------*/
|
||||||
|
/* Exported types ------------------------------------------------------------*/
|
||||||
|
/* Exported constants --------------------------------------------------------*/
|
||||||
|
/* Exported macro ------------------------------------------------------------*/
|
||||||
|
/* Exported functions prototypes ---------------------------------------------*/
|
||||||
|
void NMI_Handler(void);
|
||||||
|
void HardFault_Handler(void);
|
||||||
|
void SVC_Handler(void);
|
||||||
|
void PendSV_Handler(void);
|
||||||
|
void SysTick_Handler(void);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __PY32F0XX_IT_H */
|
||||||
|
|
||||||
|
/************************ (C) COPYRIGHT Puya *****END OF FILE******************/
|
||||||
Loading…
x
Reference in New Issue
Block a user