diff --git a/Documentation/PY32F002B_User_Manual.chm b/Documentation/PY32F002B_User_Manual.chm index a728bce..0614ca0 100644 Binary files a/Documentation/PY32F002B_User_Manual.chm and b/Documentation/PY32F002B_User_Manual.chm differ diff --git a/Drivers/BSP/PY32F002Bxx_Start_Kit/py32f002bxx_Start_Kit.c b/Drivers/BSP/PY32F002Bxx_Start_Kit/py32f002bxx_Start_Kit.c index 644cab5..595aff0 100644 --- a/Drivers/BSP/PY32F002Bxx_Start_Kit/py32f002bxx_Start_Kit.c +++ b/Drivers/BSP/PY32F002Bxx_Start_Kit/py32f002bxx_Start_Kit.c @@ -216,7 +216,11 @@ void BSP_PB_DeInit(Button_TypeDef Button) */ uint32_t BSP_PB_GetState(Button_TypeDef Button) { +#if StartKitVersion == 2 + return (HAL_GPIO_ReadPin(BUTTON_PORT[Button], BUTTON_PIN[Button]) == GPIO_PIN_RESET); +#else return HAL_GPIO_ReadPin(BUTTON_PORT[Button], BUTTON_PIN[Button]); +#endif } #ifdef HAL_UART_MODULE_ENABLED @@ -327,6 +331,180 @@ int __io_putchar(int ch) return ch; } +int _write(int file, char *ptr, int len) +{ + int DataIdx; + for (DataIdx=0;DataIdxLOAD; + MinD = (ReloadD+1)*10/96; +} + +/** + * @brief writes a character to the usart + * @param SystickStart + * @param ReloadData + * @param MinData + * @retval NULL + */ +static void BSP_Delay(uint32_t SystickStart,uint32_t ReloadData, uint32_t MinData) +{ + uint32_t SystickCurrent = 0; + while(1) + { + SystickCurrent = SysTick->VAL; + + if(SystickCurrent < SystickStart) + { + if((SystickStart-SystickCurrent) >= MinData) + { + break; + } + } + else + { + if(SystickCurrent <= (ReloadData+1 - MinData + SystickStart)) + { + break; + } + } + } +} + +/** + * @brief writes a character to the usart + * @param ch + * *f + * @retval the character + */ +static void BSP_TransmitChar(uint8_t ch) +{ + uint8_t temp = 0; + uint32_t SystickStart = SysTick->VAL ; + + for(uint8_t i=0;i<10;i++) + { + if(i==0) + { + HAL_GPIO_WritePin(DEBUG_USART_TX_GPIO_PORT,DEBUG_USART_TX_PIN,GPIO_PIN_RESET); + } + else if(i == 9) + { + BSP_Delay(SystickStart, ReloadD, MinD); + + HAL_GPIO_WritePin(DEBUG_USART_TX_GPIO_PORT,DEBUG_USART_TX_PIN,GPIO_PIN_SET); + + if(SystickStart >= MinD) + { + SystickStart = SystickStart - MinD; + } + else + { + SystickStart = ReloadD + 1 + SystickStart - MinD; + } + BSP_Delay(SystickStart, ReloadD, MinD); + } + else + { + temp=ch&0x01; + BSP_Delay(SystickStart, ReloadD, MinD); + switch(temp) + { + case 1: + { + HAL_GPIO_WritePin(DEBUG_USART_TX_GPIO_PORT,DEBUG_USART_TX_PIN,GPIO_PIN_SET); + break; + } + case 0: + { + HAL_GPIO_WritePin(DEBUG_USART_TX_GPIO_PORT,DEBUG_USART_TX_PIN,GPIO_PIN_RESET); + break; + } + + default: break; + } + ch>>=1; + if(SystickStart > MinD) + { + SystickStart = SystickStart - MinD; + } + else + { + SystickStart = ReloadD + 1 + SystickStart - MinD; + } + } + } +} + +#if (defined (__CC_ARM)) || (defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)) +/** + * @brief writes a character to the usart + * @param ch + * *f + * @retval the character + */ +int fputc(int ch, FILE *f) +{ + BSP_TransmitChar(ch); + return (ch); +} + + +#elif defined(__ICCARM__) +/** + * @brief writes a character to the usart + * @param ch + * *f + * @retval the character + */ +int putchar(int ch) +{ + /* Send a byte to USART */ + BSP_TransmitChar(ch); + + return (ch); +} +#elif defined(__GNUC__) +/** + * @brief writes a character to the usart + * @param ch + * @retval the character + */ +int __io_putchar(int ch) +{ + /* Send a byte to USART */ + BSP_TransmitChar(ch); + + return ch; +} + int _write(int file, char *ptr, int len) { int DataIdx; diff --git a/Drivers/BSP/PY32F002Bxx_Start_Kit/py32f002bxx_Start_Kit.h b/Drivers/BSP/PY32F002Bxx_Start_Kit/py32f002bxx_Start_Kit.h index 289e027..fddf35e 100644 --- a/Drivers/BSP/PY32F002Bxx_Start_Kit/py32f002bxx_Start_Kit.h +++ b/Drivers/BSP/PY32F002Bxx_Start_Kit/py32f002bxx_Start_Kit.h @@ -72,6 +72,9 @@ typedef enum BUTTON_MODE_EXTI = 1 } ButtonMode_TypeDef; +#define StartKitVersion 2 +/* #define StartKitVersion 1 */ + #define LEDn 1 #define LED3_PIN GPIO_PIN_1 @@ -137,6 +140,12 @@ typedef enum #define DEBUG_USART_IRQHandler USART1_IRQHandler #define DEBUG_USART_IRQ USART1_IRQn + +#else + +#define DEBUG_USART_TX_GPIO_PORT GPIOB +#define DEBUG_USART_TX_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE() +#define DEBUG_USART_TX_PIN GPIO_PIN_4 #endif /************************************************************/ diff --git a/Drivers/BSP/PY32F002Bxx_Start_Kit/py32f002bxx_ll_Start_Kit.c b/Drivers/BSP/PY32F002Bxx_Start_Kit/py32f002bxx_ll_Start_Kit.c index 66165f9..dafc373 100644 --- a/Drivers/BSP/PY32F002Bxx_Start_Kit/py32f002bxx_ll_Start_Kit.c +++ b/Drivers/BSP/PY32F002Bxx_Start_Kit/py32f002bxx_ll_Start_Kit.c @@ -202,9 +202,14 @@ void BSP_PB_DeInit(Button_TypeDef Button) */ uint32_t BSP_PB_GetState(Button_TypeDef Button) { +#if StartKitVersion == 2 + return (LL_GPIO_IsInputPinSet(BUTTON_PORT[Button], BUTTON_PIN[Button]) == RESET); +#else return LL_GPIO_IsInputPinSet(BUTTON_PORT[Button], BUTTON_PIN[Button]); +#endif } +#ifdef USART1 /** * @brief DEBUG_USART GPIO Config,Mode Config,115200 8-N-1 * @param None @@ -315,6 +320,181 @@ int _write(int file, char *ptr, int len) } return len; } +#endif +#else +static uint32_t ReloadD = 0; +static uint32_t MinD = 0; + +/** + * @brief GPIO Config As USART + * @param None + * @retval None + */ +void BSP_USART_Config(void) +{ + if((SysTick->CTRL & SysTick_CTRL_ENABLE_Msk ) == 0) + { + LL_Init1msTick(SystemCoreClock); + } + DEBUG_USART_TX_GPIO_CLK_ENABLE(); + + LL_GPIO_SetPinMode(DEBUG_USART_TX_GPIO_PORT, DEBUG_USART_TX_PIN, LL_GPIO_MODE_OUTPUT); + LL_GPIO_SetOutputPin(DEBUG_USART_TX_GPIO_PORT,DEBUG_USART_TX_PIN); + LL_GPIO_SetPinSpeed(DEBUG_USART_TX_GPIO_PORT, DEBUG_USART_TX_PIN, LL_GPIO_SPEED_FREQ_VERY_HIGH); + LL_GPIO_SetPinPull(DEBUG_USART_TX_GPIO_PORT, DEBUG_USART_TX_PIN, LL_GPIO_PULL_UP); + + ReloadD = SysTick->LOAD; + MinD = (ReloadD+1)*10/96; +} + +/** + * @brief writes a character to the usart + * @param SystickStart + * @param ReloadData + * @param MinData + * @retval NULL + */ +static void BSP_Delay(uint32_t SystickStart,uint32_t ReloadData, uint32_t MinData) +{ + uint32_t SystickCurrent = 0; + while(1) + { + SystickCurrent = SysTick->VAL; + + if(SystickCurrent < SystickStart) + { + if((SystickStart-SystickCurrent) >= MinData) + { + break; + } + } + else + { + if(SystickCurrent <= (ReloadData+1 - MinData + SystickStart)) + { + break; + } + } + } +} + +/** + * @brief writes a character to the usart + * @param ch + * *f + * @retval the character + */ +static void BSP_TransmitChar(uint8_t ch) +{ + uint8_t temp = 0; + uint32_t SystickStart = SysTick->VAL ; + + for(uint8_t i=0;i<10;i++) + { + if(i==0) + { + LL_GPIO_ResetOutputPin(DEBUG_USART_TX_GPIO_PORT,DEBUG_USART_TX_PIN); + } + else if(i == 9) + { + BSP_Delay(SystickStart, ReloadD, MinD); + + LL_GPIO_SetOutputPin(DEBUG_USART_TX_GPIO_PORT,DEBUG_USART_TX_PIN); + + if(SystickStart >= MinD) + { + SystickStart = SystickStart - MinD; + } + else + { + SystickStart = ReloadD+1 + SystickStart - MinD; + } + BSP_Delay(SystickStart, ReloadD, MinD); + } + else + { + temp=ch&0x01; + BSP_Delay(SystickStart, ReloadD, MinD); + switch(temp) + { + case 1: + { + LL_GPIO_SetOutputPin(DEBUG_USART_TX_GPIO_PORT,DEBUG_USART_TX_PIN); + break; + } + case 0: + { + LL_GPIO_ResetOutputPin(DEBUG_USART_TX_GPIO_PORT,DEBUG_USART_TX_PIN); + break; + } + + default: break; + } + ch>>=1; + if(SystickStart > MinD) + { + SystickStart = SystickStart - MinD; + } + else + { + SystickStart = ReloadD + 1 + SystickStart - MinD; + } + } + } +} + +#if (defined (__CC_ARM)) || (defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)) +/** + * @brief writes a character to the usart + * @param ch + * *f + * @retval the character + */ +int fputc(int ch, FILE *f) +{ + BSP_TransmitChar(ch); + return (ch); +} + + +#elif defined(__ICCARM__) +/** + * @brief writes a character to the usart + * @param ch + * *f + * @retval the character + */ +int putchar(int ch) +{ + /* Send a byte to USART */ + BSP_TransmitChar(ch); + + return (ch); +} +#elif defined(__GNUC__) +/** + * @brief writes a character to the usart + * @param ch + * @retval the character + */ +int __io_putchar(int ch) +{ + /* Send a byte to USART */ + BSP_TransmitChar(ch); + + return ch; +} + +int _write(int file, char *ptr, int len) +{ + int DataIdx; + for (DataIdx=0;DataIdxTS0 = (__EPPARA0__)&0x1FF; \ + FLASH->TS0 = (__EPPARA0__)&0x1FF; \ FLASH->TS1 = ((__EPPARA0__)>>18)&0x3FF; \ - FLASH->TS3 = ((__EPPARA0__)>>9)&0x1FF; \ - FLASH->TS2P = (__EPPARA1__)&0x1FF; \ + FLASH->TS3 = ((__EPPARA0__)>>9)&0x1FF; \ + FLASH->TS2P = (__EPPARA1__)&0x1FF; \ FLASH->TPS3 = ((__EPPARA1__)>>16)&0xFFF; \ FLASH->PERTPE = (__EPPARA2__)&0x3FFFF; \ FLASH->SMERTPE = (__EPPARA3__)&0x3FFFF; \ @@ -456,10 +456,10 @@ typedef struct FLASH->PRETPE = ((__EPPARA4__)>>16)&0x3FFF; \ } while(0U) -#define __HAL_FLASH_IS_INVALID_TIMMING_SEQUENCE(_INDEX_) (((FLASH->TS0) != ((*(uint32_t *)(_FlashTimmingParam[_INDEX_]))&0x1FF)) || \ +#define __HAL_FLASH_IS_INVALID_TIMMING_SEQUENCE(_INDEX_) (((FLASH->TS0) != ((*(uint32_t *)(_FlashTimmingParam[_INDEX_]))&0x1FF)) || \ ((FLASH->TS1) != (((*(uint32_t *)(_FlashTimmingParam[_INDEX_]))>>18)&0x3FF)) || \ - ((FLASH->TS3) != (((*(uint32_t *)(_FlashTimmingParam[_INDEX_]))>>9)&0x1FF)) || \ - ((FLASH->TS2P) != ((*(uint32_t *)(_FlashTimmingParam[_INDEX_]+4))&0x1FF)) || \ + ((FLASH->TS3) != (((*(uint32_t *)(_FlashTimmingParam[_INDEX_]))>>9)&0x1FF)) || \ + ((FLASH->TS2P) != ((*(uint32_t *)(_FlashTimmingParam[_INDEX_]+4))&0x1FF)) || \ ((FLASH->TPS3) != (((*(uint32_t *)(_FlashTimmingParam[_INDEX_]+4))>>16)&0xFFF)) || \ ((FLASH->PERTPE) != ((*(uint32_t *)(_FlashTimmingParam[_INDEX_]+8))&0x3FFFF)) || \ ((FLASH->SMERTPE) != ((*(uint32_t *)(_FlashTimmingParam[_INDEX_]+12))&0x3FFFF)) || \ diff --git a/Drivers/PY32F002B_HAL_Driver/Inc/py32f002b_ll_adc.h b/Drivers/PY32F002B_HAL_Driver/Inc/py32f002b_ll_adc.h index ce79caf..0d897e1 100644 --- a/Drivers/PY32F002B_HAL_Driver/Inc/py32f002b_ll_adc.h +++ b/Drivers/PY32F002B_HAL_Driver/Inc/py32f002b_ll_adc.h @@ -181,9 +181,10 @@ extern "C" { #define VREFINT_CAL_VREF ( 1200U) /* Analog voltage reference (Vref+) value (tolerance: +-10 mV) (unit: mV). */ /* Temperature sensor */ #define TEMPSENSOR_CAL1_ADDR ((uint16_t*) (0x1fff0114)) /* Internal temperature sensor, address of parameter TS_CAL1: temperature sensor ADC raw data acquired at temperature 30 DegC (tolerance: +-5 DegC), Vref+ = 3.3 V (tolerance: +-10 mV). */ -#define TEMPSENSOR_CAL2_ADDR ((uint16_t*) (0x1fff0118)) /* Internal temperature sensor, address of parameter TS_CAL2: temperature sensor ADC raw data acquired at temperature 85 DegC (tolerance: +-5 DegC), Vref+ = 3.3 V (tolerance: +-10 mV). */ +#define TEMPSENSOR_CAL2_ADDR ((uint16_t*) (0x1fff0118)) /* Internal temperature sensor, address of parameter TS_CAL2: temperature sensor ADC raw data acquired at temperature 85 or 105 DegC (tolerance: +-5 DegC), Vref+ = 3.3 V (tolerance: +-10 mV). */ #define TEMPSENSOR_CAL1_TEMP (( int32_t) 30) /* Internal temperature sensor, temperature at which temperature sensor has been calibrated in production for data into TEMPSENSOR_CAL1_ADDR (tolerance: +-5 DegC) (unit: DegC). */ #define TEMPSENSOR_CAL2_TEMP (( int32_t) 85) /* Internal temperature sensor, temperature at which temperature sensor has been calibrated in production for data into TEMPSENSOR_CAL2_ADDR (tolerance: +-5 DegC) (unit: DegC). */ +#define TEMPSENSOR_CAL3_TEMP (( int32_t) 105) /* Internal temperature sensor, temperature at which temperature sensor has been calibrated in production for data into TEMPSENSOR_CAL2_ADDR (tolerance: +-5 DegC) (unit: DegC). */ #define TEMPSENSOR_CAL_VREFANALOG ( 3300U) /* Analog voltage reference (Vref+) voltage with which temperature sensor has been calibrated in production (+-10 mV) (unit: mV). */ /* Definitions of ADC hardware constraints delays */ @@ -495,7 +496,7 @@ typedef struct #define LL_ADC_SAMPLINGTIME_13CYCLES_5 ( ADC_SMPR_SMP_1 | ADC_SMPR_SMP_0) /*!< Sampling time 13.5 ADC clock cycles */ #define LL_ADC_SAMPLINGTIME_28CYCLES_5 (ADC_SMPR_SMP_2 ) /*!< Sampling time 28.5 ADC clock cycles */ #define LL_ADC_SAMPLINGTIME_41CYCLES_5 (ADC_SMPR_SMP_2 | ADC_SMPR_SMP_0) /*!< Sampling time 41.5 ADC clock cycles */ -#define LL_ADC_SAMPLINGTIME_71CYCLES_5 (ADC_SMPR_SMP_2 | ADC_SMPR_SMP_1 ) /*!< Sampling time 71.5 ADC clock cycles */ +#define LL_ADC_SAMPLINGTIME_134CYCLES_5 (ADC_SMPR_SMP_2 | ADC_SMPR_SMP_1 ) /*!< Sampling time 134.5 ADC clock cycles */ #define LL_ADC_SAMPLINGTIME_239CYCLES_5 (ADC_SMPR_SMP_2 | ADC_SMPR_SMP_1 | ADC_SMPR_SMP_0) /*!< Sampling time 239.5 ADC clock cycles */ /** * @} @@ -1195,7 +1196,7 @@ typedef struct * @arg @ref LL_ADC_RESOLUTION_10B * @arg @ref LL_ADC_RESOLUTION_8B * @arg @ref LL_ADC_RESOLUTION_6B - * @retval Temperature (unit: degree Celsius) + * @retval Temperature (unit: degree Celsius) */ #define __LL_ADC_CALC_TEMPERATURE(__VREFANALOG_VOLTAGE__,\ __TEMPSENSOR_ADC_DATA__,\ @@ -1211,6 +1212,112 @@ typedef struct ) + TEMPSENSOR_CAL1_TEMP \ ) +/** + * @brief Helper macro to calculate the temperature (unit: degree Celsius) + * from ADC conversion data of internal temperature sensor. + * @note Computation is using temperature sensor calibration values + * stored in system memory for each device during production. + * @note Calculation formula: + * Temperature = ((TS_ADC_DATA - TS_CAL1) + * * (TS_CAL2_TEMP - TS_CAL1_TEMP)) + * / (TS_CAL2 - TS_CAL1) + TS_CAL1_TEMP + * with TS_ADC_DATA = temperature sensor raw data measured by ADC + * Avg_Slope = (TS_CAL2 - TS_CAL1) + * / (TS_CAL2_TEMP - TS_CAL1_TEMP) + * TS_CAL1 = equivalent TS_ADC_DATA at temperature + * TEMP_DEGC_CAL1 (calibrated in factory) + * TS_CAL2 = equivalent TS_ADC_DATA at temperature + * TEMP_DEGC_CAL2 (calibrated in factory) + * Caution: Calculation relevancy under reserve that calibration + * parameters are correct (address and data). + * To calculate temperature using temperature sensor + * datasheet typical values (generic values less, therefore + * less accurate than calibrated values), + * use helper macro @ref __LL_ADC_CALC_TEMPERATURE_TYP_PARAMS(). + * @note As calculation input, the analog reference voltage (Vref+) must be + * defined as it impacts the ADC LSB equivalent voltage. + * @note Analog reference voltage (Vref+) must be either known from + * user board environment or can be calculated using ADC measurement + * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE(). + * @param __VREFANALOG_VOLTAGE__ Analog reference voltage (unit: mV) + * @param __TEMPSENSOR_ADC_DATA__ ADC conversion data of internal + * temperature sensor (unit: digital value). + * @param __ADC_RESOLUTION__ ADC resolution at which internal temperature + * sensor voltage has been measured. + * This parameter can be one of the following values: + * @arg @ref LL_ADC_RESOLUTION_12B + * @arg @ref LL_ADC_RESOLUTION_10B + * @arg @ref LL_ADC_RESOLUTION_8B + * @arg @ref LL_ADC_RESOLUTION_6B + * @retval Temperature (unit: degree Celsius) + */ +#define __LL_ADC_CALC_TEMPERATURE_85(__VREFANALOG_VOLTAGE__,\ + __TEMPSENSOR_ADC_DATA__,\ + __ADC_RESOLUTION__) \ + (((( ((int32_t)((__LL_ADC_CONVERT_DATA_RESOLUTION((__TEMPSENSOR_ADC_DATA__), \ + (__ADC_RESOLUTION__), \ + LL_ADC_RESOLUTION_12B) \ + * (__VREFANALOG_VOLTAGE__)) \ + / TEMPSENSOR_CAL_VREFANALOG) \ + - (int32_t) *TEMPSENSOR_CAL1_ADDR) \ + ) * (int32_t)(TEMPSENSOR_CAL2_TEMP - TEMPSENSOR_CAL1_TEMP) \ + ) / (int32_t)((int32_t)*TEMPSENSOR_CAL2_ADDR - (int32_t)*TEMPSENSOR_CAL1_ADDR) \ + ) + TEMPSENSOR_CAL1_TEMP \ + ) + +/** + * @brief Helper macro to calculate the temperature (unit: degree Celsius) + * from ADC conversion data of internal temperature sensor. + * @note Computation is using temperature sensor calibration values + * stored in system memory for each device during production. + * @note Calculation formula: + * Temperature = ((TS_ADC_DATA - TS_CAL1) + * * (TS_CAL3_TEMP - TS_CAL1_TEMP)) + * / (TS_CAL2 - TS_CAL1) + TS_CAL1_TEMP + * with TS_ADC_DATA = temperature sensor raw data measured by ADC + * Avg_Slope = (TS_CAL2 - TS_CAL1) + * / (TS_CAL3_TEMP - TS_CAL1_TEMP) + * TS_CAL1 = equivalent TS_ADC_DATA at temperature + * TEMP_DEGC_CAL1 (calibrated in factory) + * TS_CAL2 = equivalent TS_ADC_DATA at temperature + * TEMP_DEGC_CAL2 (calibrated in factory) + * Caution: Calculation relevancy under reserve that calibration + * parameters are correct (address and data). + * To calculate temperature using temperature sensor + * datasheet typical values (generic values less, therefore + * less accurate than calibrated values), + * use helper macro @ref __LL_ADC_CALC_TEMPERATURE_TYP_PARAMS(). + * @note As calculation input, the analog reference voltage (Vref+) must be + * defined as it impacts the ADC LSB equivalent voltage. + * @note Analog reference voltage (Vref+) must be either known from + * user board environment or can be calculated using ADC measurement + * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE(). + * @param __VREFANALOG_VOLTAGE__ Analog reference voltage (unit: mV) + * @param __TEMPSENSOR_ADC_DATA__ ADC conversion data of internal + * temperature sensor (unit: digital value). + * @param __ADC_RESOLUTION__ ADC resolution at which internal temperature + * sensor voltage has been measured. + * This parameter can be one of the following values: + * @arg @ref LL_ADC_RESOLUTION_12B + * @arg @ref LL_ADC_RESOLUTION_10B + * @arg @ref LL_ADC_RESOLUTION_8B + * @arg @ref LL_ADC_RESOLUTION_6B + * @retval Temperature (unit: degree Celsius) + */ +#define __LL_ADC_CALC_TEMPERATURE_105(__VREFANALOG_VOLTAGE__,\ + __TEMPSENSOR_ADC_DATA__,\ + __ADC_RESOLUTION__) \ + (((( ((int32_t)((__LL_ADC_CONVERT_DATA_RESOLUTION((__TEMPSENSOR_ADC_DATA__), \ + (__ADC_RESOLUTION__), \ + LL_ADC_RESOLUTION_12B) \ + * (__VREFANALOG_VOLTAGE__)) \ + / TEMPSENSOR_CAL_VREFANALOG) \ + - (int32_t) *TEMPSENSOR_CAL1_ADDR) \ + ) * (int32_t)(TEMPSENSOR_CAL3_TEMP - TEMPSENSOR_CAL1_TEMP) \ + ) / (int32_t)((int32_t)*TEMPSENSOR_CAL2_ADDR - (int32_t)*TEMPSENSOR_CAL1_ADDR) \ + ) + TEMPSENSOR_CAL1_TEMP \ + ) + /** * @brief Helper macro to calculate the temperature (unit: degree Celsius) * from ADC conversion data of internal temperature sensor. @@ -1526,7 +1633,7 @@ __STATIC_INLINE uint32_t LL_ADC_GetLowPowerMode(ADC_TypeDef *ADCx) * @arg @ref LL_ADC_SAMPLINGTIME_13CYCLES_5 * @arg @ref LL_ADC_SAMPLINGTIME_28CYCLES_5 * @arg @ref LL_ADC_SAMPLINGTIME_41CYCLES_5 - * @arg @ref LL_ADC_SAMPLINGTIME_71CYCLES_5 + * @arg @ref LL_ADC_SAMPLINGTIME_134CYCLES_5 * @arg @ref LL_ADC_SAMPLINGTIME_239CYCLES_5 * @retval None */ @@ -1547,7 +1654,7 @@ __STATIC_INLINE void LL_ADC_SetSamplingTimeCommonChannels(ADC_TypeDef *ADCx, uin * @arg @ref LL_ADC_SAMPLINGTIME_13CYCLES_5 * @arg @ref LL_ADC_SAMPLINGTIME_28CYCLES_5 * @arg @ref LL_ADC_SAMPLINGTIME_41CYCLES_5 - * @arg @ref LL_ADC_SAMPLINGTIME_71CYCLES_5 + * @arg @ref LL_ADC_SAMPLINGTIME_134CYCLES_5 * @arg @ref LL_ADC_SAMPLINGTIME_239CYCLES_5 */ __STATIC_INLINE uint32_t LL_ADC_GetSamplingTimeCommonChannels(ADC_TypeDef *ADCx) diff --git a/Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc.c b/Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc.c index 4daadb0..1aeb81f 100644 --- a/Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc.c +++ b/Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc.c @@ -204,8 +204,11 @@ HAL_StatusTypeDef HAL_RCC_DeInit(void) } } - /* Set ICSCR to the reset value */ - RCC->ICSCR = 0x00FF10FF; + /*Set the HSI clock to 24MHz by default*/ + MODIFY_REG(RCC->ICSCR, (RCC_ICSCR_HSI_FS|RCC_ICSCR_HSI_TRIM), (uint32_t)(RCC_HSICALIBRATION_24MHz) << RCC_ICSCR_HSI_TRIM_Pos); + + /*Set the LSI clock to 32.768KHz by default*/ + MODIFY_REG(RCC->ICSCR, RCC_ICSCR_LSI_TRIM, (uint32_t)(RCC_LSICALIBRATION_32768Hz) << RCC_ICSCR_LSI_TRIM_Pos); /* Get Start Tick*/ tickstart = HAL_GetTick(); @@ -418,10 +421,10 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) else { /* Check the parameters */ - assert_param(IS_RCC_LSI_CALIBRATION_VALUE(RCC_OscInitStruct->LSICalibrationValue)); + assert_param(IS_RCC_LSI_CALIBRATION_VALUE(RCC_LSICALIBRATION_32768Hz)); /* Adjusts the Internal Low Speed oscillator (LSI) calibration value.*/ - __HAL_RCC_LSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->LSICalibrationValue); + __HAL_RCC_LSI_CALIBRATIONVALUE_ADJUST(RCC_LSICALIBRATION_32768Hz); /* Get Start Tick*/ tickstart = HAL_GetTick(); @@ -451,7 +454,7 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) if (RCC_OscInitStruct->LSIState != RCC_LSI_OFF) { /* Check the parameters */ - assert_param(IS_RCC_LSI_CALIBRATION_VALUE(RCC_OscInitStruct->LSICalibrationValue)); + assert_param(IS_RCC_LSI_CALIBRATION_VALUE(RCC_LSICALIBRATION_32768Hz)); /* Enable the Internal Low Speed oscillator (LSI). */ __HAL_RCC_LSI_ENABLE(); @@ -469,7 +472,7 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) } /* Adjusts the Internal Low Speed oscillator (LSI) calibration value.*/ - __HAL_RCC_LSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->LSICalibrationValue); + __HAL_RCC_LSI_CALIBRATIONVALUE_ADJUST(RCC_LSICALIBRATION_32768Hz); } else { @@ -510,6 +513,19 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) /* Set driver factor of the LSE*/ if (RCC_OscInitStruct->LSEState != RCC_LSE_OFF) { + __HAL_RCC_LSE_CONFIG(RCC_LSE_OFF); + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + + /* Wait till LSE is off */ + while (READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) == 1U) + { + if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) + { + return HAL_TIMEOUT; + } + } MODIFY_REG(RCC->ECSCR, RCC_ECSCR_LSE_DRIVER_Msk, RCC_OscInitStruct->LSEDriver); } /* Set the new LSE configuration -----------------------------------------*/ diff --git a/Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_uart.c b/Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_uart.c index d0d23fa..6e14213 100644 --- a/Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_uart.c +++ b/Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_uart.c @@ -1928,12 +1928,22 @@ static HAL_StatusTypeDef UART_Transmit_IT(UART_HandleTypeDef *huart) if ((huart->Init.WordLength == UART_WORDLENGTH_9B)&&(huart->Init.Parity == UART_PARITY_NONE)) { tmp16bit=(uint16_t *) huart->pTxBuffPtr; + /* To prevent the TC flag bit from being affected by other operations during + data transmission, read the SR register in conjunction with write the DR + Register to clear the TC flag bit. + */ + (void)(huart->Instance->SR); huart->Instance->DR = (uint16_t)(*tmp16bit & (uint16_t)0x01FF); huart->pTxBuffPtr += 2U; } else { tmp8bit=(uint8_t *) huart->pTxBuffPtr; + /* To prevent the TC flag bit from being affected by other operations during + data transmission, read the SR register in conjunction with write the DR + Register to clear the TC flag bit. + */ + (void)(huart->Instance->SR); huart->Instance->DR = (uint8_t)(*tmp8bit & (uint8_t)0x00FF); huart->pTxBuffPtr++; } diff --git a/Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_usart.c b/Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_usart.c index cac99ad..9903fec 100644 --- a/Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_usart.c +++ b/Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_usart.c @@ -1614,6 +1614,11 @@ static HAL_StatusTypeDef USART_Transmit_IT(USART_HandleTypeDef *husart) if (husart->Init.WordLength == USART_WORDLENGTH_9B) { tmp = (uint16_t *) husart->pTxBuffPtr; + /* To prevent the TC flag bit from being affected by other operations during + data transmission, read the SR register in conjunction with write the DR + Register to clear the TC flag bit. + */ + (void)(husart->Instance->SR); husart->Instance->DR = (uint16_t)(*tmp & (uint16_t)0x01FF); if (husart->Init.Parity == USART_PARITY_NONE) { @@ -1626,6 +1631,11 @@ static HAL_StatusTypeDef USART_Transmit_IT(USART_HandleTypeDef *husart) } else { + /* To prevent the TC flag bit from being affected by other operations during + data transmission, read the SR register in conjunction with write the DR + Register to clear the TC flag bit. + */ + (void)(husart->Instance->SR); husart->Instance->DR = (uint8_t)(*husart->pTxBuffPtr++ & (uint8_t)0x00FF); } @@ -1769,6 +1779,11 @@ static HAL_StatusTypeDef USART_TransmitReceive_IT(USART_HandleTypeDef *husart) if (husart->Init.WordLength == USART_WORDLENGTH_9B) { tmp = (uint16_t *) husart->pTxBuffPtr; + /* To prevent the TC flag bit from being affected by other operations during + data transmission, read the SR register in conjunction with write the DR + Register to clear the TC flag bit. + */ + (void)(husart->Instance->SR); husart->Instance->DR = (uint16_t)(*tmp & (uint16_t)0x01FF); if (husart->Init.Parity == USART_PARITY_NONE) { @@ -1781,6 +1796,11 @@ static HAL_StatusTypeDef USART_TransmitReceive_IT(USART_HandleTypeDef *husart) } else { + /* To prevent the TC flag bit from being affected by other operations during + data transmission, read the SR register in conjunction with write the DR + Register to clear the TC flag bit. + */ + (void)(husart->Instance->SR); husart->Instance->DR = (uint8_t)(*husart->pTxBuffPtr++ & (uint8_t)0x00FF); } husart->TxXferCount--; diff --git a/Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_rcc.c b/Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_rcc.c index 4b7ac46..7e4df2e 100644 --- a/Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_rcc.c +++ b/Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_rcc.c @@ -115,6 +115,9 @@ ErrorStatus LL_RCC_DeInit(void) while (LL_RCC_HSI_IsReady() != 1U) {} + /* Set LSI to 32.768kHZ */ + LL_RCC_LSI_SetCalibTrimming(LL_RCC_LSICALIBRATION_32768Hz); + /* Reset CFGR register */ LL_RCC_WriteReg(CFGR, 0x00000000U); diff --git a/Packs/GCC/.pack/Puya/PY32F0xx_DFP/Puya.PY32F0xx_DFP.pdsc b/Packs/GCC/.pack/Puya/PY32F0xx_DFP/Puya.PY32F0xx_DFP.pdsc index 466bbeb..a4ac0d3 100644 --- a/Packs/GCC/.pack/Puya/PY32F0xx_DFP/Puya.PY32F0xx_DFP.pdsc +++ b/Packs/GCC/.pack/Puya/PY32F0xx_DFP/Puya.PY32F0xx_DFP.pdsc @@ -86,7 +86,7 @@ - + diff --git a/Packs/MDK/Puya.PY32F0xx_DFP.1.2.6.pack b/Packs/MDK/Puya.PY32F0xx_DFP.1.2.6.pack new file mode 100644 index 0000000..6f32da8 Binary files /dev/null and b/Packs/MDK/Puya.PY32F0xx_DFP.1.2.6.pack differ diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/EIDE/.eide/eide.json index bd12f60..9fb6e49 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -92,9 +90,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -111,14 +109,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -137,6 +138,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -149,10 +158,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/EIDE/Makefile b/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/EIDE/Makefile index f795b72..b1d8b1f 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/MDK-ARM/Project.uvoptx index d5030be..b5ac9e6 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/MDK-ARM/Project.uvoptx @@ -140,12 +140,12 @@ 0 CMSIS_AGDI - -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("") -D00(00000000) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("") -D00(00000000) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/MDK-ARM/Project.uvprojx index 8624404..f5eb4d5 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/readme.txt b/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/readme.txt index bb24443..daf1dcf 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/readme.txt +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_AnalogWatchdog/readme.txt @@ -37,7 +37,15 @@ up; 3.3V), the watchdog will interrupt and the LED will light up. ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/EIDE/.eide/eide.json index 69251f5..9fb6e49 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -41,60 +39,60 @@ }, { "name": "PY32F002B_HAL_Driver", - "files": [ + "files":[ { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_adc.c" + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_cortex.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_gpio.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc_ex.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_pwr.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_gpio.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc_ex.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_pwr.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_uart.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim_ex.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_cortex.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_adc.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_uart.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim_ex.c" } ], "folders": [] }, { "name": "User", - "files": [ + "files":[ { - "path": "../Src/main.c" + "path":"../Src/main.c" }, { - "path": "../Src/py32f002b_hal_msp.c" + "path":"../Src/py32f002b_hal_msp.c" }, { - "path": "../Src/py32f002b_it.c" + "path":"../Src/py32f002b_it.c" } ], "folders": [] } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -111,14 +109,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -137,6 +138,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -149,13 +158,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], - "defineList": [ - "USE_HAL_DRIVER", - "PY32F002Bx5" - ] + "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/EIDE/Makefile b/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/EIDE/Makefile index f795b72..b1d8b1f 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/Inc/Config.txt b/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/Inc/Config.txt new file mode 100644 index 0000000..01fec14 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/Inc/Config.txt @@ -0,0 +1,29 @@ +[FilePath] +0=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal.c +1=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc.c +2=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc_ex.c +3=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_gpio.c +4=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_pwr.c +5=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_uart.c +6=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_cortex.c +7=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_adc.c +8=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim.c +9=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim_ex.c +[FileName] +0=py32f002b_hal.c +1=py32f002b_hal_rcc.c +2=py32f002b_hal_rcc_ex.c +3=py32f002b_hal_gpio.c +4=py32f002b_hal_pwr.c +5=py32f002b_hal_uart.c +6=py32f002b_hal_cortex.c +7=py32f002b_hal_adc.c +8=py32f002b_hal_tim.c +9=py32f002b_hal_tim_ex.c +[Define] +0=USE_HAL_DRIVER +1=PY32F002Bx5 +[User] +0=../Src/main.c +1=../Src/py32f002b_hal_msp.c +2=../Src/py32f002b_it.c diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/MDK-ARM/Project.uvoptx index 2a7fa5a..d96d115 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/MDK-ARM/Project.uvoptx @@ -140,12 +140,12 @@ 0 CMSIS_AGDI - -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/MDK-ARM/Project.uvprojx index 8624404..f5eb4d5 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/readme.txt b/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/readme.txt index 467f09f..df0c521 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/readme.txt +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_MultichannelSwitch/readme.txt @@ -33,18 +33,31 @@ Example execution steps: 4. Switch back to channel 3 after 1 second ================================================================================ 注意事项: -通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +1.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart STK板 USB转TTL模块 PB4(TX) --> RX PB5(RX) --> TX GND --> GND +UART配置为波特率115200,数据位8,停止位1,校验位None +@PrintfConfigEnd +2.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: -Connect the PC to the STK board through the USB to TTL module, and the connection +1.Connect the PC to the STK board through the USB to TTL module, and the connection method between the STK board and the USB to TTL module is as follows: - +@PrintfConfigStart STK board USB to TTL module -PB4 (TX) -->RX -PB5 (RX) -->TX -GND -->GND +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 115200, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd +2.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/EIDE/.eide/eide.json index 69251f5..9fb6e49 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -41,60 +39,60 @@ }, { "name": "PY32F002B_HAL_Driver", - "files": [ + "files":[ { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_adc.c" + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_cortex.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_gpio.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc_ex.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_pwr.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_gpio.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc_ex.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_pwr.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_uart.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim_ex.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_cortex.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_adc.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_uart.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim_ex.c" } ], "folders": [] }, { "name": "User", - "files": [ + "files":[ { - "path": "../Src/main.c" + "path":"../Src/main.c" }, { - "path": "../Src/py32f002b_hal_msp.c" + "path":"../Src/py32f002b_hal_msp.c" }, { - "path": "../Src/py32f002b_it.c" + "path":"../Src/py32f002b_it.c" } ], "folders": [] } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -111,14 +109,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -137,6 +138,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -149,13 +158,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], - "defineList": [ - "USE_HAL_DRIVER", - "PY32F002Bx5" - ] + "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/EIDE/Makefile b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/EIDE/Makefile index f795b72..b1d8b1f 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/MDK-ARM/Project.uvoptx index 9dfd83e..8f8f1fa 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 CMSIS_AGDI - -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("") -D00(00000000) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("") -D00(00000000) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/MDK-ARM/Project.uvprojx index 8624404..f5eb4d5 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/readme.txt b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/readme.txt index 5665c8f..217aa72 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/readme.txt +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerSW_Polling/readme.txt @@ -29,18 +29,31 @@ Example execution steps: 2. The serial port prints the voltage value of channel 4 (PA7) every 1 second ================================================================================ 注意事项: -通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +1.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart STK板 USB转TTL模块 PB4(TX) --> RX PB5(RX) --> TX GND --> GND +UART配置为波特率115200,数据位8,停止位1,校验位None +@PrintfConfigEnd +2.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: -Connect the PC to the STK board through the USB to TTL module, and the connection +1.Connect the PC to the STK board through the USB to TTL module, and the connection method between the STK board and the USB to TTL module is as follows: - +@PrintfConfigStart STK board USB to TTL module -PB4 (TX) -->RX -PB5 (RX) -->TX -GND -->GND +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 115200, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd +2.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.eide/eide.json index bd12f60..9fb6e49 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -92,9 +90,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -111,14 +109,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -137,6 +138,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -149,10 +158,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/Makefile b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/Makefile index f795b72..b1d8b1f 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/MDK-ARM/Project.uvoptx index 9dfd83e..8f8f1fa 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 CMSIS_AGDI - -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("") -D00(00000000) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("") -D00(00000000) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/MDK-ARM/Project.uvprojx index 8624404..f5eb4d5 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/readme.txt b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/readme.txt index b9d4a25..2eb8723 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/readme.txt +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_SingleConversion_TriggerTimer_IT/readme.txt @@ -29,18 +29,31 @@ Example execution steps: 2. The serial port prints the conversion value of channel 4 (PA7) every 1 second ================================================================================ 注意事项: -通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +1.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart STK板 USB转TTL模块 PB4(TX) --> RX PB5(RX) --> TX GND --> GND +UART配置为波特率115200,数据位8,停止位1,校验位None +@PrintfConfigEnd +2.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: -Connect the PC to the STK board through the USB to TTL module, and the connection +1.Connect the PC to the STK board through the USB to TTL module, and the connection method between the STK board and the USB to TTL module is as follows: - +@PrintfConfigStart STK board USB to TTL module -PB4 (TX) -->RX -PB5 (RX) -->TX -GND -->GND +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 115200, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd +2.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/EIDE/.eide/eide.json index 69251f5..9fb6e49 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -41,60 +39,60 @@ }, { "name": "PY32F002B_HAL_Driver", - "files": [ + "files":[ { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_adc.c" + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_cortex.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_gpio.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc_ex.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_pwr.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_gpio.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc_ex.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_pwr.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_uart.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim_ex.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_cortex.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_adc.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_uart.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim_ex.c" } ], "folders": [] }, { "name": "User", - "files": [ + "files":[ { - "path": "../Src/main.c" + "path":"../Src/main.c" }, { - "path": "../Src/py32f002b_hal_msp.c" + "path":"../Src/py32f002b_hal_msp.c" }, { - "path": "../Src/py32f002b_it.c" + "path":"../Src/py32f002b_it.c" } ], "folders": [] } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -111,14 +109,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -137,6 +138,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -149,13 +158,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], - "defineList": [ - "USE_HAL_DRIVER", - "PY32F002Bx5" - ] + "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/EIDE/Makefile b/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/EIDE/Makefile index f795b72..b1d8b1f 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/MDK-ARM/Project.uvoptx index 7af1839..1d901e8 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/MDK-ARM/Project.uvoptx @@ -140,12 +140,12 @@ 0 CMSIS_AGDI - -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/MDK-ARM/Project.uvprojx index 355fc96..0aed12e 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/Src/main.c b/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/Src/main.c index eec3164..f21401d 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/Src/main.c +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/Src/main.c @@ -55,7 +55,7 @@ int main(void) BSP_PB_Init(BUTTON_USER, BUTTON_MODE_EXTI); /* Wait for the button to be pressed */ - while(BSP_PB_GetState(BUTTON_KEY) == 1); + while(BSP_PB_GetState(BUTTON_KEY)); /* Initialize UART */ BSP_USART_Config(); diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/readme.txt b/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/readme.txt index 7de0333..5d5b9a0 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/readme.txt +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_StopForLowPower/readme.txt @@ -30,18 +30,31 @@ Example execution steps: the serial port. ================================================================================ 注意事项: -通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +1.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart STK板 USB转TTL模块 PB4(TX) --> RX PB5(RX) --> TX GND --> GND +UART配置为波特率115200,数据位8,停止位1,校验位None +@PrintfConfigEnd +2.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: -Connect the PC to the STK board through the USB to TTL module, and the connection +1.Connect the PC to the STK board through the USB to TTL module, and the connection method between the STK board and the USB to TTL module is as follows: - +@PrintfConfigStart STK board USB to TTL module -PB4 (TX) -->RX -PB5 (RX) -->TX -GND -->GND +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 115200, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd +2.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/EIDE/.eide/eide.json index bd12f60..9fb6e49 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -92,9 +90,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -111,14 +109,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -137,6 +138,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -149,10 +158,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/EIDE/Makefile b/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/EIDE/Makefile index f795b72..b1d8b1f 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/MDK-ARM/Project.uvoptx index 4e78bb0..5112563 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/MDK-ARM/Project.uvoptx @@ -10,7 +10,7 @@ *.s*; *.src; *.a* *.obj; *.o *.lib - *.txt; *.h; *.inc + *.txt; *.h; *.inc; *.md *.plm *.cpp 0 @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"Any" -UAny -O206 -S0 -C0 -P00000000 -N00("") -D00(00000000) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY064xx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/MDK-ARM/Project.uvprojx index 8624404..363462a 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/MDK-ARM/Project.uvprojx @@ -10,18 +10,18 @@ Project 0x4 ARM-ADS - 5060750::V5.06 update 6 (build 750)::ARMCC + 5060960::V5.06 update 7 (build 960)::.\ARMCC 0 PY32F002Bx5 Puya - Puya.PY32F0xx_DFP.1.2.0 + Puya.PY32F0xx_DFP.1.2.4 https://www.puyasemi.com/uploadfiles/ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h @@ -138,7 +138,7 @@ 1 BIN\UL2CM3.DLL - + "" () @@ -185,6 +185,8 @@ 0 0 0 + 0 + 0 0 0 8 @@ -351,7 +353,7 @@ 0 0 0 - 0 + 4 diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/Src/main.c b/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/Src/main.c index b5f678a..08bcb01 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/Src/main.c +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/Src/main.c @@ -32,18 +32,27 @@ #include "main.h" /* Private define ------------------------------------------------------------*/ -#define Vcc_Power 3.30 /* VCC power supply voltage, modify according to actual situation */ -#define TScal1 (float)((HAL_ADC_TSCAL1) * 3.3 / Vcc_Power) /* Voltage corresponding to calibration value at 30 ℃ */ -#define TScal2 (float)((HAL_ADC_TSCAL2) * 3.3 / Vcc_Power) /* Voltage corresponding to calibration value at 85 ℃ */ -#define TStem1 30 /* 30 ℃ */ -#define TStem2 85 /* 85 ℃ */ -#define Temp_k ((float)(TStem2-TStem1)/(float)(TScal2-TScal1)) /* Temperature calculation */ - + /* Please Check the HighTemperature and NormalTemperaute value */ +#define HAL_ADC_TSCAL1 (*(uint32_t *)(0x1fff0114)) /*!< Temperature Scale1 */ +#define HAL_ADC_TSCAL2 (*(uint32_t *)(0x1fff0118)) /*!< Temperature Scale2 */ +#define Vcc_Power 3.30 /* VCC power supply voltage, modify according to actual situation */ +#define TScal1 (float)((HAL_ADC_TSCAL1) * 3.3 / Vcc_Power) /* Voltage corresponding to calibration value at 30℃ */ +#define TScal2 (float)((HAL_ADC_TSCAL2) * 3.3 / Vcc_Power) /* Voltage corresponding to calibration value at 85℃ or 105℃ */ +#define TStem1 30 /* 30℃ */ + +#define HighTemp_85 +/* #define HighTemp_105*/ + +#define TStem2_85 85 +#define TStem2_105 105 +#define Temp_k_85 ((float)(TStem2_85-TStem1)/(float)(TScal2-TScal1)) +#define Temp_k_105 ((float)(TStem2_105-TStem1)/(float)(TScal2-TScal1)) + /* Private variables ---------------------------------------------------------*/ ADC_HandleTypeDef AdcHandle; -ADC_ChannelConfTypeDef sConfig; volatile int16_t aADCxConvertedData; -int16_t aTEMPERATURE; +ADC_ChannelConfTypeDef sConfig; +__IO uint16_t hADCxConvertedData_Temperature_DegreeCelsius = 0; /* Private user code ---------------------------------------------------------*/ /* Private macro -------------------------------------------------------------*/ @@ -66,12 +75,12 @@ int main(void) BSP_USART_Config(); /* Configure ADC */ - APP_AdcConfig(); + APP_AdcConfig(); while (1) { HAL_Delay(1000); /* Start ADC and enable ADC interrupts */ - if (HAL_ADC_Start_IT(&AdcHandle) != HAL_OK) + if (HAL_ADC_Start_IT(&AdcHandle) != HAL_OK) { APP_ErrorHandler(); } @@ -87,8 +96,6 @@ static void APP_AdcConfig(void) { __HAL_RCC_ADC_CLK_ENABLE(); /* Enable ADC clock */ - AdcHandle.Instance = ADC1; - AdcHandle.Instance = ADC1; /* ADC1 */ AdcHandle.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4; /* Set ADC clock */ AdcHandle.Init.Resolution = ADC_RESOLUTION_12B; /* 12-bit resolution for converted data */ @@ -103,7 +110,7 @@ static void APP_AdcConfig(void) AdcHandle.Init.Overrun = ADC_OVR_DATA_OVERWRITTEN; /* DR register is overwritten with the last conversion result in case of overrun */ AdcHandle.Init.SamplingTimeCommon = ADC_SAMPLETIME_239CYCLES_5; /* Channel sampling time is 239.5 ADC clock cycles */ /* ADC initialization */ - if (HAL_ADC_Init(&AdcHandle) != HAL_OK) + if (HAL_ADC_Init(&AdcHandle) != HAL_OK) { APP_ErrorHandler(); } @@ -111,13 +118,13 @@ static void APP_AdcConfig(void) sConfig.Rank = ADC_RANK_CHANNEL_NUMBER; /* Set the rank for the ADC channel order */ sConfig.Channel = ADC_CHANNEL_TEMPSENSOR; /* ADC channel selection */ /* Configure ADC channels */ - if (HAL_ADC_ConfigChannel(&AdcHandle, &sConfig) != HAL_OK) + if (HAL_ADC_ConfigChannel(&AdcHandle, &sConfig) != HAL_OK) { APP_ErrorHandler(); } - + /* ADC calibration */ - if (HAL_ADCEx_Calibration_Start(&AdcHandle) != HAL_OK) + if (HAL_ADCEx_Calibration_Start(&AdcHandle) != HAL_OK) { APP_ErrorHandler(); } @@ -132,8 +139,14 @@ void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *adchandle) { aADCxConvertedData = adchandle->Instance->DR; - aTEMPERATURE =(int16_t)((85-30)*(aADCxConvertedData-TScal1)/(TScal2-TScal1) + TStem1); - printf("Temperature = %d \r\n", (int)aTEMPERATURE); +/* Please Check the High Temperature Value accord the datasheet */ +#if defined(HighTemp_85) + hADCxConvertedData_Temperature_DegreeCelsius =(int16_t)(Temp_k_85 * aADCxConvertedData - Temp_k_85 * TScal1 + TStem1); +#else + hADCxConvertedData_Temperature_DegreeCelsius =(int16_t)(Temp_k_105 * aADCxConvertedData - Temp_k_105 * TScal1 + TStem1); +#endif + + printf("Temperature = %d \r\n", (int)hADCxConvertedData_Temperature_DegreeCelsius); } /** diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/readme.txt b/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/readme.txt index 34570d5..5c5fc7a 100644 --- a/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/readme.txt +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_TempSensor/readme.txt @@ -29,19 +29,34 @@ Example execution steps: 2. The serial port prints the temperature value every 1 second. ================================================================================ 注意事项: -通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +1.请检查芯片的高温校准值,如果是85,选择HighTemp_85,如果是105,选择HighTemp_105 +2.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart STK板 USB转TTL模块 PB4(TX) --> RX PB5(RX) --> TX GND --> GND +UART配置为波特率115200,数据位8,停止位1,校验位None +@PrintfConfigEnd +3.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: -Connect the PC to the STK board through the USB to TTL module, and the connection +1.Please check the high temperature calibration value of the chip. If it is 85, +select HighTemp_85. If it is 105, select HighTemp_105 +2.Connect the PC to the STK board through the USB to TTL module, and the connection method between the STK board and the USB to TTL module is as follows: - +@PrintfConfigStart STK board USB to TTL module -PB4 (TX) -->RX -PB5 (RX) -->TX -GND -->GND - +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 115200, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd +3.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/.clang-format b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/.clang-format new file mode 100644 index 0000000..ecc57c4 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/.clang-format @@ -0,0 +1,38 @@ +--- +BasedOnStyle: Microsoft +Language: Cpp + +################################### +# indent conf +################################### + +UseTab: Never +IndentWidth: 4 +TabWidth: 4 +ColumnLimit: 0 +AccessModifierOffset: -4 +NamespaceIndentation: All +FixNamespaceComments: false +BreakBeforeBraces: Linux + +################################### +# other styles +################################### + +# +# for more conf, you can ref: https://clang.llvm.org/docs/ClangFormatStyleOptions.html +# + +AllowShortIfStatementsOnASingleLine: true + +AllowShortLoopsOnASingleLine: true + +AllowShortBlocksOnASingleLine: true + +IndentCaseLabels: true + +SortIncludes: false + +AlignConsecutiveMacros: AcrossEmptyLines + +AlignConsecutiveAssignments: Consecutive diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/.eide/eide.json new file mode 100644 index 0000000..9fb6e49 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/.eide/eide.json @@ -0,0 +1,197 @@ +{ + "name": "Project", + "type": "ARM", + "dependenceList": [], + "srcDirs": [], + "virtualFolder": { + "name": "", + "files": [], + "folders": [ + { + "name": "BSP", + "files": [ + { + "path": "../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit/py32f002bxx_Start_Kit.c" + } + ], + "folders": [] + }, + { + "name": "Common", + "files": [ + { + "path": "../Src/system_py32f002b.c" + }, + { + "path": "startup_py32f002bxx.s" + } + ], + "folders": [] + }, + { + "name": "Doc", + "files": [ + { + "path": "../readme.txt" + } + ], + "folders": [] + }, + { + "name": "PY32F002B_HAL_Driver", + "files":[ + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc_ex.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_gpio.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_pwr.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_uart.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_cortex.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_adc.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim_ex.c" + } + ], + "folders": [] + }, + { + "name": "User", + "files":[ + { + "path":"../Src/main.c" + }, + { + "path":"../Src/py32f002b_hal_msp.c" + }, + { + "path":"../Src/py32f002b_it.c" + } + ], + "folders": [] + } + ] + }, + "outDir": ".", + "deviceName": "PY32F002Bx5", + "packDir": null, + "miscInfo": { + "uid": "36bcf0031e18a3008bbdaa90a96a7987" + }, + "targets": { + "Project": { + "excludeList": [], + "toolchain": "GCC", + "compileConfig": { + "cpuType": "Cortex-M0+", + "floatingPointHardware": "none", + "scatterFilePath": "py32f002bx5.ld", + "useCustomScatterFile": true, + "storageLayout": { + "RAM": [], + "ROM": [] + }, + "options": "null", + "archExtensions": "" + }, + "uploader": "pyOCD", + "uploadConfig": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" + }, + "uploadConfigMap": { + "JLink": { + "bin": "", + "baseAddr": "", + "cpuInfo": { + "vendor": "Puya", + "cpuName": "PY32F002Bx5" + }, + "proType": 1, + "speed": 1000, + "otherCmds": "" + }, + "OpenOCD": { + "bin": "", + "target": "py32f002b", + "interface": "cmsis-dap", + "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" + } + }, + "custom_dep": { + "name": "default", + "incList": [ + "../Inc", + "../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit", + "../../../../../../Drivers/CMSIS/Include", + "../../../../../../Drivers/CMSIS/Device/PY32F0xx/Include", + "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" + ], + "libList": [], + "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } + } + } + }, + "version": "3.6" +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/.gitignore new file mode 100644 index 0000000..8519ec6 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/.gitignore @@ -0,0 +1,15 @@ +# dot files +# /.vscode/launch.json +/.settings +/.eide/log +/.eide.usr.ctx.json + +# project out +/build +/bin +/obj +/out + +# eide template +*.ept +*.eide-template diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/.vscode/settings.json b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/.vscode/settings.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/.vscode/settings.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/.vscode/tasks.json new file mode 100644 index 0000000..854f87f --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/.vscode/tasks.json @@ -0,0 +1,72 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "type": "shell", + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" + }, + { + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" + }, + { + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/Makefile b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/Makefile new file mode 100644 index 0000000..b1d8b1f --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/Makefile @@ -0,0 +1,186 @@ +########################################################################################################################## +# File automatically-generated by tool: [projectgenerator] version: [3.17.1] date: [Tue Dec 06 16:10:07 CST 2022] +########################################################################################################################## + +# ------------------------------------------------ +# Generic Makefile (based on gcc) +# +# ChangeLog : +# 2017-02-10 - Several enhancements + project update mode +# 2015-07-22 - first version +# ------------------------------------------------ + +###################################### +# target +###################################### +TARGET = Project + + +###################################### +# building variables +###################################### +# debug build? +DEBUG = 1 +# optimization +OPT = -Og + + +####################################### +# paths +####################################### +# Build path +BUILD_DIR = Project + +###################################### +# source +###################################### +# C sources +C_SOURCES = \ ../Src/main.c \ +../Src/py32f002b_hal_msp.c \ +../Src/py32f002b_it.c \ +../Src/system_py32f002b.c \ +../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit/py32f002bxx_Start_Kit.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc_ex.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_gpio.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_pwr.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_uart.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_cortex.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_adc.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim_ex.c + + +# ASM sources +ASM_SOURCES = \ +startup_py32f002bxx.s + + +####################################### +# binaries +####################################### +PREFIX = arm-none-eabi- +# The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx) +# either it can be added to the PATH environment variable. +ifdef GCC_PATH +CC = $(GCC_PATH)/$(PREFIX)gcc +AS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp +CP = $(GCC_PATH)/$(PREFIX)objcopy +SZ = $(GCC_PATH)/$(PREFIX)size +else +CC = $(PREFIX)gcc +AS = $(PREFIX)gcc -x assembler-with-cpp +CP = $(PREFIX)objcopy +SZ = $(PREFIX)size +endif +HEX = $(CP) -O ihex +BIN = $(CP) -O binary -S + +####################################### +# CFLAGS +####################################### +# cpu +CPU = -mcpu=cortex-m0plus + +# fpu +# NONE for Cortex-M0/M0+/M3 + +# float-abi + + +# mcu +MCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI) + +# macros for gcc +# AS defines +AS_DEFS = + +# C defines +C_DEFS = \ +-DUSE_HAL_DRIVER\ +-DPY32F002Bx5 + + +# AS includes +AS_INCLUDES = + +# C includes +C_INCLUDES = \ +-I../Inc \ +-I../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit \ +-I../../../../../../Drivers/PY32F002B_HAL_Driver/Inc \ +-I../../../../../../Drivers/CMSIS/Device/PY32F0xx/Include \ +-I../../../../../../Drivers/CMSIS/Include + + +# compile gcc flags +ASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections + +CFLAGS += $(MCU) $(C_DEFS) $(C_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections + +ifeq ($(DEBUG), 1) +CFLAGS += -g -gdwarf-2 +endif + + +# Generate dependency information +CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)" + + +####################################### +# LDFLAGS +####################################### +# link script +LDSCRIPT = py32f002bx5.ld + +# libraries +LIBS = -lc -lm -lnosys +LIBDIR = +LDFLAGS = $(MCU) -specs=nano.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections + +# default action: build all +all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin + + +####################################### +# build the application +####################################### +# list of objects +OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o))) +vpath %.c $(sort $(dir $(C_SOURCES))) +# list of ASM program objects +OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o))) +vpath %.s $(sort $(dir $(ASM_SOURCES))) + +$(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR) + $(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@ + +$(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR) + $(AS) -c $(CFLAGS) $< -o $@ + +$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile + $(CC) $(OBJECTS) $(LDFLAGS) -o $@ + $(SZ) $@ + +$(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf | $(BUILD_DIR) + $(HEX) $< $@ + +$(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR) + $(BIN) $< $@ + +$(BUILD_DIR): + mkdir $@ + +####################################### +# clean up +####################################### +clean: + -rm -fR $(BUILD_DIR) + +####################################### +# dependencies +####################################### +-include $(wildcard $(BUILD_DIR)/*.d) + +# *** EOF *** \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/Project.code-workspace b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/Project.code-workspace new file mode 100644 index 0000000..f200f34 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/Project.code-workspace @@ -0,0 +1,44 @@ +{ + "folders": [ + { + "path": "." + } + ], + "settings": { + "files.autoGuessEncoding": true, + "C_Cpp.default.configurationProvider": "cl.eide", + "C_Cpp.errorSquiggles": "disabled", + "files.associations": { + ".eideignore": "ignore", + "*.a51": "a51", + "*.h": "c", + "*.c": "c", + "*.hxx": "cpp", + "*.hpp": "cpp", + "*.c++": "cpp", + "*.cpp": "cpp", + "*.cxx": "cpp", + "*.cc": "cpp" + }, + "[yaml]": { + "editor.insertSpaces": true, + "editor.tabSize": 4, + "editor.autoIndent": "advanced" + } + }, + "extensions": { + "recommendations": [ + "cl.eide", + "keroc.hex-fmt", + "xiaoyongdong.srecord", + "hars.cppsnippets", + "zixuanwang.linkerscript", + "redhat.vscode-yaml", + "IBM.output-colorizer", + "cschlosser.doxdocgen", + "ms-vscode.vscode-serial-monitor", + "dan-c-underwood.arm", + "marus25.cortex-debug" + ] + } +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/py32f002bx5.ld b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/py32f002bx5.ld new file mode 100644 index 0000000..0b99c54 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/py32f002bx5.ld @@ -0,0 +1,189 @@ +/* +****************************************************************************** +** + +** File : LinkerScript.ld +** +** Author : Puya_HC +** +** Abstract : Linker script for PY32F002Bx5 series +** 24Kbytes FLASH and 3Kbytes RAM +** +** Set heap size, stack size and stack location according +** to application requirements. +** +** Set memory bank area and size if external memory is used. +** +** Target : Puya PY32 +** +** Distribution: The file is distributed “as is,” without any warranty +** of any kind. +** +***************************************************************************** +** @attention +** +**

© COPYRIGHT(c) 2019 Puya Semiconductor

+** +** Redistribution and use in source and binary forms, with or without modification, +** are permitted provided that the following conditions are met: +** 1. Redistributions of source code must retain the above copyright notice, +** this list of conditions and the following disclaimer. +** 2. Redistributions in binary form must reproduce the above copyright notice, +** this list of conditions and the following disclaimer in the documentation +** and/or other materials provided with the distribution. +** 3. Neither the name of Puya Semiconductor nor the names of its contributors +** may be used to endorse or promote products derived from this software +** without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +** +***************************************************************************** +*/ + +/* Entry Point */ +ENTRY(Reset_Handler) + +/* Highest address of the user mode stack */ +_estack = ORIGIN(RAM) + LENGTH(RAM); /* end of RAM */ +/* Generate a link error if heap and stack don't fit into RAM */ +_Min_Heap_Size = 0x000; /* required amount of heap */ +_Min_Stack_Size = 0x400; /* required amount of stack */ + +/* Specify the memory areas */ +MEMORY +{ +RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 3K +FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 24K +} + +/* Define output sections */ +SECTIONS +{ + /* The startup code goes first into FLASH */ + .isr_vector : + { + . = ALIGN(4); + KEEP(*(.isr_vector)) /* Startup code */ + . = ALIGN(4); + } >FLASH + + /* The program code and other data goes into FLASH */ + .text : + { + . = ALIGN(4); + *(.text) /* .text sections (code) */ + *(.text*) /* .text* sections (code) */ + *(.glue_7) /* glue arm to thumb code */ + *(.glue_7t) /* glue thumb to arm code */ + *(.eh_frame) + + KEEP (*(.init)) + KEEP (*(.fini)) + + . = ALIGN(4); + _etext = .; /* define a global symbols at end of code */ + } >FLASH + + /* Constant data goes into FLASH */ + .rodata : + { + . = ALIGN(4); + *(.rodata) /* .rodata sections (constants, strings, etc.) */ + *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ + . = ALIGN(4); + } >FLASH + + .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH + .ARM : { + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + } >FLASH + + .preinit_array : + { + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array*)) + PROVIDE_HIDDEN (__preinit_array_end = .); + } >FLASH + .init_array : + { + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array*)) + PROVIDE_HIDDEN (__init_array_end = .); + } >FLASH + .fini_array : + { + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(SORT(.fini_array.*))) + KEEP (*(.fini_array*)) + PROVIDE_HIDDEN (__fini_array_end = .); + } >FLASH + + /* used by the startup to initialize data */ + _sidata = LOADADDR(.data); + + /* Initialized data sections goes into RAM, load LMA copy after code */ + .data : + { + . = ALIGN(4); + _sdata = .; /* create a global symbol at data start */ + *(.data) /* .data sections */ + *(.data*) /* .data* sections */ + + . = ALIGN(4); + _edata = .; /* define a global symbol at data end */ + } >RAM AT> FLASH + + + /* Uninitialized data section */ + . = ALIGN(4); + .bss : + { + /* This is used by the startup in order to initialize the .bss secion */ + _sbss = .; /* define a global symbol at bss start */ + __bss_start__ = _sbss; + *(.bss) + *(.bss*) + *(COMMON) + + . = ALIGN(4); + _ebss = .; /* define a global symbol at bss end */ + __bss_end__ = _ebss; + } >RAM + + /* User_heap_stack section, used to check that there is enough RAM left */ + ._user_heap_stack : + { + . = ALIGN(8); + PROVIDE ( end = . ); + PROVIDE ( _end = . ); + . = . + _Min_Heap_Size; + . = . + _Min_Stack_Size; + . = ALIGN(8); + } >RAM + + + + /* Remove information from the standard libraries */ + /DISCARD/ : + { + libc.a ( * ) + libm.a ( * ) + libgcc.a ( * ) + } + + .ARM.attributes 0 : { *(.ARM.attributes) } +} + + diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/startup_py32f002bxx.s b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/startup_py32f002bxx.s new file mode 100644 index 0000000..44eda49 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EIDE/startup_py32f002bxx.s @@ -0,0 +1,254 @@ +/** + ****************************************************************************** + * @file startup_py32f002bxx.s + * @author MCD Application Team + * @brief PY32F002Bxx devices vector table GCC toolchain. + * This module performs: + * - Set the initial SP + * - Set the initial PC == Reset_Handler, + * - Set the vector table entries with the exceptions ISR address + * - Branches to main in the C library (which eventually + * calls main()). + * After Reset the Cortex-M0+ processor is in Thread mode, + * priority is Privileged, and the Stack is set to Main. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 + * + ****************************************************************************** + */ + +.syntax unified +.cpu cortex-m0plus +.fpu softvfp +.thumb + +.global g_pfnVectors +.global Default_Handler + +/* start address for the initialization values of the .data section. +defined in linker script */ +.word _sidata +/* start address for the .data section. defined in linker script */ +.word _sdata +/* end address for the .data section. defined in linker script */ +.word _edata +/* start address for the .bss section. defined in linker script */ +.word _sbss +/* end address for the .bss section. defined in linker script */ +.word _ebss + +/** + * @brief This is the code that gets called when the processor first + * starts execution following a reset event. Only the absolutely + * necessary set is performed, after which the application + * supplied main() routine is called. + * @param None + * @retval None +*/ + + .section .text.Reset_Handler + .weak Reset_Handler + .type Reset_Handler, %function +Reset_Handler: + ldr r0, =_estack + mov sp, r0 /* set stack pointer */ + +/* Call the clock system initialization function.*/ + bl SystemInit + +/* Copy the data segment initializers from flash to SRAM */ + ldr r0, =_sdata + ldr r1, =_edata + ldr r2, =_sidata + movs r3, #0 + b LoopCopyDataInit + +CopyDataInit: + ldr r4, [r2, r3] + str r4, [r0, r3] + adds r3, r3, #4 + +LoopCopyDataInit: + adds r4, r0, r3 + cmp r4, r1 + bcc CopyDataInit + +/* Zero fill the bss segment. */ + ldr r2, =_sbss + ldr r4, =_ebss + movs r3, #0 + b LoopFillZerobss + +FillZerobss: + str r3, [r2] + adds r2, r2, #4 + +LoopFillZerobss: + cmp r2, r4 + bcc FillZerobss + +/* Call static constructors */ + bl __libc_init_array +/* Call the application s entry point.*/ + bl main + +LoopForever: + b LoopForever + +.size Reset_Handler, .-Reset_Handler + +/** + * @brief This is the code that gets called when the processor receives an + * unexpected interrupt. This simply enters an infinite loop, preserving + * the system state for examination by a debugger. + * + * @param None + * @retval None +*/ + .section .text.Default_Handler,"ax",%progbits +Default_Handler: +Infinite_Loop: + b Infinite_Loop + .size Default_Handler, .-Default_Handler + +/****************************************************************************** +* +* The minimal vector table for a Cortex M0. Note that the proper constructs +* must be placed on this to ensure that it ends up at physical address +* 0x0000.0000. +* +******************************************************************************/ + .section .isr_vector,"a",%progbits + .type g_pfnVectors, %object + .size g_pfnVectors, .-g_pfnVectors + +g_pfnVectors: + .word _estack + .word Reset_Handler + .word NMI_Handler + .word HardFault_Handler + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word SVC_Handler + .word 0 + .word 0 + .word PendSV_Handler + .word SysTick_Handler + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word FLASH_IRQHandler /* FLASH */ + .word RCC_IRQHandler /* RCC */ + .word EXTI0_1_IRQHandler /* EXTI Line 0 and 1 */ + .word EXTI2_3_IRQHandler /* EXTI Line 2 and 3 */ + .word EXTI4_15_IRQHandler /* EXTI Line 4 to 15 */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word ADC_COMP_IRQHandler /* ADC and COMP1 */ + .word TIM1_BRK_UP_TRG_COM_IRQHandler /* TIM1 Break, Update, Trigger and Commutation */ + .word TIM1_CC_IRQHandler /* TIM1 Capture Compare */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word LPTIM1_IRQHandler /* LPTIM1 */ + .word 0 /* reserved */ + .word TIM14_IRQHandler /* TIM14 */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word I2C1_IRQHandler /* I2C1 */ + .word 0 /* reserved */ + .word SPI1_IRQHandler /* SPI1 */ + .word 0 /* reserved */ + .word USART1_IRQHandler /* USART1 */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + +/******************************************************************************* +* +* Provide weak aliases for each Exception handler to the Default_Handler. +* As they are weak aliases, any function with the same name will override +* this definition. +* +*******************************************************************************/ + + .weak NMI_Handler + .thumb_set NMI_Handler,Default_Handler + + .weak HardFault_Handler + .thumb_set HardFault_Handler,Default_Handler + + .weak SVC_Handler + .thumb_set SVC_Handler,Default_Handler + + .weak PendSV_Handler + .thumb_set PendSV_Handler,Default_Handler + + .weak SysTick_Handler + .thumb_set SysTick_Handler,Default_Handler + + .weak FLASH_IRQHandler + .thumb_set FLASH_IRQHandler,Default_Handler + + .weak RCC_IRQHandler + .thumb_set RCC_IRQHandler,Default_Handler + + .weak EXTI0_1_IRQHandler + .thumb_set EXTI0_1_IRQHandler,Default_Handler + + .weak EXTI2_3_IRQHandler + .thumb_set EXTI2_3_IRQHandler,Default_Handler + + .weak EXTI4_15_IRQHandler + .thumb_set EXTI4_15_IRQHandler,Default_Handler + + .weak ADC_COMP_IRQHandler + .thumb_set ADC_COMP_IRQHandler,Default_Handler + + .weak TIM1_BRK_UP_TRG_COM_IRQHandler + .thumb_set TIM1_BRK_UP_TRG_COM_IRQHandler,Default_Handler + + .weak TIM1_CC_IRQHandler + .thumb_set TIM1_CC_IRQHandler,Default_Handler + + .weak LPTIM1_IRQHandler + .thumb_set LPTIM1_IRQHandler,Default_Handler + + .weak TIM14_IRQHandler + .thumb_set TIM14_IRQHandler,Default_Handler + + .weak I2C1_IRQHandler + .thumb_set I2C1_IRQHandler,Default_Handler + + .weak SPI1_IRQHandler + .thumb_set SPI1_IRQHandler,Default_Handler + + .weak USART1_IRQHandler + .thumb_set USART1_IRQHandler,Default_Handler diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EWARM/Project.ewd b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EWARM/Project.ewd new file mode 100644 index 0000000..4b12306 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EWARM/Project.ewd @@ -0,0 +1,1534 @@ + + + 3 + + Project + + ARM + + 1 + + C-SPY + 2 + + 32 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + CADI_ID + 2 + + 0 + 1 + 1 + + + + + + + + + CMSISDAP_ID + 2 + + 4 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IJET_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JLINK_ID + 2 + + 16 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 3 + 1 + 1 + + + + + + + + + + + + + NULINK_ID + 2 + + 0 + 1 + 1 + + + + + + + PEMICRO_ID + 2 + + 3 + 1 + 1 + + + + + + + + STLINK_ID + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + TIFET_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + + + XDS100_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9BE.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EWARM/Project.ewp b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EWARM/Project.ewp new file mode 100644 index 0000000..370e1be --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EWARM/Project.ewp @@ -0,0 +1,1141 @@ + + + 3 + + Project + + ARM + + 1 + + General + 3 + + 34 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 37 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 11 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + 1 + inputOutputBased + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 26 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + + Doc + + $PROJ_DIR$\..\readme.txt + + + + Drivers + + BSP + + PY32F002Bxx_Start_Kit + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\PY32F002Bxx_Start_Kit\py32f002bxx_Start_Kit.c + + + + + CMSIS + + $PROJ_DIR$\..\Src\system_py32f002b.c + + + + PY32F002B_HAL_Driver + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_rcc.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_rcc_ex.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_gpio.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_pwr.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_uart.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_cortex.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_adc.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_tim.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_tim_ex.c + + + + + Example + + EWARM + + $PROJ_DIR$\startup_py32f002bxx.s + + + + User + + $PROJ_DIR$\..\Src\main.c + + + $PROJ_DIR$\..\Src\py32f002b_hal_msp.c + + + $PROJ_DIR$\..\Src\py32f002b_it.c + + + + diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EWARM/Project.eww b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EWARM/Project.eww new file mode 100644 index 0000000..46d9d41 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EWARM/Project.eww @@ -0,0 +1,7 @@ + + + + $WS_DIR$\Project.ewp + + + diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EWARM/py32f002bx5_flash.icf b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EWARM/py32f002bx5_flash.icf new file mode 100644 index 0000000..6146162 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EWARM/py32f002bx5_flash.icf @@ -0,0 +1,33 @@ +/*###ICF### Section handled by ICF editor, don't touch! ****/ +/*-Editor annotation file-*/ +/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ +/*-Specials-*/ +define symbol __ICFEDIT_intvec_start__ = 0x08000000; +/*-Memory Regions-*/ +define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; +define symbol __ICFEDIT_region_ROM_end__ = 0x08005FFF; +define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; +define symbol __ICFEDIT_region_RAM_end__ = 0x20000BFF; +/*-Sizes-*/ +define symbol __ICFEDIT_size_cstack__ = 0x00000400; +define symbol __ICFEDIT_size_heap__ = 0x00000000; +/**** End of ICF editor section. ###ICF###*/ + +define memory mem with size = 4G; +define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; +define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; + +define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; +define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; + +initialize by copy { readwrite }; +do not initialize { section .noinit }; + +place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; + +place in ROM_region { readonly }; +place in RAM_region { readwrite, + block CSTACK, block HEAP }; + +export symbol __ICFEDIT_region_RAM_start__; +export symbol __ICFEDIT_region_RAM_end__; \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EWARM/startup_py32f002bxx.s b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EWARM/startup_py32f002bxx.s new file mode 100644 index 0000000..98df065 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/EWARM/startup_py32f002bxx.s @@ -0,0 +1,222 @@ +;****************************************************************************** +;* @file startup_py32f002bxx.s +;* @author MCU Application Team +;* @brief PY32F002Bxx devices vector table for EWARM toolchain. +;* This module performs: +;* - Set the initial SP +;* - Set the initial PC == __iar_program_start +;* - Set the vector table entries with the exceptions ISR address +;* - Branches to __main in the C library (which eventually +;* calls main()). +;* After Reset the CortexM0+ processor is in Thread mode, +;* priority is Privileged, and the Stack is set to Main. +;****************************************************************************** +;* @attention +;* +;*

© Copyright (c) 2023 Puya Semiconductor Co. +;* All rights reserved.

+;* +;* This software component is licensed by Puya 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 +;* +;****************************************************************************** +;* @attention +;* +;*

© Copyright (c) 2016 STMicroelectronics. +;* All rights reserved.

+;* +;* 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 +;* +;****************************************************************************** +; +; The modules in this file are included in the libraries, and may be replaced +; by any user-defined modules that define the PUBLIC symbol _program_start or +; a user defined start symbol. +; To override the cstartup defined in the library, simply add your modified +; version to the workbench project. +; +; The vector table is normally located at address 0. +; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. +; The name "__vector_table" has special meaning for C-SPY: +; it is where the SP start value is found, and the NVIC vector +; table register (VTOR) is initialized to this address if != 0. +; +; Cortex-M version +; + + MODULE ?cstartup + + ;; Forward declaration of sections. + SECTION CSTACK:DATA:NOROOT(3) + + SECTION .intvec:CODE:NOROOT(2) + + EXTERN __iar_program_start + EXTERN SystemInit + PUBLIC __vector_table + + DATA +__vector_table + DCD sfe(CSTACK) ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD 0 ; 0Reserved + DCD 0 ; 1Reserved + DCD 0 ; 2Reserved + DCD FLASH_IRQHandler ; 3FLASH + DCD RCC_IRQHandler ; 4RCC + DCD EXTI0_1_IRQHandler ; 5EXTI Line 0 and 1 + DCD EXTI2_3_IRQHandler ; 6EXTI Line 2 and 3 + DCD EXTI4_15_IRQHandler ; 7EXTI Line 4 to 15 + DCD 0 ; 8Reserved + DCD 0 ; 9Reserved + DCD 0 ; 10Reserved + DCD 0 ; 11Reserved + DCD ADC_COMP_IRQHandler ; 12ADC&COMP1 + DCD TIM1_BRK_UP_TRG_COM_IRQHandler ; 13TIM1 Break, Update, Trigger and Commutation + DCD TIM1_CC_IRQHandler ; 14TIM1 Capture Compare + DCD 0 ; 15Reserved + DCD 0 ; 16Reserved + DCD LPTIM1_IRQHandler ; 17LPTIM1 + DCD 0 ; 18Reserved + DCD TIM14_IRQHandler ; 19TIM14 + DCD 0 ; 20Reserved + DCD 0 ; 21Reserved + DCD 0 ; 22Reserved + DCD I2C1_IRQHandler ; 23I2C1 + DCD 0 ; 24Reserved + DCD SPI1_IRQHandler ; 25SPI1 + DCD 0 ; 26Reserved + DCD USART1_IRQHandler ; 27USART1 + DCD 0 ; 28Reserved + DCD 0 ; 29Reserved + DCD 0 ; 30Reserved + DCD 0 ; 31Reserved + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; Default interrupt handlers. +;; + THUMB + + PUBWEAK Reset_Handler + SECTION .text:CODE:REORDER:NOROOT(2) +Reset_Handler + LDR R0, =SystemInit + BLX R0 + LDR R0, =__iar_program_start + BX R0 + + PUBWEAK NMI_Handler + SECTION .text:CODE:REORDER:NOROOT(1) +NMI_Handler + B NMI_Handler + + PUBWEAK HardFault_Handler + SECTION .text:CODE:REORDER:NOROOT(1) +HardFault_Handler + B HardFault_Handler + + PUBWEAK SVC_Handler + SECTION .text:CODE:REORDER:NOROOT(1) +SVC_Handler + B SVC_Handler + + PUBWEAK PendSV_Handler + SECTION .text:CODE:REORDER:NOROOT(1) +PendSV_Handler + B PendSV_Handler + + PUBWEAK SysTick_Handler + SECTION .text:CODE:REORDER:NOROOT(1) +SysTick_Handler + B SysTick_Handler + + PUBWEAK FLASH_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +FLASH_IRQHandler + B FLASH_IRQHandler + + PUBWEAK RCC_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +RCC_IRQHandler + B RCC_IRQHandler + + PUBWEAK EXTI0_1_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +EXTI0_1_IRQHandler + B EXTI0_1_IRQHandler + + PUBWEAK EXTI2_3_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +EXTI2_3_IRQHandler + B EXTI2_3_IRQHandler + + PUBWEAK EXTI4_15_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +EXTI4_15_IRQHandler + B EXTI4_15_IRQHandler + + PUBWEAK ADC_COMP_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +ADC_COMP_IRQHandler + B ADC_COMP_IRQHandler + + PUBWEAK TIM1_BRK_UP_TRG_COM_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +TIM1_BRK_UP_TRG_COM_IRQHandler + B TIM1_BRK_UP_TRG_COM_IRQHandler + + PUBWEAK TIM1_CC_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +TIM1_CC_IRQHandler + B TIM1_CC_IRQHandler + + PUBWEAK LPTIM1_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +LPTIM1_IRQHandler + B LPTIM1_IRQHandler + + PUBWEAK TIM14_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +TIM14_IRQHandler + B TIM14_IRQHandler + + PUBWEAK I2C1_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +I2C1_IRQHandler + B I2C1_IRQHandler + + PUBWEAK SPI1_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +SPI1_IRQHandler + B SPI1_IRQHandler + + PUBWEAK USART1_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +USART1_IRQHandler + B USART1_IRQHandler + + END + +;************************ (C) COPYRIGHT Puya *****END OF FILE******************* diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/Inc/Config.txt b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/Inc/Config.txt new file mode 100644 index 0000000..01fec14 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/Inc/Config.txt @@ -0,0 +1,29 @@ +[FilePath] +0=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal.c +1=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc.c +2=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc_ex.c +3=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_gpio.c +4=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_pwr.c +5=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_uart.c +6=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_cortex.c +7=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_adc.c +8=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim.c +9=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim_ex.c +[FileName] +0=py32f002b_hal.c +1=py32f002b_hal_rcc.c +2=py32f002b_hal_rcc_ex.c +3=py32f002b_hal_gpio.c +4=py32f002b_hal_pwr.c +5=py32f002b_hal_uart.c +6=py32f002b_hal_cortex.c +7=py32f002b_hal_adc.c +8=py32f002b_hal_tim.c +9=py32f002b_hal_tim_ex.c +[Define] +0=USE_HAL_DRIVER +1=PY32F002Bx5 +[User] +0=../Src/main.c +1=../Src/py32f002b_hal_msp.c +2=../Src/py32f002b_it.c diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/Inc/main.h b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/Inc/main.h new file mode 100644 index 0000000..84af7e9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/Inc/main.h @@ -0,0 +1,56 @@ +/** + ****************************************************************************** + * @file main.h + * @author MCU Application Team + * @brief Header for main.c file. + * This file contains the common defines of the application. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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_hal.h" +#include "py32f002bxx_Start_Kit.h" + +/* 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******************/ diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/Inc/py32f002b_hal_conf.h b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/Inc/py32f002b_hal_conf.h new file mode 100644 index 0000000..6e82e3a --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/Inc/py32f002b_hal_conf.h @@ -0,0 +1,222 @@ +/** + ****************************************************************************** + * @file py32f002b_hal_conf.h + * @author MCU Application Team + * @brief HAL configuration file. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 __PY32F002B_HAL_CONF_H +#define __PY32F002B_HAL_CONF_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ + +/* ########################## Module Selection ############################## */ +/** + * @brief This is the list of modules to be used in the HAL driver + */ +#define HAL_MODULE_ENABLED +#define HAL_RCC_MODULE_ENABLED +#define HAL_ADC_MODULE_ENABLED +#define HAL_CRC_MODULE_ENABLED +#define HAL_COMP_MODULE_ENABLED +#define HAL_FLASH_MODULE_ENABLED +#define HAL_GPIO_MODULE_ENABLED +/* #define HAL_IWDG_MODULE_ENABLED */ +#define HAL_TIM_MODULE_ENABLED +#define HAL_LPTIM_MODULE_ENABLED +#define HAL_PWR_MODULE_ENABLED +/* #define HAL_I2C_MODULE_ENABLED */ +#define HAL_UART_MODULE_ENABLED +/* #define HAL_USART_MODULE_ENABLED */ +/* #define HAL_SPI_MODULE_ENABLED */ +/* #define HAL_EXTI_MODULE_ENABLED */ +#define HAL_CORTEX_MODULE_ENABLED + +/* ########################## Oscillator Values adaptation ####################*/ + +#if !defined (HSI_VALUE) + #define HSI_VALUE ((uint32_t)24000000) /*!< Value of the Internal oscillator in Hz */ +#endif /* HSI_VALUE */ + +/** + * @brief Adjust the value of External High Speed oscillator (HSE) used in your application. + * This value is used by the RCC HAL module to compute the system frequency + */ +#if !defined (HSE_VALUE) + #define HSE_VALUE ((uint32_t)24000000) /*!< Value of the External oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined (HSE_STARTUP_TIMEOUT) + #define HSE_STARTUP_TIMEOUT ((uint32_t)200) /*!< Time out for HSE start up, in ms */ +#endif /* HSE_STARTUP_TIMEOUT */ + +/** + * @brief Internal Low Speed Internal oscillator (LSI) value. + */ +#if !defined (LSI_VALUE) + #define LSI_VALUE ((uint32_t)32768) /*!< LSI Typical Value in Hz */ +#endif /* LSI_VALUE */ /*!< Value of the Internal Low Speed oscillator in Hz + The real value may vary depending on the variations + in voltage and temperature. */ + +/** + * @brief Adjust the value of External Low Speed oscillator (LSE) used in your application. + * This value is used by the RCC HAL module to compute the system frequency + */ +#if !defined (LSE_VALUE) + #define LSE_VALUE ((uint32_t)32768) /*!< Value of the External oscillator in Hz*/ +#endif /* LSE_VALUE */ + +#if !defined (LSE_STARTUP_TIMEOUT) + #define LSE_STARTUP_TIMEOUT ((uint32_t)5000) /*!< Time out for LSE start up, in ms */ +#endif /* LSE_STARTUP_TIMEOUT */ + +/* Tip: To avoid modifying this file each time you need to use different HSE, + === you can define the HSE value in your toolchain compiler preprocessor. */ + +/* ########################### System Configuration ######################### */ +/** + * @brief This is the HAL system configuration section + */ +#define VDD_VALUE ((uint32_t)3300) /*!< Value of VDD in mv */ +#define PRIORITY_HIGHEST 0 +#define PRIORITY_HIGH 1 +#define PRIORITY_LOW 2 +#define PRIORITY_LOWEST 3 +#define TICK_INT_PRIORITY ((uint32_t)PRIORITY_LOWEST) /*!< tick interrupt priority (lowest by default) */ +#define USE_RTOS 0 +#define PREFETCH_ENABLE 0 + +/* ########################## Assert Selection ############################## */ +/** + * @brief Uncomment the line below to expanse the "assert_param" macro in the + * HAL drivers code + */ +/* #define USE_FULL_ASSERT 1U */ + + +/* Includes ------------------------------------------------------------------*/ +/** + * @brief Include module's header file + */ +#ifdef HAL_MODULE_ENABLED + #include "py32f0xx_hal.h" +#endif /* HAL_MODULE_ENABLED */ + +#ifdef HAL_RCC_MODULE_ENABLED + #include "py32f002b_hal_rcc.h" +#endif /* HAL_RCC_MODULE_ENABLED */ + +#ifdef HAL_EXTI_MODULE_ENABLED + #include "py32f002b_hal_exti.h" +#endif /* HAL_EXTI_MODULE_ENABLED */ + +#ifdef HAL_GPIO_MODULE_ENABLED + #include "py32f002b_hal_gpio.h" +#endif /* HAL_GPIO_MODULE_ENABLED */ + +#ifdef HAL_CORTEX_MODULE_ENABLED + #include "py32f002b_hal_cortex.h" +#endif /* HAL_CORTEX_MODULE_ENABLED */ + +#ifdef HAL_ADC_MODULE_ENABLED + #include "py32f002b_hal_adc.h" +#endif /* HAL_ADC_MODULE_ENABLED */ + +#ifdef HAL_CRC_MODULE_ENABLED + #include "py32f002b_hal_crc.h" +#endif /* HAL_CRC_MODULE_ENABLED */ + +#ifdef HAL_COMP_MODULE_ENABLED +#include "py32f002b_hal_comp.h" +#endif /* HAL_COMP_MODULE_ENABLED */ + +#ifdef HAL_FLASH_MODULE_ENABLED + #include "py32f002b_hal_flash.h" +#endif /* HAL_FLASH_MODULE_ENABLED */ + +#ifdef HAL_I2C_MODULE_ENABLED + #include "py32f002b_hal_i2c.h" +#endif /* HAL_I2C_MODULE_ENABLED */ + +#ifdef HAL_IWDG_MODULE_ENABLED + #include "py32f002b_hal_iwdg.h" +#endif /* HAL_IWDG_MODULE_ENABLED */ + +#ifdef HAL_PWR_MODULE_ENABLED + #include "py32f002b_hal_pwr.h" +#endif /* HAL_PWR_MODULE_ENABLED */ + +#ifdef HAL_SPI_MODULE_ENABLED + #include "py32f002b_hal_spi.h" +#endif /* HAL_SPI_MODULE_ENABLED */ + +#ifdef HAL_TIM_MODULE_ENABLED + #include "py32f002b_hal_tim.h" +#endif /* HAL_TIM_MODULE_ENABLED */ + +#ifdef HAL_LPTIM_MODULE_ENABLED + #include "py32f002b_hal_lptim.h" +#endif /* HAL_LPTIM_MODULE_ENABLED */ + +#ifdef HAL_UART_MODULE_ENABLED + #include "py32f002b_hal_uart.h" +#endif /* HAL_UART_MODULE_ENABLED */ + +#ifdef HAL_USART_MODULE_ENABLED + #include "py32f002b_hal_usart.h" +#endif /* HAL_USART_MODULE_ENABLED */ + +/* Exported macro ------------------------------------------------------------*/ +#ifdef USE_FULL_ASSERT +/** + * @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 /* __PY32F002B_HAL_CONF_H */ + +/************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/Inc/py32f002b_it.h b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/Inc/py32f002b_it.h new file mode 100644 index 0000000..cfb871c --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/Inc/py32f002b_it.h @@ -0,0 +1,56 @@ +/** + ****************************************************************************** + * @file py32f002b_it.h + * @author MCU Application Team + * @brief This file contains the headers of the interrupt handlers. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 __PY32F002B_IT_H +#define __PY32F002B_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 /* __PY32F002B_IT_H */ + +/************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/MDK-ARM/Project.uvoptx new file mode 100644 index 0000000..98545d0 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/MDK-ARM/Project.uvoptx @@ -0,0 +1,516 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + Project + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\Output\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 3 + + + + + + + + + + + BIN\CMSIS_AGDI.dll + + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) + + + 0 + CMSIS_AGDI + -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) + + + 0 + ARMRTXEVENTFLAGS + -L70 -Z18 -C0 -M0 -T1 + + + 0 + DLGTARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + + + + 0 + DLGUARM + + + + + + + 0 + 1 + T_VCC + + + 1 + 1 + tmp_hal_status + + + 2 + 1 + hd + + + 3 + 1 + T_VCC + + + 4 + 1 + VrefBuf_Value + + + 5 + 1 + Channel_Value + + + 6 + 1 + adc_value + + + 7 + 1 + value_trim + + + 8 + 1 + Value_1P2 + + + 9 + 1 + VrefBuf_2P5Value + + + + + 1 + 0 + 0x1FFF0036 + 0 + + + + 0 + + + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + 1 + 1 + 0 + 2 + 1000000 + + + + + + Common + 1 + 0 + 0 + 0 + + 1 + 1 + 2 + 0 + 0 + 0 + .\startup_py32f002bxx.s + startup_py32f002bxx.s + 0 + 0 + + + 1 + 2 + 1 + 0 + 0 + 0 + ..\Src\system_py32f002b.c + system_py32f002b.c + 0 + 0 + + + + + Application/User + 1 + 0 + 0 + 0 + + 2 + 3 + 1 + 0 + 0 + 0 + ..\Src\main.c + main.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + ..\Src\py32f002b_hal_msp.c + py32f002b_hal_msp.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + ..\Src\py32f002b_it.c + py32f002b_it.c + 0 + 0 + + + + + BSP/py32f002bxx_Start_Kit + 1 + 0 + 0 + 0 + + 3 + 6 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\BSP\PY32F002Bxx_Start_Kit\py32f002bxx_Start_Kit.c + py32f002bxx_Start_Kit.c + 0 + 0 + + + + + Drivers/PY32F002B_HAL_Driver + 1 + 0 + 0 + 0 + + 4 + 7 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal.c + py32f002b_hal.c + 0 + 0 + + + 4 + 8 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_rcc.c + py32f002b_hal_rcc.c + 0 + 0 + + + 4 + 9 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_rcc_ex.c + py32f002b_hal_rcc_ex.c + 0 + 0 + + + 4 + 10 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_gpio.c + py32f002b_hal_gpio.c + 0 + 0 + + + 4 + 11 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_pwr.c + py32f002b_hal_pwr.c + 0 + 0 + + + 4 + 12 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_uart.c + py32f002b_hal_uart.c + 0 + 0 + + + 4 + 13 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_cortex.c + py32f002b_hal_cortex.c + 0 + 0 + + + 4 + 14 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_adc.c + py32f002b_hal_adc.c + 0 + 0 + + + 4 + 15 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_tim.c + py32f002b_hal_tim.c + 0 + 0 + + + 4 + 16 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_tim_ex.c + py32f002b_hal_tim_ex.c + 0 + 0 + + + + + Doc + 1 + 0 + 0 + 0 + + 5 + 17 + 5 + 0 + 0 + 0 + ..\readme.txt + readme.txt + 0 + 0 + + + + + ::CMSIS + 0 + 0 + 0 + 1 + + +
diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/MDK-ARM/Project.uvprojx new file mode 100644 index 0000000..2e66d5e --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/MDK-ARM/Project.uvprojx @@ -0,0 +1,512 @@ + + + + 2.1 + +
### uVision Project, (C) Keil Software
+ + + + Project + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + 0 + + + PY32F002Bx5 + Puya + Puya.PY32F0xx_DFP.1.2.2 + https://www.puyasemi.com/uploadfiles/ + IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) + 0 + $$Device:PY32F002Bx5$Device\Include\py32f0xx.h + + + + + + + + + + $$Device:PY32F002Bx5$SVD\py32f002bxx.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Output\ + Project + 1 + 0 + 1 + 1 + 1 + .\Output\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -REMAP + DARMCM1.DLL + -pCM0+ + SARMCM3.DLL + + TARMCM1.DLL + -pCM0+ + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M0+" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0xc00 + + + 1 + 0x8000000 + 0x6000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x6000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0xc00 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + + + USE_HAL_DRIVER,PY32F002Bx5 + + ..\Inc;..\..\..\..\..\..\Drivers\BSP\PY32F002Bxx_Start_Kit;..\..\..\..\..\..\Drivers\CMSIS\Include;..\..\..\..\..\..\Drivers\CMSIS\Device\PY32F0xx\Include;..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Inc + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + + .\Objects\Project.sct + + + + + + + + + + + Common + + + startup_py32f002bxx.s + 2 + .\startup_py32f002bxx.s + + + system_py32f002b.c + 1 + ..\Src\system_py32f002b.c + + + + + Application/User + + + main.c + 1 + ..\Src\main.c + + + py32f002b_hal_msp.c + 1 + ..\Src\py32f002b_hal_msp.c + + + py32f002b_it.c + 1 + ..\Src\py32f002b_it.c + + + + + BSP/py32f002bxx_Start_Kit + + + py32f002bxx_Start_Kit.c + 1 + ..\..\..\..\..\..\Drivers\BSP\PY32F002Bxx_Start_Kit\py32f002bxx_Start_Kit.c + + + + + Drivers/PY32F002B_HAL_Driver + + + py32f002b_hal.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal.c + + + py32f002b_hal_rcc.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_rcc.c + + + py32f002b_hal_rcc_ex.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_rcc_ex.c + + + py32f002b_hal_gpio.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_gpio.c + + + py32f002b_hal_pwr.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_pwr.c + + + py32f002b_hal_uart.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_uart.c + + + py32f002b_hal_cortex.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_cortex.c + + + py32f002b_hal_adc.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_adc.c + + + py32f002b_hal_tim.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_tim.c + + + py32f002b_hal_tim_ex.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_tim_ex.c + + + + + Doc + + + readme.txt + 5 + ..\readme.txt + + + + + ::CMSIS + + + + + + + + + + + + + + + + + + +
diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/MDK-ARM/startup_py32f002bxx.s b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/MDK-ARM/startup_py32f002bxx.s new file mode 100644 index 0000000..767f75c --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/MDK-ARM/startup_py32f002bxx.s @@ -0,0 +1,228 @@ +;****************************************************************************** +;* @file startup_py32f002bxx.s +;* @author MCU Application Team +;* @brief PY32F002Bxx devices vector table for MDK-ARM toolchain. +;* This module performs: +;* - Set the initial SP +;* - Set the initial PC == Reset_Handler +;* - Set the vector table entries with the exceptions ISR address +;* - Branches to __main in the C library (which eventually +;* calls main()). +;* After Reset the CortexM0+ processor is in Thread mode, +;* priority is Privileged, and the Stack is set to Main. +;****************************************************************************** +;* @attention +;* +;*

© Copyright (c) 2023 Puya Semiconductor Co. +;* All rights reserved.

+;* +;* This software component is licensed by Puya 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 +;* +;****************************************************************************** +;* @attention +;* +;*

© Copyright (c) 2016 STMicroelectronics. +;* All rights reserved.

+;* +;* 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 +;* +;****************************************************************************** +;* <<< Use Configuration Wizard in Context Menu >>> + +; Amount of memory (in bytes) allocated for Stack +; Tailor this value to your application needs +; Stack Configuration +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Stack_Size EQU 0x00000400 + + AREA STACK, NOINIT, READWRITE, ALIGN=3 +Stack_Mem SPACE Stack_Size +__initial_sp + + +; Heap Configuration +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Heap_Size EQU 0x00000000 + + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +Heap_Mem SPACE Heap_Size +__heap_limit + + + PRESERVE8 + THUMB + + +; Vector Table Mapped to Address 0 at Reset + AREA RESET, DATA, READONLY + EXPORT __Vectors + EXPORT __Vectors_End + EXPORT __Vectors_Size + +__Vectors DCD __initial_sp ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD 0 ; 0Reserved + DCD 0 ; 1Reserved + DCD 0 ; 2Reserved + DCD FLASH_IRQHandler ; 3FLASH + DCD RCC_IRQHandler ; 4RCC + DCD EXTI0_1_IRQHandler ; 5EXTI Line 0 and 1 + DCD EXTI2_3_IRQHandler ; 6EXTI Line 2 and 3 + DCD EXTI4_15_IRQHandler ; 7EXTI Line 4 to 15 + DCD 0 ; 8Reserved + DCD 0 ; 9Reserved + DCD 0 ; 10Reserved + DCD 0 ; 11Reserved + DCD ADC_COMP_IRQHandler ; 12ADC&COMP1 + DCD TIM1_BRK_UP_TRG_COM_IRQHandler ; 13TIM1 Break, Update, Trigger and Commutation + DCD TIM1_CC_IRQHandler ; 14TIM1 Capture Compare + DCD 0 ; 15Reserved + DCD 0 ; 16Reserved + DCD LPTIM1_IRQHandler ; 17LPTIM1 + DCD 0 ; 18Reserved + DCD TIM14_IRQHandler ; 19TIM14 + DCD 0 ; 20Reserved + DCD 0 ; 21Reserved + DCD 0 ; 22Reserved + DCD I2C1_IRQHandler ; 23I2C1 + DCD 0 ; 24Reserved + DCD SPI1_IRQHandler ; 25SPI1 + DCD 0 ; 26Reserved + DCD USART1_IRQHandler ; 27USART1 + DCD 0 ; 28Reserved + DCD 0 ; 29Reserved + DCD 0 ; 30Reserved + DCD 0 ; 31Reserved +__Vectors_End + +__Vectors_Size EQU __Vectors_End - __Vectors + + AREA |.text|, CODE, READONLY + + +; Reset Handler + +Reset_Handler PROC + EXPORT Reset_Handler [WEAK] + IMPORT SystemInit + IMPORT __main + LDR R0, =SystemInit + BLX R0 + LDR R0, =__main + BX R0 + ENDP + + +; Dummy Exception Handlers (infinite loops which can be modified) + +NMI_Handler PROC + EXPORT NMI_Handler [WEAK] + B . + ENDP +HardFault_Handler\ + PROC + EXPORT HardFault_Handler [WEAK] + B . + ENDP +SVC_Handler PROC + EXPORT SVC_Handler [WEAK] + B . + ENDP +PendSV_Handler PROC + EXPORT PendSV_Handler [WEAK] + B . + ENDP +SysTick_Handler PROC + EXPORT SysTick_Handler [WEAK] + B . + ENDP + +Default_Handler PROC + + EXPORT FLASH_IRQHandler [WEAK] + EXPORT RCC_IRQHandler [WEAK] + EXPORT EXTI0_1_IRQHandler [WEAK] + EXPORT EXTI2_3_IRQHandler [WEAK] + EXPORT EXTI4_15_IRQHandler [WEAK] + EXPORT ADC_COMP_IRQHandler [WEAK] + EXPORT TIM1_BRK_UP_TRG_COM_IRQHandler [WEAK] + EXPORT TIM1_CC_IRQHandler [WEAK] + EXPORT LPTIM1_IRQHandler [WEAK] + EXPORT TIM14_IRQHandler [WEAK] + EXPORT I2C1_IRQHandler [WEAK] + EXPORT SPI1_IRQHandler [WEAK] + EXPORT USART1_IRQHandler [WEAK] + +FLASH_IRQHandler +RCC_IRQHandler +EXTI0_1_IRQHandler +EXTI2_3_IRQHandler +EXTI4_15_IRQHandler +ADC_COMP_IRQHandler +TIM1_BRK_UP_TRG_COM_IRQHandler +TIM1_CC_IRQHandler +LPTIM1_IRQHandler +TIM14_IRQHandler +I2C1_IRQHandler +SPI1_IRQHandler +USART1_IRQHandler + B . + ENDP + + ALIGN + +; User Initial Stack & Heap + + IF :DEF:__MICROLIB + + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + + ELSE + + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap + +__user_initial_stackheap + + LDR R0, = Heap_Mem + LDR R1, =(Stack_Mem + Stack_Size) + LDR R2, = (Heap_Mem + Heap_Size) + LDR R3, = Stack_Mem + BX LR + + ALIGN + + ENDIF + + END + +;************************ (C) COPYRIGHT Puya *****END OF FILE******************* diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/Src/main.c b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/Src/main.c new file mode 100644 index 0000000..244615c --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/Src/main.c @@ -0,0 +1,202 @@ +/** + ****************************************************************************** + * @file main.c + * @author MCU Application Team + * @brief Main program body + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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" + +/* Private define ------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +ADC_HandleTypeDef hadc; +ADC_ChannelConfTypeDef sConfig; +uint32_t adc_value; +uint32_t Channel_Value; + +/* Private user code ---------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +static void APP_SystemClockConfig(void); +static void APP_ADCConfig(void); + +/** + * @brief Main program. + * @retval int + */ +int main(void) +{ + /* Reset of all peripherals, Initializes the Systick. */ + HAL_Init(); + + APP_SystemClockConfig(); + + /* Initialize LED */ + BSP_LED_Init(LED_GREEN); + + /* Initialize UART */ + BSP_USART_Config(); + + /* Configure ADC */ + APP_ADCConfig(); + + while (1) + { + /* Start ADC Conversion */ + HAL_ADC_Start(&hadc); + + /* Polling for ADC Conversion */ + HAL_ADC_PollForConversion(&hadc, 1000000); + + /* Get ADC Value */ + adc_value = HAL_ADC_GetValue(&hadc); + + /* Calculate the Channel Value */ + Channel_Value = (adc_value * ADC_VREFBUF_2P5) / 4095; + + /* Printf current Channel Voltage value */ + printf("Channel4_Voltage:%umV\r\n",(unsigned int)Channel_Value); + + HAL_Delay(1000); + } +} + +/** + * @brief ADC configuration function + * @param None + * @retval None + */ +static void APP_ADCConfig(void) +{ + __HAL_RCC_ADC_CLK_ENABLE(); /* Enable ADC clock */ + + hadc.Instance = ADC1; + + hadc.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4; /* Set ADC clock*/ + hadc.Init.Resolution = ADC_RESOLUTION_12B; /* 12-bit resolution for converted data */ + hadc.Init.DataAlign = ADC_DATAALIGN_RIGHT; /* Right-alignment for converted data */ + hadc.Init.ScanConvMode = ADC_SCAN_DIRECTION_FORWARD; /* Scan sequence direction: forward */ + hadc.Init.EOCSelection = ADC_EOC_SINGLE_CONV; /* Single Conversion*/ + hadc.Init.LowPowerAutoWait = DISABLE; /* Auto-delayed conversion feature disabled */ + hadc.Init.ContinuousConvMode = DISABLE; /* Continuous mode disabled to have only 1 conversion at each conversion trig */ + hadc.Init.DiscontinuousConvMode = DISABLE; /* Disable discontinuous mode */ + hadc.Init.ExternalTrigConv = ADC_SOFTWARE_START; /* Software start to trig the 1st conversion manually, without external event */ + hadc.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; /* Parameter discarded because software trigger chosen */ + hadc.Init.Overrun = ADC_OVR_DATA_OVERWRITTEN; /* DR register is overwritten with the last conversion result in case of overrun */ + hadc.Init.SamplingTimeCommon = ADC_SAMPLETIME_239CYCLES_5; /* Channel sampling time is 239.5 ADC clock cycles */ + if (HAL_ADC_Init(&hadc) != HAL_OK) /* ADC initialization */ + { + APP_ErrorHandler(); + } + + sConfig.Rank = ADC_RANK_CHANNEL_NUMBER; /* Set the rank for the ADC channel order */ + sConfig.Channel = ADC_CHANNEL_4; /* ADC channel selection */ + if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK) /* Configure ADC channels */ + { + APP_ErrorHandler(); + } + + /* Configure VrefBuf 2.5V */ + HAL_ADC_ConfigVrefBuf(&hadc,ADC_VREFBUF_2P5V); + + if (HAL_ADCEx_Calibration_Start(&hadc) != HAL_OK) /* ADC Calibration */ + { + APP_ErrorHandler(); + } +} + +/** + * @brief System clock configuration function + * @param None + * @retval None + */ +static void APP_SystemClockConfig(void) +{ + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + + + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE | RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_LSI | RCC_OSCILLATORTYPE_LSE; + RCC_OscInitStruct.HSIState = RCC_HSI_ON; /* Enable HSI */ + RCC_OscInitStruct.HSIDiv = RCC_HSI_DIV1; /* HSI 1 division */ + RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_24MHz; /* Configure HSI output clock as 24MHz */ + RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS_DISABLE; /* Disable HSE BYPASS */ + RCC_OscInitStruct.LSIState = RCC_LSI_OFF; /* Disable LSI */ + /*RCC_OscInitStruct.LSICalibrationValue = RCC_LSICALIBRATION_32768Hz;*/ + RCC_OscInitStruct.LSEState = RCC_LSE_OFF; /* Disable LSE */ + /*RCC_OscInitStruct.LSEDriver = RCC_LSEDRIVE_MEDIUM;*/ + /* Configure OSC */ + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + { + APP_ErrorHandler(); + } + + /* Configure Clock */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSISYS; /* Select HSISYS as the system clock */ + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; /* AHB clock 1 division */ + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; /* APB clock 1 division */ + /* Configure Clock */ + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) + { + APP_ErrorHandler(); + } +} + +/** + * @brief This function is executed in case of error occurrence. + * @param None + * @retval None + */ +void APP_ErrorHandler(void) +{ + while (1) + { + } +} + +#ifdef USE_FULL_ASSERT +/** + * @brief Reports the name of the source file and the source line number + * where the assert_param error has occurred. + * @param file: pointer to the source file name + * @param line: assert_param error line source number + * @retval None + */ +void assert_failed(uint8_t *file, uint32_t line) +{ + /* User can add his own implementation to report the file name and line number, + ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ + + /* Infinite loop */ + while (1) + { + } +} +#endif /* USE_FULL_ASSERT */ + +/************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/Src/py32f002b_hal_msp.c b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/Src/py32f002b_hal_msp.c new file mode 100644 index 0000000..b373e60 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/Src/py32f002b_hal_msp.c @@ -0,0 +1,65 @@ +/** + ****************************************************************************** + * @file py32f002b_hal_msp.c + * @author MCU Application Team + * @brief This file provides code for the MSP Initialization + * and de-Initialization codes. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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" + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* External functions --------------------------------------------------------*/ + +/** + * @brief Initialize global MSP + */ +void HAL_MspInit(void) +{ + __HAL_RCC_SYSCFG_CLK_ENABLE(); + __HAL_RCC_PWR_CLK_ENABLE(); +} + +/** + * @brief Initialize ADC MSP + */ +void HAL_ADC_MspInit(ADC_HandleTypeDef *hadc) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + __HAL_RCC_GPIOA_CLK_ENABLE(); + + GPIO_InitStruct.Pin = GPIO_PIN_7; + GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; + GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); +} + +/************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/Src/py32f002b_it.c b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/Src/py32f002b_it.c new file mode 100644 index 0000000..674d54b --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/Src/py32f002b_it.c @@ -0,0 +1,93 @@ +/** + ****************************************************************************** + * @file py32f002b_it.c + * @author MCU Application Team + * @brief Interrupt Service Routines. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 "py32f002b_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) +{ + HAL_IncTick(); +} + +/******************************************************************************/ +/* PY32F002B 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******************/ diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/Src/system_py32f002b.c new file mode 100644 index 0000000..987c778 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/Src/system_py32f002b.c @@ -0,0 +1,170 @@ +/** + ****************************************************************************** + * @file system_py32f002b.c + * @author MCU Application Team + * @Version V1.0.0 + * @Date 2020-10-19 + * @brief CMSIS Cortex-M0+ Device Peripheral Access Layer System Source File. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 + * + ****************************************************************************** + */ + +#include "py32f0xx.h" + +#if !defined (HSE_VALUE) +#define HSE_VALUE 24000000U /*!< Value of the External oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined (HSI_VALUE) +#define HSI_VALUE 24000000U /*!< Value of the Internal oscillator in Hz*/ +#endif /* HSI_VALUE */ + +#if !defined (LSI_VALUE) +#define LSI_VALUE 32768U /*!< Value of LSI in Hz*/ +#endif /* LSI_VALUE */ + +#if !defined (LSE_VALUE) +#define LSE_VALUE 32768U /*!< Value of LSE in Hz*/ +#endif /* LSE_VALUE */ + + +/************************* Miscellaneous Configuration ************************/ +/*!< Uncomment the following line if you need to relocate your vector Table in + Internal SRAM. */ +/* #define FORBID_VECT_TAB_MIGRATION */ +/* #define VECT_TAB_SRAM */ +#define VECT_TAB_OFFSET 0x00 /*!< Vector Table base offset field. + This value must be a multiple of 0x100. */ +/******************************************************************************/ +/*---------------------------------------------------------------------------- + Clock Variable definitions + *----------------------------------------------------------------------------*/ +/* This variable is updated in three ways: + 1) by calling CMSIS function SystemCoreClockUpdate() + 2) by calling HAL API function HAL_RCC_GetHCLKFreq() + 3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency + Note: If you use this function to configure the system clock; then there + is no need to call the 2 first functions listed above, since SystemCoreClock + variable is updated automatically. +*/ +uint32_t SystemCoreClock = HSI_VALUE; + +const uint32_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}; +const uint32_t APBPrescTable[8] = {0, 0, 0, 0, 1, 2, 3, 4}; +#if defined(RCC_HSI48M_SUPPORT) +const uint32_t HSIFreqTable[8] = {4000000U, 8000000U, 0U, 0U, 24000000U, 48000000U, 0U, 0U}; +#else +const uint32_t HSIFreqTable[8] = {4000000U, 8000000U, 0U, 0U, 24000000U, 0U, 0U, 0U}; +#endif + +/* Private function prototypes -----------------------------------------------*/ +#ifndef SWD_DELAY +static void DelayTime(uint32_t mdelay); +#endif /* SWD_DELAY */ + +/** + * @brief Clock functions. + * @param none + * @return none + */ +void SystemCoreClockUpdate(void) /* Get Core Clock Frequency */ +{ + uint32_t tmp; + uint32_t hsidiv; + uint32_t hsifs; + + /* Get SYSCLK source -------------------------------------------------------*/ + switch (RCC->CFGR & RCC_CFGR_SWS) + { + case RCC_CFGR_SWS_0: /* HSE used as system clock */ + SystemCoreClock = HSE_VALUE; + break; + + case (RCC_CFGR_SWS_1 | RCC_CFGR_SWS_0): /* LSI used as system clock */ + SystemCoreClock = LSI_VALUE; + break; +#if defined(RCC_LSE_SUPPORT) + case RCC_CFGR_SWS_2: /* LSE used as system clock */ + SystemCoreClock = LSE_VALUE; + break; +#endif /* RCC_LSE_SUPPORT */ + case 0x00000000U: /* HSI used as system clock */ + default: /* HSI used as system clock */ + hsifs = ((READ_BIT(RCC->ICSCR, RCC_ICSCR_HSI_FS)) >> RCC_ICSCR_HSI_FS_Pos); + hsidiv = (1UL << ((READ_BIT(RCC->CR, RCC_CR_HSIDIV)) >> RCC_CR_HSIDIV_Pos)); + SystemCoreClock = (HSIFreqTable[hsifs] / hsidiv); + break; + } + /* Compute HCLK clock frequency --------------------------------------------*/ + /* Get HCLK prescaler */ + tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos)]; + /* HCLK clock frequency */ + SystemCoreClock >>= tmp; +} + +/** + * @brief Setup the microcontroller system. + * Initialize the System. + * @param none + * @return none + */ +void SystemInit(void) +{ + /*Set the HSI clock to 24MHz by default*/ + RCC->ICSCR = (RCC->ICSCR & 0xFFFF0000) | ((*(uint32_t *)(0x1FFF0100)) & 0xFFFF); + + /*Set the LSI clock to 32.768KHz by default*/ + RCC->ICSCR = (RCC->ICSCR & 0xFE00FFFF) | (((*(uint32_t *)(0x1FFF0144)) & 0x1FF) << RCC_ICSCR_LSI_TRIM_Pos); + + /* Configure the Vector Table location add offset address ------------------*/ +#ifdef VECT_TAB_SRAM + SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */ +#else + SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */ +#endif /* VECT_TAB_SRAM */ + +#ifndef SWD_DELAY + /* When the SWD pin is reused for other functions, this function is used to solve the + problem of not being able to update the code. */ + DelayTime(200); +#endif /* SWD_DELAY */ +} + +#ifndef SWD_DELAY +/** + * @brief This function provides delay (in milliseconds) based on CPU cycles method. + * @param mdelay: specifies the delay time length, in milliseconds. + * @retval None + */ +static void DelayTime(uint32_t mdelay) +{ + __IO uint32_t Delay = mdelay * (24000000U / 8U / 1000U); + do + { + __NOP(); + } + while (Delay --); +} +#endif /* SWD_DELAY */ +/************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/readme.txt b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/readme.txt new file mode 100644 index 0000000..12346b9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefbuf/readme.txt @@ -0,0 +1,60 @@ +================================================================================ + 样例使用说明 + Sample Description +================================================================================ +功能描述: +此样例演示了ADC的通道4采样功能和VREFBUF的功能,通过VREFBUF推算出通道4的输入电压。 + +Function descriptions: +This sample demonstrates the channel 4 sampling function of the ADC and the +function of VREFBUF, from which the input voltage of channel 4 is deduced. +================================================================================ +测试环境: +测试用板:PY32F002B_STK +MDK版本: 5.28 +IAR版本: 9.20 +GCC 版本:GNU Arm Embedded Toolchain 10.3-2021.10 + +Test environment: +Test board: PY32F002B_STK +MDK Version: 5.28 +IAR Version: 9.20 +GCC Version: GNU Arm Embedded Toolchain 10.3-2021.10 +================================================================================ +使用步骤: +1. 编译并下载程序; +2. 串口每隔1s打印一次通道4(PA7)的输入电压值。 + +Example execution steps: +1. Compile and download the program; +2. The serial port prints the input voltage value for channel 4(PA7) every 1s. +================================================================================ +注意事项: +1.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart +STK板 USB转TTL模块 +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART配置为波特率115200,数据位8,停止位1,校验位None +@PrintfConfigEnd +2.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 + +Notes: +1.Connect the PC to the STK board through the USB to TTL module, and the connection +method between the STK board and the USB to TTL module is as follows: +@PrintfConfigStart +STK board USB to TTL module +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 115200, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd +2.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required +================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/.clang-format b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/.clang-format new file mode 100644 index 0000000..ecc57c4 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/.clang-format @@ -0,0 +1,38 @@ +--- +BasedOnStyle: Microsoft +Language: Cpp + +################################### +# indent conf +################################### + +UseTab: Never +IndentWidth: 4 +TabWidth: 4 +ColumnLimit: 0 +AccessModifierOffset: -4 +NamespaceIndentation: All +FixNamespaceComments: false +BreakBeforeBraces: Linux + +################################### +# other styles +################################### + +# +# for more conf, you can ref: https://clang.llvm.org/docs/ClangFormatStyleOptions.html +# + +AllowShortIfStatementsOnASingleLine: true + +AllowShortLoopsOnASingleLine: true + +AllowShortBlocksOnASingleLine: true + +IndentCaseLabels: true + +SortIncludes: false + +AlignConsecutiveMacros: AcrossEmptyLines + +AlignConsecutiveAssignments: Consecutive diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/.eide/eide.json new file mode 100644 index 0000000..9fb6e49 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/.eide/eide.json @@ -0,0 +1,197 @@ +{ + "name": "Project", + "type": "ARM", + "dependenceList": [], + "srcDirs": [], + "virtualFolder": { + "name": "", + "files": [], + "folders": [ + { + "name": "BSP", + "files": [ + { + "path": "../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit/py32f002bxx_Start_Kit.c" + } + ], + "folders": [] + }, + { + "name": "Common", + "files": [ + { + "path": "../Src/system_py32f002b.c" + }, + { + "path": "startup_py32f002bxx.s" + } + ], + "folders": [] + }, + { + "name": "Doc", + "files": [ + { + "path": "../readme.txt" + } + ], + "folders": [] + }, + { + "name": "PY32F002B_HAL_Driver", + "files":[ + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc_ex.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_gpio.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_pwr.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_uart.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_cortex.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_adc.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim_ex.c" + } + ], + "folders": [] + }, + { + "name": "User", + "files":[ + { + "path":"../Src/main.c" + }, + { + "path":"../Src/py32f002b_hal_msp.c" + }, + { + "path":"../Src/py32f002b_it.c" + } + ], + "folders": [] + } + ] + }, + "outDir": ".", + "deviceName": "PY32F002Bx5", + "packDir": null, + "miscInfo": { + "uid": "36bcf0031e18a3008bbdaa90a96a7987" + }, + "targets": { + "Project": { + "excludeList": [], + "toolchain": "GCC", + "compileConfig": { + "cpuType": "Cortex-M0+", + "floatingPointHardware": "none", + "scatterFilePath": "py32f002bx5.ld", + "useCustomScatterFile": true, + "storageLayout": { + "RAM": [], + "ROM": [] + }, + "options": "null", + "archExtensions": "" + }, + "uploader": "pyOCD", + "uploadConfig": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" + }, + "uploadConfigMap": { + "JLink": { + "bin": "", + "baseAddr": "", + "cpuInfo": { + "vendor": "Puya", + "cpuName": "PY32F002Bx5" + }, + "proType": 1, + "speed": 1000, + "otherCmds": "" + }, + "OpenOCD": { + "bin": "", + "target": "py32f002b", + "interface": "cmsis-dap", + "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" + } + }, + "custom_dep": { + "name": "default", + "incList": [ + "../Inc", + "../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit", + "../../../../../../Drivers/CMSIS/Include", + "../../../../../../Drivers/CMSIS/Device/PY32F0xx/Include", + "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" + ], + "libList": [], + "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } + } + } + }, + "version": "3.6" +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/.gitignore new file mode 100644 index 0000000..8519ec6 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/.gitignore @@ -0,0 +1,15 @@ +# dot files +# /.vscode/launch.json +/.settings +/.eide/log +/.eide.usr.ctx.json + +# project out +/build +/bin +/obj +/out + +# eide template +*.ept +*.eide-template diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/.vscode/settings.json b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/.vscode/settings.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/.vscode/settings.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/.vscode/tasks.json new file mode 100644 index 0000000..854f87f --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/.vscode/tasks.json @@ -0,0 +1,72 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "type": "shell", + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" + }, + { + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" + }, + { + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/Makefile b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/Makefile new file mode 100644 index 0000000..b1d8b1f --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/Makefile @@ -0,0 +1,186 @@ +########################################################################################################################## +# File automatically-generated by tool: [projectgenerator] version: [3.17.1] date: [Tue Dec 06 16:10:07 CST 2022] +########################################################################################################################## + +# ------------------------------------------------ +# Generic Makefile (based on gcc) +# +# ChangeLog : +# 2017-02-10 - Several enhancements + project update mode +# 2015-07-22 - first version +# ------------------------------------------------ + +###################################### +# target +###################################### +TARGET = Project + + +###################################### +# building variables +###################################### +# debug build? +DEBUG = 1 +# optimization +OPT = -Og + + +####################################### +# paths +####################################### +# Build path +BUILD_DIR = Project + +###################################### +# source +###################################### +# C sources +C_SOURCES = \ ../Src/main.c \ +../Src/py32f002b_hal_msp.c \ +../Src/py32f002b_it.c \ +../Src/system_py32f002b.c \ +../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit/py32f002bxx_Start_Kit.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc_ex.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_gpio.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_pwr.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_uart.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_cortex.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_adc.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim_ex.c + + +# ASM sources +ASM_SOURCES = \ +startup_py32f002bxx.s + + +####################################### +# binaries +####################################### +PREFIX = arm-none-eabi- +# The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx) +# either it can be added to the PATH environment variable. +ifdef GCC_PATH +CC = $(GCC_PATH)/$(PREFIX)gcc +AS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp +CP = $(GCC_PATH)/$(PREFIX)objcopy +SZ = $(GCC_PATH)/$(PREFIX)size +else +CC = $(PREFIX)gcc +AS = $(PREFIX)gcc -x assembler-with-cpp +CP = $(PREFIX)objcopy +SZ = $(PREFIX)size +endif +HEX = $(CP) -O ihex +BIN = $(CP) -O binary -S + +####################################### +# CFLAGS +####################################### +# cpu +CPU = -mcpu=cortex-m0plus + +# fpu +# NONE for Cortex-M0/M0+/M3 + +# float-abi + + +# mcu +MCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI) + +# macros for gcc +# AS defines +AS_DEFS = + +# C defines +C_DEFS = \ +-DUSE_HAL_DRIVER\ +-DPY32F002Bx5 + + +# AS includes +AS_INCLUDES = + +# C includes +C_INCLUDES = \ +-I../Inc \ +-I../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit \ +-I../../../../../../Drivers/PY32F002B_HAL_Driver/Inc \ +-I../../../../../../Drivers/CMSIS/Device/PY32F0xx/Include \ +-I../../../../../../Drivers/CMSIS/Include + + +# compile gcc flags +ASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections + +CFLAGS += $(MCU) $(C_DEFS) $(C_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections + +ifeq ($(DEBUG), 1) +CFLAGS += -g -gdwarf-2 +endif + + +# Generate dependency information +CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)" + + +####################################### +# LDFLAGS +####################################### +# link script +LDSCRIPT = py32f002bx5.ld + +# libraries +LIBS = -lc -lm -lnosys +LIBDIR = +LDFLAGS = $(MCU) -specs=nano.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections + +# default action: build all +all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin + + +####################################### +# build the application +####################################### +# list of objects +OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o))) +vpath %.c $(sort $(dir $(C_SOURCES))) +# list of ASM program objects +OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o))) +vpath %.s $(sort $(dir $(ASM_SOURCES))) + +$(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR) + $(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@ + +$(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR) + $(AS) -c $(CFLAGS) $< -o $@ + +$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile + $(CC) $(OBJECTS) $(LDFLAGS) -o $@ + $(SZ) $@ + +$(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf | $(BUILD_DIR) + $(HEX) $< $@ + +$(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR) + $(BIN) $< $@ + +$(BUILD_DIR): + mkdir $@ + +####################################### +# clean up +####################################### +clean: + -rm -fR $(BUILD_DIR) + +####################################### +# dependencies +####################################### +-include $(wildcard $(BUILD_DIR)/*.d) + +# *** EOF *** \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/Project.code-workspace b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/Project.code-workspace new file mode 100644 index 0000000..f200f34 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/Project.code-workspace @@ -0,0 +1,44 @@ +{ + "folders": [ + { + "path": "." + } + ], + "settings": { + "files.autoGuessEncoding": true, + "C_Cpp.default.configurationProvider": "cl.eide", + "C_Cpp.errorSquiggles": "disabled", + "files.associations": { + ".eideignore": "ignore", + "*.a51": "a51", + "*.h": "c", + "*.c": "c", + "*.hxx": "cpp", + "*.hpp": "cpp", + "*.c++": "cpp", + "*.cpp": "cpp", + "*.cxx": "cpp", + "*.cc": "cpp" + }, + "[yaml]": { + "editor.insertSpaces": true, + "editor.tabSize": 4, + "editor.autoIndent": "advanced" + } + }, + "extensions": { + "recommendations": [ + "cl.eide", + "keroc.hex-fmt", + "xiaoyongdong.srecord", + "hars.cppsnippets", + "zixuanwang.linkerscript", + "redhat.vscode-yaml", + "IBM.output-colorizer", + "cschlosser.doxdocgen", + "ms-vscode.vscode-serial-monitor", + "dan-c-underwood.arm", + "marus25.cortex-debug" + ] + } +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/py32f002bx5.ld b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/py32f002bx5.ld new file mode 100644 index 0000000..0b99c54 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/py32f002bx5.ld @@ -0,0 +1,189 @@ +/* +****************************************************************************** +** + +** File : LinkerScript.ld +** +** Author : Puya_HC +** +** Abstract : Linker script for PY32F002Bx5 series +** 24Kbytes FLASH and 3Kbytes RAM +** +** Set heap size, stack size and stack location according +** to application requirements. +** +** Set memory bank area and size if external memory is used. +** +** Target : Puya PY32 +** +** Distribution: The file is distributed “as is,” without any warranty +** of any kind. +** +***************************************************************************** +** @attention +** +**

© COPYRIGHT(c) 2019 Puya Semiconductor

+** +** Redistribution and use in source and binary forms, with or without modification, +** are permitted provided that the following conditions are met: +** 1. Redistributions of source code must retain the above copyright notice, +** this list of conditions and the following disclaimer. +** 2. Redistributions in binary form must reproduce the above copyright notice, +** this list of conditions and the following disclaimer in the documentation +** and/or other materials provided with the distribution. +** 3. Neither the name of Puya Semiconductor nor the names of its contributors +** may be used to endorse or promote products derived from this software +** without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +** +***************************************************************************** +*/ + +/* Entry Point */ +ENTRY(Reset_Handler) + +/* Highest address of the user mode stack */ +_estack = ORIGIN(RAM) + LENGTH(RAM); /* end of RAM */ +/* Generate a link error if heap and stack don't fit into RAM */ +_Min_Heap_Size = 0x000; /* required amount of heap */ +_Min_Stack_Size = 0x400; /* required amount of stack */ + +/* Specify the memory areas */ +MEMORY +{ +RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 3K +FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 24K +} + +/* Define output sections */ +SECTIONS +{ + /* The startup code goes first into FLASH */ + .isr_vector : + { + . = ALIGN(4); + KEEP(*(.isr_vector)) /* Startup code */ + . = ALIGN(4); + } >FLASH + + /* The program code and other data goes into FLASH */ + .text : + { + . = ALIGN(4); + *(.text) /* .text sections (code) */ + *(.text*) /* .text* sections (code) */ + *(.glue_7) /* glue arm to thumb code */ + *(.glue_7t) /* glue thumb to arm code */ + *(.eh_frame) + + KEEP (*(.init)) + KEEP (*(.fini)) + + . = ALIGN(4); + _etext = .; /* define a global symbols at end of code */ + } >FLASH + + /* Constant data goes into FLASH */ + .rodata : + { + . = ALIGN(4); + *(.rodata) /* .rodata sections (constants, strings, etc.) */ + *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ + . = ALIGN(4); + } >FLASH + + .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH + .ARM : { + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + } >FLASH + + .preinit_array : + { + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array*)) + PROVIDE_HIDDEN (__preinit_array_end = .); + } >FLASH + .init_array : + { + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array*)) + PROVIDE_HIDDEN (__init_array_end = .); + } >FLASH + .fini_array : + { + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(SORT(.fini_array.*))) + KEEP (*(.fini_array*)) + PROVIDE_HIDDEN (__fini_array_end = .); + } >FLASH + + /* used by the startup to initialize data */ + _sidata = LOADADDR(.data); + + /* Initialized data sections goes into RAM, load LMA copy after code */ + .data : + { + . = ALIGN(4); + _sdata = .; /* create a global symbol at data start */ + *(.data) /* .data sections */ + *(.data*) /* .data* sections */ + + . = ALIGN(4); + _edata = .; /* define a global symbol at data end */ + } >RAM AT> FLASH + + + /* Uninitialized data section */ + . = ALIGN(4); + .bss : + { + /* This is used by the startup in order to initialize the .bss secion */ + _sbss = .; /* define a global symbol at bss start */ + __bss_start__ = _sbss; + *(.bss) + *(.bss*) + *(COMMON) + + . = ALIGN(4); + _ebss = .; /* define a global symbol at bss end */ + __bss_end__ = _ebss; + } >RAM + + /* User_heap_stack section, used to check that there is enough RAM left */ + ._user_heap_stack : + { + . = ALIGN(8); + PROVIDE ( end = . ); + PROVIDE ( _end = . ); + . = . + _Min_Heap_Size; + . = . + _Min_Stack_Size; + . = ALIGN(8); + } >RAM + + + + /* Remove information from the standard libraries */ + /DISCARD/ : + { + libc.a ( * ) + libm.a ( * ) + libgcc.a ( * ) + } + + .ARM.attributes 0 : { *(.ARM.attributes) } +} + + diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/startup_py32f002bxx.s b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/startup_py32f002bxx.s new file mode 100644 index 0000000..44eda49 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EIDE/startup_py32f002bxx.s @@ -0,0 +1,254 @@ +/** + ****************************************************************************** + * @file startup_py32f002bxx.s + * @author MCD Application Team + * @brief PY32F002Bxx devices vector table GCC toolchain. + * This module performs: + * - Set the initial SP + * - Set the initial PC == Reset_Handler, + * - Set the vector table entries with the exceptions ISR address + * - Branches to main in the C library (which eventually + * calls main()). + * After Reset the Cortex-M0+ processor is in Thread mode, + * priority is Privileged, and the Stack is set to Main. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 + * + ****************************************************************************** + */ + +.syntax unified +.cpu cortex-m0plus +.fpu softvfp +.thumb + +.global g_pfnVectors +.global Default_Handler + +/* start address for the initialization values of the .data section. +defined in linker script */ +.word _sidata +/* start address for the .data section. defined in linker script */ +.word _sdata +/* end address for the .data section. defined in linker script */ +.word _edata +/* start address for the .bss section. defined in linker script */ +.word _sbss +/* end address for the .bss section. defined in linker script */ +.word _ebss + +/** + * @brief This is the code that gets called when the processor first + * starts execution following a reset event. Only the absolutely + * necessary set is performed, after which the application + * supplied main() routine is called. + * @param None + * @retval None +*/ + + .section .text.Reset_Handler + .weak Reset_Handler + .type Reset_Handler, %function +Reset_Handler: + ldr r0, =_estack + mov sp, r0 /* set stack pointer */ + +/* Call the clock system initialization function.*/ + bl SystemInit + +/* Copy the data segment initializers from flash to SRAM */ + ldr r0, =_sdata + ldr r1, =_edata + ldr r2, =_sidata + movs r3, #0 + b LoopCopyDataInit + +CopyDataInit: + ldr r4, [r2, r3] + str r4, [r0, r3] + adds r3, r3, #4 + +LoopCopyDataInit: + adds r4, r0, r3 + cmp r4, r1 + bcc CopyDataInit + +/* Zero fill the bss segment. */ + ldr r2, =_sbss + ldr r4, =_ebss + movs r3, #0 + b LoopFillZerobss + +FillZerobss: + str r3, [r2] + adds r2, r2, #4 + +LoopFillZerobss: + cmp r2, r4 + bcc FillZerobss + +/* Call static constructors */ + bl __libc_init_array +/* Call the application s entry point.*/ + bl main + +LoopForever: + b LoopForever + +.size Reset_Handler, .-Reset_Handler + +/** + * @brief This is the code that gets called when the processor receives an + * unexpected interrupt. This simply enters an infinite loop, preserving + * the system state for examination by a debugger. + * + * @param None + * @retval None +*/ + .section .text.Default_Handler,"ax",%progbits +Default_Handler: +Infinite_Loop: + b Infinite_Loop + .size Default_Handler, .-Default_Handler + +/****************************************************************************** +* +* The minimal vector table for a Cortex M0. Note that the proper constructs +* must be placed on this to ensure that it ends up at physical address +* 0x0000.0000. +* +******************************************************************************/ + .section .isr_vector,"a",%progbits + .type g_pfnVectors, %object + .size g_pfnVectors, .-g_pfnVectors + +g_pfnVectors: + .word _estack + .word Reset_Handler + .word NMI_Handler + .word HardFault_Handler + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word SVC_Handler + .word 0 + .word 0 + .word PendSV_Handler + .word SysTick_Handler + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word FLASH_IRQHandler /* FLASH */ + .word RCC_IRQHandler /* RCC */ + .word EXTI0_1_IRQHandler /* EXTI Line 0 and 1 */ + .word EXTI2_3_IRQHandler /* EXTI Line 2 and 3 */ + .word EXTI4_15_IRQHandler /* EXTI Line 4 to 15 */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word ADC_COMP_IRQHandler /* ADC and COMP1 */ + .word TIM1_BRK_UP_TRG_COM_IRQHandler /* TIM1 Break, Update, Trigger and Commutation */ + .word TIM1_CC_IRQHandler /* TIM1 Capture Compare */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word LPTIM1_IRQHandler /* LPTIM1 */ + .word 0 /* reserved */ + .word TIM14_IRQHandler /* TIM14 */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word I2C1_IRQHandler /* I2C1 */ + .word 0 /* reserved */ + .word SPI1_IRQHandler /* SPI1 */ + .word 0 /* reserved */ + .word USART1_IRQHandler /* USART1 */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + +/******************************************************************************* +* +* Provide weak aliases for each Exception handler to the Default_Handler. +* As they are weak aliases, any function with the same name will override +* this definition. +* +*******************************************************************************/ + + .weak NMI_Handler + .thumb_set NMI_Handler,Default_Handler + + .weak HardFault_Handler + .thumb_set HardFault_Handler,Default_Handler + + .weak SVC_Handler + .thumb_set SVC_Handler,Default_Handler + + .weak PendSV_Handler + .thumb_set PendSV_Handler,Default_Handler + + .weak SysTick_Handler + .thumb_set SysTick_Handler,Default_Handler + + .weak FLASH_IRQHandler + .thumb_set FLASH_IRQHandler,Default_Handler + + .weak RCC_IRQHandler + .thumb_set RCC_IRQHandler,Default_Handler + + .weak EXTI0_1_IRQHandler + .thumb_set EXTI0_1_IRQHandler,Default_Handler + + .weak EXTI2_3_IRQHandler + .thumb_set EXTI2_3_IRQHandler,Default_Handler + + .weak EXTI4_15_IRQHandler + .thumb_set EXTI4_15_IRQHandler,Default_Handler + + .weak ADC_COMP_IRQHandler + .thumb_set ADC_COMP_IRQHandler,Default_Handler + + .weak TIM1_BRK_UP_TRG_COM_IRQHandler + .thumb_set TIM1_BRK_UP_TRG_COM_IRQHandler,Default_Handler + + .weak TIM1_CC_IRQHandler + .thumb_set TIM1_CC_IRQHandler,Default_Handler + + .weak LPTIM1_IRQHandler + .thumb_set LPTIM1_IRQHandler,Default_Handler + + .weak TIM14_IRQHandler + .thumb_set TIM14_IRQHandler,Default_Handler + + .weak I2C1_IRQHandler + .thumb_set I2C1_IRQHandler,Default_Handler + + .weak SPI1_IRQHandler + .thumb_set SPI1_IRQHandler,Default_Handler + + .weak USART1_IRQHandler + .thumb_set USART1_IRQHandler,Default_Handler diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EWARM/Project.ewd b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EWARM/Project.ewd new file mode 100644 index 0000000..4b12306 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EWARM/Project.ewd @@ -0,0 +1,1534 @@ + + + 3 + + Project + + ARM + + 1 + + C-SPY + 2 + + 32 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + CADI_ID + 2 + + 0 + 1 + 1 + + + + + + + + + CMSISDAP_ID + 2 + + 4 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IJET_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JLINK_ID + 2 + + 16 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 3 + 1 + 1 + + + + + + + + + + + + + NULINK_ID + 2 + + 0 + 1 + 1 + + + + + + + PEMICRO_ID + 2 + + 3 + 1 + 1 + + + + + + + + STLINK_ID + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + TIFET_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + + + XDS100_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9BE.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EWARM/Project.ewp b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EWARM/Project.ewp new file mode 100644 index 0000000..370e1be --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EWARM/Project.ewp @@ -0,0 +1,1141 @@ + + + 3 + + Project + + ARM + + 1 + + General + 3 + + 34 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 37 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 11 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + 1 + inputOutputBased + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 26 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + + Doc + + $PROJ_DIR$\..\readme.txt + + + + Drivers + + BSP + + PY32F002Bxx_Start_Kit + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\PY32F002Bxx_Start_Kit\py32f002bxx_Start_Kit.c + + + + + CMSIS + + $PROJ_DIR$\..\Src\system_py32f002b.c + + + + PY32F002B_HAL_Driver + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_rcc.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_rcc_ex.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_gpio.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_pwr.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_uart.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_cortex.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_adc.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_tim.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_tim_ex.c + + + + + Example + + EWARM + + $PROJ_DIR$\startup_py32f002bxx.s + + + + User + + $PROJ_DIR$\..\Src\main.c + + + $PROJ_DIR$\..\Src\py32f002b_hal_msp.c + + + $PROJ_DIR$\..\Src\py32f002b_it.c + + + + diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EWARM/Project.eww b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EWARM/Project.eww new file mode 100644 index 0000000..46d9d41 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EWARM/Project.eww @@ -0,0 +1,7 @@ + + + + $WS_DIR$\Project.ewp + + + diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EWARM/py32f002bx5_flash.icf b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EWARM/py32f002bx5_flash.icf new file mode 100644 index 0000000..6146162 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EWARM/py32f002bx5_flash.icf @@ -0,0 +1,33 @@ +/*###ICF### Section handled by ICF editor, don't touch! ****/ +/*-Editor annotation file-*/ +/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ +/*-Specials-*/ +define symbol __ICFEDIT_intvec_start__ = 0x08000000; +/*-Memory Regions-*/ +define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; +define symbol __ICFEDIT_region_ROM_end__ = 0x08005FFF; +define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; +define symbol __ICFEDIT_region_RAM_end__ = 0x20000BFF; +/*-Sizes-*/ +define symbol __ICFEDIT_size_cstack__ = 0x00000400; +define symbol __ICFEDIT_size_heap__ = 0x00000000; +/**** End of ICF editor section. ###ICF###*/ + +define memory mem with size = 4G; +define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; +define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; + +define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; +define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; + +initialize by copy { readwrite }; +do not initialize { section .noinit }; + +place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; + +place in ROM_region { readonly }; +place in RAM_region { readwrite, + block CSTACK, block HEAP }; + +export symbol __ICFEDIT_region_RAM_start__; +export symbol __ICFEDIT_region_RAM_end__; \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EWARM/startup_py32f002bxx.s b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EWARM/startup_py32f002bxx.s new file mode 100644 index 0000000..98df065 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/EWARM/startup_py32f002bxx.s @@ -0,0 +1,222 @@ +;****************************************************************************** +;* @file startup_py32f002bxx.s +;* @author MCU Application Team +;* @brief PY32F002Bxx devices vector table for EWARM toolchain. +;* This module performs: +;* - Set the initial SP +;* - Set the initial PC == __iar_program_start +;* - Set the vector table entries with the exceptions ISR address +;* - Branches to __main in the C library (which eventually +;* calls main()). +;* After Reset the CortexM0+ processor is in Thread mode, +;* priority is Privileged, and the Stack is set to Main. +;****************************************************************************** +;* @attention +;* +;*

© Copyright (c) 2023 Puya Semiconductor Co. +;* All rights reserved.

+;* +;* This software component is licensed by Puya 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 +;* +;****************************************************************************** +;* @attention +;* +;*

© Copyright (c) 2016 STMicroelectronics. +;* All rights reserved.

+;* +;* 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 +;* +;****************************************************************************** +; +; The modules in this file are included in the libraries, and may be replaced +; by any user-defined modules that define the PUBLIC symbol _program_start or +; a user defined start symbol. +; To override the cstartup defined in the library, simply add your modified +; version to the workbench project. +; +; The vector table is normally located at address 0. +; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. +; The name "__vector_table" has special meaning for C-SPY: +; it is where the SP start value is found, and the NVIC vector +; table register (VTOR) is initialized to this address if != 0. +; +; Cortex-M version +; + + MODULE ?cstartup + + ;; Forward declaration of sections. + SECTION CSTACK:DATA:NOROOT(3) + + SECTION .intvec:CODE:NOROOT(2) + + EXTERN __iar_program_start + EXTERN SystemInit + PUBLIC __vector_table + + DATA +__vector_table + DCD sfe(CSTACK) ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD 0 ; 0Reserved + DCD 0 ; 1Reserved + DCD 0 ; 2Reserved + DCD FLASH_IRQHandler ; 3FLASH + DCD RCC_IRQHandler ; 4RCC + DCD EXTI0_1_IRQHandler ; 5EXTI Line 0 and 1 + DCD EXTI2_3_IRQHandler ; 6EXTI Line 2 and 3 + DCD EXTI4_15_IRQHandler ; 7EXTI Line 4 to 15 + DCD 0 ; 8Reserved + DCD 0 ; 9Reserved + DCD 0 ; 10Reserved + DCD 0 ; 11Reserved + DCD ADC_COMP_IRQHandler ; 12ADC&COMP1 + DCD TIM1_BRK_UP_TRG_COM_IRQHandler ; 13TIM1 Break, Update, Trigger and Commutation + DCD TIM1_CC_IRQHandler ; 14TIM1 Capture Compare + DCD 0 ; 15Reserved + DCD 0 ; 16Reserved + DCD LPTIM1_IRQHandler ; 17LPTIM1 + DCD 0 ; 18Reserved + DCD TIM14_IRQHandler ; 19TIM14 + DCD 0 ; 20Reserved + DCD 0 ; 21Reserved + DCD 0 ; 22Reserved + DCD I2C1_IRQHandler ; 23I2C1 + DCD 0 ; 24Reserved + DCD SPI1_IRQHandler ; 25SPI1 + DCD 0 ; 26Reserved + DCD USART1_IRQHandler ; 27USART1 + DCD 0 ; 28Reserved + DCD 0 ; 29Reserved + DCD 0 ; 30Reserved + DCD 0 ; 31Reserved + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; Default interrupt handlers. +;; + THUMB + + PUBWEAK Reset_Handler + SECTION .text:CODE:REORDER:NOROOT(2) +Reset_Handler + LDR R0, =SystemInit + BLX R0 + LDR R0, =__iar_program_start + BX R0 + + PUBWEAK NMI_Handler + SECTION .text:CODE:REORDER:NOROOT(1) +NMI_Handler + B NMI_Handler + + PUBWEAK HardFault_Handler + SECTION .text:CODE:REORDER:NOROOT(1) +HardFault_Handler + B HardFault_Handler + + PUBWEAK SVC_Handler + SECTION .text:CODE:REORDER:NOROOT(1) +SVC_Handler + B SVC_Handler + + PUBWEAK PendSV_Handler + SECTION .text:CODE:REORDER:NOROOT(1) +PendSV_Handler + B PendSV_Handler + + PUBWEAK SysTick_Handler + SECTION .text:CODE:REORDER:NOROOT(1) +SysTick_Handler + B SysTick_Handler + + PUBWEAK FLASH_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +FLASH_IRQHandler + B FLASH_IRQHandler + + PUBWEAK RCC_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +RCC_IRQHandler + B RCC_IRQHandler + + PUBWEAK EXTI0_1_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +EXTI0_1_IRQHandler + B EXTI0_1_IRQHandler + + PUBWEAK EXTI2_3_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +EXTI2_3_IRQHandler + B EXTI2_3_IRQHandler + + PUBWEAK EXTI4_15_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +EXTI4_15_IRQHandler + B EXTI4_15_IRQHandler + + PUBWEAK ADC_COMP_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +ADC_COMP_IRQHandler + B ADC_COMP_IRQHandler + + PUBWEAK TIM1_BRK_UP_TRG_COM_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +TIM1_BRK_UP_TRG_COM_IRQHandler + B TIM1_BRK_UP_TRG_COM_IRQHandler + + PUBWEAK TIM1_CC_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +TIM1_CC_IRQHandler + B TIM1_CC_IRQHandler + + PUBWEAK LPTIM1_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +LPTIM1_IRQHandler + B LPTIM1_IRQHandler + + PUBWEAK TIM14_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +TIM14_IRQHandler + B TIM14_IRQHandler + + PUBWEAK I2C1_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +I2C1_IRQHandler + B I2C1_IRQHandler + + PUBWEAK SPI1_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +SPI1_IRQHandler + B SPI1_IRQHandler + + PUBWEAK USART1_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +USART1_IRQHandler + B USART1_IRQHandler + + END + +;************************ (C) COPYRIGHT Puya *****END OF FILE******************* diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/Inc/Config.txt b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/Inc/Config.txt new file mode 100644 index 0000000..01fec14 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/Inc/Config.txt @@ -0,0 +1,29 @@ +[FilePath] +0=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal.c +1=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc.c +2=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc_ex.c +3=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_gpio.c +4=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_pwr.c +5=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_uart.c +6=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_cortex.c +7=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_adc.c +8=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim.c +9=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim_ex.c +[FileName] +0=py32f002b_hal.c +1=py32f002b_hal_rcc.c +2=py32f002b_hal_rcc_ex.c +3=py32f002b_hal_gpio.c +4=py32f002b_hal_pwr.c +5=py32f002b_hal_uart.c +6=py32f002b_hal_cortex.c +7=py32f002b_hal_adc.c +8=py32f002b_hal_tim.c +9=py32f002b_hal_tim_ex.c +[Define] +0=USE_HAL_DRIVER +1=PY32F002Bx5 +[User] +0=../Src/main.c +1=../Src/py32f002b_hal_msp.c +2=../Src/py32f002b_it.c diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/Inc/main.h b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/Inc/main.h new file mode 100644 index 0000000..84af7e9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/Inc/main.h @@ -0,0 +1,56 @@ +/** + ****************************************************************************** + * @file main.h + * @author MCU Application Team + * @brief Header for main.c file. + * This file contains the common defines of the application. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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_hal.h" +#include "py32f002bxx_Start_Kit.h" + +/* 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******************/ diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/Inc/py32f002b_hal_conf.h b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/Inc/py32f002b_hal_conf.h new file mode 100644 index 0000000..6e82e3a --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/Inc/py32f002b_hal_conf.h @@ -0,0 +1,222 @@ +/** + ****************************************************************************** + * @file py32f002b_hal_conf.h + * @author MCU Application Team + * @brief HAL configuration file. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 __PY32F002B_HAL_CONF_H +#define __PY32F002B_HAL_CONF_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ + +/* ########################## Module Selection ############################## */ +/** + * @brief This is the list of modules to be used in the HAL driver + */ +#define HAL_MODULE_ENABLED +#define HAL_RCC_MODULE_ENABLED +#define HAL_ADC_MODULE_ENABLED +#define HAL_CRC_MODULE_ENABLED +#define HAL_COMP_MODULE_ENABLED +#define HAL_FLASH_MODULE_ENABLED +#define HAL_GPIO_MODULE_ENABLED +/* #define HAL_IWDG_MODULE_ENABLED */ +#define HAL_TIM_MODULE_ENABLED +#define HAL_LPTIM_MODULE_ENABLED +#define HAL_PWR_MODULE_ENABLED +/* #define HAL_I2C_MODULE_ENABLED */ +#define HAL_UART_MODULE_ENABLED +/* #define HAL_USART_MODULE_ENABLED */ +/* #define HAL_SPI_MODULE_ENABLED */ +/* #define HAL_EXTI_MODULE_ENABLED */ +#define HAL_CORTEX_MODULE_ENABLED + +/* ########################## Oscillator Values adaptation ####################*/ + +#if !defined (HSI_VALUE) + #define HSI_VALUE ((uint32_t)24000000) /*!< Value of the Internal oscillator in Hz */ +#endif /* HSI_VALUE */ + +/** + * @brief Adjust the value of External High Speed oscillator (HSE) used in your application. + * This value is used by the RCC HAL module to compute the system frequency + */ +#if !defined (HSE_VALUE) + #define HSE_VALUE ((uint32_t)24000000) /*!< Value of the External oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined (HSE_STARTUP_TIMEOUT) + #define HSE_STARTUP_TIMEOUT ((uint32_t)200) /*!< Time out for HSE start up, in ms */ +#endif /* HSE_STARTUP_TIMEOUT */ + +/** + * @brief Internal Low Speed Internal oscillator (LSI) value. + */ +#if !defined (LSI_VALUE) + #define LSI_VALUE ((uint32_t)32768) /*!< LSI Typical Value in Hz */ +#endif /* LSI_VALUE */ /*!< Value of the Internal Low Speed oscillator in Hz + The real value may vary depending on the variations + in voltage and temperature. */ + +/** + * @brief Adjust the value of External Low Speed oscillator (LSE) used in your application. + * This value is used by the RCC HAL module to compute the system frequency + */ +#if !defined (LSE_VALUE) + #define LSE_VALUE ((uint32_t)32768) /*!< Value of the External oscillator in Hz*/ +#endif /* LSE_VALUE */ + +#if !defined (LSE_STARTUP_TIMEOUT) + #define LSE_STARTUP_TIMEOUT ((uint32_t)5000) /*!< Time out for LSE start up, in ms */ +#endif /* LSE_STARTUP_TIMEOUT */ + +/* Tip: To avoid modifying this file each time you need to use different HSE, + === you can define the HSE value in your toolchain compiler preprocessor. */ + +/* ########################### System Configuration ######################### */ +/** + * @brief This is the HAL system configuration section + */ +#define VDD_VALUE ((uint32_t)3300) /*!< Value of VDD in mv */ +#define PRIORITY_HIGHEST 0 +#define PRIORITY_HIGH 1 +#define PRIORITY_LOW 2 +#define PRIORITY_LOWEST 3 +#define TICK_INT_PRIORITY ((uint32_t)PRIORITY_LOWEST) /*!< tick interrupt priority (lowest by default) */ +#define USE_RTOS 0 +#define PREFETCH_ENABLE 0 + +/* ########################## Assert Selection ############################## */ +/** + * @brief Uncomment the line below to expanse the "assert_param" macro in the + * HAL drivers code + */ +/* #define USE_FULL_ASSERT 1U */ + + +/* Includes ------------------------------------------------------------------*/ +/** + * @brief Include module's header file + */ +#ifdef HAL_MODULE_ENABLED + #include "py32f0xx_hal.h" +#endif /* HAL_MODULE_ENABLED */ + +#ifdef HAL_RCC_MODULE_ENABLED + #include "py32f002b_hal_rcc.h" +#endif /* HAL_RCC_MODULE_ENABLED */ + +#ifdef HAL_EXTI_MODULE_ENABLED + #include "py32f002b_hal_exti.h" +#endif /* HAL_EXTI_MODULE_ENABLED */ + +#ifdef HAL_GPIO_MODULE_ENABLED + #include "py32f002b_hal_gpio.h" +#endif /* HAL_GPIO_MODULE_ENABLED */ + +#ifdef HAL_CORTEX_MODULE_ENABLED + #include "py32f002b_hal_cortex.h" +#endif /* HAL_CORTEX_MODULE_ENABLED */ + +#ifdef HAL_ADC_MODULE_ENABLED + #include "py32f002b_hal_adc.h" +#endif /* HAL_ADC_MODULE_ENABLED */ + +#ifdef HAL_CRC_MODULE_ENABLED + #include "py32f002b_hal_crc.h" +#endif /* HAL_CRC_MODULE_ENABLED */ + +#ifdef HAL_COMP_MODULE_ENABLED +#include "py32f002b_hal_comp.h" +#endif /* HAL_COMP_MODULE_ENABLED */ + +#ifdef HAL_FLASH_MODULE_ENABLED + #include "py32f002b_hal_flash.h" +#endif /* HAL_FLASH_MODULE_ENABLED */ + +#ifdef HAL_I2C_MODULE_ENABLED + #include "py32f002b_hal_i2c.h" +#endif /* HAL_I2C_MODULE_ENABLED */ + +#ifdef HAL_IWDG_MODULE_ENABLED + #include "py32f002b_hal_iwdg.h" +#endif /* HAL_IWDG_MODULE_ENABLED */ + +#ifdef HAL_PWR_MODULE_ENABLED + #include "py32f002b_hal_pwr.h" +#endif /* HAL_PWR_MODULE_ENABLED */ + +#ifdef HAL_SPI_MODULE_ENABLED + #include "py32f002b_hal_spi.h" +#endif /* HAL_SPI_MODULE_ENABLED */ + +#ifdef HAL_TIM_MODULE_ENABLED + #include "py32f002b_hal_tim.h" +#endif /* HAL_TIM_MODULE_ENABLED */ + +#ifdef HAL_LPTIM_MODULE_ENABLED + #include "py32f002b_hal_lptim.h" +#endif /* HAL_LPTIM_MODULE_ENABLED */ + +#ifdef HAL_UART_MODULE_ENABLED + #include "py32f002b_hal_uart.h" +#endif /* HAL_UART_MODULE_ENABLED */ + +#ifdef HAL_USART_MODULE_ENABLED + #include "py32f002b_hal_usart.h" +#endif /* HAL_USART_MODULE_ENABLED */ + +/* Exported macro ------------------------------------------------------------*/ +#ifdef USE_FULL_ASSERT +/** + * @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 /* __PY32F002B_HAL_CONF_H */ + +/************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/Inc/py32f002b_it.h b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/Inc/py32f002b_it.h new file mode 100644 index 0000000..cfb871c --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/Inc/py32f002b_it.h @@ -0,0 +1,56 @@ +/** + ****************************************************************************** + * @file py32f002b_it.h + * @author MCU Application Team + * @brief This file contains the headers of the interrupt handlers. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 __PY32F002B_IT_H +#define __PY32F002B_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 /* __PY32F002B_IT_H */ + +/************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/MDK-ARM/Project.uvoptx new file mode 100644 index 0000000..9491820 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/MDK-ARM/Project.uvoptx @@ -0,0 +1,501 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + Project + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\Output\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 3 + + + + + + + + + + + BIN\CMSIS_AGDI.dll + + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) + + + 0 + CMSIS_AGDI + -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) + + + 0 + ARMRTXEVENTFLAGS + -L70 -Z18 -C0 -M0 -T1 + + + 0 + DLGTARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + + + + 0 + DLGUARM + + + + + + 0 + 0 + 119 + 1 +
0
+ 0 + 0 + 0 + 0 + 0 + 0 + .\startup_py32f002bxx.s + + +
+
+ + + 0 + 1 + T_VCC + + + 1 + 1 + tmp_hal_status + + + 2 + 1 + hd + + + 3 + 1 + T_VCC + + + + 0 + + + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + + System Viewer\ADC + 35905 + + + + 1 + 1 + 0 + 2 + 1000000 + +
+
+ + + Common + 1 + 0 + 0 + 0 + + 1 + 1 + 2 + 0 + 0 + 0 + .\startup_py32f002bxx.s + startup_py32f002bxx.s + 0 + 0 + + + 1 + 2 + 1 + 0 + 0 + 0 + ..\Src\system_py32f002b.c + system_py32f002b.c + 0 + 0 + + + + + Application/User + 1 + 0 + 0 + 0 + + 2 + 3 + 1 + 0 + 0 + 0 + ..\Src\main.c + main.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + ..\Src\py32f002b_hal_msp.c + py32f002b_hal_msp.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + ..\Src\py32f002b_it.c + py32f002b_it.c + 0 + 0 + + + + + BSP/py32f002bxx_Start_Kit + 1 + 0 + 0 + 0 + + 3 + 6 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\BSP\PY32F002Bxx_Start_Kit\py32f002bxx_Start_Kit.c + py32f002bxx_Start_Kit.c + 0 + 0 + + + + + Drivers/PY32F002B_HAL_Driver + 1 + 0 + 0 + 0 + + 4 + 7 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal.c + py32f002b_hal.c + 0 + 0 + + + 4 + 8 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_rcc.c + py32f002b_hal_rcc.c + 0 + 0 + + + 4 + 9 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_rcc_ex.c + py32f002b_hal_rcc_ex.c + 0 + 0 + + + 4 + 10 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_gpio.c + py32f002b_hal_gpio.c + 0 + 0 + + + 4 + 11 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_pwr.c + py32f002b_hal_pwr.c + 0 + 0 + + + 4 + 12 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_uart.c + py32f002b_hal_uart.c + 0 + 0 + + + 4 + 13 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_cortex.c + py32f002b_hal_cortex.c + 0 + 0 + + + 4 + 14 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_adc.c + py32f002b_hal_adc.c + 0 + 0 + + + 4 + 15 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_tim.c + py32f002b_hal_tim.c + 0 + 0 + + + 4 + 16 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_tim_ex.c + py32f002b_hal_tim_ex.c + 0 + 0 + + + + + Doc + 1 + 0 + 0 + 0 + + 5 + 17 + 5 + 0 + 0 + 0 + ..\readme.txt + readme.txt + 0 + 0 + + + + + ::CMSIS + 0 + 0 + 0 + 1 + + +
diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/MDK-ARM/Project.uvprojx new file mode 100644 index 0000000..2e66d5e --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/MDK-ARM/Project.uvprojx @@ -0,0 +1,512 @@ + + + + 2.1 + +
### uVision Project, (C) Keil Software
+ + + + Project + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + 0 + + + PY32F002Bx5 + Puya + Puya.PY32F0xx_DFP.1.2.2 + https://www.puyasemi.com/uploadfiles/ + IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) + 0 + $$Device:PY32F002Bx5$Device\Include\py32f0xx.h + + + + + + + + + + $$Device:PY32F002Bx5$SVD\py32f002bxx.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Output\ + Project + 1 + 0 + 1 + 1 + 1 + .\Output\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -REMAP + DARMCM1.DLL + -pCM0+ + SARMCM3.DLL + + TARMCM1.DLL + -pCM0+ + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M0+" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0xc00 + + + 1 + 0x8000000 + 0x6000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x6000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0xc00 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + + + USE_HAL_DRIVER,PY32F002Bx5 + + ..\Inc;..\..\..\..\..\..\Drivers\BSP\PY32F002Bxx_Start_Kit;..\..\..\..\..\..\Drivers\CMSIS\Include;..\..\..\..\..\..\Drivers\CMSIS\Device\PY32F0xx\Include;..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Inc + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + + .\Objects\Project.sct + + + + + + + + + + + Common + + + startup_py32f002bxx.s + 2 + .\startup_py32f002bxx.s + + + system_py32f002b.c + 1 + ..\Src\system_py32f002b.c + + + + + Application/User + + + main.c + 1 + ..\Src\main.c + + + py32f002b_hal_msp.c + 1 + ..\Src\py32f002b_hal_msp.c + + + py32f002b_it.c + 1 + ..\Src\py32f002b_it.c + + + + + BSP/py32f002bxx_Start_Kit + + + py32f002bxx_Start_Kit.c + 1 + ..\..\..\..\..\..\Drivers\BSP\PY32F002Bxx_Start_Kit\py32f002bxx_Start_Kit.c + + + + + Drivers/PY32F002B_HAL_Driver + + + py32f002b_hal.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal.c + + + py32f002b_hal_rcc.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_rcc.c + + + py32f002b_hal_rcc_ex.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_rcc_ex.c + + + py32f002b_hal_gpio.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_gpio.c + + + py32f002b_hal_pwr.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_pwr.c + + + py32f002b_hal_uart.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_uart.c + + + py32f002b_hal_cortex.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_cortex.c + + + py32f002b_hal_adc.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_adc.c + + + py32f002b_hal_tim.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_tim.c + + + py32f002b_hal_tim_ex.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_tim_ex.c + + + + + Doc + + + readme.txt + 5 + ..\readme.txt + + + + + ::CMSIS + + + + + + + + + + + + + + + + + + +
diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/MDK-ARM/startup_py32f002bxx.s b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/MDK-ARM/startup_py32f002bxx.s new file mode 100644 index 0000000..767f75c --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/MDK-ARM/startup_py32f002bxx.s @@ -0,0 +1,228 @@ +;****************************************************************************** +;* @file startup_py32f002bxx.s +;* @author MCU Application Team +;* @brief PY32F002Bxx devices vector table for MDK-ARM toolchain. +;* This module performs: +;* - Set the initial SP +;* - Set the initial PC == Reset_Handler +;* - Set the vector table entries with the exceptions ISR address +;* - Branches to __main in the C library (which eventually +;* calls main()). +;* After Reset the CortexM0+ processor is in Thread mode, +;* priority is Privileged, and the Stack is set to Main. +;****************************************************************************** +;* @attention +;* +;*

© Copyright (c) 2023 Puya Semiconductor Co. +;* All rights reserved.

+;* +;* This software component is licensed by Puya 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 +;* +;****************************************************************************** +;* @attention +;* +;*

© Copyright (c) 2016 STMicroelectronics. +;* All rights reserved.

+;* +;* 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 +;* +;****************************************************************************** +;* <<< Use Configuration Wizard in Context Menu >>> + +; Amount of memory (in bytes) allocated for Stack +; Tailor this value to your application needs +; Stack Configuration +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Stack_Size EQU 0x00000400 + + AREA STACK, NOINIT, READWRITE, ALIGN=3 +Stack_Mem SPACE Stack_Size +__initial_sp + + +; Heap Configuration +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Heap_Size EQU 0x00000000 + + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +Heap_Mem SPACE Heap_Size +__heap_limit + + + PRESERVE8 + THUMB + + +; Vector Table Mapped to Address 0 at Reset + AREA RESET, DATA, READONLY + EXPORT __Vectors + EXPORT __Vectors_End + EXPORT __Vectors_Size + +__Vectors DCD __initial_sp ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD 0 ; 0Reserved + DCD 0 ; 1Reserved + DCD 0 ; 2Reserved + DCD FLASH_IRQHandler ; 3FLASH + DCD RCC_IRQHandler ; 4RCC + DCD EXTI0_1_IRQHandler ; 5EXTI Line 0 and 1 + DCD EXTI2_3_IRQHandler ; 6EXTI Line 2 and 3 + DCD EXTI4_15_IRQHandler ; 7EXTI Line 4 to 15 + DCD 0 ; 8Reserved + DCD 0 ; 9Reserved + DCD 0 ; 10Reserved + DCD 0 ; 11Reserved + DCD ADC_COMP_IRQHandler ; 12ADC&COMP1 + DCD TIM1_BRK_UP_TRG_COM_IRQHandler ; 13TIM1 Break, Update, Trigger and Commutation + DCD TIM1_CC_IRQHandler ; 14TIM1 Capture Compare + DCD 0 ; 15Reserved + DCD 0 ; 16Reserved + DCD LPTIM1_IRQHandler ; 17LPTIM1 + DCD 0 ; 18Reserved + DCD TIM14_IRQHandler ; 19TIM14 + DCD 0 ; 20Reserved + DCD 0 ; 21Reserved + DCD 0 ; 22Reserved + DCD I2C1_IRQHandler ; 23I2C1 + DCD 0 ; 24Reserved + DCD SPI1_IRQHandler ; 25SPI1 + DCD 0 ; 26Reserved + DCD USART1_IRQHandler ; 27USART1 + DCD 0 ; 28Reserved + DCD 0 ; 29Reserved + DCD 0 ; 30Reserved + DCD 0 ; 31Reserved +__Vectors_End + +__Vectors_Size EQU __Vectors_End - __Vectors + + AREA |.text|, CODE, READONLY + + +; Reset Handler + +Reset_Handler PROC + EXPORT Reset_Handler [WEAK] + IMPORT SystemInit + IMPORT __main + LDR R0, =SystemInit + BLX R0 + LDR R0, =__main + BX R0 + ENDP + + +; Dummy Exception Handlers (infinite loops which can be modified) + +NMI_Handler PROC + EXPORT NMI_Handler [WEAK] + B . + ENDP +HardFault_Handler\ + PROC + EXPORT HardFault_Handler [WEAK] + B . + ENDP +SVC_Handler PROC + EXPORT SVC_Handler [WEAK] + B . + ENDP +PendSV_Handler PROC + EXPORT PendSV_Handler [WEAK] + B . + ENDP +SysTick_Handler PROC + EXPORT SysTick_Handler [WEAK] + B . + ENDP + +Default_Handler PROC + + EXPORT FLASH_IRQHandler [WEAK] + EXPORT RCC_IRQHandler [WEAK] + EXPORT EXTI0_1_IRQHandler [WEAK] + EXPORT EXTI2_3_IRQHandler [WEAK] + EXPORT EXTI4_15_IRQHandler [WEAK] + EXPORT ADC_COMP_IRQHandler [WEAK] + EXPORT TIM1_BRK_UP_TRG_COM_IRQHandler [WEAK] + EXPORT TIM1_CC_IRQHandler [WEAK] + EXPORT LPTIM1_IRQHandler [WEAK] + EXPORT TIM14_IRQHandler [WEAK] + EXPORT I2C1_IRQHandler [WEAK] + EXPORT SPI1_IRQHandler [WEAK] + EXPORT USART1_IRQHandler [WEAK] + +FLASH_IRQHandler +RCC_IRQHandler +EXTI0_1_IRQHandler +EXTI2_3_IRQHandler +EXTI4_15_IRQHandler +ADC_COMP_IRQHandler +TIM1_BRK_UP_TRG_COM_IRQHandler +TIM1_CC_IRQHandler +LPTIM1_IRQHandler +TIM14_IRQHandler +I2C1_IRQHandler +SPI1_IRQHandler +USART1_IRQHandler + B . + ENDP + + ALIGN + +; User Initial Stack & Heap + + IF :DEF:__MICROLIB + + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + + ELSE + + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap + +__user_initial_stackheap + + LDR R0, = Heap_Mem + LDR R1, =(Stack_Mem + Stack_Size) + LDR R2, = (Heap_Mem + Heap_Size) + LDR R3, = Stack_Mem + BX LR + + ALIGN + + ENDIF + + END + +;************************ (C) COPYRIGHT Puya *****END OF FILE******************* diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/Src/main.c b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/Src/main.c new file mode 100644 index 0000000..7c29503 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/Src/main.c @@ -0,0 +1,192 @@ +/** + ****************************************************************************** + * @file main.c + * @author MCU Application Team + * @brief Main program body + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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" + +/* Private define ------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +ADC_HandleTypeDef hadc; +ADC_ChannelConfTypeDef sConfig; +uint32_t adc_value; +uint32_t VCC; + +/* Private user code ---------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +static void APP_SystemClockConfig(void); +static void APP_ADCConfig(void); + +/** + * @brief Main program. + * @retval int + */ +int main(void) +{ + /* Reset of all peripherals, Initializes the Systick. */ + HAL_Init(); + + APP_SystemClockConfig(); + + /* Initialize LED */ + BSP_LED_Init(LED_GREEN); + + /* Initialize UART */ + BSP_USART_Config(); + + /* Configure ADC */ + APP_ADCConfig(); + + while (1) + { + HAL_ADC_Start(&hadc); /* Start ADC Conversion */ + HAL_ADC_PollForConversion(&hadc, 1000000); /* Polling for ADC Conversion */ + adc_value = HAL_ADC_GetValue(&hadc); /* Get ADC Value */ + VCC = (4095 * 1200) / adc_value; /* Calculate the data */ + + /* print VCC value */ + printf("VCC:%umv\r\n",(unsigned int)VCC); + + HAL_Delay(1000); + } +} + +/** + * @brief ADC configuration function + * @param None + * @retval None + */ +static void APP_ADCConfig(void) +{ + __HAL_RCC_ADC_CLK_ENABLE(); /* Enable ADC clock */ + + hadc.Instance = ADC1; + + hadc.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4; /* Set ADC clock*/ + hadc.Init.Resolution = ADC_RESOLUTION_12B; /* 12-bit resolution for converted data */ + hadc.Init.DataAlign = ADC_DATAALIGN_RIGHT; /* Right-alignment for converted data */ + hadc.Init.ScanConvMode = ADC_SCAN_DIRECTION_FORWARD; /* Scan sequence direction: forward */ + hadc.Init.EOCSelection = ADC_EOC_SINGLE_CONV; /* Single Conversion*/ + hadc.Init.LowPowerAutoWait = DISABLE; /* Auto-delayed conversion feature disabled */ + hadc.Init.ContinuousConvMode = DISABLE; /* Continuous mode disabled to have only 1 conversion at each conversion trig */ + hadc.Init.DiscontinuousConvMode = DISABLE; /* Disable discontinuous mode */ + hadc.Init.ExternalTrigConv = ADC_SOFTWARE_START; /* Software start to trig the 1st conversion manually, without external event */ + hadc.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; /* Parameter discarded because software trigger chosen */ + hadc.Init.Overrun = ADC_OVR_DATA_OVERWRITTEN; /* DR register is overwritten with the last conversion result in case of overrun */ + hadc.Init.SamplingTimeCommon = ADC_SAMPLETIME_239CYCLES_5; /* Channel sampling time is 239.5 ADC clock cycles */ + if (HAL_ADC_Init(&hadc) != HAL_OK) /* ADC initialization */ + { + APP_ErrorHandler(); + } + + sConfig.Rank = ADC_RANK_CHANNEL_NUMBER; /* Set the rank for the ADC channel order */ + sConfig.Channel = ADC_CHANNEL_VREFINT; /* ADC channel selection */ + if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK) /* Configure ADC channels */ + { + APP_ErrorHandler(); + } + + if (HAL_ADCEx_Calibration_Start(&hadc) != HAL_OK) /* ADC Calibration */ + { + APP_ErrorHandler(); + } +} + +/** + * @brief System clock configuration function + * @param None + * @retval None + */ +static void APP_SystemClockConfig(void) +{ + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + + + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE | RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_LSI | RCC_OSCILLATORTYPE_LSE; + RCC_OscInitStruct.HSIState = RCC_HSI_ON; /* Enable HSI */ + RCC_OscInitStruct.HSIDiv = RCC_HSI_DIV1; /* HSI 1 division */ + RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_24MHz; /* Configure HSI output clock as 24MHz */ + RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS_DISABLE; /* Disable HSE BYPASS */ + RCC_OscInitStruct.LSIState = RCC_LSI_OFF; /* Disable LSI */ + /*RCC_OscInitStruct.LSICalibrationValue = RCC_LSICALIBRATION_32768Hz;*/ + RCC_OscInitStruct.LSEState = RCC_LSE_OFF; /* Disable LSE */ + /*RCC_OscInitStruct.LSEDriver = RCC_LSEDRIVE_MEDIUM;*/ + /* Configure OSC */ + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + { + APP_ErrorHandler(); + } + + /* Configure Clock */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSISYS; /* Select HSISYS as the system clock */ + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; /* AHB clock 1 division */ + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; /* APB clock 1 division */ + /* Configure Clock */ + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) + { + APP_ErrorHandler(); + } +} + +/** + * @brief This function is executed in case of error occurrence. + * @param None + * @retval None + */ +void APP_ErrorHandler(void) +{ + while (1) + { + } +} + +#ifdef USE_FULL_ASSERT +/** + * @brief Reports the name of the source file and the source line number + * where the assert_param error has occurred. + * @param file: pointer to the source file name + * @param line: assert_param error line source number + * @retval None + */ +void assert_failed(uint8_t *file, uint32_t line) +{ + /* User can add his own implementation to report the file name and line number, + ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ + + /* Infinite loop */ + while (1) + { + } +} +#endif /* USE_FULL_ASSERT */ + +/************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/Src/py32f002b_hal_msp.c b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/Src/py32f002b_hal_msp.c new file mode 100644 index 0000000..6ddbbb5 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/Src/py32f002b_hal_msp.c @@ -0,0 +1,51 @@ +/** + ****************************************************************************** + * @file py32f002b_hal_msp.c + * @author MCU Application Team + * @brief This file provides code for the MSP Initialization + * and de-Initialization codes. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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" + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* External functions --------------------------------------------------------*/ + +/** + * @brief Initialize global MSP + */ +void HAL_MspInit(void) +{ + __HAL_RCC_SYSCFG_CLK_ENABLE(); + __HAL_RCC_PWR_CLK_ENABLE(); +} + +/************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/Src/py32f002b_it.c b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/Src/py32f002b_it.c new file mode 100644 index 0000000..674d54b --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/Src/py32f002b_it.c @@ -0,0 +1,93 @@ +/** + ****************************************************************************** + * @file py32f002b_it.c + * @author MCU Application Team + * @brief Interrupt Service Routines. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 "py32f002b_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) +{ + HAL_IncTick(); +} + +/******************************************************************************/ +/* PY32F002B 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******************/ diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/Src/system_py32f002b.c new file mode 100644 index 0000000..987c778 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/Src/system_py32f002b.c @@ -0,0 +1,170 @@ +/** + ****************************************************************************** + * @file system_py32f002b.c + * @author MCU Application Team + * @Version V1.0.0 + * @Date 2020-10-19 + * @brief CMSIS Cortex-M0+ Device Peripheral Access Layer System Source File. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 + * + ****************************************************************************** + */ + +#include "py32f0xx.h" + +#if !defined (HSE_VALUE) +#define HSE_VALUE 24000000U /*!< Value of the External oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined (HSI_VALUE) +#define HSI_VALUE 24000000U /*!< Value of the Internal oscillator in Hz*/ +#endif /* HSI_VALUE */ + +#if !defined (LSI_VALUE) +#define LSI_VALUE 32768U /*!< Value of LSI in Hz*/ +#endif /* LSI_VALUE */ + +#if !defined (LSE_VALUE) +#define LSE_VALUE 32768U /*!< Value of LSE in Hz*/ +#endif /* LSE_VALUE */ + + +/************************* Miscellaneous Configuration ************************/ +/*!< Uncomment the following line if you need to relocate your vector Table in + Internal SRAM. */ +/* #define FORBID_VECT_TAB_MIGRATION */ +/* #define VECT_TAB_SRAM */ +#define VECT_TAB_OFFSET 0x00 /*!< Vector Table base offset field. + This value must be a multiple of 0x100. */ +/******************************************************************************/ +/*---------------------------------------------------------------------------- + Clock Variable definitions + *----------------------------------------------------------------------------*/ +/* This variable is updated in three ways: + 1) by calling CMSIS function SystemCoreClockUpdate() + 2) by calling HAL API function HAL_RCC_GetHCLKFreq() + 3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency + Note: If you use this function to configure the system clock; then there + is no need to call the 2 first functions listed above, since SystemCoreClock + variable is updated automatically. +*/ +uint32_t SystemCoreClock = HSI_VALUE; + +const uint32_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}; +const uint32_t APBPrescTable[8] = {0, 0, 0, 0, 1, 2, 3, 4}; +#if defined(RCC_HSI48M_SUPPORT) +const uint32_t HSIFreqTable[8] = {4000000U, 8000000U, 0U, 0U, 24000000U, 48000000U, 0U, 0U}; +#else +const uint32_t HSIFreqTable[8] = {4000000U, 8000000U, 0U, 0U, 24000000U, 0U, 0U, 0U}; +#endif + +/* Private function prototypes -----------------------------------------------*/ +#ifndef SWD_DELAY +static void DelayTime(uint32_t mdelay); +#endif /* SWD_DELAY */ + +/** + * @brief Clock functions. + * @param none + * @return none + */ +void SystemCoreClockUpdate(void) /* Get Core Clock Frequency */ +{ + uint32_t tmp; + uint32_t hsidiv; + uint32_t hsifs; + + /* Get SYSCLK source -------------------------------------------------------*/ + switch (RCC->CFGR & RCC_CFGR_SWS) + { + case RCC_CFGR_SWS_0: /* HSE used as system clock */ + SystemCoreClock = HSE_VALUE; + break; + + case (RCC_CFGR_SWS_1 | RCC_CFGR_SWS_0): /* LSI used as system clock */ + SystemCoreClock = LSI_VALUE; + break; +#if defined(RCC_LSE_SUPPORT) + case RCC_CFGR_SWS_2: /* LSE used as system clock */ + SystemCoreClock = LSE_VALUE; + break; +#endif /* RCC_LSE_SUPPORT */ + case 0x00000000U: /* HSI used as system clock */ + default: /* HSI used as system clock */ + hsifs = ((READ_BIT(RCC->ICSCR, RCC_ICSCR_HSI_FS)) >> RCC_ICSCR_HSI_FS_Pos); + hsidiv = (1UL << ((READ_BIT(RCC->CR, RCC_CR_HSIDIV)) >> RCC_CR_HSIDIV_Pos)); + SystemCoreClock = (HSIFreqTable[hsifs] / hsidiv); + break; + } + /* Compute HCLK clock frequency --------------------------------------------*/ + /* Get HCLK prescaler */ + tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos)]; + /* HCLK clock frequency */ + SystemCoreClock >>= tmp; +} + +/** + * @brief Setup the microcontroller system. + * Initialize the System. + * @param none + * @return none + */ +void SystemInit(void) +{ + /*Set the HSI clock to 24MHz by default*/ + RCC->ICSCR = (RCC->ICSCR & 0xFFFF0000) | ((*(uint32_t *)(0x1FFF0100)) & 0xFFFF); + + /*Set the LSI clock to 32.768KHz by default*/ + RCC->ICSCR = (RCC->ICSCR & 0xFE00FFFF) | (((*(uint32_t *)(0x1FFF0144)) & 0x1FF) << RCC_ICSCR_LSI_TRIM_Pos); + + /* Configure the Vector Table location add offset address ------------------*/ +#ifdef VECT_TAB_SRAM + SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */ +#else + SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */ +#endif /* VECT_TAB_SRAM */ + +#ifndef SWD_DELAY + /* When the SWD pin is reused for other functions, this function is used to solve the + problem of not being able to update the code. */ + DelayTime(200); +#endif /* SWD_DELAY */ +} + +#ifndef SWD_DELAY +/** + * @brief This function provides delay (in milliseconds) based on CPU cycles method. + * @param mdelay: specifies the delay time length, in milliseconds. + * @retval None + */ +static void DelayTime(uint32_t mdelay) +{ + __IO uint32_t Delay = mdelay * (24000000U / 8U / 1000U); + do + { + __NOP(); + } + while (Delay --); +} +#endif /* SWD_DELAY */ +/************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/readme.txt b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/readme.txt new file mode 100644 index 0000000..416c6ad --- /dev/null +++ b/Projects/PY32F002B-STK/Example/ADC/ADC_Vrefint/readme.txt @@ -0,0 +1,62 @@ +================================================================================ + 样例使用说明 + Sample Description +================================================================================ +功能描述: +此样例演示了ADC模块的VCC采样功能,通过采样VREFINT的值,计算得出VCC的值,并通过 +串口打印出来。 + +Function descriptions: +This example demonstrates the VCC sampling function of the ADC module. By +sampling the value of VREFINT, the VCC value is calculated and printed through +the serial port. +================================================================================ +测试环境: +测试用板:PY32F002B_STK +MDK版本: 5.28 +IAR版本: 9.20 +GCC 版本:GNU Arm Embedded Toolchain 10.3-2021.10 + +Test environment: +Test board: PY32F002B_STK +MDK Version: 5.28 +IAR Version: 9.20 +GCC Version: GNU Arm Embedded Toolchain 10.3-2021.10 +================================================================================ +使用步骤: +1. 编译并下载程序; +2. 串口每隔1s打印一次VCC的电压值。 + +Example execution steps: +1. Compile and download the program; +2. The serial port prints the voltage value of VCC every 1 second. +================================================================================ +注意事项: +1.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart +STK板 USB转TTL模块 +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART配置为波特率115200,数据位8,停止位1,校验位None +@PrintfConfigEnd +2.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 + +Notes: +1.Connect the PC to the STK board through the USB to TTL module, and the connection +method between the STK board and the USB to TTL module is as follows: +@PrintfConfigStart +STK board USB to TTL module +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 115200, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd +2.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required +================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/EIDE/.eide/eide.json index bc21006..420d5e7 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -86,9 +84,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -105,14 +103,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -131,6 +132,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -143,10 +152,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/EIDE/Makefile b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/EIDE/Makefile index 02c67f6..2f550c1 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/MDK-ARM/Project.uvoptx index bb45287..6bcbc45 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("") -D00(00000000) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("") -D00(00000000) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/MDK-ARM/Project.uvprojx index b7cdd91..784d2a8 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/readme.txt b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/readme.txt index 289453a..9731db9 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/readme.txt +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_IT/readme.txt @@ -37,6 +37,14 @@ Example execution steps: 3. Configure PA04 input voltage less than 1.65V,LED light on; ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/EIDE/.eide/eide.json index bc21006..420d5e7 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -86,9 +84,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -105,14 +103,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -131,6 +132,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -143,10 +152,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/EIDE/Makefile b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/EIDE/Makefile index 02c67f6..2f550c1 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/MDK-ARM/Project.uvoptx index a42c8b9..5043a7d 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/MDK-ARM/Project.uvprojx index b7cdd91..784d2a8 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/readme.txt b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/readme.txt index 3cbaa17..5c56262 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/readme.txt +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Polling/readme.txt @@ -36,6 +36,14 @@ Example execution steps: 3. If the input voltage of PA04 is less than 1.65V, the LED light will be on. ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/EIDE/.eide/eide.json index bc21006..420d5e7 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -86,9 +84,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -105,14 +103,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -131,6 +132,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -143,10 +152,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/EIDE/Makefile b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/EIDE/Makefile index 02c67f6..2f550c1 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/MDK-ARM/Project.uvoptx index 75cc1dd..80f751d 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/MDK-ARM/Project.uvprojx index b7cdd91..784d2a8 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/Src/main.c b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/Src/main.c index d9e197f..122f4e2 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/Src/main.c +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/Src/main.c @@ -68,7 +68,7 @@ int main(void) BSP_LED_On(LED_GREEN); /* Wait for button press */ - while(BSP_PB_GetState(BUTTON_USER) != 0) + while(BSP_PB_GetState(BUTTON_USER)) { } diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/readme.txt b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/readme.txt index 97f289c..28b5928 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/readme.txt +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_WakeUpFromSleep/readme.txt @@ -43,6 +43,14 @@ generated; 5. Next, the LED flips every 200ms and the program runs normally. ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.eide/eide.json index bc21006..420d5e7 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -86,9 +84,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -105,14 +103,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -131,6 +132,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -143,10 +152,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/Makefile b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/Makefile index 02c67f6..2f550c1 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/MDK-ARM/Project.uvoptx index 95914d3..fbd6809 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/MDK-ARM/Project.uvprojx index b7cdd91..784d2a8 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/readme.txt b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/readme.txt index 4dd6744..964a96a 100644 --- a/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/readme.txt +++ b/Projects/PY32F002B-STK/Example/COMP/COMP_CompareGpioVs1_2VCC_Window/readme.txt @@ -35,6 +35,14 @@ Example execution steps: 3. If the input voltage of PB0 is less than 1.65V, the LED light will be on. ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/EIDE/.eide/eide.json index 5d9b616..4ef1c70 100644 --- a/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -86,9 +84,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -105,14 +103,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -131,6 +132,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -143,10 +152,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/EIDE/Makefile b/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/EIDE/Makefile index 3e63096..cbf9978 100644 --- a/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/MDK-ARM/Project.uvoptx index 34a9a70..aab3e5a 100644 --- a/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/MDK-ARM/Project.uvprojx index 3df1d9f..24ac64e 100644 --- a/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/readme.txt b/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/readme.txt index 285eb49..00e986d 100644 --- a/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/readme.txt +++ b/Projects/PY32F002B-STK/Example/CRC/CRC_CalculateCheckValue/readme.txt @@ -35,6 +35,14 @@ Example execution steps: operation, otherwise it fails. ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/EIDE/.eide/eide.json index f622c1f..bb9f028 100644 --- a/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -86,9 +84,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -105,14 +103,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -131,6 +132,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -143,10 +152,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/EIDE/Makefile b/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/EIDE/Makefile index f2e7985..e720a42 100644 --- a/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/MDK-ARM/Project.uvoptx index 7480111..a32db56 100644 --- a/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/MDK-ARM/Project.uvprojx index ee90f10..267cb50 100644 --- a/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/readme.txt b/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/readme.txt index 14947cd..32bff9d 100644 --- a/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/readme.txt +++ b/Projects/PY32F002B-STK/Example/EXTI/EXTI_ToggleLed_IT/readme.txt @@ -32,8 +32,16 @@ Example execution steps: 2.Observe the LED flipping once every time the user presses the button; ================================================================================ 注意事项: -用户按键对应PA0引脚。 +1.用户按键对应PA0引脚。 +2.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: -PA0 pin corresponding to user button. +1.PA0 pin corresponding to user button. +2.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/EIDE/.eide/eide.json index f622c1f..bb9f028 100644 --- a/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -86,9 +84,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -105,14 +103,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -131,6 +132,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -143,10 +152,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/EIDE/Makefile b/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/EIDE/Makefile index f2e7985..e720a42 100644 --- a/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/MDK-ARM/Project.uvoptx index b75fa53..a2861e9 100644 --- a/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/MDK-ARM/Project.uvprojx index ee90f10..267cb50 100644 --- a/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/Src/main.c b/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/Src/main.c index a12d5a5..8aad835 100644 --- a/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/Src/main.c +++ b/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/Src/main.c @@ -63,7 +63,7 @@ int main(void) BSP_LED_On(LED_GREEN); /* Waiting for the user to press the button */ - while (BSP_PB_GetState(BUTTON_KEY) == 1) + while (BSP_PB_GetState(BUTTON_KEY)) { } diff --git a/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/readme.txt b/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/readme.txt index 3f76209..a7319f9 100644 --- a/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/readme.txt +++ b/Projects/PY32F002B-STK/Example/EXTI/EXTI_WakeUp_Event/readme.txt @@ -39,7 +39,15 @@ light is in a constant dark state, and the MCU enters STOP mode; flashing state. ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/EIDE/.eide/eide.json index dfb04c3..707c97e 100644 --- a/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -86,9 +84,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -105,14 +103,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -131,6 +132,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -143,10 +152,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/EIDE/Makefile b/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/EIDE/Makefile index bd72644..8cabbf8 100644 --- a/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/MDK-ARM/Project.uvoptx index ab8e5aa..dc8ef83 100644 --- a/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/MDK-ARM/Project.uvoptx @@ -125,7 +125,7 @@ 0 CMSIS_AGDI - -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/Src/main.c b/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/Src/main.c index 3a2ce23..cad0263 100644 --- a/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/Src/main.c +++ b/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/Src/main.c @@ -80,7 +80,7 @@ int main(void) BSP_USART_Config(); /* Wait For Button */ - while(BSP_PB_GetState(BUTTON_KEY) == 1); + while(BSP_PB_GetState(BUTTON_KEY)); /* Unlock Flash */ HAL_FLASH_Unlock(); diff --git a/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/readme.txt b/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/readme.txt index 8fcbd99..66e881f 100644 --- a/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/readme.txt +++ b/Projects/PY32F002B-STK/Example/FLASH/FLASH_PageEraseAndWrite/readme.txt @@ -33,6 +33,14 @@ program; LED is on. ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/EIDE/.eide/eide.json index efbee38..5e3bbbe 100644 --- a/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -86,9 +84,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -105,14 +103,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -131,6 +132,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -143,10 +152,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/EIDE/Makefile b/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/EIDE/Makefile index 3e507b7..c62a9ca 100644 --- a/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/MDK-ARM/Project.uvoptx index 8af83bc..070e569 100644 --- a/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/MDK-ARM/Project.uvoptx @@ -125,7 +125,7 @@ 0 CMSIS_AGDI - -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/Src/main.c b/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/Src/main.c index b362016..4aeabee 100644 --- a/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/Src/main.c +++ b/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/Src/main.c @@ -74,7 +74,7 @@ int main(void) BSP_USART_Config(); /* Wait For Button */ - while(BSP_PB_GetState(BUTTON_KEY) == 1); + while(BSP_PB_GetState(BUTTON_KEY)); /* Unlock Flash */ HAL_FLASH_Unlock(); diff --git a/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/readme.txt b/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/readme.txt index 8dcaae6..d8a91e6 100644 --- a/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/readme.txt +++ b/Projects/PY32F002B-STK/Example/FLASH/FLASH_SectorEraseAndWrite/readme.txt @@ -33,6 +33,14 @@ program; the LED is on ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/EIDE/.eide/eide.json index dcfcb26..0d642e3 100644 --- a/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -83,9 +81,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -102,14 +100,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -128,6 +129,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -140,10 +149,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/EIDE/Makefile b/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/EIDE/Makefile index 6f54cc1..7400699 100644 --- a/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/MDK-ARM/Project.uvoptx index e8dedce..7c53fc8 100644 --- a/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/MDK-ARM/Project.uvprojx index 68cd04e..fb635db 100644 --- a/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/readme.txt b/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/readme.txt index 786b6f2..88bd6ad 100644 --- a/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/readme.txt +++ b/Projects/PY32F002B-STK/Example/GPIO/GPIO_FastIO/readme.txt @@ -31,7 +31,15 @@ Example execution steps: output waveform frequency of port PA1 is 12MHz. ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/EIDE/.eide/eide.json index dcfcb26..0d642e3 100644 --- a/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -83,9 +81,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -102,14 +100,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -128,6 +129,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -140,10 +149,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/EIDE/Makefile b/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/EIDE/Makefile index 6f54cc1..7400699 100644 --- a/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/MDK-ARM/Project.uvoptx index f8c2ff3..ab12336 100644 --- a/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/MDK-ARM/Project.uvprojx index 68cd04e..fb635db 100644 --- a/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/readme.txt b/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/readme.txt index f27d8be..70fff16 100644 --- a/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/readme.txt +++ b/Projects/PY32F002B-STK/Example/GPIO/GPIO_Toggle/readme.txt @@ -32,6 +32,14 @@ Example execution steps: 2.It can be observed that the LED on the STK board flashes at a frequency of 2Hz. ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/EIDE/.eide/eide.json index 63cd0c4..1f36c40 100644 --- a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -86,9 +84,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -105,14 +103,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -131,6 +132,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -143,10 +152,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/EIDE/Makefile b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/EIDE/Makefile index 3711cf6..d1cd567 100644 --- a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/MDK-ARM/Project.uvoptx index 84736d7..09ec26a 100644 --- a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/MDK-ARM/Project.uvprojx index f9b1655..eb1daa8 100644 --- a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/Src/main.c b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/Src/main.c index b9f67cd..f6c676c 100644 --- a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/Src/main.c +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/Src/main.c @@ -78,7 +78,7 @@ int main(void) } /* Waiting for the user to press the button */ - while (BSP_PB_GetState(BUTTON_KEY) == 1) + while (BSP_PB_GetState(BUTTON_KEY)) { } diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/readme.txt b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/readme.txt index 5e4bd7f..77b9ed7 100644 --- a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/readme.txt +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_IT/readme.txt @@ -43,16 +43,26 @@ received data; When the LED light of the master or slave is in a flashing state, it indicates that the master or slave has failed to transmit and receive data. ================================================================================ 注意事项: +1. PB03 ------> I2C_SCL PB04 ------> I2C_SDA 主机程序为I2C_TwoBoard_CommunicationMaster_IT 从机程序为I2C_TwoBoard_CommunicationSlave_IT 如需修改速率,直接修改I2C_SPEEDCLOCK即可 +2.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +1. PB03 ------> I2C_SCL PB04 ------> I2C_SDA The master program is I2C_TwoBoard_CommunicationMaster_IT Slave program is I2C_TwoBoard_CommunicationSlave_IT If you need to modify the rate, directly modify I2C_SPEEDCLOCK is sufficient. +2.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/EIDE/.eide/eide.json index 63cd0c4..1f36c40 100644 --- a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -86,9 +84,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -105,14 +103,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -131,6 +132,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -143,10 +152,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/EIDE/Makefile b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/EIDE/Makefile index 3711cf6..d1cd567 100644 --- a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/MDK-ARM/Project.uvoptx index 84736d7..09ec26a 100644 --- a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/MDK-ARM/Project.uvprojx index f9b1655..eb1daa8 100644 --- a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/Src/main.c b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/Src/main.c index a4c1e35..c230348 100644 --- a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/Src/main.c +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/Src/main.c @@ -77,7 +77,7 @@ int main(void) } /* Waiting for the user to press the button */ - while (BSP_PB_GetState(BUTTON_KEY) == 1) + while (BSP_PB_GetState(BUTTON_KEY)) { } diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/readme.txt b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/readme.txt index 17ef553..47d8e56 100644 --- a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/readme.txt +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationMaster_Polling/readme.txt @@ -43,16 +43,26 @@ received data; When the LED light of the host or slave is in a flashing state, it indicates that the host or slave has failed to transmit and receive data. ================================================================================ 注意事项: +1. PB03 ------> I2C_SCL PB04 ------> I2C_SDA 主机程序为I2C_TwoBoard_CommunicationMaster_Polling 从机程序为I2C_TwoBoard_CommunicationSlave_IT 如需修改速率,直接修改I2C_SPEEDCLOCK即可 +2.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +1. PB03 ------> I2C_SCL PB04 ------> I2C_SDA The master program is I2C_TwoBoard_CommunicationMaster_Polling Slave program is I2C_TwoBoard_CommunicationSlave_IT If you need to modify the rate, directly modify I2C_SPEEDCLOCK is sufficient. +2.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/EIDE/.eide/eide.json index 63cd0c4..1f36c40 100644 --- a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -86,9 +84,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -105,14 +103,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -131,6 +132,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -143,10 +152,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/EIDE/Makefile b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/EIDE/Makefile index 3711cf6..d1cd567 100644 --- a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/MDK-ARM/Project.uvoptx index 84736d7..09ec26a 100644 --- a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/MDK-ARM/Project.uvprojx index f9b1655..eb1daa8 100644 --- a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/readme.txt b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/readme.txt index 5e4bd7f..77b9ed7 100644 --- a/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/readme.txt +++ b/Projects/PY32F002B-STK/Example/I2C/I2C_TwoBoard_CommunicationSlave_IT/readme.txt @@ -43,16 +43,26 @@ received data; When the LED light of the master or slave is in a flashing state, it indicates that the master or slave has failed to transmit and receive data. ================================================================================ 注意事项: +1. PB03 ------> I2C_SCL PB04 ------> I2C_SDA 主机程序为I2C_TwoBoard_CommunicationMaster_IT 从机程序为I2C_TwoBoard_CommunicationSlave_IT 如需修改速率,直接修改I2C_SPEEDCLOCK即可 +2.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +1. PB03 ------> I2C_SCL PB04 ------> I2C_SDA The master program is I2C_TwoBoard_CommunicationMaster_IT Slave program is I2C_TwoBoard_CommunicationSlave_IT If you need to modify the rate, directly modify I2C_SPEEDCLOCK is sufficient. +2.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/EIDE/.eide/eide.json index 16777f9..e117209 100644 --- a/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -86,9 +84,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -105,14 +103,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -131,6 +132,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -143,10 +152,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/EIDE/Makefile b/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/EIDE/Makefile index 10e0c61..3586b39 100644 --- a/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/MDK-ARM/Project.uvoptx index adee5c1..37393b5 100644 --- a/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/MDK-ARM/Project.uvprojx index 3b566cb..450115c 100644 --- a/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/readme.txt b/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/readme.txt index b4ee5f9..d62e23a 100644 --- a/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/readme.txt +++ b/Projects/PY32F002B-STK/Example/IWDG/IWDG_RESET/readme.txt @@ -43,6 +43,14 @@ configure the dog feeding time to be 1.1 seconds; 5. It can be observed that the LED cannot light up normally; ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.eide/eide.json index ac5bf4b..0655602 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -92,9 +90,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -111,14 +109,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -137,6 +138,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -149,10 +158,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/Makefile b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/Makefile index b2a6f4e..a4af8e4 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/Inc/Config.txt b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/Inc/Config.txt new file mode 100644 index 0000000..a093a04 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/Inc/Config.txt @@ -0,0 +1,29 @@ +[FilePath] +0=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal.c +1=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc.c +2=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc_ex.c +3=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_gpio.c +4=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_pwr.c +5=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_uart.c +6=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_cortex.c +7=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_crc.c +8=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_lptim.c +9=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_exti.c +[FileName] +0=py32f002b_hal.c +1=py32f002b_hal_rcc.c +2=py32f002b_hal_rcc_ex.c +3=py32f002b_hal_gpio.c +4=py32f002b_hal_pwr.c +5=py32f002b_hal_uart.c +6=py32f002b_hal_cortex.c +7=py32f002b_hal_crc.c +8=py32f002b_hal_lptim.c +9=py32f002b_hal_exti.c +[Define] +0=USE_HAL_DRIVER +1=PY32F002Bx5 +[User] +0=../Src/main.c +1=../Src/py32f002b_hal_msp.c +2=../Src/py32f002b_it.c diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/MDK-ARM/Project.uvoptx index a29f891..c4b4f1e 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/MDK-ARM/Project.uvoptx @@ -10,7 +10,7 @@ *.s*; *.src; *.a* *.obj; *.o *.lib - *.txt; *.h; *.inc + *.txt; *.h; *.inc; *.md *.plm *.cpp 0 @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 @@ -419,18 +419,6 @@ 0 0 0 - ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_crc.c - py32f002b_hal_crc.c - 0 - 0 - - - 4 - 15 - 1 - 0 - 0 - 0 ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_lptim.c py32f002b_hal_lptim.c 0 @@ -438,7 +426,7 @@ 4 - 16 + 15 1 0 0 @@ -458,7 +446,7 @@ 0 5 - 17 + 16 5 0 0 diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/MDK-ARM/Project.uvprojx index 77a70cf..e1151be 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/MDK-ARM/Project.uvprojx @@ -10,18 +10,18 @@ Project 0x4 ARM-ADS - 5060750::V5.06 update 6 (build 750)::ARMCC + 5060960::V5.06 update 7 (build 960)::.\ARMCC 0 PY32F002Bx5 Puya - Puya.PY32F0xx_DFP.1.2.0 + Puya.PY32F0xx_DFP.1.2.6 https://www.puyasemi.com/uploadfiles/ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h @@ -185,6 +185,8 @@ 0 0 0 + 0 + 0 0 0 8 @@ -351,7 +353,7 @@ 0 0 0 - 0 + 4 @@ -462,11 +464,6 @@ 1 ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_cortex.c - - py32f002b_hal_crc.c - 1 - ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_crc.c - py32f002b_hal_lptim.c 1 diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/Src/main.c b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/Src/main.c index f3e9203..dc5e00a 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/Src/main.c +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/Src/main.c @@ -32,7 +32,7 @@ #include "main.h" /* Private define ------------------------------------------------------------*/ -#define Delay 40*3 +#define Delay 40*4 /* Private variables ---------------------------------------------------------*/ LPTIM_HandleTypeDef LPTIMConf = {0}; @@ -88,7 +88,7 @@ int main(void) BSP_LED_On(LED_GREEN); /* Wait for button press */ - while (BSP_PB_GetState(BUTTON_USER) != 0) + while (BSP_PB_GetState(BUTTON_USER)) { } diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/readme.txt b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/readme.txt index 7e3413d..3e759c1 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/readme.txt +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFE/readme.txt @@ -33,6 +33,14 @@ Example execution steps: PA3 flips at 2.5Hz; ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.eide/eide.json index ac5bf4b..0655602 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -92,9 +90,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -111,14 +109,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -137,6 +138,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -149,10 +158,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/Makefile b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/Makefile index b2a6f4e..a4af8e4 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/Inc/Config.txt b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/Inc/Config.txt new file mode 100644 index 0000000..a093a04 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/Inc/Config.txt @@ -0,0 +1,29 @@ +[FilePath] +0=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal.c +1=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc.c +2=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc_ex.c +3=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_gpio.c +4=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_pwr.c +5=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_uart.c +6=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_cortex.c +7=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_crc.c +8=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_lptim.c +9=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_exti.c +[FileName] +0=py32f002b_hal.c +1=py32f002b_hal_rcc.c +2=py32f002b_hal_rcc_ex.c +3=py32f002b_hal_gpio.c +4=py32f002b_hal_pwr.c +5=py32f002b_hal_uart.c +6=py32f002b_hal_cortex.c +7=py32f002b_hal_crc.c +8=py32f002b_hal_lptim.c +9=py32f002b_hal_exti.c +[Define] +0=USE_HAL_DRIVER +1=PY32F002Bx5 +[User] +0=../Src/main.c +1=../Src/py32f002b_hal_msp.c +2=../Src/py32f002b_it.c diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/MDK-ARM/Project.uvoptx index b316f33..798f30c 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/MDK-ARM/Project.uvoptx @@ -10,7 +10,7 @@ *.s*; *.src; *.a* *.obj; *.o *.lib - *.txt; *.h; *.inc + *.txt; *.h; *.inc; *.md *.plm *.cpp 0 @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 @@ -415,18 +415,6 @@ 0 0 0 - ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_crc.c - py32f002b_hal_crc.c - 0 - 0 - - - 4 - 15 - 1 - 0 - 0 - 0 ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_lptim.c py32f002b_hal_lptim.c 0 @@ -434,7 +422,7 @@ 4 - 16 + 15 1 0 0 @@ -454,7 +442,7 @@ 0 5 - 17 + 16 5 0 0 diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/MDK-ARM/Project.uvprojx index 2f3fa00..42ad365 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/MDK-ARM/Project.uvprojx @@ -10,18 +10,18 @@ Project 0x4 ARM-ADS - 5060750::V5.06 update 6 (build 750)::ARMCC + 5060960::V5.06 update 7 (build 960)::.\ARMCC 0 PY32F002Bx5 Puya - Puya.PY32F0xx_DFP.1.2.0 + Puya.PY32F0xx_DFP.1.2.6 https://www.puyasemi.com/uploadfiles/ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h @@ -185,6 +185,8 @@ 0 0 0 + 0 + 0 0 0 8 @@ -351,7 +353,7 @@ 0 0 0 - 0 + 4 @@ -462,11 +464,6 @@ 1 ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_cortex.c - - py32f002b_hal_crc.c - 1 - ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_crc.c - py32f002b_hal_lptim.c 1 diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/Src/main.c b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/Src/main.c index c395535..05dcb15 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/Src/main.c +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/Src/main.c @@ -32,7 +32,7 @@ #include "main.h" /* Private define ------------------------------------------------------------*/ -#define Delay 40*3 +#define Delay 40*4 /* Private variables ---------------------------------------------------------*/ LPTIM_HandleTypeDef LPTIMConf = {0}; @@ -92,7 +92,7 @@ int main(void) BSP_LED_On(LED_GREEN); /* Wait for Button */ - while (BSP_PB_GetState(BUTTON_USER) != 0) + while (BSP_PB_GetState(BUTTON_USER)) { } diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/readme.txt b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/readme.txt index a3dcc66..6300683 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/readme.txt +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_OnceMode_WakeUp_WFI/readme.txt @@ -33,6 +33,14 @@ Example execution steps: PA3 flips at 2.5Hz; ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/EIDE/.eide/eide.json index ac5bf4b..0655602 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -92,9 +90,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -111,14 +109,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -137,6 +138,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -149,10 +158,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/EIDE/Makefile b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/EIDE/Makefile index b2a6f4e..a4af8e4 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/Inc/Config.txt b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/Inc/Config.txt new file mode 100644 index 0000000..a093a04 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/Inc/Config.txt @@ -0,0 +1,29 @@ +[FilePath] +0=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal.c +1=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc.c +2=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc_ex.c +3=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_gpio.c +4=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_pwr.c +5=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_uart.c +6=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_cortex.c +7=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_crc.c +8=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_lptim.c +9=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_exti.c +[FileName] +0=py32f002b_hal.c +1=py32f002b_hal_rcc.c +2=py32f002b_hal_rcc_ex.c +3=py32f002b_hal_gpio.c +4=py32f002b_hal_pwr.c +5=py32f002b_hal_uart.c +6=py32f002b_hal_cortex.c +7=py32f002b_hal_crc.c +8=py32f002b_hal_lptim.c +9=py32f002b_hal_exti.c +[Define] +0=USE_HAL_DRIVER +1=PY32F002Bx5 +[User] +0=../Src/main.c +1=../Src/py32f002b_hal_msp.c +2=../Src/py32f002b_it.c diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/MDK-ARM/Project.uvoptx index 939dcd2..69be8a9 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/MDK-ARM/Project.uvoptx @@ -10,7 +10,7 @@ *.s*; *.src; *.a* *.obj; *.o *.lib - *.txt; *.h; *.inc + *.txt; *.h; *.inc; *.md *.plm *.cpp 0 @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 @@ -401,18 +401,6 @@ 0 0 0 - ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_crc.c - py32f002b_hal_crc.c - 0 - 0 - - - 4 - 15 - 1 - 0 - 0 - 0 ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_lptim.c py32f002b_hal_lptim.c 0 @@ -420,7 +408,7 @@ 4 - 16 + 15 1 0 0 @@ -440,7 +428,7 @@ 0 5 - 17 + 16 5 0 0 diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/MDK-ARM/Project.uvprojx index 2f3fa00..42ad365 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/MDK-ARM/Project.uvprojx @@ -10,18 +10,18 @@ Project 0x4 ARM-ADS - 5060750::V5.06 update 6 (build 750)::ARMCC + 5060960::V5.06 update 7 (build 960)::.\ARMCC 0 PY32F002Bx5 Puya - Puya.PY32F0xx_DFP.1.2.0 + Puya.PY32F0xx_DFP.1.2.6 https://www.puyasemi.com/uploadfiles/ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h @@ -185,6 +185,8 @@ 0 0 0 + 0 + 0 0 0 8 @@ -351,7 +353,7 @@ 0 0 0 - 0 + 4 @@ -462,11 +464,6 @@ 1 ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_cortex.c - - py32f002b_hal_crc.c - 1 - ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_crc.c - py32f002b_hal_lptim.c 1 diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/Src/main.c b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/Src/main.c index 11145df..bff15ad 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/Src/main.c +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/Src/main.c @@ -86,7 +86,7 @@ int main(void) BSP_LED_On(LED_GREEN); /* Wait for Button */ - while (BSP_PB_GetState(BUTTON_USER) != 0) + while (BSP_PB_GetState(BUTTON_USER)) { } diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/readme.txt b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/readme.txt index cac389c..e490e0b 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/readme.txt +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFE/readme.txt @@ -32,6 +32,14 @@ Example execution steps: 4. In the main loop ,the LED flashes at 2.5Hz,PA3 flips at 2.5Hz; ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/EIDE/.eide/eide.json index ac5bf4b..0655602 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -92,9 +90,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -111,14 +109,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -137,6 +138,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -149,10 +158,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/EIDE/Makefile b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/EIDE/Makefile index b2a6f4e..a4af8e4 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/Inc/Config.txt b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/Inc/Config.txt new file mode 100644 index 0000000..a093a04 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/Inc/Config.txt @@ -0,0 +1,29 @@ +[FilePath] +0=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal.c +1=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc.c +2=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc_ex.c +3=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_gpio.c +4=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_pwr.c +5=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_uart.c +6=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_cortex.c +7=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_crc.c +8=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_lptim.c +9=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_exti.c +[FileName] +0=py32f002b_hal.c +1=py32f002b_hal_rcc.c +2=py32f002b_hal_rcc_ex.c +3=py32f002b_hal_gpio.c +4=py32f002b_hal_pwr.c +5=py32f002b_hal_uart.c +6=py32f002b_hal_cortex.c +7=py32f002b_hal_crc.c +8=py32f002b_hal_lptim.c +9=py32f002b_hal_exti.c +[Define] +0=USE_HAL_DRIVER +1=PY32F002Bx5 +[User] +0=../Src/main.c +1=../Src/py32f002b_hal_msp.c +2=../Src/py32f002b_it.c diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/MDK-ARM/Project.uvoptx index 79dee4f..784e989 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/MDK-ARM/Project.uvoptx @@ -10,7 +10,7 @@ *.s*; *.src; *.a* *.obj; *.o *.lib - *.txt; *.h; *.inc + *.txt; *.h; *.inc; *.md *.plm *.cpp 0 @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 @@ -411,18 +411,6 @@ 0 0 0 - ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_crc.c - py32f002b_hal_crc.c - 0 - 0 - - - 4 - 15 - 1 - 0 - 0 - 0 ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_lptim.c py32f002b_hal_lptim.c 0 @@ -430,7 +418,7 @@ 4 - 16 + 15 1 0 0 @@ -450,7 +438,7 @@ 0 5 - 17 + 16 5 0 0 diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/MDK-ARM/Project.uvprojx index 2f3fa00..42ad365 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/MDK-ARM/Project.uvprojx @@ -10,18 +10,18 @@ Project 0x4 ARM-ADS - 5060750::V5.06 update 6 (build 750)::ARMCC + 5060960::V5.06 update 7 (build 960)::.\ARMCC 0 PY32F002Bx5 Puya - Puya.PY32F0xx_DFP.1.2.0 + Puya.PY32F0xx_DFP.1.2.6 https://www.puyasemi.com/uploadfiles/ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h @@ -185,6 +185,8 @@ 0 0 0 + 0 + 0 0 0 8 @@ -351,7 +353,7 @@ 0 0 0 - 0 + 4 @@ -462,11 +464,6 @@ 1 ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_cortex.c - - py32f002b_hal_crc.c - 1 - ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_crc.c - py32f002b_hal_lptim.c 1 diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/Src/main.c b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/Src/main.c index a5a932b..55eefe9 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/Src/main.c +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/Src/main.c @@ -90,7 +90,7 @@ int main(void) BSP_LED_On(LED_GREEN); /* Wait for Button */ - while (BSP_PB_GetState(BUTTON_USER) != 0) + while (BSP_PB_GetState(BUTTON_USER)) { } diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/readme.txt b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/readme.txt index 7a05109..b40c295 100644 --- a/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/readme.txt +++ b/Projects/PY32F002B-STK/Example/LPTIM/LPTIM_Wakeup_WFI/readme.txt @@ -33,6 +33,14 @@ Example execution steps: PA3 flips at 2.5Hz; ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/EIDE/.eide/eide.json index dcfcb26..0d642e3 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -83,9 +81,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -102,14 +100,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -128,6 +129,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -140,10 +149,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/EIDE/Makefile b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/EIDE/Makefile index 6f54cc1..7400699 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/MDK-ARM/Project.uvoptx index f8c2ff3..ab12336 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/MDK-ARM/Project.uvprojx index 68cd04e..fb635db 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/Src/main.c b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/Src/main.c index dc10890..d4ba7a8 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/Src/main.c +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/Src/main.c @@ -64,7 +64,7 @@ int main(void) BSP_LED_On(LED_GREEN); /*Wait for the button to be pressed*/ - while(BSP_PB_GetState(BUTTON_KEY) == 1); + while(BSP_PB_GetState(BUTTON_KEY)); /*Turn off LED */ BSP_LED_Off(LED_GREEN); diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/readme.txt b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/readme.txt index 8c43ded..f62f621 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/readme.txt +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFE/readme.txt @@ -34,9 +34,13 @@ Example execution steps: 4.The LED flips at 200ms intervals. ================================================================================ 注意事项: -1,演示此样例功能时需要断开swd连接线并重新上电,因为默认情况下,仿真器会把 +1.演示此样例功能时需要断开swd连接线并重新上电,因为默认情况下,仿真器会把 DBGMCU_CR.DBG_STOP置位。 -2,注意关闭systick中断,防止该中断唤醒MCU。 +2.注意关闭systick中断,防止该中断唤醒MCU。 +3.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: 1.To demonstrate this sample function, it is necessary to disconnect the SWD @@ -44,4 +48,8 @@ cable and power it back on, as by default, the emulator will reset the DBGMCU_CR.DBG_STOP position. 2.Pay attention to turning off the systick interrupt to prevent it from waking up the MCU. +3.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/EIDE/.eide/eide.json index dcfcb26..0d642e3 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -83,9 +81,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -102,14 +100,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -128,6 +129,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -140,10 +149,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/EIDE/Makefile b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/EIDE/Makefile index 6f54cc1..7400699 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/MDK-ARM/Project.uvoptx index f8c2ff3..ab12336 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/MDK-ARM/Project.uvprojx index 68cd04e..fb635db 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/Src/main.c b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/Src/main.c index 99f9aba..ad799b2 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/Src/main.c +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/Src/main.c @@ -64,7 +64,7 @@ int main(void) BSP_LED_On(LED_GREEN); /*Wait for the button to be pressed*/ - while(BSP_PB_GetState(BUTTON_KEY) == 1); + while(BSP_PB_GetState(BUTTON_KEY)); /* Turn off LED */ BSP_LED_Off(LED_GREEN); diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/readme.txt b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/readme.txt index 37cfe90..923f5a4 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/readme.txt +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_SLEEP_WFI/readme.txt @@ -34,9 +34,13 @@ sleep mode; 4.The LED flips at 200ms intervals. ================================================================================ 注意事项: -1,演示此样例功能时需要断开swd连接线并重新上电,因为默认情况下,仿真器会把 +1.演示此样例功能时需要断开swd连接线并重新上电,因为默认情况下,仿真器会把 DBGMCU_CR.DBG_STOP置位。 -2,注意关闭systick中断,防止该中断唤醒MCU。 +2.注意关闭systick中断,防止该中断唤醒MCU。 +3.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: 1.To demonstrate this sample function, it is necessary to disconnect the SWD @@ -44,4 +48,8 @@ cable and power it back on, as by default, the emulator will reset the DBGMCU_CR.DBG_STOP position. 2.Pay attention to turning off the systick interrupt to prevent it from waking up the MCU. +3.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/EIDE/.eide/eide.json index dcfcb26..0d642e3 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -83,9 +81,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -102,14 +100,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -128,6 +129,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -140,10 +149,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/EIDE/Makefile b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/EIDE/Makefile index 6f54cc1..7400699 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/MDK-ARM/Project.uvoptx index f8c2ff3..ab12336 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/MDK-ARM/Project.uvprojx index 68cd04e..fb635db 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/Src/main.c b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/Src/main.c index 503b514..975cadf 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/Src/main.c +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/Src/main.c @@ -64,7 +64,7 @@ int main(void) BSP_LED_On(LED_GREEN); /*Wait for the button to be pressed*/ - while(BSP_PB_GetState(BUTTON_KEY) == 1); + while(BSP_PB_GetState(BUTTON_KEY)); /* Turn off LED */ BSP_LED_Off(LED_GREEN); diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/readme.txt b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/readme.txt index e8d36a6..a56f12e 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/readme.txt +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFE/readme.txt @@ -34,9 +34,13 @@ stop mode; 4.The LED flips at 200ms intervals. ================================================================================ 注意事项: -1,演示此样例功能时需要断开swd连接线并重新上电,因为默认情况下,仿真器会把 +1.演示此样例功能时需要断开swd连接线并重新上电,因为默认情况下,仿真器会把 DBGMCU_CR.DBG_STOP置位。 -2,注意关闭systick中断,防止该中断唤醒MCU。 +2.注意关闭systick中断,防止该中断唤醒MCU。 +3.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: 1.To demonstrate this sample function, it is necessary to disconnect the SWD @@ -44,4 +48,8 @@ cable and power it back on, as by default, the emulator will reset the DBGMCU_CR.DBG_STOP position. 2.Pay attention to turning off the systick interrupt to prevent it from waking up the MCU. +3.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/EIDE/.eide/eide.json index dcfcb26..0d642e3 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -83,9 +81,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -102,14 +100,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -128,6 +129,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -140,10 +149,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/EIDE/Makefile b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/EIDE/Makefile index 6f54cc1..7400699 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/MDK-ARM/Project.uvoptx index f8c2ff3..ab12336 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/MDK-ARM/Project.uvprojx index 68cd04e..fb635db 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/Src/main.c b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/Src/main.c index 89d1ef9..728e266 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/Src/main.c +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/Src/main.c @@ -64,7 +64,7 @@ int main(void) BSP_LED_On(LED_GREEN); /*Wait for the button to be pressed*/ - while(BSP_PB_GetState(BUTTON_KEY) == 1); + while(BSP_PB_GetState(BUTTON_KEY)); /* Turn off LED */ BSP_LED_Off(LED_GREEN); diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/readme.txt b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/readme.txt index 7612afe..d617fb7 100644 --- a/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/readme.txt +++ b/Projects/PY32F002B-STK/Example/PWR/PWR_STOP_WFI/readme.txt @@ -34,9 +34,13 @@ stop mode; 4.The LED flips at 200ms intervals. ================================================================================ 注意事项: -1,演示此样例功能时需要断开swd连接线并重新上电,因为默认情况下,仿真器会把 +1.演示此样例功能时需要断开swd连接线并重新上电,因为默认情况下,仿真器会把 DBGMCU_CR.DBG_STOP置位。 -2,注意关闭systick中断,防止该中断唤醒MCU。 +2.注意关闭systick中断,防止该中断唤醒MCU。 +3.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: 1.To demonstrate this sample function, it is necessary to disconnect the SWD @@ -44,4 +48,8 @@ cable and power it back on, as by default, the emulator will reset the DBGMCU_CR.DBG_STOP position. 2.Pay attention to turning off the systick interrupt to prevent it from waking up the MCU. +3.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/PY32F002B_HAL Sample Description.pdf b/Projects/PY32F002B-STK/Example/PY32F002B_HAL Sample Description.pdf index ec30834..979f50c 100644 Binary files a/Projects/PY32F002B-STK/Example/PY32F002B_HAL Sample Description.pdf and b/Projects/PY32F002B-STK/Example/PY32F002B_HAL Sample Description.pdf differ diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/EIDE/.eide/eide.json index dcfcb26..0d642e3 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -83,9 +81,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -102,14 +100,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -128,6 +129,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -140,10 +149,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/EIDE/Makefile b/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/EIDE/Makefile index 6f54cc1..7400699 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/MDK-ARM/Project.uvoptx index 4cb01ac..0b4733f 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/MDK-ARM/Project.uvprojx index 68cd04e..fb635db 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/Src/main.c b/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/Src/main.c index 058ae3c..afdd106 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/Src/main.c +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/Src/main.c @@ -54,7 +54,7 @@ int main(void) HAL_RCC_MCOConfig(RCC_MCO1, RCC_MCOSOURCE_SYSCLK, RCC_MCODIV_1); /* Wait for the button to be pressed */ - while(BSP_PB_GetState(BUTTON_KEY) == 1); + while(BSP_PB_GetState(BUTTON_KEY)); /* System clock configuration */ APP_SystemClockConfig(); diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/readme.txt b/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/readme.txt index 8a389c9..1f4dcd1 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/readme.txt +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_HSEBypassOutput/readme.txt @@ -34,7 +34,15 @@ Example execution steps: 4.PA07 output HSE waveform (24MHz) can be observed by an oscilloscope. ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/EIDE/.eide/eide.json index dcfcb26..0d642e3 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -83,9 +81,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -102,14 +100,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -128,6 +129,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -140,10 +149,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/EIDE/Makefile b/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/EIDE/Makefile index 6f54cc1..7400699 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/MDK-ARM/Project.uvoptx index 4cb01ac..38a7a96 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/MDK-ARM/Project.uvoptx @@ -10,7 +10,7 @@ *.s*; *.src; *.a* *.obj; *.o *.lib - *.txt; *.h; *.inc + *.txt; *.h; *.inc; *.md *.plm *.cpp 0 @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"" -O206 -S0 -C0 -P00000000 -N00("") -D00(00000000) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/MDK-ARM/Project.uvprojx index 68cd04e..8c20e74 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/MDK-ARM/Project.uvprojx @@ -10,18 +10,18 @@ Project 0x4 ARM-ADS - 5060750::V5.06 update 6 (build 750)::ARMCC + 5060960::V5.06 update 7 (build 960)::.\ARMCC 0 PY32F002Bx5 Puya - Puya.PY32F0xx_DFP.1.2.0 + Puya.PY32F0xx_DFP.1.2.6 https://www.puyasemi.com/uploadfiles/ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h @@ -138,7 +138,7 @@ 1 BIN\UL2CM3.DLL - + "" () @@ -185,6 +185,8 @@ 0 0 0 + 0 + 0 0 0 8 @@ -351,7 +353,7 @@ 0 0 0 - 0 + 4 diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/readme.txt b/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/readme.txt index ac57d3e..edc049f 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/readme.txt +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_HSIOutput/readme.txt @@ -31,7 +31,15 @@ Example execution steps: it matches the configured HSI frequency. ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/EIDE/.eide/eide.json index dcfcb26..0d642e3 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -83,9 +81,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -102,14 +100,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -128,6 +129,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -140,10 +149,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/EIDE/Makefile b/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/EIDE/Makefile index 6f54cc1..7400699 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/MDK-ARM/Project.uvoptx index 4cb01ac..0b4733f 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/MDK-ARM/Project.uvprojx index 68cd04e..fb635db 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/Src/main.c b/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/Src/main.c index 95bead0..e17e68e 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/Src/main.c +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/Src/main.c @@ -51,7 +51,7 @@ int main(void) BSP_PB_Init(BUTTON_KEY, BUTTON_MODE_GPIO); /* Wait for the button to be pressed */ - while (BSP_PB_GetState(BUTTON_KEY) == 1) + while (BSP_PB_GetState(BUTTON_KEY)) { } diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/readme.txt b/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/readme.txt index 77b2632..0b4dcfd 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/readme.txt +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_LSEOutput/readme.txt @@ -32,6 +32,14 @@ Example execution steps: it matches the configured LSE frequency. ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/EIDE/.eide/eide.json index dcfcb26..0d642e3 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -83,9 +81,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -102,14 +100,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -128,6 +129,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -140,10 +149,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/EIDE/Makefile b/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/EIDE/Makefile index 6f54cc1..7400699 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/MDK-ARM/Project.uvoptx index f8c2ff3..ab12336 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/MDK-ARM/Project.uvprojx index 68cd04e..fb635db 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/Src/main.c b/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/Src/main.c index 792aa08..8f33e9c 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/Src/main.c +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/Src/main.c @@ -51,7 +51,7 @@ int main(void) BSP_PB_Init(BUTTON_KEY, BUTTON_MODE_GPIO); /* Wait for the button to be pressed */ - while (BSP_PB_GetState(BUTTON_KEY) == 1) + while (BSP_PB_GetState(BUTTON_KEY)) { } diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/readme.txt b/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/readme.txt index a94d3fd..39a588d 100644 --- a/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/readme.txt +++ b/Projects/PY32F002B-STK/Example/RCC/RCC_LSIOutput/readme.txt @@ -32,6 +32,14 @@ Example execution steps: if it matches the configured LSI frequency. ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/.clang-format b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/.clang-format new file mode 100644 index 0000000..ecc57c4 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/.clang-format @@ -0,0 +1,38 @@ +--- +BasedOnStyle: Microsoft +Language: Cpp + +################################### +# indent conf +################################### + +UseTab: Never +IndentWidth: 4 +TabWidth: 4 +ColumnLimit: 0 +AccessModifierOffset: -4 +NamespaceIndentation: All +FixNamespaceComments: false +BreakBeforeBraces: Linux + +################################### +# other styles +################################### + +# +# for more conf, you can ref: https://clang.llvm.org/docs/ClangFormatStyleOptions.html +# + +AllowShortIfStatementsOnASingleLine: true + +AllowShortLoopsOnASingleLine: true + +AllowShortBlocksOnASingleLine: true + +IndentCaseLabels: true + +SortIncludes: false + +AlignConsecutiveMacros: AcrossEmptyLines + +AlignConsecutiveAssignments: Consecutive diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/.eide/eide.json new file mode 100644 index 0000000..013eabf --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/.eide/eide.json @@ -0,0 +1,191 @@ +{ + "name": "Project", + "type": "ARM", + "dependenceList": [], + "srcDirs": [], + "virtualFolder": { + "name": "", + "files": [], + "folders": [ + { + "name": "BSP", + "files": [ + { + "path": "../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit/py32f002bxx_Start_Kit.c" + } + ], + "folders": [] + }, + { + "name": "Common", + "files": [ + { + "path": "../Src/system_py32f002b.c" + }, + { + "path": "startup_py32f002bxx.s" + } + ], + "folders": [] + }, + { + "name": "Doc", + "files": [ + { + "path": "../readme.txt" + } + ], + "folders": [] + }, + { + "name": "PY32F002B_HAL_Driver", + "files":[ + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc_ex.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_gpio.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_pwr.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_uart.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_cortex.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_spi.c" + } + ], + "folders": [] + }, + { + "name": "User", + "files":[ + { + "path":"../Src/main.c" + }, + { + "path":"../Src/py32f002b_hal_msp.c" + }, + { + "path":"../Src/py32f002b_it.c" + } + ], + "folders": [] + } + ] + }, + "outDir": ".", + "deviceName": "PY32F002Bx5", + "packDir": null, + "miscInfo": { + "uid": "36bcf0031e18a3008bbdaa90a96a7987" + }, + "targets": { + "Project": { + "excludeList": [], + "toolchain": "GCC", + "compileConfig": { + "cpuType": "Cortex-M0+", + "floatingPointHardware": "none", + "scatterFilePath": "py32f002bx5.ld", + "useCustomScatterFile": true, + "storageLayout": { + "RAM": [], + "ROM": [] + }, + "options": "null", + "archExtensions": "" + }, + "uploader": "pyOCD", + "uploadConfig": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" + }, + "uploadConfigMap": { + "JLink": { + "bin": "", + "baseAddr": "", + "cpuInfo": { + "vendor": "Puya", + "cpuName": "PY32F002Bx5" + }, + "proType": 1, + "speed": 1000, + "otherCmds": "" + }, + "OpenOCD": { + "bin": "", + "target": "py32f002b", + "interface": "cmsis-dap", + "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" + } + }, + "custom_dep": { + "name": "default", + "incList": [ + "../Inc", + "../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit", + "../../../../../../Drivers/CMSIS/Include", + "../../../../../../Drivers/CMSIS/Device/PY32F0xx/Include", + "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" + ], + "libList": [], + "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } + } + } + }, + "version": "3.6" +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/.gitignore new file mode 100644 index 0000000..8519ec6 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/.gitignore @@ -0,0 +1,15 @@ +# dot files +# /.vscode/launch.json +/.settings +/.eide/log +/.eide.usr.ctx.json + +# project out +/build +/bin +/obj +/out + +# eide template +*.ept +*.eide-template diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/.vscode/settings.json b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/.vscode/settings.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/.vscode/settings.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/.vscode/tasks.json new file mode 100644 index 0000000..854f87f --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/.vscode/tasks.json @@ -0,0 +1,72 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "type": "shell", + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" + }, + { + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" + }, + { + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/Makefile b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/Makefile new file mode 100644 index 0000000..026de16 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/Makefile @@ -0,0 +1,184 @@ +########################################################################################################################## +# File automatically-generated by tool: [projectgenerator] version: [3.17.1] date: [Tue Dec 06 16:10:07 CST 2022] +########################################################################################################################## + +# ------------------------------------------------ +# Generic Makefile (based on gcc) +# +# ChangeLog : +# 2017-02-10 - Several enhancements + project update mode +# 2015-07-22 - first version +# ------------------------------------------------ + +###################################### +# target +###################################### +TARGET = Project + + +###################################### +# building variables +###################################### +# debug build? +DEBUG = 1 +# optimization +OPT = -Og + + +####################################### +# paths +####################################### +# Build path +BUILD_DIR = Project + +###################################### +# source +###################################### +# C sources +C_SOURCES = \ ../Src/main.c \ +../Src/py32f002b_hal_msp.c \ +../Src/py32f002b_it.c \ +../Src/system_py32f002b.c \ +../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit/py32f002bxx_Start_Kit.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc_ex.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_gpio.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_pwr.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_uart.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_cortex.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_spi.c + + +# ASM sources +ASM_SOURCES = \ +startup_py32f002bxx.s + + +####################################### +# binaries +####################################### +PREFIX = arm-none-eabi- +# The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx) +# either it can be added to the PATH environment variable. +ifdef GCC_PATH +CC = $(GCC_PATH)/$(PREFIX)gcc +AS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp +CP = $(GCC_PATH)/$(PREFIX)objcopy +SZ = $(GCC_PATH)/$(PREFIX)size +else +CC = $(PREFIX)gcc +AS = $(PREFIX)gcc -x assembler-with-cpp +CP = $(PREFIX)objcopy +SZ = $(PREFIX)size +endif +HEX = $(CP) -O ihex +BIN = $(CP) -O binary -S + +####################################### +# CFLAGS +####################################### +# cpu +CPU = -mcpu=cortex-m0plus + +# fpu +# NONE for Cortex-M0/M0+/M3 + +# float-abi + + +# mcu +MCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI) + +# macros for gcc +# AS defines +AS_DEFS = + +# C defines +C_DEFS = \ +-DUSE_HAL_DRIVER\ +-DPY32F002Bx5 + + +# AS includes +AS_INCLUDES = + +# C includes +C_INCLUDES = \ +-I../Inc \ +-I../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit \ +-I../../../../../../Drivers/PY32F002B_HAL_Driver/Inc \ +-I../../../../../../Drivers/CMSIS/Device/PY32F0xx/Include \ +-I../../../../../../Drivers/CMSIS/Include + + +# compile gcc flags +ASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections + +CFLAGS += $(MCU) $(C_DEFS) $(C_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections + +ifeq ($(DEBUG), 1) +CFLAGS += -g -gdwarf-2 +endif + + +# Generate dependency information +CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)" + + +####################################### +# LDFLAGS +####################################### +# link script +LDSCRIPT = py32f002bx5.ld + +# libraries +LIBS = -lc -lm -lnosys +LIBDIR = +LDFLAGS = $(MCU) -specs=nano.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections + +# default action: build all +all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin + + +####################################### +# build the application +####################################### +# list of objects +OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o))) +vpath %.c $(sort $(dir $(C_SOURCES))) +# list of ASM program objects +OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o))) +vpath %.s $(sort $(dir $(ASM_SOURCES))) + +$(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR) + $(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@ + +$(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR) + $(AS) -c $(CFLAGS) $< -o $@ + +$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile + $(CC) $(OBJECTS) $(LDFLAGS) -o $@ + $(SZ) $@ + +$(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf | $(BUILD_DIR) + $(HEX) $< $@ + +$(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR) + $(BIN) $< $@ + +$(BUILD_DIR): + mkdir $@ + +####################################### +# clean up +####################################### +clean: + -rm -fR $(BUILD_DIR) + +####################################### +# dependencies +####################################### +-include $(wildcard $(BUILD_DIR)/*.d) + +# *** EOF *** \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/Project.code-workspace b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/Project.code-workspace new file mode 100644 index 0000000..f200f34 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/Project.code-workspace @@ -0,0 +1,44 @@ +{ + "folders": [ + { + "path": "." + } + ], + "settings": { + "files.autoGuessEncoding": true, + "C_Cpp.default.configurationProvider": "cl.eide", + "C_Cpp.errorSquiggles": "disabled", + "files.associations": { + ".eideignore": "ignore", + "*.a51": "a51", + "*.h": "c", + "*.c": "c", + "*.hxx": "cpp", + "*.hpp": "cpp", + "*.c++": "cpp", + "*.cpp": "cpp", + "*.cxx": "cpp", + "*.cc": "cpp" + }, + "[yaml]": { + "editor.insertSpaces": true, + "editor.tabSize": 4, + "editor.autoIndent": "advanced" + } + }, + "extensions": { + "recommendations": [ + "cl.eide", + "keroc.hex-fmt", + "xiaoyongdong.srecord", + "hars.cppsnippets", + "zixuanwang.linkerscript", + "redhat.vscode-yaml", + "IBM.output-colorizer", + "cschlosser.doxdocgen", + "ms-vscode.vscode-serial-monitor", + "dan-c-underwood.arm", + "marus25.cortex-debug" + ] + } +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/py32f002bx5.ld b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/py32f002bx5.ld new file mode 100644 index 0000000..0b99c54 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/py32f002bx5.ld @@ -0,0 +1,189 @@ +/* +****************************************************************************** +** + +** File : LinkerScript.ld +** +** Author : Puya_HC +** +** Abstract : Linker script for PY32F002Bx5 series +** 24Kbytes FLASH and 3Kbytes RAM +** +** Set heap size, stack size and stack location according +** to application requirements. +** +** Set memory bank area and size if external memory is used. +** +** Target : Puya PY32 +** +** Distribution: The file is distributed “as is,” without any warranty +** of any kind. +** +***************************************************************************** +** @attention +** +**

© COPYRIGHT(c) 2019 Puya Semiconductor

+** +** Redistribution and use in source and binary forms, with or without modification, +** are permitted provided that the following conditions are met: +** 1. Redistributions of source code must retain the above copyright notice, +** this list of conditions and the following disclaimer. +** 2. Redistributions in binary form must reproduce the above copyright notice, +** this list of conditions and the following disclaimer in the documentation +** and/or other materials provided with the distribution. +** 3. Neither the name of Puya Semiconductor nor the names of its contributors +** may be used to endorse or promote products derived from this software +** without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +** +***************************************************************************** +*/ + +/* Entry Point */ +ENTRY(Reset_Handler) + +/* Highest address of the user mode stack */ +_estack = ORIGIN(RAM) + LENGTH(RAM); /* end of RAM */ +/* Generate a link error if heap and stack don't fit into RAM */ +_Min_Heap_Size = 0x000; /* required amount of heap */ +_Min_Stack_Size = 0x400; /* required amount of stack */ + +/* Specify the memory areas */ +MEMORY +{ +RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 3K +FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 24K +} + +/* Define output sections */ +SECTIONS +{ + /* The startup code goes first into FLASH */ + .isr_vector : + { + . = ALIGN(4); + KEEP(*(.isr_vector)) /* Startup code */ + . = ALIGN(4); + } >FLASH + + /* The program code and other data goes into FLASH */ + .text : + { + . = ALIGN(4); + *(.text) /* .text sections (code) */ + *(.text*) /* .text* sections (code) */ + *(.glue_7) /* glue arm to thumb code */ + *(.glue_7t) /* glue thumb to arm code */ + *(.eh_frame) + + KEEP (*(.init)) + KEEP (*(.fini)) + + . = ALIGN(4); + _etext = .; /* define a global symbols at end of code */ + } >FLASH + + /* Constant data goes into FLASH */ + .rodata : + { + . = ALIGN(4); + *(.rodata) /* .rodata sections (constants, strings, etc.) */ + *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ + . = ALIGN(4); + } >FLASH + + .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH + .ARM : { + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + } >FLASH + + .preinit_array : + { + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array*)) + PROVIDE_HIDDEN (__preinit_array_end = .); + } >FLASH + .init_array : + { + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array*)) + PROVIDE_HIDDEN (__init_array_end = .); + } >FLASH + .fini_array : + { + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(SORT(.fini_array.*))) + KEEP (*(.fini_array*)) + PROVIDE_HIDDEN (__fini_array_end = .); + } >FLASH + + /* used by the startup to initialize data */ + _sidata = LOADADDR(.data); + + /* Initialized data sections goes into RAM, load LMA copy after code */ + .data : + { + . = ALIGN(4); + _sdata = .; /* create a global symbol at data start */ + *(.data) /* .data sections */ + *(.data*) /* .data* sections */ + + . = ALIGN(4); + _edata = .; /* define a global symbol at data end */ + } >RAM AT> FLASH + + + /* Uninitialized data section */ + . = ALIGN(4); + .bss : + { + /* This is used by the startup in order to initialize the .bss secion */ + _sbss = .; /* define a global symbol at bss start */ + __bss_start__ = _sbss; + *(.bss) + *(.bss*) + *(COMMON) + + . = ALIGN(4); + _ebss = .; /* define a global symbol at bss end */ + __bss_end__ = _ebss; + } >RAM + + /* User_heap_stack section, used to check that there is enough RAM left */ + ._user_heap_stack : + { + . = ALIGN(8); + PROVIDE ( end = . ); + PROVIDE ( _end = . ); + . = . + _Min_Heap_Size; + . = . + _Min_Stack_Size; + . = ALIGN(8); + } >RAM + + + + /* Remove information from the standard libraries */ + /DISCARD/ : + { + libc.a ( * ) + libm.a ( * ) + libgcc.a ( * ) + } + + .ARM.attributes 0 : { *(.ARM.attributes) } +} + + diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/startup_py32f002bxx.s b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/startup_py32f002bxx.s new file mode 100644 index 0000000..44eda49 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EIDE/startup_py32f002bxx.s @@ -0,0 +1,254 @@ +/** + ****************************************************************************** + * @file startup_py32f002bxx.s + * @author MCD Application Team + * @brief PY32F002Bxx devices vector table GCC toolchain. + * This module performs: + * - Set the initial SP + * - Set the initial PC == Reset_Handler, + * - Set the vector table entries with the exceptions ISR address + * - Branches to main in the C library (which eventually + * calls main()). + * After Reset the Cortex-M0+ processor is in Thread mode, + * priority is Privileged, and the Stack is set to Main. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 + * + ****************************************************************************** + */ + +.syntax unified +.cpu cortex-m0plus +.fpu softvfp +.thumb + +.global g_pfnVectors +.global Default_Handler + +/* start address for the initialization values of the .data section. +defined in linker script */ +.word _sidata +/* start address for the .data section. defined in linker script */ +.word _sdata +/* end address for the .data section. defined in linker script */ +.word _edata +/* start address for the .bss section. defined in linker script */ +.word _sbss +/* end address for the .bss section. defined in linker script */ +.word _ebss + +/** + * @brief This is the code that gets called when the processor first + * starts execution following a reset event. Only the absolutely + * necessary set is performed, after which the application + * supplied main() routine is called. + * @param None + * @retval None +*/ + + .section .text.Reset_Handler + .weak Reset_Handler + .type Reset_Handler, %function +Reset_Handler: + ldr r0, =_estack + mov sp, r0 /* set stack pointer */ + +/* Call the clock system initialization function.*/ + bl SystemInit + +/* Copy the data segment initializers from flash to SRAM */ + ldr r0, =_sdata + ldr r1, =_edata + ldr r2, =_sidata + movs r3, #0 + b LoopCopyDataInit + +CopyDataInit: + ldr r4, [r2, r3] + str r4, [r0, r3] + adds r3, r3, #4 + +LoopCopyDataInit: + adds r4, r0, r3 + cmp r4, r1 + bcc CopyDataInit + +/* Zero fill the bss segment. */ + ldr r2, =_sbss + ldr r4, =_ebss + movs r3, #0 + b LoopFillZerobss + +FillZerobss: + str r3, [r2] + adds r2, r2, #4 + +LoopFillZerobss: + cmp r2, r4 + bcc FillZerobss + +/* Call static constructors */ + bl __libc_init_array +/* Call the application s entry point.*/ + bl main + +LoopForever: + b LoopForever + +.size Reset_Handler, .-Reset_Handler + +/** + * @brief This is the code that gets called when the processor receives an + * unexpected interrupt. This simply enters an infinite loop, preserving + * the system state for examination by a debugger. + * + * @param None + * @retval None +*/ + .section .text.Default_Handler,"ax",%progbits +Default_Handler: +Infinite_Loop: + b Infinite_Loop + .size Default_Handler, .-Default_Handler + +/****************************************************************************** +* +* The minimal vector table for a Cortex M0. Note that the proper constructs +* must be placed on this to ensure that it ends up at physical address +* 0x0000.0000. +* +******************************************************************************/ + .section .isr_vector,"a",%progbits + .type g_pfnVectors, %object + .size g_pfnVectors, .-g_pfnVectors + +g_pfnVectors: + .word _estack + .word Reset_Handler + .word NMI_Handler + .word HardFault_Handler + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word SVC_Handler + .word 0 + .word 0 + .word PendSV_Handler + .word SysTick_Handler + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word FLASH_IRQHandler /* FLASH */ + .word RCC_IRQHandler /* RCC */ + .word EXTI0_1_IRQHandler /* EXTI Line 0 and 1 */ + .word EXTI2_3_IRQHandler /* EXTI Line 2 and 3 */ + .word EXTI4_15_IRQHandler /* EXTI Line 4 to 15 */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word ADC_COMP_IRQHandler /* ADC and COMP1 */ + .word TIM1_BRK_UP_TRG_COM_IRQHandler /* TIM1 Break, Update, Trigger and Commutation */ + .word TIM1_CC_IRQHandler /* TIM1 Capture Compare */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word LPTIM1_IRQHandler /* LPTIM1 */ + .word 0 /* reserved */ + .word TIM14_IRQHandler /* TIM14 */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word I2C1_IRQHandler /* I2C1 */ + .word 0 /* reserved */ + .word SPI1_IRQHandler /* SPI1 */ + .word 0 /* reserved */ + .word USART1_IRQHandler /* USART1 */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + +/******************************************************************************* +* +* Provide weak aliases for each Exception handler to the Default_Handler. +* As they are weak aliases, any function with the same name will override +* this definition. +* +*******************************************************************************/ + + .weak NMI_Handler + .thumb_set NMI_Handler,Default_Handler + + .weak HardFault_Handler + .thumb_set HardFault_Handler,Default_Handler + + .weak SVC_Handler + .thumb_set SVC_Handler,Default_Handler + + .weak PendSV_Handler + .thumb_set PendSV_Handler,Default_Handler + + .weak SysTick_Handler + .thumb_set SysTick_Handler,Default_Handler + + .weak FLASH_IRQHandler + .thumb_set FLASH_IRQHandler,Default_Handler + + .weak RCC_IRQHandler + .thumb_set RCC_IRQHandler,Default_Handler + + .weak EXTI0_1_IRQHandler + .thumb_set EXTI0_1_IRQHandler,Default_Handler + + .weak EXTI2_3_IRQHandler + .thumb_set EXTI2_3_IRQHandler,Default_Handler + + .weak EXTI4_15_IRQHandler + .thumb_set EXTI4_15_IRQHandler,Default_Handler + + .weak ADC_COMP_IRQHandler + .thumb_set ADC_COMP_IRQHandler,Default_Handler + + .weak TIM1_BRK_UP_TRG_COM_IRQHandler + .thumb_set TIM1_BRK_UP_TRG_COM_IRQHandler,Default_Handler + + .weak TIM1_CC_IRQHandler + .thumb_set TIM1_CC_IRQHandler,Default_Handler + + .weak LPTIM1_IRQHandler + .thumb_set LPTIM1_IRQHandler,Default_Handler + + .weak TIM14_IRQHandler + .thumb_set TIM14_IRQHandler,Default_Handler + + .weak I2C1_IRQHandler + .thumb_set I2C1_IRQHandler,Default_Handler + + .weak SPI1_IRQHandler + .thumb_set SPI1_IRQHandler,Default_Handler + + .weak USART1_IRQHandler + .thumb_set USART1_IRQHandler,Default_Handler diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EWARM/Project.ewd b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EWARM/Project.ewd new file mode 100644 index 0000000..4b12306 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EWARM/Project.ewd @@ -0,0 +1,1534 @@ + + + 3 + + Project + + ARM + + 1 + + C-SPY + 2 + + 32 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + CADI_ID + 2 + + 0 + 1 + 1 + + + + + + + + + CMSISDAP_ID + 2 + + 4 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IJET_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JLINK_ID + 2 + + 16 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 3 + 1 + 1 + + + + + + + + + + + + + NULINK_ID + 2 + + 0 + 1 + 1 + + + + + + + PEMICRO_ID + 2 + + 3 + 1 + 1 + + + + + + + + STLINK_ID + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + TIFET_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + + + XDS100_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9BE.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EWARM/Project.ewp b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EWARM/Project.ewp new file mode 100644 index 0000000..d38f983 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EWARM/Project.ewp @@ -0,0 +1,1135 @@ + + + 3 + + Project + + ARM + + 1 + + General + 3 + + 34 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 37 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 11 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + 1 + inputOutputBased + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 26 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + + Doc + + $PROJ_DIR$\..\readme.txt + + + + Drivers + + BSP + + PY32F002Bxx_Start_Kit + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\PY32F002Bxx_Start_Kit\py32f002bxx_Start_Kit.c + + + + + CMSIS + + $PROJ_DIR$\..\Src\system_py32f002b.c + + + + PY32F002B_HAL_Driver + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_rcc.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_rcc_ex.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_gpio.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_pwr.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_uart.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_cortex.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_spi.c + + + + + Example + + EWARM + + $PROJ_DIR$\startup_py32f002bxx.s + + + + User + + $PROJ_DIR$\..\Src\main.c + + + $PROJ_DIR$\..\Src\py32f002b_hal_msp.c + + + $PROJ_DIR$\..\Src\py32f002b_it.c + + + + diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EWARM/Project.eww b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EWARM/Project.eww new file mode 100644 index 0000000..46d9d41 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EWARM/Project.eww @@ -0,0 +1,7 @@ + + + + $WS_DIR$\Project.ewp + + + diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EWARM/py32f002bx5_flash.icf b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EWARM/py32f002bx5_flash.icf new file mode 100644 index 0000000..6146162 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EWARM/py32f002bx5_flash.icf @@ -0,0 +1,33 @@ +/*###ICF### Section handled by ICF editor, don't touch! ****/ +/*-Editor annotation file-*/ +/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ +/*-Specials-*/ +define symbol __ICFEDIT_intvec_start__ = 0x08000000; +/*-Memory Regions-*/ +define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; +define symbol __ICFEDIT_region_ROM_end__ = 0x08005FFF; +define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; +define symbol __ICFEDIT_region_RAM_end__ = 0x20000BFF; +/*-Sizes-*/ +define symbol __ICFEDIT_size_cstack__ = 0x00000400; +define symbol __ICFEDIT_size_heap__ = 0x00000000; +/**** End of ICF editor section. ###ICF###*/ + +define memory mem with size = 4G; +define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; +define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; + +define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; +define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; + +initialize by copy { readwrite }; +do not initialize { section .noinit }; + +place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; + +place in ROM_region { readonly }; +place in RAM_region { readwrite, + block CSTACK, block HEAP }; + +export symbol __ICFEDIT_region_RAM_start__; +export symbol __ICFEDIT_region_RAM_end__; \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EWARM/startup_py32f002bxx.s b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EWARM/startup_py32f002bxx.s new file mode 100644 index 0000000..98df065 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/EWARM/startup_py32f002bxx.s @@ -0,0 +1,222 @@ +;****************************************************************************** +;* @file startup_py32f002bxx.s +;* @author MCU Application Team +;* @brief PY32F002Bxx devices vector table for EWARM toolchain. +;* This module performs: +;* - Set the initial SP +;* - Set the initial PC == __iar_program_start +;* - Set the vector table entries with the exceptions ISR address +;* - Branches to __main in the C library (which eventually +;* calls main()). +;* After Reset the CortexM0+ processor is in Thread mode, +;* priority is Privileged, and the Stack is set to Main. +;****************************************************************************** +;* @attention +;* +;*

© Copyright (c) 2023 Puya Semiconductor Co. +;* All rights reserved.

+;* +;* This software component is licensed by Puya 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 +;* +;****************************************************************************** +;* @attention +;* +;*

© Copyright (c) 2016 STMicroelectronics. +;* All rights reserved.

+;* +;* 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 +;* +;****************************************************************************** +; +; The modules in this file are included in the libraries, and may be replaced +; by any user-defined modules that define the PUBLIC symbol _program_start or +; a user defined start symbol. +; To override the cstartup defined in the library, simply add your modified +; version to the workbench project. +; +; The vector table is normally located at address 0. +; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. +; The name "__vector_table" has special meaning for C-SPY: +; it is where the SP start value is found, and the NVIC vector +; table register (VTOR) is initialized to this address if != 0. +; +; Cortex-M version +; + + MODULE ?cstartup + + ;; Forward declaration of sections. + SECTION CSTACK:DATA:NOROOT(3) + + SECTION .intvec:CODE:NOROOT(2) + + EXTERN __iar_program_start + EXTERN SystemInit + PUBLIC __vector_table + + DATA +__vector_table + DCD sfe(CSTACK) ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD 0 ; 0Reserved + DCD 0 ; 1Reserved + DCD 0 ; 2Reserved + DCD FLASH_IRQHandler ; 3FLASH + DCD RCC_IRQHandler ; 4RCC + DCD EXTI0_1_IRQHandler ; 5EXTI Line 0 and 1 + DCD EXTI2_3_IRQHandler ; 6EXTI Line 2 and 3 + DCD EXTI4_15_IRQHandler ; 7EXTI Line 4 to 15 + DCD 0 ; 8Reserved + DCD 0 ; 9Reserved + DCD 0 ; 10Reserved + DCD 0 ; 11Reserved + DCD ADC_COMP_IRQHandler ; 12ADC&COMP1 + DCD TIM1_BRK_UP_TRG_COM_IRQHandler ; 13TIM1 Break, Update, Trigger and Commutation + DCD TIM1_CC_IRQHandler ; 14TIM1 Capture Compare + DCD 0 ; 15Reserved + DCD 0 ; 16Reserved + DCD LPTIM1_IRQHandler ; 17LPTIM1 + DCD 0 ; 18Reserved + DCD TIM14_IRQHandler ; 19TIM14 + DCD 0 ; 20Reserved + DCD 0 ; 21Reserved + DCD 0 ; 22Reserved + DCD I2C1_IRQHandler ; 23I2C1 + DCD 0 ; 24Reserved + DCD SPI1_IRQHandler ; 25SPI1 + DCD 0 ; 26Reserved + DCD USART1_IRQHandler ; 27USART1 + DCD 0 ; 28Reserved + DCD 0 ; 29Reserved + DCD 0 ; 30Reserved + DCD 0 ; 31Reserved + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; Default interrupt handlers. +;; + THUMB + + PUBWEAK Reset_Handler + SECTION .text:CODE:REORDER:NOROOT(2) +Reset_Handler + LDR R0, =SystemInit + BLX R0 + LDR R0, =__iar_program_start + BX R0 + + PUBWEAK NMI_Handler + SECTION .text:CODE:REORDER:NOROOT(1) +NMI_Handler + B NMI_Handler + + PUBWEAK HardFault_Handler + SECTION .text:CODE:REORDER:NOROOT(1) +HardFault_Handler + B HardFault_Handler + + PUBWEAK SVC_Handler + SECTION .text:CODE:REORDER:NOROOT(1) +SVC_Handler + B SVC_Handler + + PUBWEAK PendSV_Handler + SECTION .text:CODE:REORDER:NOROOT(1) +PendSV_Handler + B PendSV_Handler + + PUBWEAK SysTick_Handler + SECTION .text:CODE:REORDER:NOROOT(1) +SysTick_Handler + B SysTick_Handler + + PUBWEAK FLASH_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +FLASH_IRQHandler + B FLASH_IRQHandler + + PUBWEAK RCC_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +RCC_IRQHandler + B RCC_IRQHandler + + PUBWEAK EXTI0_1_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +EXTI0_1_IRQHandler + B EXTI0_1_IRQHandler + + PUBWEAK EXTI2_3_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +EXTI2_3_IRQHandler + B EXTI2_3_IRQHandler + + PUBWEAK EXTI4_15_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +EXTI4_15_IRQHandler + B EXTI4_15_IRQHandler + + PUBWEAK ADC_COMP_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +ADC_COMP_IRQHandler + B ADC_COMP_IRQHandler + + PUBWEAK TIM1_BRK_UP_TRG_COM_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +TIM1_BRK_UP_TRG_COM_IRQHandler + B TIM1_BRK_UP_TRG_COM_IRQHandler + + PUBWEAK TIM1_CC_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +TIM1_CC_IRQHandler + B TIM1_CC_IRQHandler + + PUBWEAK LPTIM1_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +LPTIM1_IRQHandler + B LPTIM1_IRQHandler + + PUBWEAK TIM14_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +TIM14_IRQHandler + B TIM14_IRQHandler + + PUBWEAK I2C1_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +I2C1_IRQHandler + B I2C1_IRQHandler + + PUBWEAK SPI1_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +SPI1_IRQHandler + B SPI1_IRQHandler + + PUBWEAK USART1_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +USART1_IRQHandler + B USART1_IRQHandler + + END + +;************************ (C) COPYRIGHT Puya *****END OF FILE******************* diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/Inc/Config.txt b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/Inc/Config.txt new file mode 100644 index 0000000..60e09da --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/Inc/Config.txt @@ -0,0 +1,25 @@ +[FilePath] +0=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal.c +1=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc.c +2=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc_ex.c +3=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_gpio.c +4=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_pwr.c +5=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_uart.c +6=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_cortex.c +7=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_spi.c +[FileName] +0=py32f002b_hal.c +1=py32f002b_hal_rcc.c +2=py32f002b_hal_rcc_ex.c +3=py32f002b_hal_gpio.c +4=py32f002b_hal_pwr.c +5=py32f002b_hal_uart.c +6=py32f002b_hal_cortex.c +7=py32f002b_hal_spi.c +[Define] +0=USE_HAL_DRIVER +1=PY32F002Bx5 +[User] +0=../Src/main.c +1=../Src/py32f002b_hal_msp.c +2=../Src/py32f002b_it.c diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/Inc/main.h b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/Inc/main.h new file mode 100644 index 0000000..c4f78af --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/Inc/main.h @@ -0,0 +1,68 @@ +/** + ****************************************************************************** + * @file main.h + * @author MCU Application Team + * @brief Header for main.c file. + * This file contains the common defines of the application. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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_hal.h" +#include "py32f002bxx_Start_Kit.h" + +/* Private includes ----------------------------------------------------------*/ +/* Private defines -----------------------------------------------------------*/ +/* External FLASH chip: P25Q64 */ +#define P25Q64_WRITE_ENABLE 0x06 +#define P25Q64_WRITE_DISABLE 0x04 +#define P25Q64_PAGE_PROGRAM 0x02 +#define P25Q64_SECTOR_ERASE 0x20 +#define P25Q64_READ_DATA 0x03 +#define P25Q64_READ_Status_Register 0x05 + +#define SPI_NSS GPIO_PIN_6 + +/* Exported variables prototypes ---------------------------------------------*/ +extern SPI_HandleTypeDef Spi1Handle; + +/* Exported functions prototypes ---------------------------------------------*/ +void APP_ErrorHandler(void); + +#ifdef __cplusplus +} +#endif + +#endif /* __MAIN_H */ + +/************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/Inc/py32f002b_hal_conf.h b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/Inc/py32f002b_hal_conf.h new file mode 100644 index 0000000..3603f19 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/Inc/py32f002b_hal_conf.h @@ -0,0 +1,222 @@ +/** + ****************************************************************************** + * @file py32f002b_hal_conf.h + * @author MCU Application Team + * @brief HAL configuration file. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 __PY32F002B_HAL_CONF_H +#define __PY32F002B_HAL_CONF_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ + +/* ########################## Module Selection ############################## */ +/** + * @brief This is the list of modules to be used in the HAL driver + */ +#define HAL_MODULE_ENABLED +#define HAL_RCC_MODULE_ENABLED +/* #define HAL_ADC_MODULE_ENABLED */ +/* #define HAL_CRC_MODULE_ENABLED */ +/* #define HAL_COMP_MODULE_ENABLED */ +#define HAL_FLASH_MODULE_ENABLED +#define HAL_GPIO_MODULE_ENABLED +/* #define HAL_IWDG_MODULE_ENABLED */ +/* #define HAL_TIM_MODULE_ENABLED */ +/* #define HAL_LPTIM_MODULE_ENABLED */ +#define HAL_PWR_MODULE_ENABLED +/* #define HAL_I2C_MODULE_ENABLED */ +#define HAL_UART_MODULE_ENABLED +/* #define HAL_USART_MODULE_ENABLED */ +#define HAL_SPI_MODULE_ENABLED +/* #define HAL_EXTI_MODULE_ENABLED */ +#define HAL_CORTEX_MODULE_ENABLED + +/* ########################## Oscillator Values adaptation ####################*/ + +#if !defined (HSI_VALUE) + #define HSI_VALUE ((uint32_t)24000000) /*!< Value of the Internal oscillator in Hz */ +#endif /* HSI_VALUE */ + +/** + * @brief Adjust the value of External High Speed oscillator (HSE) used in your application. + * This value is used by the RCC HAL module to compute the system frequency + */ +#if !defined (HSE_VALUE) + #define HSE_VALUE ((uint32_t)24000000) /*!< Value of the External oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined (HSE_STARTUP_TIMEOUT) + #define HSE_STARTUP_TIMEOUT ((uint32_t)200) /*!< Time out for HSE start up, in ms */ +#endif /* HSE_STARTUP_TIMEOUT */ + +/** + * @brief Internal Low Speed Internal oscillator (LSI) value. + */ +#if !defined (LSI_VALUE) + #define LSI_VALUE ((uint32_t)32768) /*!< LSI Typical Value in Hz */ +#endif /* LSI_VALUE */ /*!< Value of the Internal Low Speed oscillator in Hz + The real value may vary depending on the variations + in voltage and temperature. */ + +/** + * @brief Adjust the value of External Low Speed oscillator (LSE) used in your application. + * This value is used by the RCC HAL module to compute the system frequency + */ +#if !defined (LSE_VALUE) + #define LSE_VALUE ((uint32_t)32768) /*!< Value of the External oscillator in Hz*/ +#endif /* LSE_VALUE */ + +#if !defined (LSE_STARTUP_TIMEOUT) + #define LSE_STARTUP_TIMEOUT ((uint32_t)5000) /*!< Time out for LSE start up, in ms */ +#endif /* LSE_STARTUP_TIMEOUT */ + +/* Tip: To avoid modifying this file each time you need to use different HSE, + === you can define the HSE value in your toolchain compiler preprocessor. */ + +/* ########################### System Configuration ######################### */ +/** + * @brief This is the HAL system configuration section + */ +#define VDD_VALUE ((uint32_t)3300) /*!< Value of VDD in mv */ +#define PRIORITY_HIGHEST 0 +#define PRIORITY_HIGH 1 +#define PRIORITY_LOW 2 +#define PRIORITY_LOWEST 3 +#define TICK_INT_PRIORITY ((uint32_t)PRIORITY_LOWEST) /*!< tick interrupt priority (lowest by default) */ +#define USE_RTOS 0 +#define PREFETCH_ENABLE 0 + +/* ########################## Assert Selection ############################## */ +/** + * @brief Uncomment the line below to expanse the "assert_param" macro in the + * HAL drivers code + */ +/* #define USE_FULL_ASSERT 1U */ + + +/* Includes ------------------------------------------------------------------*/ +/** + * @brief Include module's header file + */ +#ifdef HAL_MODULE_ENABLED + #include "py32f0xx_hal.h" +#endif /* HAL_MODULE_ENABLED */ + +#ifdef HAL_RCC_MODULE_ENABLED + #include "py32f002b_hal_rcc.h" +#endif /* HAL_RCC_MODULE_ENABLED */ + +#ifdef HAL_EXTI_MODULE_ENABLED + #include "py32f002b_hal_exti.h" +#endif /* HAL_EXTI_MODULE_ENABLED */ + +#ifdef HAL_GPIO_MODULE_ENABLED + #include "py32f002b_hal_gpio.h" +#endif /* HAL_GPIO_MODULE_ENABLED */ + +#ifdef HAL_CORTEX_MODULE_ENABLED + #include "py32f002b_hal_cortex.h" +#endif /* HAL_CORTEX_MODULE_ENABLED */ + +#ifdef HAL_ADC_MODULE_ENABLED + #include "py32f002b_hal_adc.h" +#endif /* HAL_ADC_MODULE_ENABLED */ + +#ifdef HAL_CRC_MODULE_ENABLED + #include "py32f002b_hal_crc.h" +#endif /* HAL_CRC_MODULE_ENABLED */ + +#ifdef HAL_COMP_MODULE_ENABLED +#include "py32f002b_hal_comp.h" +#endif /* HAL_COMP_MODULE_ENABLED */ + +#ifdef HAL_FLASH_MODULE_ENABLED + #include "py32f002b_hal_flash.h" +#endif /* HAL_FLASH_MODULE_ENABLED */ + +#ifdef HAL_I2C_MODULE_ENABLED + #include "py32f002b_hal_i2c.h" +#endif /* HAL_I2C_MODULE_ENABLED */ + +#ifdef HAL_IWDG_MODULE_ENABLED + #include "py32f002b_hal_iwdg.h" +#endif /* HAL_IWDG_MODULE_ENABLED */ + +#ifdef HAL_PWR_MODULE_ENABLED + #include "py32f002b_hal_pwr.h" +#endif /* HAL_PWR_MODULE_ENABLED */ + +#ifdef HAL_SPI_MODULE_ENABLED + #include "py32f002b_hal_spi.h" +#endif /* HAL_SPI_MODULE_ENABLED */ + +#ifdef HAL_TIM_MODULE_ENABLED + #include "py32f002b_hal_tim.h" +#endif /* HAL_TIM_MODULE_ENABLED */ + +#ifdef HAL_LPTIM_MODULE_ENABLED + #include "py32f002b_hal_lptim.h" +#endif /* HAL_LPTIM_MODULE_ENABLED */ + +#ifdef HAL_UART_MODULE_ENABLED + #include "py32f002b_hal_uart.h" +#endif /* HAL_UART_MODULE_ENABLED */ + +#ifdef HAL_USART_MODULE_ENABLED + #include "py32f002b_hal_usart.h" +#endif /* HAL_USART_MODULE_ENABLED */ + +/* Exported macro ------------------------------------------------------------*/ +#ifdef USE_FULL_ASSERT +/** + * @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 /* __PY32F002B_HAL_CONF_H */ + +/************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/Inc/py32f002b_it.h b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/Inc/py32f002b_it.h new file mode 100644 index 0000000..cfb871c --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/Inc/py32f002b_it.h @@ -0,0 +1,56 @@ +/** + ****************************************************************************** + * @file py32f002b_it.h + * @author MCU Application Team + * @brief This file contains the headers of the interrupt handlers. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 __PY32F002B_IT_H +#define __PY32F002B_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 /* __PY32F002B_IT_H */ + +/************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/MDK-ARM/Project.uvoptx new file mode 100644 index 0000000..80214b8 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/MDK-ARM/Project.uvoptx @@ -0,0 +1,439 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc; *.md + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + Project + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\Output\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 3 + + + + + + + + + + + BIN\CMSIS_AGDI.dll + + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) + + + 0 + CMSIS_AGDI + -X"" -O206 -S0 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) + + + 0 + ARMRTXEVENTFLAGS + -L70 -Z18 -C0 -M0 -T1 + + + 0 + DLGTARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + + + + 0 + DLGUARM + + + + + + + 0 + 1 + RxBuff + + + + 0 + + + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + 1 + 1 + 0 + 2 + 1000000 + + + + + + Common + 1 + 0 + 0 + 0 + + 1 + 1 + 2 + 0 + 0 + 0 + .\startup_py32f002bxx.s + startup_py32f002bxx.s + 0 + 0 + + + 1 + 2 + 1 + 0 + 0 + 0 + ..\Src\system_py32f002b.c + system_py32f002b.c + 0 + 0 + + + + + Application/User + 1 + 0 + 0 + 0 + + 2 + 3 + 1 + 0 + 0 + 0 + ..\Src\main.c + main.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + ..\Src\py32f002b_hal_msp.c + py32f002b_hal_msp.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + ..\Src\py32f002b_it.c + py32f002b_it.c + 0 + 0 + + + + + BSP/py32f002bxx_Start_Kit + 1 + 0 + 0 + 0 + + 3 + 6 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\BSP\PY32F002Bxx_Start_Kit\py32f002bxx_Start_Kit.c + py32f002bxx_Start_Kit.c + 0 + 0 + + + + + Drivers/PY32F002B_HAL_Driver + 1 + 0 + 0 + 0 + + 4 + 7 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal.c + py32f002b_hal.c + 0 + 0 + + + 4 + 8 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_rcc.c + py32f002b_hal_rcc.c + 0 + 0 + + + 4 + 9 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_rcc_ex.c + py32f002b_hal_rcc_ex.c + 0 + 0 + + + 4 + 10 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_gpio.c + py32f002b_hal_gpio.c + 0 + 0 + + + 4 + 11 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_pwr.c + py32f002b_hal_pwr.c + 0 + 0 + + + 4 + 12 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_uart.c + py32f002b_hal_uart.c + 0 + 0 + + + 4 + 13 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_cortex.c + py32f002b_hal_cortex.c + 0 + 0 + + + 4 + 14 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_spi.c + py32f002b_hal_spi.c + 0 + 0 + + + + + Doc + 1 + 0 + 0 + 0 + + 5 + 15 + 5 + 0 + 0 + 0 + ..\readme.txt + readme.txt + 0 + 0 + + + + + ::CMSIS + 0 + 0 + 0 + 1 + + +
diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/MDK-ARM/Project.uvprojx new file mode 100644 index 0000000..2268428 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/MDK-ARM/Project.uvprojx @@ -0,0 +1,504 @@ + + + + 2.1 + +
### uVision Project, (C) Keil Software
+ + + + Project + 0x4 + ARM-ADS + 5060960::V5.06 update 7 (build 960)::.\ARMCC + 0 + + + PY32F002Bx5 + Puya + Puya.PY32F0xx_DFP.1.2.6 + https://www.puyasemi.com/uploadfiles/ + IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) + 0 + $$Device:PY32F002Bx5$Device\Include\py32f0xx.h + + + + + + + + + + $$Device:PY32F002Bx5$SVD\py32f002bxx.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Output\ + Project + 1 + 0 + 1 + 1 + 1 + .\Output\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -REMAP + DARMCM1.DLL + -pCM0+ + SARMCM3.DLL + + TARMCM1.DLL + -pCM0+ + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M0+" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0xc00 + + + 1 + 0x8000000 + 0x6000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x6000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0xc00 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + + + USE_HAL_DRIVER,PY32F002Bx5 + + ..\Inc;..\..\..\..\..\..\Drivers\BSP\PY32F002Bxx_Start_Kit;..\..\..\..\..\..\Drivers\CMSIS\Include;..\..\..\..\..\..\Drivers\CMSIS\Device\PY32F0xx\Include;..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Inc + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + + .\Objects\Project.sct + + + + + + + + + + + Common + + + startup_py32f002bxx.s + 2 + .\startup_py32f002bxx.s + + + system_py32f002b.c + 1 + ..\Src\system_py32f002b.c + + + + + Application/User + + + main.c + 1 + ..\Src\main.c + + + py32f002b_hal_msp.c + 1 + ..\Src\py32f002b_hal_msp.c + + + py32f002b_it.c + 1 + ..\Src\py32f002b_it.c + + + + + BSP/py32f002bxx_Start_Kit + + + py32f002bxx_Start_Kit.c + 1 + ..\..\..\..\..\..\Drivers\BSP\PY32F002Bxx_Start_Kit\py32f002bxx_Start_Kit.c + + + + + Drivers/PY32F002B_HAL_Driver + + + py32f002b_hal.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal.c + + + py32f002b_hal_rcc.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_rcc.c + + + py32f002b_hal_rcc_ex.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_rcc_ex.c + + + py32f002b_hal_gpio.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_gpio.c + + + py32f002b_hal_pwr.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_pwr.c + + + py32f002b_hal_uart.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_uart.c + + + py32f002b_hal_cortex.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_cortex.c + + + py32f002b_hal_spi.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_spi.c + + + + + Doc + + + readme.txt + 5 + ..\readme.txt + + + + + ::CMSIS + + + + + + + + + + + + + + + + + + +
diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/MDK-ARM/startup_py32f002bxx.s b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/MDK-ARM/startup_py32f002bxx.s new file mode 100644 index 0000000..767f75c --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/MDK-ARM/startup_py32f002bxx.s @@ -0,0 +1,228 @@ +;****************************************************************************** +;* @file startup_py32f002bxx.s +;* @author MCU Application Team +;* @brief PY32F002Bxx devices vector table for MDK-ARM toolchain. +;* This module performs: +;* - Set the initial SP +;* - Set the initial PC == Reset_Handler +;* - Set the vector table entries with the exceptions ISR address +;* - Branches to __main in the C library (which eventually +;* calls main()). +;* After Reset the CortexM0+ processor is in Thread mode, +;* priority is Privileged, and the Stack is set to Main. +;****************************************************************************** +;* @attention +;* +;*

© Copyright (c) 2023 Puya Semiconductor Co. +;* All rights reserved.

+;* +;* This software component is licensed by Puya 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 +;* +;****************************************************************************** +;* @attention +;* +;*

© Copyright (c) 2016 STMicroelectronics. +;* All rights reserved.

+;* +;* 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 +;* +;****************************************************************************** +;* <<< Use Configuration Wizard in Context Menu >>> + +; Amount of memory (in bytes) allocated for Stack +; Tailor this value to your application needs +; Stack Configuration +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Stack_Size EQU 0x00000400 + + AREA STACK, NOINIT, READWRITE, ALIGN=3 +Stack_Mem SPACE Stack_Size +__initial_sp + + +; Heap Configuration +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Heap_Size EQU 0x00000000 + + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +Heap_Mem SPACE Heap_Size +__heap_limit + + + PRESERVE8 + THUMB + + +; Vector Table Mapped to Address 0 at Reset + AREA RESET, DATA, READONLY + EXPORT __Vectors + EXPORT __Vectors_End + EXPORT __Vectors_Size + +__Vectors DCD __initial_sp ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD 0 ; 0Reserved + DCD 0 ; 1Reserved + DCD 0 ; 2Reserved + DCD FLASH_IRQHandler ; 3FLASH + DCD RCC_IRQHandler ; 4RCC + DCD EXTI0_1_IRQHandler ; 5EXTI Line 0 and 1 + DCD EXTI2_3_IRQHandler ; 6EXTI Line 2 and 3 + DCD EXTI4_15_IRQHandler ; 7EXTI Line 4 to 15 + DCD 0 ; 8Reserved + DCD 0 ; 9Reserved + DCD 0 ; 10Reserved + DCD 0 ; 11Reserved + DCD ADC_COMP_IRQHandler ; 12ADC&COMP1 + DCD TIM1_BRK_UP_TRG_COM_IRQHandler ; 13TIM1 Break, Update, Trigger and Commutation + DCD TIM1_CC_IRQHandler ; 14TIM1 Capture Compare + DCD 0 ; 15Reserved + DCD 0 ; 16Reserved + DCD LPTIM1_IRQHandler ; 17LPTIM1 + DCD 0 ; 18Reserved + DCD TIM14_IRQHandler ; 19TIM14 + DCD 0 ; 20Reserved + DCD 0 ; 21Reserved + DCD 0 ; 22Reserved + DCD I2C1_IRQHandler ; 23I2C1 + DCD 0 ; 24Reserved + DCD SPI1_IRQHandler ; 25SPI1 + DCD 0 ; 26Reserved + DCD USART1_IRQHandler ; 27USART1 + DCD 0 ; 28Reserved + DCD 0 ; 29Reserved + DCD 0 ; 30Reserved + DCD 0 ; 31Reserved +__Vectors_End + +__Vectors_Size EQU __Vectors_End - __Vectors + + AREA |.text|, CODE, READONLY + + +; Reset Handler + +Reset_Handler PROC + EXPORT Reset_Handler [WEAK] + IMPORT SystemInit + IMPORT __main + LDR R0, =SystemInit + BLX R0 + LDR R0, =__main + BX R0 + ENDP + + +; Dummy Exception Handlers (infinite loops which can be modified) + +NMI_Handler PROC + EXPORT NMI_Handler [WEAK] + B . + ENDP +HardFault_Handler\ + PROC + EXPORT HardFault_Handler [WEAK] + B . + ENDP +SVC_Handler PROC + EXPORT SVC_Handler [WEAK] + B . + ENDP +PendSV_Handler PROC + EXPORT PendSV_Handler [WEAK] + B . + ENDP +SysTick_Handler PROC + EXPORT SysTick_Handler [WEAK] + B . + ENDP + +Default_Handler PROC + + EXPORT FLASH_IRQHandler [WEAK] + EXPORT RCC_IRQHandler [WEAK] + EXPORT EXTI0_1_IRQHandler [WEAK] + EXPORT EXTI2_3_IRQHandler [WEAK] + EXPORT EXTI4_15_IRQHandler [WEAK] + EXPORT ADC_COMP_IRQHandler [WEAK] + EXPORT TIM1_BRK_UP_TRG_COM_IRQHandler [WEAK] + EXPORT TIM1_CC_IRQHandler [WEAK] + EXPORT LPTIM1_IRQHandler [WEAK] + EXPORT TIM14_IRQHandler [WEAK] + EXPORT I2C1_IRQHandler [WEAK] + EXPORT SPI1_IRQHandler [WEAK] + EXPORT USART1_IRQHandler [WEAK] + +FLASH_IRQHandler +RCC_IRQHandler +EXTI0_1_IRQHandler +EXTI2_3_IRQHandler +EXTI4_15_IRQHandler +ADC_COMP_IRQHandler +TIM1_BRK_UP_TRG_COM_IRQHandler +TIM1_CC_IRQHandler +LPTIM1_IRQHandler +TIM14_IRQHandler +I2C1_IRQHandler +SPI1_IRQHandler +USART1_IRQHandler + B . + ENDP + + ALIGN + +; User Initial Stack & Heap + + IF :DEF:__MICROLIB + + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + + ELSE + + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap + +__user_initial_stackheap + + LDR R0, = Heap_Mem + LDR R1, =(Stack_Mem + Stack_Size) + LDR R2, = (Heap_Mem + Heap_Size) + LDR R3, = Stack_Mem + BX LR + + ALIGN + + ENDIF + + END + +;************************ (C) COPYRIGHT Puya *****END OF FILE******************* diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/Src/main.c b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/Src/main.c new file mode 100644 index 0000000..21b58be --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/Src/main.c @@ -0,0 +1,407 @@ +/** + ****************************************************************************** + * @file main.c + * @author MCU Application Team + * @brief Main program body + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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" + +/* Private define ------------------------------------------------------------*/ +#define DATA_LENGTH 15 +#define FLASH_ADDR 0 + +/* Private variables ---------------------------------------------------------*/ +SPI_HandleTypeDef Spi1Handle; + +uint8_t TxBuff[15] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}; +uint8_t RxBuff[15] = {0}; +uint8_t Transition[3] = {0}; +uint8_t FlashStatus = 0; + +/* Private user code ---------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +static void APP_SystemClockConfig(void); +static void APP_WaitAndCheckEndOfTransfer(void); +static uint8_t APP_Buffercmp8(uint8_t* pBuffer1, uint8_t* pBuffer2, uint8_t BufferLength); + +static void APP_External_FLASH_SectorErase(uint32_t Address); +static void APP_External_FLASH_PageProgram(uint32_t Address, uint8_t *DataArray, uint16_t Count); +static void APP_External_FLASH_ReadData(uint32_t Address, uint8_t *DataArray, uint32_t Count); +/** + * @brief Main program + * @retval int + */ +int main(void) +{ + /* Reset of all peripherals, Initializes the Systick */ + HAL_Init(); + + /* Configure Systemclock */ + APP_SystemClockConfig(); + + /* Initialize debugging serial port (used by printf) */ + BSP_USART_Config(); + + /* De-Initialize the SPI peripheral */ + Spi1Handle.Instance = SPI1; /* SPI1 */ + Spi1Handle.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_256; /* 256 frequency division */ + Spi1Handle.Init.Direction = SPI_DIRECTION_2LINES; /* full duplex */ + Spi1Handle.Init.CLKPolarity = SPI_POLARITY_LOW; /* Low clock polarity */ + Spi1Handle.Init.CLKPhase = SPI_PHASE_1EDGE ; /* Data sampling starts from the first clock edge */ + Spi1Handle.Init.DataSize = SPI_DATASIZE_8BIT; /* SPI data length is 8 bits */ + Spi1Handle.Init.FirstBit = SPI_FIRSTBIT_MSB; /* Send MSB first */ + Spi1Handle.Init.NSS = SPI_NSS_SOFT; /* NSS Software Mode */ + Spi1Handle.Init.Mode = SPI_MODE_MASTER; /* Configure as master */ + if (HAL_SPI_DeInit(&Spi1Handle) != HAL_OK) + { + APP_ErrorHandler(); + } + + /* Initialize SPI peripheral */ + if (HAL_SPI_Init(&Spi1Handle) != HAL_OK) + { + APP_ErrorHandler(); + } + + /* Initialize BUTTON */ + BSP_PB_Init(BUTTON_KEY,BUTTON_MODE_GPIO); + + /* Wait for the button to be press */ + while (BSP_PB_GetState(BUTTON_KEY)); + + /* SectorErase */ + APP_External_FLASH_SectorErase(FLASH_ADDR); + + /* PageProgram */ + APP_External_FLASH_PageProgram(FLASH_ADDR, (uint8_t *)TxBuff, DATA_LENGTH); + + /* ReadData */ + APP_External_FLASH_ReadData(FLASH_ADDR, (uint8_t *)RxBuff, DATA_LENGTH); + + /* Wait for the transfer be completed and check the received data */ + APP_WaitAndCheckEndOfTransfer(); + + while (1) + { + } +} + +/** + * @brief Write specified bytes of data to the specified page at the page address + * @param Address: page address + * @param DataArray: Data to be written + * @param Count: Number of bytes + * @retval None + */ +static void APP_External_FLASH_PageProgram(uint32_t Address, uint8_t *DataArray, uint16_t Count) +{ + /*Pull down NSS*/ + HAL_GPIO_WritePin(GPIOA,SPI_NSS,GPIO_PIN_RESET); + + /*Write enable*/ + Transition[0] = P25Q64_WRITE_ENABLE; + if (HAL_SPI_Transmit(&Spi1Handle,(uint8_t *)Transition, 1, 5000) != HAL_OK) + { + APP_ErrorHandler(); + } + + /*Pull up NSS*/ + HAL_GPIO_WritePin(GPIOA,SPI_NSS,GPIO_PIN_SET); + + /*Pull down NSS*/ + HAL_GPIO_WritePin(GPIOA,SPI_NSS,GPIO_PIN_RESET); + + /*Send write instruction*/ + Transition[0] = P25Q64_PAGE_PROGRAM; + if (HAL_SPI_Transmit(&Spi1Handle,(uint8_t *)Transition, 1, 5000) != HAL_OK) + { + APP_ErrorHandler(); + } + + /*Send address*/ + Transition[0] = (uint8_t)(Address >> 16); + Transition[1] = (uint8_t)(Address >> 8); + Transition[2] = (uint8_t)Address; + if (HAL_SPI_Transmit(&Spi1Handle,(uint8_t *)Transition, 3, 5000) != HAL_OK) + { + APP_ErrorHandler(); + } + + /*Send write data*/ + if (HAL_SPI_Transmit(&Spi1Handle, DataArray, Count, 5000) != HAL_OK) + { + APP_ErrorHandler(); + } + + /*Pull up NSS*/ + HAL_GPIO_WritePin(GPIOA,SPI_NSS,GPIO_PIN_SET); + + /*Wait for the write operation to finish*/ + /*Pull down NSS*/ + HAL_GPIO_WritePin(GPIOA,SPI_NSS,GPIO_PIN_RESET); + + /*Send read status register instruction*/ + Transition[0] = P25Q64_READ_Status_Register; + if (HAL_SPI_Transmit(&Spi1Handle,(uint8_t *)Transition, 1, 5000) != HAL_OK) + { + APP_ErrorHandler(); + } + + /*receive status data*/ + do { + if (HAL_SPI_Receive(&Spi1Handle,&FlashStatus, 1, 5000) != HAL_OK) + { + APP_ErrorHandler(); + } + } while (FlashStatus & 0x01); + + /*Pull up NSS*/ + HAL_GPIO_WritePin(GPIOA,SPI_NSS,GPIO_PIN_SET); +} + +/** + * @brief Erases data in the specified sector + * @param Address: sector address + * @retval None + */ +static void APP_External_FLASH_SectorErase(uint32_t Address) +{ + /*Pull down NSS*/ + HAL_GPIO_WritePin(GPIOA,SPI_NSS,GPIO_PIN_RESET); + + /*Write enable*/ + Transition[0] = P25Q64_WRITE_ENABLE; + if (HAL_SPI_Transmit(&Spi1Handle,(uint8_t *)Transition, 1, 5000) != HAL_OK) + { + APP_ErrorHandler(); + } + + /*Pull up NSS*/ + HAL_GPIO_WritePin(GPIOA,SPI_NSS,GPIO_PIN_SET); + + /*Pull down NSS*/ + HAL_GPIO_WritePin(GPIOA,SPI_NSS,GPIO_PIN_RESET); + + /*Send erase instruction*/ + Transition[0] = P25Q64_SECTOR_ERASE; + if (HAL_SPI_Transmit(&Spi1Handle,(uint8_t *)Transition, 1, 5000) != HAL_OK) + { + APP_ErrorHandler(); + } + + /*Send address*/ + Transition[0] = (uint8_t)(Address >> 16); + Transition[1] = (uint8_t)(Address >> 8); + Transition[2] = (uint8_t)Address; + if (HAL_SPI_Transmit(&Spi1Handle,(uint8_t *)Transition, 3, 5000) != HAL_OK) + { + APP_ErrorHandler(); + } + + /*Pull up NSS*/ + HAL_GPIO_WritePin(GPIOA,SPI_NSS,GPIO_PIN_SET); + + /*Wait for the erase operation to finish*/ + /*Pull down NSS*/ + HAL_GPIO_WritePin(GPIOA,SPI_NSS,GPIO_PIN_RESET); + + /*Send read status register instruction*/ + Transition[0] = P25Q64_READ_Status_Register; + if (HAL_SPI_Transmit(&Spi1Handle,(uint8_t *)Transition, 1, 5000) != HAL_OK) + { + APP_ErrorHandler(); + } + + /*receive status data*/ + do { + if (HAL_SPI_Receive(&Spi1Handle,&FlashStatus, 1, 5000) != HAL_OK) + { + APP_ErrorHandler(); + } + } while (FlashStatus & 0x01); + + /*Pull up NSS*/ + HAL_GPIO_WritePin(GPIOA,SPI_NSS,GPIO_PIN_SET); + +} + +/** + * @brief Read specified bytes of data from the specified page at the page address + * @param Address: page address + * @param DataArray: Data being read out + * @param Count: Number of bytes + * @retval None + */ +static void APP_External_FLASH_ReadData(uint32_t Address, uint8_t *DataArray, uint32_t Count) +{ + /*Pull down NSS*/ + HAL_GPIO_WritePin(GPIOA,SPI_NSS,GPIO_PIN_RESET); + + /*Send read instruction*/ + Transition[0] = P25Q64_READ_DATA; + if (HAL_SPI_Transmit(&Spi1Handle,(uint8_t *)Transition, 1, 5000) != HAL_OK) + { + APP_ErrorHandler(); + } + + /*Send address*/ + Transition[0] = (uint8_t)(Address >> 16); + Transition[1] = (uint8_t)(Address >> 8); + Transition[2] = (uint8_t)Address; + if (HAL_SPI_Transmit(&Spi1Handle,(uint8_t *)Transition, 3, 5000) != HAL_OK) + { + APP_ErrorHandler(); + } + + /*read data*/ + if (HAL_SPI_Receive(&Spi1Handle, DataArray, Count, 5000) != HAL_OK) + { + APP_ErrorHandler(); + } + + /*Pull up NSS*/ + HAL_GPIO_WritePin(GPIOA,SPI_NSS,GPIO_PIN_SET); +} + +/** + * @brief Wait for the transfer be completed and check the received data + * @param None + * @retval None + */ +static void APP_WaitAndCheckEndOfTransfer(void) +{ + /* Wait for the transfer be completed */ + while (Spi1Handle.State != HAL_SPI_STATE_READY) + {} + + /* Compare sent and received data */ + if(APP_Buffercmp8((uint8_t*)TxBuff, (uint8_t*)RxBuff, DATA_LENGTH)) + { + /* Communication error prompt */ + printf("SPI Transfer Error"); + } + else + { + /* Communication success prompt */ + printf("SPI transfer succeeded"); + } +} + +/** + * @brief Character comparison function + * @param pBuffer1: Pointer to buffer 1 that to be compared + * @param pBuffer2: Pointer to buffer 2 that to be compared + * @param BufferLength: The number of characters to be compared + * @retval 0: The comparison value is the same; 1: The comparison value is different + */ +static uint8_t APP_Buffercmp8(uint8_t* pBuffer1, uint8_t* pBuffer2, uint8_t BufferLength) +{ + while (BufferLength--) + { + if (*pBuffer1 != *pBuffer2) + { + return 1; + } + pBuffer1++; + pBuffer2++; + } + + return 0; +} + +/** + * @brief System clock configuration function + * @param None + * @retval None + */ +static void APP_SystemClockConfig(void) +{ + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + + /* Oscillator configuration */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE | RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_LSI | RCC_OSCILLATORTYPE_LSE; /* Select oscillator HSE, HSI, LSI, LSE */ + RCC_OscInitStruct.HSIState = RCC_HSI_ON; /* Enable HSI */ + RCC_OscInitStruct.HSIDiv = RCC_HSI_DIV1; /* HSI 1 frequency division */ + RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_24MHz; /* Configure HSI clock 24MHz */ + RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS_DISABLE; /* Close HSE bypass */ + RCC_OscInitStruct.LSIState = RCC_LSI_OFF; /* Close LSI */ + /*RCC_OscInitStruct.LSICalibrationValue = RCC_LSICALIBRATION_32768Hz;*/ + RCC_OscInitStruct.LSEState = RCC_LSE_OFF; /* Close LSE */ + /*RCC_OscInitStruct.LSEDriver = RCC_LSEDRIVE_MEDIUM;*/ + /* Configure oscillator */ + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + { + APP_ErrorHandler(); + } + + /* Clock source configuration */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1; /* Choose to configure clock HCLK, SYSCLK, PCLK1 */ + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSISYS; /* Select HSISYS as the system clock */ + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; /* AHB clock 1 division */ + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; /* APB clock 1 division */ + /* Configure clock source */ + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) + { + APP_ErrorHandler(); + } +} + +/** + * @brief Error executing function. + * @param None + * @retval None + */ +void APP_ErrorHandler(void) +{ + while (1) + { + } +} + +#ifdef USE_FULL_ASSERT +/** + * @brief Reports the name of the source file and the source line number + * where the assert_param error has occurred. + * @param file: pointer to the source file name + * @param line: assert_param error line source number + * @retval None + */ +void assert_failed(uint8_t *file, uint32_t line) +{ + /* Users can add their own printing information as needed, + for example: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ + /* Infinite loop */ + while (1) + { + } +} +#endif /* USE_FULL_ASSERT */ + +/************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/Src/py32f002b_hal_msp.c b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/Src/py32f002b_hal_msp.c new file mode 100644 index 0000000..8c005c3 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/Src/py32f002b_hal_msp.c @@ -0,0 +1,113 @@ +/** + ****************************************************************************** + * @file py32f002b_hal_msp.c + * @author MCU Application Team + * @brief This file provides code for the MSP Initialization + * and de-Initialization codes. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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" + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* External functions --------------------------------------------------------*/ + +/** + * @brief Initialize global MSP. + */ +void HAL_MspInit(void) +{ + __HAL_RCC_SYSCFG_CLK_ENABLE(); + __HAL_RCC_PWR_CLK_ENABLE(); +} + +/** + * @brief Initialize MSP for SPI. + */ +void HAL_SPI_MspInit(SPI_HandleTypeDef *hspi) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + + __HAL_RCC_GPIOB_CLK_ENABLE(); /* GPIOB clock enable */ + __HAL_RCC_GPIOA_CLK_ENABLE(); /* GPIOA clock enable */ + __HAL_RCC_SPI1_CLK_ENABLE(); /* SPI1 clock enable */ + + /* + PB2 ------> SCK + PA1 ------> MISO + PA7 ------> MOSI + PA6 ------> NSS(soft) + */ + /*SCK*/ + GPIO_InitStruct.Pin = GPIO_PIN_2; + if (hspi->Init.CLKPolarity == SPI_POLARITY_LOW) + { + GPIO_InitStruct.Pull = GPIO_PULLDOWN; + } + else + { + GPIO_InitStruct.Pull = GPIO_PULLUP; + } + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF0_SPI1; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + + /* SPI NSS*/ + GPIO_InitStruct.Pin = GPIO_PIN_6; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_PULLUP; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + + /* MISO/MOSI*/ + GPIO_InitStruct.Pin = GPIO_PIN_1 | GPIO_PIN_7; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF0_SPI1; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); +} + +/** + * @brief De-initialize SPI's MSP + */ +void HAL_SPI_MspDeInit(SPI_HandleTypeDef *hspi) +{ + /* Reset SPI peripherals */ + __HAL_RCC_SPI1_FORCE_RESET(); + __HAL_RCC_SPI1_RELEASE_RESET(); + + /* Turn off peripherals and GPIO clock */ + /* Unconfigure SPI SCK*/ + HAL_GPIO_DeInit(GPIOB, GPIO_PIN_2); + HAL_GPIO_DeInit(GPIOA, GPIO_PIN_6 | GPIO_PIN_1 | GPIO_PIN_7); +} +/************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/Src/py32f002b_it.c b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/Src/py32f002b_it.c new file mode 100644 index 0000000..674d54b --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/Src/py32f002b_it.c @@ -0,0 +1,93 @@ +/** + ****************************************************************************** + * @file py32f002b_it.c + * @author MCU Application Team + * @brief Interrupt Service Routines. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 "py32f002b_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) +{ + HAL_IncTick(); +} + +/******************************************************************************/ +/* PY32F002B 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******************/ diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/Src/system_py32f002b.c new file mode 100644 index 0000000..987c778 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/Src/system_py32f002b.c @@ -0,0 +1,170 @@ +/** + ****************************************************************************** + * @file system_py32f002b.c + * @author MCU Application Team + * @Version V1.0.0 + * @Date 2020-10-19 + * @brief CMSIS Cortex-M0+ Device Peripheral Access Layer System Source File. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 + * + ****************************************************************************** + */ + +#include "py32f0xx.h" + +#if !defined (HSE_VALUE) +#define HSE_VALUE 24000000U /*!< Value of the External oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined (HSI_VALUE) +#define HSI_VALUE 24000000U /*!< Value of the Internal oscillator in Hz*/ +#endif /* HSI_VALUE */ + +#if !defined (LSI_VALUE) +#define LSI_VALUE 32768U /*!< Value of LSI in Hz*/ +#endif /* LSI_VALUE */ + +#if !defined (LSE_VALUE) +#define LSE_VALUE 32768U /*!< Value of LSE in Hz*/ +#endif /* LSE_VALUE */ + + +/************************* Miscellaneous Configuration ************************/ +/*!< Uncomment the following line if you need to relocate your vector Table in + Internal SRAM. */ +/* #define FORBID_VECT_TAB_MIGRATION */ +/* #define VECT_TAB_SRAM */ +#define VECT_TAB_OFFSET 0x00 /*!< Vector Table base offset field. + This value must be a multiple of 0x100. */ +/******************************************************************************/ +/*---------------------------------------------------------------------------- + Clock Variable definitions + *----------------------------------------------------------------------------*/ +/* This variable is updated in three ways: + 1) by calling CMSIS function SystemCoreClockUpdate() + 2) by calling HAL API function HAL_RCC_GetHCLKFreq() + 3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency + Note: If you use this function to configure the system clock; then there + is no need to call the 2 first functions listed above, since SystemCoreClock + variable is updated automatically. +*/ +uint32_t SystemCoreClock = HSI_VALUE; + +const uint32_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}; +const uint32_t APBPrescTable[8] = {0, 0, 0, 0, 1, 2, 3, 4}; +#if defined(RCC_HSI48M_SUPPORT) +const uint32_t HSIFreqTable[8] = {4000000U, 8000000U, 0U, 0U, 24000000U, 48000000U, 0U, 0U}; +#else +const uint32_t HSIFreqTable[8] = {4000000U, 8000000U, 0U, 0U, 24000000U, 0U, 0U, 0U}; +#endif + +/* Private function prototypes -----------------------------------------------*/ +#ifndef SWD_DELAY +static void DelayTime(uint32_t mdelay); +#endif /* SWD_DELAY */ + +/** + * @brief Clock functions. + * @param none + * @return none + */ +void SystemCoreClockUpdate(void) /* Get Core Clock Frequency */ +{ + uint32_t tmp; + uint32_t hsidiv; + uint32_t hsifs; + + /* Get SYSCLK source -------------------------------------------------------*/ + switch (RCC->CFGR & RCC_CFGR_SWS) + { + case RCC_CFGR_SWS_0: /* HSE used as system clock */ + SystemCoreClock = HSE_VALUE; + break; + + case (RCC_CFGR_SWS_1 | RCC_CFGR_SWS_0): /* LSI used as system clock */ + SystemCoreClock = LSI_VALUE; + break; +#if defined(RCC_LSE_SUPPORT) + case RCC_CFGR_SWS_2: /* LSE used as system clock */ + SystemCoreClock = LSE_VALUE; + break; +#endif /* RCC_LSE_SUPPORT */ + case 0x00000000U: /* HSI used as system clock */ + default: /* HSI used as system clock */ + hsifs = ((READ_BIT(RCC->ICSCR, RCC_ICSCR_HSI_FS)) >> RCC_ICSCR_HSI_FS_Pos); + hsidiv = (1UL << ((READ_BIT(RCC->CR, RCC_CR_HSIDIV)) >> RCC_CR_HSIDIV_Pos)); + SystemCoreClock = (HSIFreqTable[hsifs] / hsidiv); + break; + } + /* Compute HCLK clock frequency --------------------------------------------*/ + /* Get HCLK prescaler */ + tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos)]; + /* HCLK clock frequency */ + SystemCoreClock >>= tmp; +} + +/** + * @brief Setup the microcontroller system. + * Initialize the System. + * @param none + * @return none + */ +void SystemInit(void) +{ + /*Set the HSI clock to 24MHz by default*/ + RCC->ICSCR = (RCC->ICSCR & 0xFFFF0000) | ((*(uint32_t *)(0x1FFF0100)) & 0xFFFF); + + /*Set the LSI clock to 32.768KHz by default*/ + RCC->ICSCR = (RCC->ICSCR & 0xFE00FFFF) | (((*(uint32_t *)(0x1FFF0144)) & 0x1FF) << RCC_ICSCR_LSI_TRIM_Pos); + + /* Configure the Vector Table location add offset address ------------------*/ +#ifdef VECT_TAB_SRAM + SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */ +#else + SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */ +#endif /* VECT_TAB_SRAM */ + +#ifndef SWD_DELAY + /* When the SWD pin is reused for other functions, this function is used to solve the + problem of not being able to update the code. */ + DelayTime(200); +#endif /* SWD_DELAY */ +} + +#ifndef SWD_DELAY +/** + * @brief This function provides delay (in milliseconds) based on CPU cycles method. + * @param mdelay: specifies the delay time length, in milliseconds. + * @retval None + */ +static void DelayTime(uint32_t mdelay) +{ + __IO uint32_t Delay = mdelay * (24000000U / 8U / 1000U); + do + { + __NOP(); + } + while (Delay --); +} +#endif /* SWD_DELAY */ +/************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/readme.txt b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/readme.txt new file mode 100644 index 0000000..d2cb28e --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_FullDuplex_ExternalFLASH/readme.txt @@ -0,0 +1,103 @@ +================================================================================ + 样例使用说明 + Sample Description +================================================================================ +功能描述: +此样例演示了主机SPI通过轮询方式进行通讯,从机使用FLASH外设芯片P25Q64,按下user +按键,主机先向从机写15bytes数据为0x1~0xf,然后再从FLASH中将写入的数据读出,读取成 +功后,通过串口打印信息判定通信是否成功。 + +Function descriptions: +This sample demonstrates the host SPI communication through polling, the slave +uses FLASH peripheral chip P25Q64, press the user button, the host first to the +slave to write 15bytes of data for the 0x1~0xf,and then from the FLASH will be +written to read out the data, read successfully, through the serial port to +print the information to determine whether the communication is successful. +================================================================================ +测试环境: +测试用板:PY32F002B_STK +MDK版本: 5.28 +IAR版本: 9.20 +GCC 版本:GNU Arm Embedded Toolchain 10.3-2021.10 + +Test environment: +Test board: PY32F002B_STK +MDK Version: 5.28 +IAR Version: 9.20 +GCC Version: GNU Arm Embedded Toolchain 10.3-2021.10 +================================================================================ +使用步骤: +1.编译下载程序到MCU,并运行; +2.按下主机user按键,擦除外接FLASH第一个Sector页; +3.写15bytes数据0x1-0xf到刚擦除的Sector页; +4.从FLASH的第一个Sector页读取15bytes数据; +5.比较读出的数据与写入的数据是否相同。观察串口助手,如果主、从机串口助手均接收到 +“SPI transfer succeeded”则通信成功;如果主、从机串口助手接收到“SPI Transfer Error” +则通信失败。 + +Example execution steps: +1. compile and download the program to MCU and run it; +2. Press the host user button to erase the first Sector of the external FLASH; +3. Write 15bytes of data 0x1-0xf to the Sector that was just erased; +4. read 15bytes of data from the first Sector of FLASH; +5.Compares whether the data read is the same as the data written. Compare whether +the read data and the written data are the same. When the LED of the host turns +from dark to light, it indicates that the host is successful in sending and +receiving data; when the LED of the host is in flashing state, it indicates that +the host fails to send and receive data. +================================================================================ +注意事项: +1.主机与板载FLASH(P25Q64)引脚连接(箭头指向为信号传输方向) +主机MASTER: FLASH: +SCK(PB2) -----> SCK +MISO(PA1) <----- MISO +MOSI(PA7) -----> MOSI +NSS(PA6) -----> NSS +GND <-----> GND +2.板子上的LED灯引脚为PA1,与SPI_MISO引脚为同一个,不能再用LED表示通讯成功或失败 +的状态。 +3.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart +STK板 USB转TTL模块 +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART配置为波特率115200,数据位8,停止位1,校验位None +@PrintfConfigEnd +4.开发板焊接了FLASH器件,使用该样例需要焊接R41/R45/R46/R47/R48五个电阻。没有焊接 +FLASH器件,使用该样例需外接FLASH。 +5.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 + +Notes: +1.Host and on-board FLASH (P25Q64) pin connection (the arrow points to the +direction of signal transmission) +MASTER: FLASH: +SCK(PB2) -----> SCK +MISO(PA1) <----- MISO +MOSI(PA7) -----> MOSI +NSS(PA6) -----> NSS +GND <-----> GND +2.The LED light pin on the board is PA1, which matches the SPI_ The MISO pins +are the same, and LED cannot be used to indicate the status of successful or +failed communication. +3.Connect the PC to the STK board through the USB to TTL module, and the connection +method between the STK board and the USB to TTL module is as follows: +@PrintfConfigStart +STK board USB to TTL module +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 115200, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd +4.Development board welded FLASH device, the use of the sample need to weld +R41/R45/R46/R47/R48 five resistors. No FLASH device is soldered, using the sample +requires external FLASH. +5.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required + +================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/EIDE/.eide/eide.json index 1afaf05..013eabf 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -86,9 +84,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -105,14 +103,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -131,6 +132,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -143,10 +152,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/EIDE/Makefile b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/EIDE/Makefile index 697cbb3..026de16 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/MDK-ARM/Project.uvoptx index 7531293..35ab267 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/MDK-ARM/Project.uvoptx @@ -10,7 +10,7 @@ *.s*; *.src; *.a* *.obj; *.o *.lib - *.txt; *.h; *.inc + *.txt; *.h; *.inc; *.md *.plm *.cpp 0 @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"" -O206 -S0 -C0 -P00000000 -N00("") -D00(00000000) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 @@ -329,7 +329,7 @@ 4 8 1 - 0 + 1 0 0 ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_rcc.c diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/MDK-ARM/Project.uvprojx index 534a240..5e31ca0 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/MDK-ARM/Project.uvprojx @@ -10,18 +10,18 @@ Project 0x4 ARM-ADS - 5060750::V5.06 update 6 (build 750)::ARMCC + 5060960::V5.06 update 7 (build 960)::.\ARMCC 0 PY32F002Bx5 Puya - Puya.PY32F0xx_DFP.1.2.0 + Puya.PY32F0xx_DFP.1.2.6 https://www.puyasemi.com/uploadfiles/ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h @@ -138,7 +138,7 @@ 1 BIN\UL2CM3.DLL - + "" () @@ -185,6 +185,8 @@ 0 0 0 + 0 + 0 0 0 8 @@ -351,7 +353,7 @@ 0 0 0 - 0 + 4 diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/Src/main.c b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/Src/main.c index 8f0dd18..f391d9e 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/Src/main.c +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/Src/main.c @@ -86,7 +86,7 @@ int main(void) } /* Wait for the button to be pressed */ - while (BSP_PB_GetState(BUTTON_KEY) == 1) + while (BSP_PB_GetState(BUTTON_KEY)) { } diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/readme.txt b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/readme.txt index 1d074d5..edae4a1 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/readme.txt +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_IT/readme.txt @@ -39,14 +39,9 @@ MISO(PA1) <----- MISO(PA1) MOSI(PA7) -----> MOSI(PA7) NSS(PA6) -----> NSS(PA6) GND <-----> GND -5.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; -STK板 USB转TTL模块 -PB4(TX) --> RX -PB5(RX) --> TX -GND --> GND -6.主从机上电 -7.按下从机复位按键先运行从机程序,再按下主机用户按键运行主机程序 -8.观察串口助手,如果主、从机串口助手均接收到“SPI transfer succeeded”则通信成功; +5.主从机上电 +6.按下从机复位按键先运行从机程序,再按下主机用户按键运行主机程序 +7.观察串口助手,如果主、从机串口助手均接收到“SPI transfer succeeded”则通信成功; 如果主、从机串口助手接收到“SPI Transfer Error”则通信失败。 Example execution steps: @@ -61,16 +56,10 @@ MISO(PA1) <----- MISO(PA1) MOSI(PA7) -----> MOSI(PA7) NSS(PA6) -----> NSS(PA6) GND <-----> GND -5.Connect the PC to the STK board through the USB to TTL module, and the -connection method between the STK board and the USB to TTL module is as follows: -STK board USB to TTL module -PB4(TX) --> RX -PB5(RX) --> TX -GND --> GND -6.Powering on the master and slave machines -7.Press the slave reset button to run the slave program first, and then press +5.Powering on the master and slave machines +6.Press the slave reset button to run the slave program first, and then press the master user button to run the master program -8.Observe the serial port assistant, and if both the master and slave serial +7.Observe the serial port assistant, and if both the master and slave serial port assistants receive "SPI transfer succeeded", the communication is successful; If the master and slave serial port assistants receive an "SPI Transfer Error", communication fails. @@ -81,6 +70,20 @@ successful; If the master and slave serial port assistants receive an 2.NSS引脚只需要在使用NSS硬件方式时连接(本样例使用的是NSS硬件方式) 3.板子上的LED灯引脚为PA1,与SPI_MISO引脚为同一个,不能再用LED表示通讯成功或失败 的状态。 +4.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart +STK板 USB转TTL模块 +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART配置为波特率115200,数据位8,停止位1,校验位None +@PrintfConfigEnd +5.开发板焊接了FLASH器件,使用该样例建议去除R42/R44/R45/R46/R47五个电阻。没有焊接 +FLASH器件,无需关注这五个电阻。 +6.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: 1.You must first press the slave reset button to run the slave program first, @@ -91,4 +94,20 @@ it will cause communication failure between the master and slave machines. 3.The LED light pin on the board is PA1, which matches the SPI_ The MISO pins are the same, and LED cannot be used to indicate the status of successful or failed communication. +4.Connect the PC to the STK board through the USB to TTL module, and the connection +method between the STK board and the USB to TTL module is as follows: +@PrintfConfigStart +STK board USB to TTL module +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 115200, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd +5.The development board is soldered FLASH devices, the use of this sample is +recommended to remove the five resistors R41/R45/R46/R47/R48. No FLASH device is +soldered, no need to pay attention to these five resistors. +6.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/EIDE/.eide/eide.json index 1afaf05..013eabf 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -86,9 +84,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -105,14 +103,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -131,6 +132,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -143,10 +152,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/EIDE/Makefile b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/EIDE/Makefile index 697cbb3..026de16 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/MDK-ARM/Project.uvoptx index 3c0341a..49a64d6 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/MDK-ARM/Project.uvprojx index 534a240..de8cf34 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/Src/main.c b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/Src/main.c index 75b218f..36e341c 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/Src/main.c +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/Src/main.c @@ -86,7 +86,7 @@ int main(void) } /* Wait for the button to be pressed */ - while (BSP_PB_GetState(BUTTON_KEY) == 1) + while (BSP_PB_GetState(BUTTON_KEY)) { } diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/readme.txt b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/readme.txt index 47c9b9d..f1005ad 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/readme.txt +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexMaster_Polling/readme.txt @@ -39,14 +39,9 @@ MISO(PA1) <----- MISO(PA1) MOSI(PA7) -----> MOSI(PA7) NSS(PA6) -----> NSS(PA6) GND <-----> GND -5.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; -STK板 USB转TTL模块 -PB4(TX) --> RX -PB5(RX) --> TX -GND --> GND -6.主从机上电 -7.按下从机复位按键先运行从机程序,再按下主机用户按键运行主机程序 -8.观察串口助手,如果主、从机串口助手均接收到“SPI transfer succeeded”则通信成功; +5.主从机上电 +6.按下从机复位按键先运行从机程序,再按下主机用户按键运行主机程序 +7.观察串口助手,如果主、从机串口助手均接收到“SPI transfer succeeded”则通信成功; 如果主、从机串口助手接收到“SPI Transfer Error”则通信失败。 Example execution steps: @@ -61,16 +56,10 @@ MISO(PA1) <----- MISO(PA1) MOSI(PA7) -----> MOSI(PA7) NSS(PA6) -----> NSS(PA6) GND <-----> GND -5.Connect the PC to the STK board through the USB to TTL module, and the -connection method between the STK board and the USB to TTL module is as follows: -STK board USB to TTL module -PB4(TX) --> RX -PB5(RX) --> TX -GND --> GND -6.Powering on the master and slave machines -7.Press the slave reset button to run the slave program first, and then press +5.Powering on the master and slave machines +6.Press the slave reset button to run the slave program first, and then press the master user button to run the master program -8.Observe the serial port assistant, and if both the master and slave serial +7.Observe the serial port assistant, and if both the master and slave serial port assistants receive "SPI transfer succeeded", the communication is successful; If the master and slave serial port assistants receive an "SPI Transfer Error", communication fails. @@ -81,6 +70,20 @@ successful; If the master and slave serial port assistants receive an 2.NSS引脚只需要在使用NSS硬件方式时连接(本样例使用的是NSS硬件方式) 3.板子上的LED灯引脚为PA1,与SPI_MISO引脚为同一个,不能再用LED表示通讯成功或失败 的状态。 +4.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart +STK板 USB转TTL模块 +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART配置为波特率115200,数据位8,停止位1,校验位None +@PrintfConfigEnd +5.开发板焊接了FLASH器件,使用该样例建议去除R42/R44/R45/R46/R47五个电阻。没有焊接 +FLASH器件,无需关注这五个电阻。 +6.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: 1.You must first press the slave reset button to run the slave program first, @@ -91,4 +94,20 @@ it will cause communication failure between the master and slave machines. 3.The LED light pin on the board is PA1, which matches the SPI_ The MISO pins are the same, and LED cannot be used to indicate the status of successful or failed communication. +4.Connect the PC to the STK board through the USB to TTL module, and the connection +method between the STK board and the USB to TTL module is as follows: +@PrintfConfigStart +STK board USB to TTL module +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 115200, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd +5.The development board is soldered FLASH devices, the use of this sample is +recommended to remove the five resistors R41/R45/R46/R47/R48. No FLASH device is +soldered, no need to pay attention to these five resistors. +6.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/EIDE/.eide/eide.json index 1afaf05..013eabf 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -86,9 +84,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -105,14 +103,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -131,6 +132,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -143,10 +152,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/EIDE/Makefile b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/EIDE/Makefile index 697cbb3..026de16 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/MDK-ARM/Project.uvoptx index 4275bbe..e24f527 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/MDK-ARM/Project.uvoptx @@ -10,7 +10,7 @@ *.s*; *.src; *.a* *.obj; *.o *.lib - *.txt; *.h; *.inc + *.txt; *.h; *.inc; *.md *.plm *.cpp 0 @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"" -O206 -S0 -C0 -P00000000 -N00("") -D00(00000000) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 @@ -148,40 +148,7 @@ - - - 0 - 0 - 122 - 1 -
134218298
- 0 - 0 - 0 - 0 - 0 - 1 - ..\Src\main.c - - \\Project\../Src/main.c\122 -
- - 1 - 0 - 117 - 1 -
134218290
- 0 - 0 - 0 - 0 - 0 - 1 - ..\Src\main.c - - \\Project\../Src/main.c\117 -
-
+ 0 diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/MDK-ARM/Project.uvprojx index 534a240..5e31ca0 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/MDK-ARM/Project.uvprojx @@ -10,18 +10,18 @@ Project 0x4 ARM-ADS - 5060750::V5.06 update 6 (build 750)::ARMCC + 5060960::V5.06 update 7 (build 960)::.\ARMCC 0 PY32F002Bx5 Puya - Puya.PY32F0xx_DFP.1.2.0 + Puya.PY32F0xx_DFP.1.2.6 https://www.puyasemi.com/uploadfiles/ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h @@ -138,7 +138,7 @@ 1 BIN\UL2CM3.DLL - + "" () @@ -185,6 +185,8 @@ 0 0 0 + 0 + 0 0 0 8 @@ -351,7 +353,7 @@ 0 0 0 - 0 + 4 diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/readme.txt b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/readme.txt index 1d074d5..edae4a1 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/readme.txt +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_IT/readme.txt @@ -39,14 +39,9 @@ MISO(PA1) <----- MISO(PA1) MOSI(PA7) -----> MOSI(PA7) NSS(PA6) -----> NSS(PA6) GND <-----> GND -5.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; -STK板 USB转TTL模块 -PB4(TX) --> RX -PB5(RX) --> TX -GND --> GND -6.主从机上电 -7.按下从机复位按键先运行从机程序,再按下主机用户按键运行主机程序 -8.观察串口助手,如果主、从机串口助手均接收到“SPI transfer succeeded”则通信成功; +5.主从机上电 +6.按下从机复位按键先运行从机程序,再按下主机用户按键运行主机程序 +7.观察串口助手,如果主、从机串口助手均接收到“SPI transfer succeeded”则通信成功; 如果主、从机串口助手接收到“SPI Transfer Error”则通信失败。 Example execution steps: @@ -61,16 +56,10 @@ MISO(PA1) <----- MISO(PA1) MOSI(PA7) -----> MOSI(PA7) NSS(PA6) -----> NSS(PA6) GND <-----> GND -5.Connect the PC to the STK board through the USB to TTL module, and the -connection method between the STK board and the USB to TTL module is as follows: -STK board USB to TTL module -PB4(TX) --> RX -PB5(RX) --> TX -GND --> GND -6.Powering on the master and slave machines -7.Press the slave reset button to run the slave program first, and then press +5.Powering on the master and slave machines +6.Press the slave reset button to run the slave program first, and then press the master user button to run the master program -8.Observe the serial port assistant, and if both the master and slave serial +7.Observe the serial port assistant, and if both the master and slave serial port assistants receive "SPI transfer succeeded", the communication is successful; If the master and slave serial port assistants receive an "SPI Transfer Error", communication fails. @@ -81,6 +70,20 @@ successful; If the master and slave serial port assistants receive an 2.NSS引脚只需要在使用NSS硬件方式时连接(本样例使用的是NSS硬件方式) 3.板子上的LED灯引脚为PA1,与SPI_MISO引脚为同一个,不能再用LED表示通讯成功或失败 的状态。 +4.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart +STK板 USB转TTL模块 +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART配置为波特率115200,数据位8,停止位1,校验位None +@PrintfConfigEnd +5.开发板焊接了FLASH器件,使用该样例建议去除R42/R44/R45/R46/R47五个电阻。没有焊接 +FLASH器件,无需关注这五个电阻。 +6.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: 1.You must first press the slave reset button to run the slave program first, @@ -91,4 +94,20 @@ it will cause communication failure between the master and slave machines. 3.The LED light pin on the board is PA1, which matches the SPI_ The MISO pins are the same, and LED cannot be used to indicate the status of successful or failed communication. +4.Connect the PC to the STK board through the USB to TTL module, and the connection +method between the STK board and the USB to TTL module is as follows: +@PrintfConfigStart +STK board USB to TTL module +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 115200, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd +5.The development board is soldered FLASH devices, the use of this sample is +recommended to remove the five resistors R41/R45/R46/R47/R48. No FLASH device is +soldered, no need to pay attention to these five resistors. +6.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/EIDE/.eide/eide.json index 1afaf05..013eabf 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -86,9 +84,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -105,14 +103,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -131,6 +132,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -143,10 +152,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/EIDE/Makefile b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/EIDE/Makefile index 697cbb3..026de16 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/MDK-ARM/Project.uvoptx index 86186fa..c8ead5b 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM) + -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/MDK-ARM/Project.uvprojx index 0a4d039..e8f43f5 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/readme.txt b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/readme.txt index 25cdd2d..e55098d 100644 --- a/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/readme.txt +++ b/Projects/PY32F002B-STK/Example/SPI/SPI_TwoBoards_FullDuplexSlave_Polling/readme.txt @@ -39,14 +39,9 @@ MISO(PA1) <----- MISO(PA1) MOSI(PA7) -----> MOSI(PA7) NSS(PA6) -----> NSS(PA6) GND <-----> GND -5.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; -STK板 USB转TTL模块 -PB4(TX) --> RX -PB5(RX) --> TX -GND --> GND -6.主从机上电 -7.按下从机复位按键先运行从机程序,再按下主机用户按键运行主机程序 -8.观察串口助手,如果主、从机串口助手均接收到“SPI transfer succeeded”则通信成功; +5.主从机上电 +6.按下从机复位按键先运行从机程序,再按下主机用户按键运行主机程序 +7.观察串口助手,如果主、从机串口助手均接收到“SPI transfer succeeded”则通信成功; 如果主、从机串口助手接收到“SPI Transfer Error”则通信失败。 Example execution steps: @@ -61,16 +56,10 @@ MISO(PA1) <----- MISO(PA1) MOSI(PA7) -----> MOSI(PA7) NSS(PA6) -----> NSS(PA6) GND <-----> GND -5.Connect the PC to the STK board through the USB to TTL module, and the -connection method between the STK board and the USB to TTL module is as follows: -STK board USB to TTL module -PB4(TX) --> RX -PB5(RX) --> TX -GND --> GND -6.Powering on the master and slave machines -7.Press the slave reset button to run the slave program first, and then press +5.Powering on the master and slave machines +6.Press the slave reset button to run the slave program first, and then press the master user button to run the master program -8.Observe the serial port assistant, and if both the master and slave serial +7.Observe the serial port assistant, and if both the master and slave serial port assistants receive "SPI transfer succeeded", the communication is successful; If the master and slave serial port assistants receive an "SPI Transfer Error", communication fails. @@ -81,6 +70,20 @@ successful; If the master and slave serial port assistants receive an 2.NSS引脚只需要在使用NSS硬件方式时连接(本样例使用的是NSS硬件方式) 3.板子上的LED灯引脚为PA1,与SPI_MISO引脚为同一个,不能再用LED表示通讯成功或失败 的状态。 +4.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart +STK板 USB转TTL模块 +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART配置为波特率115200,数据位8,停止位1,校验位None +@PrintfConfigEnd +5.开发板焊接了FLASH器件,使用该样例建议去除R42/R44/R45/R46/R47四五个电阻。没有焊接 +FLASH器件,无需关注这五个电阻。 +6.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: 1.You must first press the slave reset button to run the slave program first, @@ -91,4 +94,20 @@ it will cause communication failure between the master and slave machines. 3.The LED light pin on the board is PA1, which matches the SPI_ The MISO pins are the same, and LED cannot be used to indicate the status of successful or failed communication. +4.Connect the PC to the STK board through the USB to TTL module, and the connection +method between the STK board and the USB to TTL module is as follows: +@PrintfConfigStart +STK board USB to TTL module +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 115200, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd +5.The development board is soldered FLASH devices, the use of this sample is +recommended to remove the five resistors R41/R45/R46/R47/R48. No FLASH device is +soldered, no need to pay attention to these five resistors. +6.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/EIDE/.eide/eide.json index 8d0eaba..d4b6192 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -92,9 +90,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -111,14 +109,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -137,6 +138,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -149,10 +158,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/EIDE/Makefile b/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/EIDE/Makefile index 5208204..d9715fc 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/MDK-ARM/Project.uvoptx index 41a3c55..3c02fca 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/MDK-ARM/Project.uvprojx index a554c9e..42edb19 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/readme.txt b/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/readme.txt index 43a4529..9cc4515 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/readme.txt +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_6Step/readme.txt @@ -32,7 +32,7 @@ Example execution steps: 2. Use Logic analyzer to observe the waveform of pin PA5/PB2/PA3/PB1/PA4/PB0 ================================================================================ 注意事项: -换向步骤和波形如下所示: +1.换向步骤和波形如下所示: 第一步 第二步 第三步 第四步 第五步 第六步 CH1 1 0 0 0 0 1 CH1N 0 0 1 1 0 0 @@ -49,9 +49,13 @@ CH2N (PB01) |||||||||||||||________________________________ CH3 (PA04) _______||||||||||||||||________________________ CH3N (PB00) ________________________________||||||||||||||| +2.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: -The commutation steps and waveforms are as follows: +1.The commutation steps and waveforms are as follows: Step1 Step2 Step3 Step4 Step5 Step6 CH1 1 0 0 0 0 1 CH1N 0 0 1 1 0 0 @@ -68,5 +72,8 @@ CH2N (PB01) |||||||||||||||________________________________ CH3 (PA04) _______||||||||||||||||________________________ CH3N (PB00) ________________________________||||||||||||||| - +2.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/EIDE/.eide/eide.json index 8d0eaba..d4b6192 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -92,9 +90,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -111,14 +109,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -137,6 +138,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -149,10 +158,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/EIDE/Makefile b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/EIDE/Makefile index 5208204..d9715fc 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/MDK-ARM/Project.uvoptx index 25c2e97..e6d0910 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/MDK-ARM/Project.uvprojx index a554c9e..42edb19 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/readme.txt b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/readme.txt index 2c9ac41..238958e 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/readme.txt +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture/readme.txt @@ -33,7 +33,15 @@ Example execution steps: 2. Each time the button is pressed, the LED light flips once. ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.eide/eide.json index 8d0eaba..d4b6192 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -92,9 +90,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -111,14 +109,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -137,6 +138,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -149,10 +158,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/Makefile b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/Makefile index 5208204..d9715fc 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/MDK-ARM/Project.uvoptx index 25c2e97..e6d0910 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/MDK-ARM/Project.uvprojx index a554c9e..42edb19 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/readme.txt b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/readme.txt index 07d32d0..d9b3faa 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/readme.txt +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/readme.txt @@ -34,7 +34,15 @@ Example execution steps: the remaining pin changes ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/EIDE/.eide/eide.json index 8d0eaba..d4b6192 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -92,9 +90,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -111,14 +109,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -137,6 +138,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -149,10 +158,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/EIDE/Makefile b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/EIDE/Makefile index 5208204..d9715fc 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/MDK-ARM/Project.uvoptx index 25c2e97..e6d0910 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/MDK-ARM/Project.uvprojx index a554c9e..42edb19 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/readme.txt b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/readme.txt index 0669231..a794059 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/readme.txt +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle/readme.txt @@ -32,7 +32,15 @@ Example execution steps: 2. PA5 flip frequency is 0.5Hz ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/.clang-format b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/.clang-format new file mode 100644 index 0000000..ecc57c4 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/.clang-format @@ -0,0 +1,38 @@ +--- +BasedOnStyle: Microsoft +Language: Cpp + +################################### +# indent conf +################################### + +UseTab: Never +IndentWidth: 4 +TabWidth: 4 +ColumnLimit: 0 +AccessModifierOffset: -4 +NamespaceIndentation: All +FixNamespaceComments: false +BreakBeforeBraces: Linux + +################################### +# other styles +################################### + +# +# for more conf, you can ref: https://clang.llvm.org/docs/ClangFormatStyleOptions.html +# + +AllowShortIfStatementsOnASingleLine: true + +AllowShortLoopsOnASingleLine: true + +AllowShortBlocksOnASingleLine: true + +IndentCaseLabels: true + +SortIncludes: false + +AlignConsecutiveMacros: AcrossEmptyLines + +AlignConsecutiveAssignments: Consecutive diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/.eide/eide.json new file mode 100644 index 0000000..d4b6192 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/.eide/eide.json @@ -0,0 +1,197 @@ +{ + "name": "Project", + "type": "ARM", + "dependenceList": [], + "srcDirs": [], + "virtualFolder": { + "name": "", + "files": [], + "folders": [ + { + "name": "BSP", + "files": [ + { + "path": "../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit/py32f002bxx_Start_Kit.c" + } + ], + "folders": [] + }, + { + "name": "Common", + "files": [ + { + "path": "../Src/system_py32f002b.c" + }, + { + "path": "startup_py32f002bxx.s" + } + ], + "folders": [] + }, + { + "name": "Doc", + "files": [ + { + "path": "../readme.txt" + } + ], + "folders": [] + }, + { + "name": "PY32F002B_HAL_Driver", + "files":[ + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc_ex.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_gpio.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_pwr.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_uart.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_cortex.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_exti.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim_ex.c" + } + ], + "folders": [] + }, + { + "name": "User", + "files":[ + { + "path":"../Src/main.c" + }, + { + "path":"../Src/py32f002b_hal_msp.c" + }, + { + "path":"../Src/py32f002b_it.c" + } + ], + "folders": [] + } + ] + }, + "outDir": ".", + "deviceName": "PY32F002Bx5", + "packDir": null, + "miscInfo": { + "uid": "36bcf0031e18a3008bbdaa90a96a7987" + }, + "targets": { + "Project": { + "excludeList": [], + "toolchain": "GCC", + "compileConfig": { + "cpuType": "Cortex-M0+", + "floatingPointHardware": "none", + "scatterFilePath": "py32f002bx5.ld", + "useCustomScatterFile": true, + "storageLayout": { + "RAM": [], + "ROM": [] + }, + "options": "null", + "archExtensions": "" + }, + "uploader": "pyOCD", + "uploadConfig": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" + }, + "uploadConfigMap": { + "JLink": { + "bin": "", + "baseAddr": "", + "cpuInfo": { + "vendor": "Puya", + "cpuName": "PY32F002Bx5" + }, + "proType": 1, + "speed": 1000, + "otherCmds": "" + }, + "OpenOCD": { + "bin": "", + "target": "py32f002b", + "interface": "cmsis-dap", + "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" + } + }, + "custom_dep": { + "name": "default", + "incList": [ + "../Inc", + "../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit", + "../../../../../../Drivers/CMSIS/Include", + "../../../../../../Drivers/CMSIS/Device/PY32F0xx/Include", + "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" + ], + "libList": [], + "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } + } + } + }, + "version": "3.6" +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/.gitignore new file mode 100644 index 0000000..8519ec6 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/.gitignore @@ -0,0 +1,15 @@ +# dot files +# /.vscode/launch.json +/.settings +/.eide/log +/.eide.usr.ctx.json + +# project out +/build +/bin +/obj +/out + +# eide template +*.ept +*.eide-template diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/.vscode/settings.json b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/.vscode/settings.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/.vscode/settings.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/.vscode/tasks.json new file mode 100644 index 0000000..854f87f --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/.vscode/tasks.json @@ -0,0 +1,72 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "type": "shell", + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" + }, + { + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" + }, + { + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/Makefile b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/Makefile new file mode 100644 index 0000000..d9715fc --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/Makefile @@ -0,0 +1,186 @@ +########################################################################################################################## +# File automatically-generated by tool: [projectgenerator] version: [3.17.1] date: [Tue Dec 06 16:10:07 CST 2022] +########################################################################################################################## + +# ------------------------------------------------ +# Generic Makefile (based on gcc) +# +# ChangeLog : +# 2017-02-10 - Several enhancements + project update mode +# 2015-07-22 - first version +# ------------------------------------------------ + +###################################### +# target +###################################### +TARGET = Project + + +###################################### +# building variables +###################################### +# debug build? +DEBUG = 1 +# optimization +OPT = -Og + + +####################################### +# paths +####################################### +# Build path +BUILD_DIR = Project + +###################################### +# source +###################################### +# C sources +C_SOURCES = \ ../Src/main.c \ +../Src/py32f002b_hal_msp.c \ +../Src/py32f002b_it.c \ +../Src/system_py32f002b.c \ +../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit/py32f002bxx_Start_Kit.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc_ex.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_gpio.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_pwr.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_uart.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_cortex.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_exti.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim_ex.c + + +# ASM sources +ASM_SOURCES = \ +startup_py32f002bxx.s + + +####################################### +# binaries +####################################### +PREFIX = arm-none-eabi- +# The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx) +# either it can be added to the PATH environment variable. +ifdef GCC_PATH +CC = $(GCC_PATH)/$(PREFIX)gcc +AS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp +CP = $(GCC_PATH)/$(PREFIX)objcopy +SZ = $(GCC_PATH)/$(PREFIX)size +else +CC = $(PREFIX)gcc +AS = $(PREFIX)gcc -x assembler-with-cpp +CP = $(PREFIX)objcopy +SZ = $(PREFIX)size +endif +HEX = $(CP) -O ihex +BIN = $(CP) -O binary -S + +####################################### +# CFLAGS +####################################### +# cpu +CPU = -mcpu=cortex-m0plus + +# fpu +# NONE for Cortex-M0/M0+/M3 + +# float-abi + + +# mcu +MCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI) + +# macros for gcc +# AS defines +AS_DEFS = + +# C defines +C_DEFS = \ +-DUSE_HAL_DRIVER\ +-DPY32F002Bx5 + + +# AS includes +AS_INCLUDES = + +# C includes +C_INCLUDES = \ +-I../Inc \ +-I../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit \ +-I../../../../../../Drivers/PY32F002B_HAL_Driver/Inc \ +-I../../../../../../Drivers/CMSIS/Device/PY32F0xx/Include \ +-I../../../../../../Drivers/CMSIS/Include + + +# compile gcc flags +ASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections + +CFLAGS += $(MCU) $(C_DEFS) $(C_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections + +ifeq ($(DEBUG), 1) +CFLAGS += -g -gdwarf-2 +endif + + +# Generate dependency information +CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)" + + +####################################### +# LDFLAGS +####################################### +# link script +LDSCRIPT = py32f002bx5.ld + +# libraries +LIBS = -lc -lm -lnosys +LIBDIR = +LDFLAGS = $(MCU) -specs=nano.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections + +# default action: build all +all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin + + +####################################### +# build the application +####################################### +# list of objects +OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o))) +vpath %.c $(sort $(dir $(C_SOURCES))) +# list of ASM program objects +OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o))) +vpath %.s $(sort $(dir $(ASM_SOURCES))) + +$(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR) + $(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@ + +$(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR) + $(AS) -c $(CFLAGS) $< -o $@ + +$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile + $(CC) $(OBJECTS) $(LDFLAGS) -o $@ + $(SZ) $@ + +$(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf | $(BUILD_DIR) + $(HEX) $< $@ + +$(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR) + $(BIN) $< $@ + +$(BUILD_DIR): + mkdir $@ + +####################################### +# clean up +####################################### +clean: + -rm -fR $(BUILD_DIR) + +####################################### +# dependencies +####################################### +-include $(wildcard $(BUILD_DIR)/*.d) + +# *** EOF *** \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/Project.code-workspace b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/Project.code-workspace new file mode 100644 index 0000000..f200f34 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/Project.code-workspace @@ -0,0 +1,44 @@ +{ + "folders": [ + { + "path": "." + } + ], + "settings": { + "files.autoGuessEncoding": true, + "C_Cpp.default.configurationProvider": "cl.eide", + "C_Cpp.errorSquiggles": "disabled", + "files.associations": { + ".eideignore": "ignore", + "*.a51": "a51", + "*.h": "c", + "*.c": "c", + "*.hxx": "cpp", + "*.hpp": "cpp", + "*.c++": "cpp", + "*.cpp": "cpp", + "*.cxx": "cpp", + "*.cc": "cpp" + }, + "[yaml]": { + "editor.insertSpaces": true, + "editor.tabSize": 4, + "editor.autoIndent": "advanced" + } + }, + "extensions": { + "recommendations": [ + "cl.eide", + "keroc.hex-fmt", + "xiaoyongdong.srecord", + "hars.cppsnippets", + "zixuanwang.linkerscript", + "redhat.vscode-yaml", + "IBM.output-colorizer", + "cschlosser.doxdocgen", + "ms-vscode.vscode-serial-monitor", + "dan-c-underwood.arm", + "marus25.cortex-debug" + ] + } +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/py32f002bx5.ld b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/py32f002bx5.ld new file mode 100644 index 0000000..0b99c54 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/py32f002bx5.ld @@ -0,0 +1,189 @@ +/* +****************************************************************************** +** + +** File : LinkerScript.ld +** +** Author : Puya_HC +** +** Abstract : Linker script for PY32F002Bx5 series +** 24Kbytes FLASH and 3Kbytes RAM +** +** Set heap size, stack size and stack location according +** to application requirements. +** +** Set memory bank area and size if external memory is used. +** +** Target : Puya PY32 +** +** Distribution: The file is distributed “as is,” without any warranty +** of any kind. +** +***************************************************************************** +** @attention +** +**

© COPYRIGHT(c) 2019 Puya Semiconductor

+** +** Redistribution and use in source and binary forms, with or without modification, +** are permitted provided that the following conditions are met: +** 1. Redistributions of source code must retain the above copyright notice, +** this list of conditions and the following disclaimer. +** 2. Redistributions in binary form must reproduce the above copyright notice, +** this list of conditions and the following disclaimer in the documentation +** and/or other materials provided with the distribution. +** 3. Neither the name of Puya Semiconductor nor the names of its contributors +** may be used to endorse or promote products derived from this software +** without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +** +***************************************************************************** +*/ + +/* Entry Point */ +ENTRY(Reset_Handler) + +/* Highest address of the user mode stack */ +_estack = ORIGIN(RAM) + LENGTH(RAM); /* end of RAM */ +/* Generate a link error if heap and stack don't fit into RAM */ +_Min_Heap_Size = 0x000; /* required amount of heap */ +_Min_Stack_Size = 0x400; /* required amount of stack */ + +/* Specify the memory areas */ +MEMORY +{ +RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 3K +FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 24K +} + +/* Define output sections */ +SECTIONS +{ + /* The startup code goes first into FLASH */ + .isr_vector : + { + . = ALIGN(4); + KEEP(*(.isr_vector)) /* Startup code */ + . = ALIGN(4); + } >FLASH + + /* The program code and other data goes into FLASH */ + .text : + { + . = ALIGN(4); + *(.text) /* .text sections (code) */ + *(.text*) /* .text* sections (code) */ + *(.glue_7) /* glue arm to thumb code */ + *(.glue_7t) /* glue thumb to arm code */ + *(.eh_frame) + + KEEP (*(.init)) + KEEP (*(.fini)) + + . = ALIGN(4); + _etext = .; /* define a global symbols at end of code */ + } >FLASH + + /* Constant data goes into FLASH */ + .rodata : + { + . = ALIGN(4); + *(.rodata) /* .rodata sections (constants, strings, etc.) */ + *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ + . = ALIGN(4); + } >FLASH + + .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH + .ARM : { + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + } >FLASH + + .preinit_array : + { + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array*)) + PROVIDE_HIDDEN (__preinit_array_end = .); + } >FLASH + .init_array : + { + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array*)) + PROVIDE_HIDDEN (__init_array_end = .); + } >FLASH + .fini_array : + { + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(SORT(.fini_array.*))) + KEEP (*(.fini_array*)) + PROVIDE_HIDDEN (__fini_array_end = .); + } >FLASH + + /* used by the startup to initialize data */ + _sidata = LOADADDR(.data); + + /* Initialized data sections goes into RAM, load LMA copy after code */ + .data : + { + . = ALIGN(4); + _sdata = .; /* create a global symbol at data start */ + *(.data) /* .data sections */ + *(.data*) /* .data* sections */ + + . = ALIGN(4); + _edata = .; /* define a global symbol at data end */ + } >RAM AT> FLASH + + + /* Uninitialized data section */ + . = ALIGN(4); + .bss : + { + /* This is used by the startup in order to initialize the .bss secion */ + _sbss = .; /* define a global symbol at bss start */ + __bss_start__ = _sbss; + *(.bss) + *(.bss*) + *(COMMON) + + . = ALIGN(4); + _ebss = .; /* define a global symbol at bss end */ + __bss_end__ = _ebss; + } >RAM + + /* User_heap_stack section, used to check that there is enough RAM left */ + ._user_heap_stack : + { + . = ALIGN(8); + PROVIDE ( end = . ); + PROVIDE ( _end = . ); + . = . + _Min_Heap_Size; + . = . + _Min_Stack_Size; + . = ALIGN(8); + } >RAM + + + + /* Remove information from the standard libraries */ + /DISCARD/ : + { + libc.a ( * ) + libm.a ( * ) + libgcc.a ( * ) + } + + .ARM.attributes 0 : { *(.ARM.attributes) } +} + + diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/startup_py32f002bxx.s b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/startup_py32f002bxx.s new file mode 100644 index 0000000..44eda49 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EIDE/startup_py32f002bxx.s @@ -0,0 +1,254 @@ +/** + ****************************************************************************** + * @file startup_py32f002bxx.s + * @author MCD Application Team + * @brief PY32F002Bxx devices vector table GCC toolchain. + * This module performs: + * - Set the initial SP + * - Set the initial PC == Reset_Handler, + * - Set the vector table entries with the exceptions ISR address + * - Branches to main in the C library (which eventually + * calls main()). + * After Reset the Cortex-M0+ processor is in Thread mode, + * priority is Privileged, and the Stack is set to Main. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 + * + ****************************************************************************** + */ + +.syntax unified +.cpu cortex-m0plus +.fpu softvfp +.thumb + +.global g_pfnVectors +.global Default_Handler + +/* start address for the initialization values of the .data section. +defined in linker script */ +.word _sidata +/* start address for the .data section. defined in linker script */ +.word _sdata +/* end address for the .data section. defined in linker script */ +.word _edata +/* start address for the .bss section. defined in linker script */ +.word _sbss +/* end address for the .bss section. defined in linker script */ +.word _ebss + +/** + * @brief This is the code that gets called when the processor first + * starts execution following a reset event. Only the absolutely + * necessary set is performed, after which the application + * supplied main() routine is called. + * @param None + * @retval None +*/ + + .section .text.Reset_Handler + .weak Reset_Handler + .type Reset_Handler, %function +Reset_Handler: + ldr r0, =_estack + mov sp, r0 /* set stack pointer */ + +/* Call the clock system initialization function.*/ + bl SystemInit + +/* Copy the data segment initializers from flash to SRAM */ + ldr r0, =_sdata + ldr r1, =_edata + ldr r2, =_sidata + movs r3, #0 + b LoopCopyDataInit + +CopyDataInit: + ldr r4, [r2, r3] + str r4, [r0, r3] + adds r3, r3, #4 + +LoopCopyDataInit: + adds r4, r0, r3 + cmp r4, r1 + bcc CopyDataInit + +/* Zero fill the bss segment. */ + ldr r2, =_sbss + ldr r4, =_ebss + movs r3, #0 + b LoopFillZerobss + +FillZerobss: + str r3, [r2] + adds r2, r2, #4 + +LoopFillZerobss: + cmp r2, r4 + bcc FillZerobss + +/* Call static constructors */ + bl __libc_init_array +/* Call the application s entry point.*/ + bl main + +LoopForever: + b LoopForever + +.size Reset_Handler, .-Reset_Handler + +/** + * @brief This is the code that gets called when the processor receives an + * unexpected interrupt. This simply enters an infinite loop, preserving + * the system state for examination by a debugger. + * + * @param None + * @retval None +*/ + .section .text.Default_Handler,"ax",%progbits +Default_Handler: +Infinite_Loop: + b Infinite_Loop + .size Default_Handler, .-Default_Handler + +/****************************************************************************** +* +* The minimal vector table for a Cortex M0. Note that the proper constructs +* must be placed on this to ensure that it ends up at physical address +* 0x0000.0000. +* +******************************************************************************/ + .section .isr_vector,"a",%progbits + .type g_pfnVectors, %object + .size g_pfnVectors, .-g_pfnVectors + +g_pfnVectors: + .word _estack + .word Reset_Handler + .word NMI_Handler + .word HardFault_Handler + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word SVC_Handler + .word 0 + .word 0 + .word PendSV_Handler + .word SysTick_Handler + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word FLASH_IRQHandler /* FLASH */ + .word RCC_IRQHandler /* RCC */ + .word EXTI0_1_IRQHandler /* EXTI Line 0 and 1 */ + .word EXTI2_3_IRQHandler /* EXTI Line 2 and 3 */ + .word EXTI4_15_IRQHandler /* EXTI Line 4 to 15 */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word ADC_COMP_IRQHandler /* ADC and COMP1 */ + .word TIM1_BRK_UP_TRG_COM_IRQHandler /* TIM1 Break, Update, Trigger and Commutation */ + .word TIM1_CC_IRQHandler /* TIM1 Capture Compare */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word LPTIM1_IRQHandler /* LPTIM1 */ + .word 0 /* reserved */ + .word TIM14_IRQHandler /* TIM14 */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word I2C1_IRQHandler /* I2C1 */ + .word 0 /* reserved */ + .word SPI1_IRQHandler /* SPI1 */ + .word 0 /* reserved */ + .word USART1_IRQHandler /* USART1 */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + +/******************************************************************************* +* +* Provide weak aliases for each Exception handler to the Default_Handler. +* As they are weak aliases, any function with the same name will override +* this definition. +* +*******************************************************************************/ + + .weak NMI_Handler + .thumb_set NMI_Handler,Default_Handler + + .weak HardFault_Handler + .thumb_set HardFault_Handler,Default_Handler + + .weak SVC_Handler + .thumb_set SVC_Handler,Default_Handler + + .weak PendSV_Handler + .thumb_set PendSV_Handler,Default_Handler + + .weak SysTick_Handler + .thumb_set SysTick_Handler,Default_Handler + + .weak FLASH_IRQHandler + .thumb_set FLASH_IRQHandler,Default_Handler + + .weak RCC_IRQHandler + .thumb_set RCC_IRQHandler,Default_Handler + + .weak EXTI0_1_IRQHandler + .thumb_set EXTI0_1_IRQHandler,Default_Handler + + .weak EXTI2_3_IRQHandler + .thumb_set EXTI2_3_IRQHandler,Default_Handler + + .weak EXTI4_15_IRQHandler + .thumb_set EXTI4_15_IRQHandler,Default_Handler + + .weak ADC_COMP_IRQHandler + .thumb_set ADC_COMP_IRQHandler,Default_Handler + + .weak TIM1_BRK_UP_TRG_COM_IRQHandler + .thumb_set TIM1_BRK_UP_TRG_COM_IRQHandler,Default_Handler + + .weak TIM1_CC_IRQHandler + .thumb_set TIM1_CC_IRQHandler,Default_Handler + + .weak LPTIM1_IRQHandler + .thumb_set LPTIM1_IRQHandler,Default_Handler + + .weak TIM14_IRQHandler + .thumb_set TIM14_IRQHandler,Default_Handler + + .weak I2C1_IRQHandler + .thumb_set I2C1_IRQHandler,Default_Handler + + .weak SPI1_IRQHandler + .thumb_set SPI1_IRQHandler,Default_Handler + + .weak USART1_IRQHandler + .thumb_set USART1_IRQHandler,Default_Handler diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EWARM/Project.ewd b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EWARM/Project.ewd new file mode 100644 index 0000000..4b12306 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EWARM/Project.ewd @@ -0,0 +1,1534 @@ + + + 3 + + Project + + ARM + + 1 + + C-SPY + 2 + + 32 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + CADI_ID + 2 + + 0 + 1 + 1 + + + + + + + + + CMSISDAP_ID + 2 + + 4 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IJET_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JLINK_ID + 2 + + 16 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 3 + 1 + 1 + + + + + + + + + + + + + NULINK_ID + 2 + + 0 + 1 + 1 + + + + + + + PEMICRO_ID + 2 + + 3 + 1 + 1 + + + + + + + + STLINK_ID + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + TIFET_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + + + XDS100_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9BE.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EWARM/Project.ewp b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EWARM/Project.ewp new file mode 100644 index 0000000..93d2140 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EWARM/Project.ewp @@ -0,0 +1,1141 @@ + + + 3 + + Project + + ARM + + 1 + + General + 3 + + 34 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 37 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 11 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + 1 + inputOutputBased + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 26 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + + Doc + + $PROJ_DIR$\..\readme.txt + + + + Drivers + + BSP + + PY32F002Bxx_Start_Kit + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\PY32F002Bxx_Start_Kit\py32f002bxx_Start_Kit.c + + + + + CMSIS + + $PROJ_DIR$\..\Src\system_py32f002b.c + + + + PY32F002B_HAL_Driver + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_rcc.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_rcc_ex.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_gpio.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_pwr.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_uart.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_cortex.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_exti.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_tim.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_tim_ex.c + + + + + Example + + EWARM + + $PROJ_DIR$\startup_py32f002bxx.s + + + + User + + $PROJ_DIR$\..\Src\main.c + + + $PROJ_DIR$\..\Src\py32f002b_hal_msp.c + + + $PROJ_DIR$\..\Src\py32f002b_it.c + + + + diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EWARM/Project.eww b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EWARM/Project.eww new file mode 100644 index 0000000..46d9d41 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EWARM/Project.eww @@ -0,0 +1,7 @@ + + + + $WS_DIR$\Project.ewp + + + diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EWARM/py32f002bx5_flash.icf b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EWARM/py32f002bx5_flash.icf new file mode 100644 index 0000000..6146162 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EWARM/py32f002bx5_flash.icf @@ -0,0 +1,33 @@ +/*###ICF### Section handled by ICF editor, don't touch! ****/ +/*-Editor annotation file-*/ +/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ +/*-Specials-*/ +define symbol __ICFEDIT_intvec_start__ = 0x08000000; +/*-Memory Regions-*/ +define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; +define symbol __ICFEDIT_region_ROM_end__ = 0x08005FFF; +define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; +define symbol __ICFEDIT_region_RAM_end__ = 0x20000BFF; +/*-Sizes-*/ +define symbol __ICFEDIT_size_cstack__ = 0x00000400; +define symbol __ICFEDIT_size_heap__ = 0x00000000; +/**** End of ICF editor section. ###ICF###*/ + +define memory mem with size = 4G; +define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; +define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; + +define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; +define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; + +initialize by copy { readwrite }; +do not initialize { section .noinit }; + +place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; + +place in ROM_region { readonly }; +place in RAM_region { readwrite, + block CSTACK, block HEAP }; + +export symbol __ICFEDIT_region_RAM_start__; +export symbol __ICFEDIT_region_RAM_end__; \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EWARM/startup_py32f002bxx.s b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EWARM/startup_py32f002bxx.s new file mode 100644 index 0000000..98df065 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/EWARM/startup_py32f002bxx.s @@ -0,0 +1,222 @@ +;****************************************************************************** +;* @file startup_py32f002bxx.s +;* @author MCU Application Team +;* @brief PY32F002Bxx devices vector table for EWARM toolchain. +;* This module performs: +;* - Set the initial SP +;* - Set the initial PC == __iar_program_start +;* - Set the vector table entries with the exceptions ISR address +;* - Branches to __main in the C library (which eventually +;* calls main()). +;* After Reset the CortexM0+ processor is in Thread mode, +;* priority is Privileged, and the Stack is set to Main. +;****************************************************************************** +;* @attention +;* +;*

© Copyright (c) 2023 Puya Semiconductor Co. +;* All rights reserved.

+;* +;* This software component is licensed by Puya 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 +;* +;****************************************************************************** +;* @attention +;* +;*

© Copyright (c) 2016 STMicroelectronics. +;* All rights reserved.

+;* +;* 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 +;* +;****************************************************************************** +; +; The modules in this file are included in the libraries, and may be replaced +; by any user-defined modules that define the PUBLIC symbol _program_start or +; a user defined start symbol. +; To override the cstartup defined in the library, simply add your modified +; version to the workbench project. +; +; The vector table is normally located at address 0. +; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. +; The name "__vector_table" has special meaning for C-SPY: +; it is where the SP start value is found, and the NVIC vector +; table register (VTOR) is initialized to this address if != 0. +; +; Cortex-M version +; + + MODULE ?cstartup + + ;; Forward declaration of sections. + SECTION CSTACK:DATA:NOROOT(3) + + SECTION .intvec:CODE:NOROOT(2) + + EXTERN __iar_program_start + EXTERN SystemInit + PUBLIC __vector_table + + DATA +__vector_table + DCD sfe(CSTACK) ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD 0 ; 0Reserved + DCD 0 ; 1Reserved + DCD 0 ; 2Reserved + DCD FLASH_IRQHandler ; 3FLASH + DCD RCC_IRQHandler ; 4RCC + DCD EXTI0_1_IRQHandler ; 5EXTI Line 0 and 1 + DCD EXTI2_3_IRQHandler ; 6EXTI Line 2 and 3 + DCD EXTI4_15_IRQHandler ; 7EXTI Line 4 to 15 + DCD 0 ; 8Reserved + DCD 0 ; 9Reserved + DCD 0 ; 10Reserved + DCD 0 ; 11Reserved + DCD ADC_COMP_IRQHandler ; 12ADC&COMP1 + DCD TIM1_BRK_UP_TRG_COM_IRQHandler ; 13TIM1 Break, Update, Trigger and Commutation + DCD TIM1_CC_IRQHandler ; 14TIM1 Capture Compare + DCD 0 ; 15Reserved + DCD 0 ; 16Reserved + DCD LPTIM1_IRQHandler ; 17LPTIM1 + DCD 0 ; 18Reserved + DCD TIM14_IRQHandler ; 19TIM14 + DCD 0 ; 20Reserved + DCD 0 ; 21Reserved + DCD 0 ; 22Reserved + DCD I2C1_IRQHandler ; 23I2C1 + DCD 0 ; 24Reserved + DCD SPI1_IRQHandler ; 25SPI1 + DCD 0 ; 26Reserved + DCD USART1_IRQHandler ; 27USART1 + DCD 0 ; 28Reserved + DCD 0 ; 29Reserved + DCD 0 ; 30Reserved + DCD 0 ; 31Reserved + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; Default interrupt handlers. +;; + THUMB + + PUBWEAK Reset_Handler + SECTION .text:CODE:REORDER:NOROOT(2) +Reset_Handler + LDR R0, =SystemInit + BLX R0 + LDR R0, =__iar_program_start + BX R0 + + PUBWEAK NMI_Handler + SECTION .text:CODE:REORDER:NOROOT(1) +NMI_Handler + B NMI_Handler + + PUBWEAK HardFault_Handler + SECTION .text:CODE:REORDER:NOROOT(1) +HardFault_Handler + B HardFault_Handler + + PUBWEAK SVC_Handler + SECTION .text:CODE:REORDER:NOROOT(1) +SVC_Handler + B SVC_Handler + + PUBWEAK PendSV_Handler + SECTION .text:CODE:REORDER:NOROOT(1) +PendSV_Handler + B PendSV_Handler + + PUBWEAK SysTick_Handler + SECTION .text:CODE:REORDER:NOROOT(1) +SysTick_Handler + B SysTick_Handler + + PUBWEAK FLASH_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +FLASH_IRQHandler + B FLASH_IRQHandler + + PUBWEAK RCC_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +RCC_IRQHandler + B RCC_IRQHandler + + PUBWEAK EXTI0_1_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +EXTI0_1_IRQHandler + B EXTI0_1_IRQHandler + + PUBWEAK EXTI2_3_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +EXTI2_3_IRQHandler + B EXTI2_3_IRQHandler + + PUBWEAK EXTI4_15_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +EXTI4_15_IRQHandler + B EXTI4_15_IRQHandler + + PUBWEAK ADC_COMP_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +ADC_COMP_IRQHandler + B ADC_COMP_IRQHandler + + PUBWEAK TIM1_BRK_UP_TRG_COM_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +TIM1_BRK_UP_TRG_COM_IRQHandler + B TIM1_BRK_UP_TRG_COM_IRQHandler + + PUBWEAK TIM1_CC_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +TIM1_CC_IRQHandler + B TIM1_CC_IRQHandler + + PUBWEAK LPTIM1_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +LPTIM1_IRQHandler + B LPTIM1_IRQHandler + + PUBWEAK TIM14_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +TIM14_IRQHandler + B TIM14_IRQHandler + + PUBWEAK I2C1_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +I2C1_IRQHandler + B I2C1_IRQHandler + + PUBWEAK SPI1_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +SPI1_IRQHandler + B SPI1_IRQHandler + + PUBWEAK USART1_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +USART1_IRQHandler + B USART1_IRQHandler + + END + +;************************ (C) COPYRIGHT Puya *****END OF FILE******************* diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/Inc/Config.txt b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/Inc/Config.txt new file mode 100644 index 0000000..428fea1 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/Inc/Config.txt @@ -0,0 +1,29 @@ +[FilePath] +0=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal.c +1=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc.c +2=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc_ex.c +3=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_gpio.c +4=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_pwr.c +5=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_uart.c +6=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_cortex.c +7=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_exti.c +8=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim.c +9=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_tim_ex.c +[FileName] +0=py32f002b_hal.c +1=py32f002b_hal_rcc.c +2=py32f002b_hal_rcc_ex.c +3=py32f002b_hal_gpio.c +4=py32f002b_hal_pwr.c +5=py32f002b_hal_uart.c +6=py32f002b_hal_cortex.c +7=py32f002b_hal_exti.c +8=py32f002b_hal_tim.c +9=py32f002b_hal_tim_ex.c +[Define] +0=USE_HAL_DRIVER +1=PY32F002Bx5 +[User] +0=../Src/main.c +1=../Src/py32f002b_hal_msp.c +2=../Src/py32f002b_it.c diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/Inc/main.h b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/Inc/main.h new file mode 100644 index 0000000..84af7e9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/Inc/main.h @@ -0,0 +1,56 @@ +/** + ****************************************************************************** + * @file main.h + * @author MCU Application Team + * @brief Header for main.c file. + * This file contains the common defines of the application. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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_hal.h" +#include "py32f002bxx_Start_Kit.h" + +/* 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******************/ diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/Inc/py32f002b_hal_conf.h b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/Inc/py32f002b_hal_conf.h new file mode 100644 index 0000000..c2895bd --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/Inc/py32f002b_hal_conf.h @@ -0,0 +1,222 @@ +/** + ****************************************************************************** + * @file py32f002b_hal_conf.h + * @author MCU Application Team + * @brief HAL configuration file. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 __PY32F002B_HAL_CONF_H +#define __PY32F002B_HAL_CONF_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ + +/* ########################## Module Selection ############################## */ +/** + * @brief This is the list of modules to be used in the HAL driver + */ +#define HAL_MODULE_ENABLED +#define HAL_RCC_MODULE_ENABLED +/* #define HAL_ADC_MODULE_ENABLED */ +/* #define HAL_CRC_MODULE_ENABLED */ +/* #define HAL_COMP_MODULE_ENABLED */ +#define HAL_FLASH_MODULE_ENABLED +#define HAL_GPIO_MODULE_ENABLED +/* #define HAL_IWDG_MODULE_ENABLED */ +#define HAL_TIM_MODULE_ENABLED +/* #define HAL_LPTIM_MODULE_ENABLED */ +#define HAL_PWR_MODULE_ENABLED +/* #define HAL_I2C_MODULE_ENABLED */ +#define HAL_UART_MODULE_ENABLED +/* #define HAL_USART_MODULE_ENABLED */ +/* #define HAL_SPI_MODULE_ENABLED */ +#define HAL_EXTI_MODULE_ENABLED +#define HAL_CORTEX_MODULE_ENABLED + +/* ########################## Oscillator Values adaptation ####################*/ + +#if !defined (HSI_VALUE) + #define HSI_VALUE ((uint32_t)24000000) /*!< Value of the Internal oscillator in Hz */ +#endif /* HSI_VALUE */ + +/** + * @brief Adjust the value of External High Speed oscillator (HSE) used in your application. + * This value is used by the RCC HAL module to compute the system frequency + */ +#if !defined (HSE_VALUE) + #define HSE_VALUE ((uint32_t)24000000) /*!< Value of the External oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined (HSE_STARTUP_TIMEOUT) + #define HSE_STARTUP_TIMEOUT ((uint32_t)200) /*!< Time out for HSE start up, in ms */ +#endif /* HSE_STARTUP_TIMEOUT */ + +/** + * @brief Internal Low Speed Internal oscillator (LSI) value. + */ +#if !defined (LSI_VALUE) + #define LSI_VALUE ((uint32_t)32768) /*!< LSI Typical Value in Hz */ +#endif /* LSI_VALUE */ /*!< Value of the Internal Low Speed oscillator in Hz + The real value may vary depending on the variations + in voltage and temperature. */ + +/** + * @brief Adjust the value of External Low Speed oscillator (LSE) used in your application. + * This value is used by the RCC HAL module to compute the system frequency + */ +#if !defined (LSE_VALUE) + #define LSE_VALUE ((uint32_t)32768) /*!< Value of the External oscillator in Hz*/ +#endif /* LSE_VALUE */ + +#if !defined (LSE_STARTUP_TIMEOUT) + #define LSE_STARTUP_TIMEOUT ((uint32_t)5000) /*!< Time out for LSE start up, in ms */ +#endif /* LSE_STARTUP_TIMEOUT */ + +/* Tip: To avoid modifying this file each time you need to use different HSE, + === you can define the HSE value in your toolchain compiler preprocessor. */ + +/* ########################### System Configuration ######################### */ +/** + * @brief This is the HAL system configuration section + */ +#define VDD_VALUE ((uint32_t)3300) /*!< Value of VDD in mv */ +#define PRIORITY_HIGHEST 0 +#define PRIORITY_HIGH 1 +#define PRIORITY_LOW 2 +#define PRIORITY_LOWEST 3 +#define TICK_INT_PRIORITY ((uint32_t)PRIORITY_LOWEST) /*!< tick interrupt priority (lowest by default) */ +#define USE_RTOS 0 +#define PREFETCH_ENABLE 0 + +/* ########################## Assert Selection ############################## */ +/** + * @brief Uncomment the line below to expanse the "assert_param" macro in the + * HAL drivers code + */ +/* #define USE_FULL_ASSERT 1U */ + + +/* Includes ------------------------------------------------------------------*/ +/** + * @brief Include module's header file + */ +#ifdef HAL_MODULE_ENABLED + #include "py32f0xx_hal.h" +#endif /* HAL_MODULE_ENABLED */ + +#ifdef HAL_RCC_MODULE_ENABLED + #include "py32f002b_hal_rcc.h" +#endif /* HAL_RCC_MODULE_ENABLED */ + +#ifdef HAL_EXTI_MODULE_ENABLED + #include "py32f002b_hal_exti.h" +#endif /* HAL_EXTI_MODULE_ENABLED */ + +#ifdef HAL_GPIO_MODULE_ENABLED + #include "py32f002b_hal_gpio.h" +#endif /* HAL_GPIO_MODULE_ENABLED */ + +#ifdef HAL_CORTEX_MODULE_ENABLED + #include "py32f002b_hal_cortex.h" +#endif /* HAL_CORTEX_MODULE_ENABLED */ + +#ifdef HAL_ADC_MODULE_ENABLED + #include "py32f002b_hal_adc.h" +#endif /* HAL_ADC_MODULE_ENABLED */ + +#ifdef HAL_CRC_MODULE_ENABLED + #include "py32f002b_hal_crc.h" +#endif /* HAL_CRC_MODULE_ENABLED */ + +#ifdef HAL_COMP_MODULE_ENABLED +#include "py32f002b_hal_comp.h" +#endif /* HAL_COMP_MODULE_ENABLED */ + +#ifdef HAL_FLASH_MODULE_ENABLED + #include "py32f002b_hal_flash.h" +#endif /* HAL_FLASH_MODULE_ENABLED */ + +#ifdef HAL_I2C_MODULE_ENABLED + #include "py32f002b_hal_i2c.h" +#endif /* HAL_I2C_MODULE_ENABLED */ + +#ifdef HAL_IWDG_MODULE_ENABLED + #include "py32f002b_hal_iwdg.h" +#endif /* HAL_IWDG_MODULE_ENABLED */ + +#ifdef HAL_PWR_MODULE_ENABLED + #include "py32f002b_hal_pwr.h" +#endif /* HAL_PWR_MODULE_ENABLED */ + +#ifdef HAL_SPI_MODULE_ENABLED + #include "py32f002b_hal_spi.h" +#endif /* HAL_SPI_MODULE_ENABLED */ + +#ifdef HAL_TIM_MODULE_ENABLED + #include "py32f002b_hal_tim.h" +#endif /* HAL_TIM_MODULE_ENABLED */ + +#ifdef HAL_LPTIM_MODULE_ENABLED + #include "py32f002b_hal_lptim.h" +#endif /* HAL_LPTIM_MODULE_ENABLED */ + +#ifdef HAL_UART_MODULE_ENABLED + #include "py32f002b_hal_uart.h" +#endif /* HAL_UART_MODULE_ENABLED */ + +#ifdef HAL_USART_MODULE_ENABLED + #include "py32f002b_hal_usart.h" +#endif /* HAL_USART_MODULE_ENABLED */ + +/* Exported macro ------------------------------------------------------------*/ +#ifdef USE_FULL_ASSERT +/** + * @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 /* __PY32F002B_HAL_CONF_H */ + +/************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/Inc/py32f002b_it.h b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/Inc/py32f002b_it.h new file mode 100644 index 0000000..cfb871c --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/Inc/py32f002b_it.h @@ -0,0 +1,56 @@ +/** + ****************************************************************************** + * @file py32f002b_it.h + * @author MCU Application Team + * @brief This file contains the headers of the interrupt handlers. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 __PY32F002B_IT_H +#define __PY32F002B_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 /* __PY32F002B_IT_H */ + +/************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/MDK-ARM/Project.uvoptx new file mode 100644 index 0000000..e2ec0c1 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/MDK-ARM/Project.uvoptx @@ -0,0 +1,463 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc; *.md + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + Project + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\Output\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 3 + + + + + + + + + + + BIN\CMSIS_AGDI.dll + + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) + + + 0 + CMSIS_AGDI + -X"Any" -UAny -O206 -S0 -C0 -P00000000 -N00("") -D00(00000000) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) + + + 0 + ARMRTXEVENTFLAGS + -L70 -Z18 -C0 -M0 -T1 + + + 0 + DLGTARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + + + + 0 + DLGUARM + + + + + + + 0 + 1 + T_VCC + + + + 0 + + + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + 1 + 1 + 0 + 2 + 1000000 + + + + + + Common + 1 + 0 + 0 + 0 + + 1 + 1 + 2 + 0 + 0 + 0 + .\startup_py32f002bxx.s + startup_py32f002bxx.s + 0 + 0 + + + 1 + 2 + 1 + 0 + 0 + 0 + ..\Src\system_py32f002b.c + system_py32f002b.c + 0 + 0 + + + + + Application/User + 1 + 0 + 0 + 0 + + 2 + 3 + 1 + 0 + 0 + 0 + ..\Src\main.c + main.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + ..\Src\py32f002b_hal_msp.c + py32f002b_hal_msp.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + ..\Src\py32f002b_it.c + py32f002b_it.c + 0 + 0 + + + + + BSP/py32f002bxx_Start_Kit + 1 + 0 + 0 + 0 + + 3 + 6 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\BSP\PY32F002Bxx_Start_Kit\py32f002bxx_Start_Kit.c + py32f002bxx_Start_Kit.c + 0 + 0 + + + + + Drivers/PY32F002B_HAL_Driver + 1 + 0 + 0 + 0 + + 4 + 7 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal.c + py32f002b_hal.c + 0 + 0 + + + 4 + 8 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_rcc.c + py32f002b_hal_rcc.c + 0 + 0 + + + 4 + 9 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_rcc_ex.c + py32f002b_hal_rcc_ex.c + 0 + 0 + + + 4 + 10 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_gpio.c + py32f002b_hal_gpio.c + 0 + 0 + + + 4 + 11 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_pwr.c + py32f002b_hal_pwr.c + 0 + 0 + + + 4 + 12 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_uart.c + py32f002b_hal_uart.c + 0 + 0 + + + 4 + 13 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_cortex.c + py32f002b_hal_cortex.c + 0 + 0 + + + 4 + 14 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_exti.c + py32f002b_hal_exti.c + 0 + 0 + + + 4 + 15 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_tim.c + py32f002b_hal_tim.c + 0 + 0 + + + 4 + 16 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_tim_ex.c + py32f002b_hal_tim_ex.c + 0 + 0 + + + + + Doc + 1 + 0 + 0 + 0 + + 5 + 17 + 5 + 0 + 0 + 0 + ..\readme.txt + readme.txt + 0 + 0 + + + + + ::CMSIS + 0 + 0 + 0 + 1 + + +
diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/MDK-ARM/Project.uvprojx new file mode 100644 index 0000000..8b9f9ff --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/MDK-ARM/Project.uvprojx @@ -0,0 +1,514 @@ + + + + 2.1 + +
### uVision Project, (C) Keil Software
+ + + + Project + 0x4 + ARM-ADS + 5060960::V5.06 update 7 (build 960)::.\ARMCC + 0 + + + PY32F002Bx5 + Puya + Puya.PY32F0xx_DFP.1.2.6 + https://www.puyasemi.com/uploadfiles/ + IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) + 0 + $$Device:PY32F002Bx5$Device\Include\py32f0xx.h + + + + + + + + + + $$Device:PY32F002Bx5$SVD\py32f002bxx.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Output\ + Project + 1 + 0 + 1 + 1 + 1 + .\Output\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -REMAP + DARMCM1.DLL + -pCM0+ + SARMCM3.DLL + + TARMCM1.DLL + -pCM0+ + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + "" () + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M0+" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0xc00 + + + 1 + 0x8000000 + 0x6000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x6000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0xc00 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + + + USE_HAL_DRIVER,PY32F002Bx5 + + ..\Inc;..\..\..\..\..\..\Drivers\BSP\PY32F002Bxx_Start_Kit;..\..\..\..\..\..\Drivers\CMSIS\Include;..\..\..\..\..\..\Drivers\CMSIS\Device\PY32F0xx\Include;..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Inc + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + + .\Objects\Project.sct + + + + + + + + + + + Common + + + startup_py32f002bxx.s + 2 + .\startup_py32f002bxx.s + + + system_py32f002b.c + 1 + ..\Src\system_py32f002b.c + + + + + Application/User + + + main.c + 1 + ..\Src\main.c + + + py32f002b_hal_msp.c + 1 + ..\Src\py32f002b_hal_msp.c + + + py32f002b_it.c + 1 + ..\Src\py32f002b_it.c + + + + + BSP/py32f002bxx_Start_Kit + + + py32f002bxx_Start_Kit.c + 1 + ..\..\..\..\..\..\Drivers\BSP\PY32F002Bxx_Start_Kit\py32f002bxx_Start_Kit.c + + + + + Drivers/PY32F002B_HAL_Driver + + + py32f002b_hal.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal.c + + + py32f002b_hal_rcc.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_rcc.c + + + py32f002b_hal_rcc_ex.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_rcc_ex.c + + + py32f002b_hal_gpio.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_gpio.c + + + py32f002b_hal_pwr.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_pwr.c + + + py32f002b_hal_uart.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_uart.c + + + py32f002b_hal_cortex.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_cortex.c + + + py32f002b_hal_exti.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_exti.c + + + py32f002b_hal_tim.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_tim.c + + + py32f002b_hal_tim_ex.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_tim_ex.c + + + + + Doc + + + readme.txt + 5 + ..\readme.txt + + + + + ::CMSIS + + + + + + + + + + + + + + + + + + +
diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/MDK-ARM/startup_py32f002bxx.s b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/MDK-ARM/startup_py32f002bxx.s new file mode 100644 index 0000000..767f75c --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/MDK-ARM/startup_py32f002bxx.s @@ -0,0 +1,228 @@ +;****************************************************************************** +;* @file startup_py32f002bxx.s +;* @author MCU Application Team +;* @brief PY32F002Bxx devices vector table for MDK-ARM toolchain. +;* This module performs: +;* - Set the initial SP +;* - Set the initial PC == Reset_Handler +;* - Set the vector table entries with the exceptions ISR address +;* - Branches to __main in the C library (which eventually +;* calls main()). +;* After Reset the CortexM0+ processor is in Thread mode, +;* priority is Privileged, and the Stack is set to Main. +;****************************************************************************** +;* @attention +;* +;*

© Copyright (c) 2023 Puya Semiconductor Co. +;* All rights reserved.

+;* +;* This software component is licensed by Puya 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 +;* +;****************************************************************************** +;* @attention +;* +;*

© Copyright (c) 2016 STMicroelectronics. +;* All rights reserved.

+;* +;* 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 +;* +;****************************************************************************** +;* <<< Use Configuration Wizard in Context Menu >>> + +; Amount of memory (in bytes) allocated for Stack +; Tailor this value to your application needs +; Stack Configuration +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Stack_Size EQU 0x00000400 + + AREA STACK, NOINIT, READWRITE, ALIGN=3 +Stack_Mem SPACE Stack_Size +__initial_sp + + +; Heap Configuration +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Heap_Size EQU 0x00000000 + + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +Heap_Mem SPACE Heap_Size +__heap_limit + + + PRESERVE8 + THUMB + + +; Vector Table Mapped to Address 0 at Reset + AREA RESET, DATA, READONLY + EXPORT __Vectors + EXPORT __Vectors_End + EXPORT __Vectors_Size + +__Vectors DCD __initial_sp ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD 0 ; 0Reserved + DCD 0 ; 1Reserved + DCD 0 ; 2Reserved + DCD FLASH_IRQHandler ; 3FLASH + DCD RCC_IRQHandler ; 4RCC + DCD EXTI0_1_IRQHandler ; 5EXTI Line 0 and 1 + DCD EXTI2_3_IRQHandler ; 6EXTI Line 2 and 3 + DCD EXTI4_15_IRQHandler ; 7EXTI Line 4 to 15 + DCD 0 ; 8Reserved + DCD 0 ; 9Reserved + DCD 0 ; 10Reserved + DCD 0 ; 11Reserved + DCD ADC_COMP_IRQHandler ; 12ADC&COMP1 + DCD TIM1_BRK_UP_TRG_COM_IRQHandler ; 13TIM1 Break, Update, Trigger and Commutation + DCD TIM1_CC_IRQHandler ; 14TIM1 Capture Compare + DCD 0 ; 15Reserved + DCD 0 ; 16Reserved + DCD LPTIM1_IRQHandler ; 17LPTIM1 + DCD 0 ; 18Reserved + DCD TIM14_IRQHandler ; 19TIM14 + DCD 0 ; 20Reserved + DCD 0 ; 21Reserved + DCD 0 ; 22Reserved + DCD I2C1_IRQHandler ; 23I2C1 + DCD 0 ; 24Reserved + DCD SPI1_IRQHandler ; 25SPI1 + DCD 0 ; 26Reserved + DCD USART1_IRQHandler ; 27USART1 + DCD 0 ; 28Reserved + DCD 0 ; 29Reserved + DCD 0 ; 30Reserved + DCD 0 ; 31Reserved +__Vectors_End + +__Vectors_Size EQU __Vectors_End - __Vectors + + AREA |.text|, CODE, READONLY + + +; Reset Handler + +Reset_Handler PROC + EXPORT Reset_Handler [WEAK] + IMPORT SystemInit + IMPORT __main + LDR R0, =SystemInit + BLX R0 + LDR R0, =__main + BX R0 + ENDP + + +; Dummy Exception Handlers (infinite loops which can be modified) + +NMI_Handler PROC + EXPORT NMI_Handler [WEAK] + B . + ENDP +HardFault_Handler\ + PROC + EXPORT HardFault_Handler [WEAK] + B . + ENDP +SVC_Handler PROC + EXPORT SVC_Handler [WEAK] + B . + ENDP +PendSV_Handler PROC + EXPORT PendSV_Handler [WEAK] + B . + ENDP +SysTick_Handler PROC + EXPORT SysTick_Handler [WEAK] + B . + ENDP + +Default_Handler PROC + + EXPORT FLASH_IRQHandler [WEAK] + EXPORT RCC_IRQHandler [WEAK] + EXPORT EXTI0_1_IRQHandler [WEAK] + EXPORT EXTI2_3_IRQHandler [WEAK] + EXPORT EXTI4_15_IRQHandler [WEAK] + EXPORT ADC_COMP_IRQHandler [WEAK] + EXPORT TIM1_BRK_UP_TRG_COM_IRQHandler [WEAK] + EXPORT TIM1_CC_IRQHandler [WEAK] + EXPORT LPTIM1_IRQHandler [WEAK] + EXPORT TIM14_IRQHandler [WEAK] + EXPORT I2C1_IRQHandler [WEAK] + EXPORT SPI1_IRQHandler [WEAK] + EXPORT USART1_IRQHandler [WEAK] + +FLASH_IRQHandler +RCC_IRQHandler +EXTI0_1_IRQHandler +EXTI2_3_IRQHandler +EXTI4_15_IRQHandler +ADC_COMP_IRQHandler +TIM1_BRK_UP_TRG_COM_IRQHandler +TIM1_CC_IRQHandler +LPTIM1_IRQHandler +TIM14_IRQHandler +I2C1_IRQHandler +SPI1_IRQHandler +USART1_IRQHandler + B . + ENDP + + ALIGN + +; User Initial Stack & Heap + + IF :DEF:__MICROLIB + + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + + ELSE + + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap + +__user_initial_stackheap + + LDR R0, = Heap_Mem + LDR R1, =(Stack_Mem + Stack_Size) + LDR R2, = (Heap_Mem + Heap_Size) + LDR R3, = Stack_Mem + BX LR + + ALIGN + + ENDIF + + END + +;************************ (C) COPYRIGHT Puya *****END OF FILE******************* diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/Src/main.c b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/Src/main.c new file mode 100644 index 0000000..6d134fa --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/Src/main.c @@ -0,0 +1,150 @@ +/** + ****************************************************************************** + * @file main.c + * @author MCU Application Team + * @brief Main program body + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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" + +/* Private define ------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +TIM_HandleTypeDef TimHandle; +TIM_OC_InitTypeDef sConfig; + +/* Private user code ---------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ + +/** + * @brief Main program. + * @retval int + */ +int main(void) +{ + /* Reset of all peripherals, Initializes the Systick. */ + HAL_Init(); + + TimHandle.Instance = TIM1; /* TIM1 */ + TimHandle.Init.Period = 8000 - 1; /* Period = 8000 - 1 */ + TimHandle.Init.Prescaler = 3000 - 1; /* Prescaler = 3000 - 1 */ + TimHandle.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; /* ClockDivision = 0 */ + TimHandle.Init.CounterMode = TIM_COUNTERMODE_UP; /* Counter direction = Up */ + TimHandle.Init.RepetitionCounter = 1 - 1; /* Repetition = 0 */ + TimHandle.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; /* Auto-reload register not buffered */ + if (HAL_TIM_Base_Init(&TimHandle) != HAL_OK) /* Initialize TIM1 */ + { + APP_ErrorHandler(); + } + + sConfig.OCMode = TIM_OCMODE_TOGGLE; /* Set output compare mode: TOGGLE */ + sConfig.OCPolarity = TIM_OCPOLARITY_HIGH; /* OC Polarity High */ + sConfig.OCFastMode = TIM_OCFAST_DISABLE; /* Disable OC Fast Mode */ + sConfig.OCNPolarity = TIM_OCNPOLARITY_HIGH; /* OCN Polarity High */ + sConfig.OCNIdleState = TIM_OCNIDLESTATE_RESET; /* OCN Idle state reset */ + sConfig.OCIdleState = TIM_OCIDLESTATE_RESET; /* OC Idle state reset */ + + sConfig.Pulse = 2000; /* OC1 value 2000 */ + if (HAL_TIM_OC_ConfigChannel(&TimHandle, &sConfig, TIM_CHANNEL_1) != HAL_OK) /* OC1 Channel Config */ + { + APP_ErrorHandler(); + } + + /* Enable TIM1 update interrupt */ + __HAL_TIM_ENABLE_IT(&TimHandle,TIM_IT_UPDATE); + + if (HAL_TIM_OC_Start_IT(&TimHandle, TIM_CHANNEL_1) != HAL_OK) /* TIM OC1 Start */ + { + APP_ErrorHandler(); + } + + while (1) + { + + } +} + +/** + * @brief update interrupt callback + * @param None + * @retval None + */ +void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htinm) +{ + __HAL_TIM_CLEAR_FLAG(&TimHandle,TIM_IT_CC1); + __HAL_TIM_ENABLE_IT(&TimHandle,TIM_IT_CC1); + HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5); +} + +/** + * @brief Compare interrupt callback + * @param None + * @retval None + */ +void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim) +{ + if(htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1) + { + __HAL_TIM_DISABLE_IT(&TimHandle,TIM_IT_CC1); + HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_4); + __HAL_TIM_CLEAR_FLAG(&TimHandle,TIM_IT_CC1); + } +} + +/** + * @brief This function is executed in case of error occurrence. + * @param None + * @retval None + */ +void APP_ErrorHandler(void) +{ + while (1) + { + } +} + +#ifdef USE_FULL_ASSERT +/** + * @brief Reports the name of the source file and the source line number + * where the assert_param error has occurred. + * @param file: pointer to the source file name + * @param line: assert_param error line source number + * @retval None + */ +void assert_failed(uint8_t *file, uint32_t line) +{ + /* User can add his own implementation to report the file name and line number, + ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ + + /* Infinite loop */ + while (1) + { + } +} +#endif /* USE_FULL_ASSERT */ + +/************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/Src/py32f002b_hal_msp.c b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/Src/py32f002b_hal_msp.c new file mode 100644 index 0000000..7b09387 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/Src/py32f002b_hal_msp.c @@ -0,0 +1,78 @@ +/** + ****************************************************************************** + * @file py32f002b_hal_msp.c + * @author MCU Application Team + * @brief This file provides code for the MSP Initialization + * and de-Initialization codes. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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" + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* External functions --------------------------------------------------------*/ + +/** + * @brief Initialize global MSP + */ +void HAL_MspInit(void) +{ + __HAL_RCC_SYSCFG_CLK_ENABLE(); + __HAL_RCC_PWR_CLK_ENABLE(); +} + +/** + * @brief Initialize TIM MSP + */ +void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim) +{ + GPIO_InitTypeDef GPIO_InitStruct ={0}; + + __HAL_RCC_GPIOA_CLK_ENABLE(); /* Enable GPIOA Clock */ + __HAL_RCC_TIM1_CLK_ENABLE(); /* Enable TIM1 Clock */ + + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; + GPIO_InitStruct.Pin = GPIO_PIN_5 | GPIO_PIN_4; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + /* Set the capture/compare interrupt priority */ + HAL_NVIC_SetPriority(TIM1_CC_IRQn, 1,0); + /* Enable capture/compare interrupt in NVIC */ + HAL_NVIC_EnableIRQ(TIM1_CC_IRQn); + + /* Set the update interrupt priority */ + HAL_NVIC_SetPriority(TIM1_BRK_UP_TRG_COM_IRQn, 1,0); + /* Enable update interrupt in NVIC */ + HAL_NVIC_EnableIRQ(TIM1_BRK_UP_TRG_COM_IRQn); +} + +/************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/Src/py32f002b_it.c b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/Src/py32f002b_it.c new file mode 100644 index 0000000..7b9d85c --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/Src/py32f002b_it.c @@ -0,0 +1,110 @@ +/** + ****************************************************************************** + * @file py32f002b_it.c + * @author MCU Application Team + * @brief Interrupt Service Routines. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 "py32f002b_it.h" + +/* Private includes ----------------------------------------------------------*/ +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +extern TIM_HandleTypeDef TimHandle; + +/* 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) +{ + HAL_IncTick(); +} + +/******************************************************************************/ +/* PY32F002B 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. */ +/******************************************************************************/ +/** + * @brief This function handles TIM1 Interrupt . + */ +void TIM1_BRK_UP_TRG_COM_IRQHandler(void) +{ + HAL_TIM_IRQHandler(&TimHandle); +} + +/** + * @brief This function handles TIM1 Interrupt . + */ +void TIM1_CC_IRQHandler(void) +{ + HAL_TIM_IRQHandler(&TimHandle); +} + +/************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/Src/system_py32f002b.c new file mode 100644 index 0000000..987c778 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/Src/system_py32f002b.c @@ -0,0 +1,170 @@ +/** + ****************************************************************************** + * @file system_py32f002b.c + * @author MCU Application Team + * @Version V1.0.0 + * @Date 2020-10-19 + * @brief CMSIS Cortex-M0+ Device Peripheral Access Layer System Source File. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 + * + ****************************************************************************** + */ + +#include "py32f0xx.h" + +#if !defined (HSE_VALUE) +#define HSE_VALUE 24000000U /*!< Value of the External oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined (HSI_VALUE) +#define HSI_VALUE 24000000U /*!< Value of the Internal oscillator in Hz*/ +#endif /* HSI_VALUE */ + +#if !defined (LSI_VALUE) +#define LSI_VALUE 32768U /*!< Value of LSI in Hz*/ +#endif /* LSI_VALUE */ + +#if !defined (LSE_VALUE) +#define LSE_VALUE 32768U /*!< Value of LSE in Hz*/ +#endif /* LSE_VALUE */ + + +/************************* Miscellaneous Configuration ************************/ +/*!< Uncomment the following line if you need to relocate your vector Table in + Internal SRAM. */ +/* #define FORBID_VECT_TAB_MIGRATION */ +/* #define VECT_TAB_SRAM */ +#define VECT_TAB_OFFSET 0x00 /*!< Vector Table base offset field. + This value must be a multiple of 0x100. */ +/******************************************************************************/ +/*---------------------------------------------------------------------------- + Clock Variable definitions + *----------------------------------------------------------------------------*/ +/* This variable is updated in three ways: + 1) by calling CMSIS function SystemCoreClockUpdate() + 2) by calling HAL API function HAL_RCC_GetHCLKFreq() + 3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency + Note: If you use this function to configure the system clock; then there + is no need to call the 2 first functions listed above, since SystemCoreClock + variable is updated automatically. +*/ +uint32_t SystemCoreClock = HSI_VALUE; + +const uint32_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}; +const uint32_t APBPrescTable[8] = {0, 0, 0, 0, 1, 2, 3, 4}; +#if defined(RCC_HSI48M_SUPPORT) +const uint32_t HSIFreqTable[8] = {4000000U, 8000000U, 0U, 0U, 24000000U, 48000000U, 0U, 0U}; +#else +const uint32_t HSIFreqTable[8] = {4000000U, 8000000U, 0U, 0U, 24000000U, 0U, 0U, 0U}; +#endif + +/* Private function prototypes -----------------------------------------------*/ +#ifndef SWD_DELAY +static void DelayTime(uint32_t mdelay); +#endif /* SWD_DELAY */ + +/** + * @brief Clock functions. + * @param none + * @return none + */ +void SystemCoreClockUpdate(void) /* Get Core Clock Frequency */ +{ + uint32_t tmp; + uint32_t hsidiv; + uint32_t hsifs; + + /* Get SYSCLK source -------------------------------------------------------*/ + switch (RCC->CFGR & RCC_CFGR_SWS) + { + case RCC_CFGR_SWS_0: /* HSE used as system clock */ + SystemCoreClock = HSE_VALUE; + break; + + case (RCC_CFGR_SWS_1 | RCC_CFGR_SWS_0): /* LSI used as system clock */ + SystemCoreClock = LSI_VALUE; + break; +#if defined(RCC_LSE_SUPPORT) + case RCC_CFGR_SWS_2: /* LSE used as system clock */ + SystemCoreClock = LSE_VALUE; + break; +#endif /* RCC_LSE_SUPPORT */ + case 0x00000000U: /* HSI used as system clock */ + default: /* HSI used as system clock */ + hsifs = ((READ_BIT(RCC->ICSCR, RCC_ICSCR_HSI_FS)) >> RCC_ICSCR_HSI_FS_Pos); + hsidiv = (1UL << ((READ_BIT(RCC->CR, RCC_CR_HSIDIV)) >> RCC_CR_HSIDIV_Pos)); + SystemCoreClock = (HSIFreqTable[hsifs] / hsidiv); + break; + } + /* Compute HCLK clock frequency --------------------------------------------*/ + /* Get HCLK prescaler */ + tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos)]; + /* HCLK clock frequency */ + SystemCoreClock >>= tmp; +} + +/** + * @brief Setup the microcontroller system. + * Initialize the System. + * @param none + * @return none + */ +void SystemInit(void) +{ + /*Set the HSI clock to 24MHz by default*/ + RCC->ICSCR = (RCC->ICSCR & 0xFFFF0000) | ((*(uint32_t *)(0x1FFF0100)) & 0xFFFF); + + /*Set the LSI clock to 32.768KHz by default*/ + RCC->ICSCR = (RCC->ICSCR & 0xFE00FFFF) | (((*(uint32_t *)(0x1FFF0144)) & 0x1FF) << RCC_ICSCR_LSI_TRIM_Pos); + + /* Configure the Vector Table location add offset address ------------------*/ +#ifdef VECT_TAB_SRAM + SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */ +#else + SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */ +#endif /* VECT_TAB_SRAM */ + +#ifndef SWD_DELAY + /* When the SWD pin is reused for other functions, this function is used to solve the + problem of not being able to update the code. */ + DelayTime(200); +#endif /* SWD_DELAY */ +} + +#ifndef SWD_DELAY +/** + * @brief This function provides delay (in milliseconds) based on CPU cycles method. + * @param mdelay: specifies the delay time length, in milliseconds. + * @retval None + */ +static void DelayTime(uint32_t mdelay) +{ + __IO uint32_t Delay = mdelay * (24000000U / 8U / 1000U); + do + { + __NOP(); + } + while (Delay --); +} +#endif /* SWD_DELAY */ +/************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/readme.txt b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/readme.txt new file mode 100644 index 0000000..2d9ecbc --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_OC_Toggle_IT/readme.txt @@ -0,0 +1,45 @@ +================================================================================ + 样例使用说明 + Sample Description +================================================================================ +功能描述: +此样例演示了TIM1比较模式下的中断功能,在中断中翻转GPIO。 + +Function descriptions: +This sample demonstrates the interrupt function in TIM1 comparison mode, toggle +the GPIO in an interrupt. +================================================================================ +测试环境: +测试用板:PY32F002B_STK +MDK版本: 5.28 +IAR版本: 9.20 +GCC 版本:GNU Arm Embedded Toolchain 10.3-2021.10 + +Test environment: +Test board: PY32F002B_STK +MDK Version: 5.28 +IAR Version: 9.20 +GCC Version: GNU Arm Embedded Toolchain 10.3-2021.10 +================================================================================ +使用步骤: +1. 编译下载并运行程序; +2. 逻辑分析仪抓取PA4/PA5波形,PA4在比较中断中翻转,PA5在更新中断中翻转。 + +Example execution steps: +1. compile and download the program to MCU and run it; +2. Using logic analyzer captures the PA4/PA5 waveform,PA4 toggle in the +comparison interrupt and PA5 toggle in the update interrupt. +================================================================================ +注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 + +Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required + +================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/EIDE/.eide/eide.json index 8d0eaba..d4b6192 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -92,9 +90,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -111,14 +109,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -137,6 +138,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -149,10 +158,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/EIDE/Makefile b/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/EIDE/Makefile index 5208204..d9715fc 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/MDK-ARM/Project.uvoptx index 41a3c55..3c02fca 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/MDK-ARM/Project.uvprojx index a554c9e..42edb19 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/readme.txt b/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/readme.txt index ff2e1f1..0e1209f 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/readme.txt +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_PWM/readme.txt @@ -38,15 +38,24 @@ PB0 (TIM1_CH2), PA4 (TIM1_CH3), and PA7 (TIM1_CH4) ================================================================================ 注意事项: +1. PA5------>CH1 20% PB0------>CH2 40% PA4------>CH3 60% PA7------>CH4 80% +2.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +1. PA5------>CH1 20% PB0------>CH2 40% PA4------>CH3 60% PA7------>CH4 80% - +2.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/EIDE/.eide/eide.json index c45d673..f32ea04 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -95,9 +93,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -114,14 +112,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -140,6 +141,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -152,10 +161,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/EIDE/Makefile b/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/EIDE/Makefile index cc9fb71..39141bc 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/MDK-ARM/Project.uvoptx index cb10d7f..78aec0d 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/MDK-ARM/Project.uvoptx @@ -10,7 +10,7 @@ *.s*; *.src; *.a* *.obj; *.o *.lib - *.txt; *.h; *.inc + *.txt; *.h; *.inc; *.md *.plm *.cpp 0 @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 @@ -407,18 +407,6 @@ 0 0 0 - ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_crc.c - py32f002b_hal_crc.c - 0 - 0 -
- - 4 - 15 - 1 - 0 - 0 - 0 ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_exti.c py32f002b_hal_exti.c 0 @@ -426,7 +414,7 @@ 4 - 16 + 15 1 0 0 @@ -438,7 +426,7 @@ 4 - 17 + 16 1 0 0 @@ -458,7 +446,7 @@ 0 5 - 18 + 17 5 0 0 diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/MDK-ARM/Project.uvprojx index 9d9699d..3d75a56 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/MDK-ARM/Project.uvprojx @@ -10,18 +10,18 @@ Project 0x4 ARM-ADS - 5060750::V5.06 update 6 (build 750)::ARMCC + 5060960::V5.06 update 7 (build 960)::.\ARMCC 0 PY32F002Bx5 Puya - Puya.PY32F0xx_DFP.1.2.0 + Puya.PY32F0xx_DFP.1.2.6 https://www.puyasemi.com/uploadfiles/ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h @@ -185,6 +185,8 @@ 0 0 0 + 0 + 0 0 0 8 @@ -351,7 +353,7 @@ 0 0 0 - 0 + 4 @@ -462,11 +464,6 @@ 1 ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_cortex.c - - py32f002b_hal_crc.c - 1 - ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_hal_crc.c - py32f002b_hal_exti.c 1 diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/readme.txt b/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/readme.txt index 8f9d1be..0c29292 100644 --- a/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/readme.txt +++ b/Projects/PY32F002B-STK/Example/TIM/TIM1_Update_IT/readme.txt @@ -30,6 +30,14 @@ Example execution steps: 2. The program will flip the LED in the TIM update every 1 second. ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/EIDE/.eide/eide.json index dcfcb26..0d642e3 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -83,9 +81,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -102,14 +100,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -128,6 +129,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -140,10 +149,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/EIDE/Makefile b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/EIDE/Makefile index 6f54cc1..7400699 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/MDK-ARM/Project.uvoptx index f8c2ff3..ab12336 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/MDK-ARM/Project.uvprojx index 68cd04e..fb635db 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/Src/main.c b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/Src/main.c index cb0cf9a..9afc545 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/Src/main.c +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/Src/main.c @@ -77,6 +77,14 @@ int main(void) /* send data */ HAL_UART_Transmit_IT(&UartHandle, (uint8_t *)aTxBuffer, 18); } + else if((__HAL_UART_GET_FLAG(&UartHandle, UART_FLAG_ABRE) == SET) && \ + (__HAL_UART_GET_FLAG(&UartHandle, UART_FLAG_ABRF) == SET)) + { + /* Baud Rate Adaptive Detection Error */ + } + else + { + } } } diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/Src/py32f002b_hal_msp.c b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/Src/py32f002b_hal_msp.c index 4d66cf1..cbb15e4 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/Src/py32f002b_hal_msp.c +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/Src/py32f002b_hal_msp.c @@ -49,7 +49,7 @@ void HAL_MspInit(void) } /** - * @brief Initialize MSAR for USART. + * @brief Initialize MSP for USART. * @param huart:Initialize the handle of USART */ void HAL_UART_MspInit(UART_HandleTypeDef *huart) diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/readme.txt b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/readme.txt index 9ceb8df..ab5dec1 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/readme.txt +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_AutoBaund_IT/readme.txt @@ -26,21 +26,27 @@ GCC Version: GNU Arm Embedded Toolchain 10.3-2021.10 使用步骤: 1. 编译并下载程序到MCU; 2. 通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart STK板 USB转TTL模块 -PB04(TX) --> RX -PB05(RX) --> TX -GND --> GND +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART配置为波特率115200,数据位8,停止位1,校验位None +@PrintfConfigEnd 3. PC端打开串口调试助手,正确连接上通讯COM口,波特率设置为9600; 4. 调试助手发送一个字符0x7F,MCU反馈字符串:Auto BaudRate Test; Example execution steps: 1.Compile and download the program to MCU; -2.Connect the PC to the STK board through the USB to TTL module, and the -connection method between the STK board and the USB to TTL module is as follows: -STK board USB to TTL module -PB04(TX) ---> RX -PB05(RX) ---> TX -GND ---> GND +2.Connect the PC to the STK board through the USB to TTL module, and the connection +method between the STK board and the USB to TTL module is as follows: +@PrintfConfigStart +STK board USB to TTL module +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 115200, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd 3.On the PC side, open the serial port debugging assistant, connect the communication COM port correctly, and set the Baud to 9600; 4.Debugging assistant sends a character 0x7F, MCU feedback string: Auto @@ -51,6 +57,10 @@ BaudRate Test; MCU检测成功,返回字符:Auto BaudRate Test 2. 注释掉宏AUTO_BAUD_MODE0(main.c中),上位机发送1字节的波特率检测0x55,如果MCU 检测成功,返回字符:Auto BaudRate Test +3.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: 1.Do not comment out macro AUTO_BAUD_MODE0 (in main.c), the upper computer @@ -59,4 +69,8 @@ character: Auto BaudRate Test 2.Comment out macro AUTO_ BAUD_ MODE0 (in main. c), the upper computer sends 1-byte Baud detection 0x55, if MCU detection is successful, the returned character: Auto BaudRate Test +3.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/EIDE/.eide/eide.json index dcfcb26..0d642e3 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -83,9 +81,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -102,14 +100,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -128,6 +129,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -140,10 +149,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/EIDE/Makefile b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/EIDE/Makefile index 6f54cc1..7400699 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/MDK-ARM/Project.uvoptx index f8c2ff3..ab12336 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/MDK-ARM/Project.uvprojx index 68cd04e..fb635db 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/readme.txt b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/readme.txt index e8da452..8bdaf60 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/readme.txt +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IT/readme.txt @@ -29,11 +29,14 @@ GCC Version: GNU Arm Embedded Toolchain 10.3-2021.10 使用步骤: 1. 编译并下载程序到MCU; 2. 通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart STK板 USB转TTL模块 -PB04(TX) --> RX -PB05(RX) --> TX -GND --> GND -3. PC端打开串口调试助手,正确连接上通讯COM口,波特率设置为115200; +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART配置为波特率115200,数据位8,停止位1,校验位None +@PrintfConfigEnd +3. PC端打开串口调试助手,正确连接上通讯COM口; 4. 按下复位按键,MCU会发送aTxStartMessage数组内的数据到上位机,提示输入12个数据。 5 上位机发送12个数据到MCU,MCU会反馈同样的12个数据给上位机。同时发送aTxEndMessage 数组内数据到PC端,提示样例执行结束。 @@ -41,14 +44,17 @@ GND --> GND Example execution steps: 1. Compile and download the program to MCU; -2.Connect the PC to the STK board through the USB to TTL module, and the - connection method between the STK board and the USB to TTL module is as follows: -STK board USB to TTL module -PB04(TX) ---> RX -PB05(RX) ---> TX -GND ---> GND +2. Connect the PC to the STK board through the USB to TTL module, and the connection +method between the STK board and the USB to TTL module is as follows: +@PrintfConfigStart +STK board USB to TTL module +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 115200, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd 3. On the PC end, open the serial port debugging assistant, connect the - communication COM port correctly, and set the Baud to 115200; + communication COM port correctly; 4. When the reset button is pressed, the MCU sends the data in the aTxStartMessage array to the host computer, prompting for 12 data inputs. 5. The host computer sends 12 data to the MCU and the MCU feeds back the same 12 @@ -58,7 +64,15 @@ GND ---> GND the communication is normal, and vice versa, the communication is abnormal. ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.eide/eide.json index ead17ff..0d642e3 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.eide/eide.json @@ -39,51 +39,51 @@ }, { "name": "PY32F002B_HAL_Driver", - "files": [ + "files":[ { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal.c" + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc_ex.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_rcc_ex.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_gpio.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_gpio.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_pwr.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_pwr.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_uart.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_uart.c" }, - { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_cortex.c" + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_cortex.c" } ], "folders": [] }, { "name": "User", - "files": [ + "files":[ { - "path": "../Src/main.c" + "path":"../Src/main.c" }, { - "path": "../Src/py32f002b_hal_msp.c" + "path":"../Src/py32f002b_hal_msp.c" }, { - "path": "../Src/py32f002b_it.c" + "path":"../Src/py32f002b_it.c" } ], "folders": [] } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -100,14 +100,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -126,12 +129,19 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { "name": "default", "incList": [ - ".", "../Inc", "../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit", "../../../../../../Drivers/CMSIS/Include", @@ -139,10 +149,7 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "defineList": [ - "USE_HAL_DRIVER", - "PY32F002Bx5" - ] + "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] }, "builderOptions": { "GCC": { @@ -177,5 +184,5 @@ } } }, - "version": "3.5" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/Makefile b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/Makefile index 6f54cc1..7400699 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Inc/main.h b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Inc/main.h index 2ce38c6..5d5e2e9 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Inc/main.h +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Inc/main.h @@ -52,6 +52,7 @@ extern uint8_t aRxBuffer[RX_MAX_LEN]; /* Exported functions prototypes ---------------------------------------------*/ void APP_ErrorHandler(void); +void APP_UsartErrorCallback(void); #ifdef __cplusplus } diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/MDK-ARM/Project.uvoptx index f8c2ff3..ab12336 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/MDK-ARM/Project.uvprojx index 8bbc8fa..1e55130 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/MDK-ARM/Project.uvprojx @@ -16,12 +16,12 @@ PY32F002Bx5 Puya - Puya.PY32F0xx_DFP.1.2.1 + Puya.PY32F0xx_DFP.1.2.3 https://www.puyasemi.com/uploadfiles/ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Src/main.c b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Src/main.c index fb80148..ebdea5b 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Src/main.c +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Src/main.c @@ -51,6 +51,9 @@ int main(void) /* Reset of all peripherals, Initializes the Systick */ HAL_Init(); + /* Configure LED */ + BSP_LED_Init(LED_GREEN); + /* Initialize USART */ UartHandle.Instance = USART1; UartHandle.Init.BaudRate = 115200; @@ -72,6 +75,17 @@ int main(void) } } +/** + * @brief USART Error interrupt handler function + * @param None + * @retval None + */ +void APP_UsartErrorCallback(void) +{ + /* Turn on the LED */ + BSP_LED_On(LED_GREEN); +} + /** * @brief Error handling function * @param None diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Src/py32f002b_it.c b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Src/py32f002b_it.c index 32a4267..b72a59f 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Src/py32f002b_it.c +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Src/py32f002b_it.c @@ -98,9 +98,13 @@ void USART1_IRQHandler(void) if ((__HAL_UART_GET_FLAG(&UartHandle, UART_FLAG_RXNE) != RESET) && \ (__HAL_UART_GET_IT_SOURCE(&UartHandle, UART_IT_RXNE) != RESET)) { - /* Receive data */ aRxBuffer[cRxIndex] = (uint8_t)(UartHandle.Instance->DR & (uint8_t)0x00FF); + /* Wait SR_TXE bit set 1 */ + while(__HAL_UART_GET_FLAG(&UartHandle, UART_FLAG_TXE) == RESET) + { + } + /* Send received data */ UartHandle.Instance->DR = aRxBuffer[cRxIndex]; cRxIndex++; @@ -109,5 +113,14 @@ void USART1_IRQHandler(void) cRxIndex = (RX_MAX_LEN - 1); } } + + if(__HAL_UART_GET_FLAG(&UartHandle, UART_FLAG_ORE) == SET) + { + /* Clearing the ORE bit */ + __HAL_UART_CLEAR_OREFLAG(&UartHandle); + + /* Error callback function */ + APP_UsartErrorCallback(); + } } /************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/readme.txt b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/readme.txt index df1e3c5..5f5d00a 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/readme.txt +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_IndefiniteLengthData_IT/readme.txt @@ -29,31 +29,44 @@ GCC Version: GNU Arm Embedded Toolchain 10.3-2021.10 使用步骤: 1. 编译并下载程序到MCU,并运行; 2. 通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart STK板 USB转TTL模块 -PB04(TX) --> RX -PB05(RX) --> TX -GND --> GND -3. PC端打开串口调试助手,正确连接上通讯COM口,波特率设置为115200; +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART配置为波特率115200,数据位8,停止位1,校验位None +@PrintfConfigEnd +3. PC端打开串口调试助手,正确连接上通讯COM口; 4. 上位机发送任意长度个数据(不超过128byte),MCU会将接收到的数据回发给上位机 Example execution steps: 1. compile and download the program to MCU and run it; -2. Connect the PC to the STK board through the USB-to-TTL module. The connection -method between the STK board and the USB-to-TTL module is as follows. -STK board USB-to-TTL module -PB04(TX) --> RX -PB05(RX) --> TX -GND --> GND -3. Start the serial assistant on the PC, correctly connect the COM port, and set -the baud rate to 115200. +2. Connect the PC to the STK board through the USB to TTL module, and the connection +method between the STK board and the USB to TTL module is as follows: +@PrintfConfigStart +STK board USB to TTL module +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 115200, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd +3. Start the serial assistant on the PC, correctly connect the COM port. 4. The upper computer sends any length of data (not exceeding 128 bytes), and the MCU will send the received data back to the upper computer ================================================================================ 注意事项: -用户可根据需要修改main.h中宏RX_MAX_LEN,RX_MAX_LEN定义了MCU单次接收数据长度 +1.用户可根据需要修改main.h中宏RX_MAX_LEN,RX_MAX_LEN定义了MCU单次接收数据长度 (当前样例为128byte)。 +2.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: -Users can modify the values of macros RX_MAX_LEN in main.h as needed. RX_MAX_LEN +1.Users can modify the values of macros RX_MAX_LEN in main.h as needed. RX_MAX_LEN defines the length of data received by MCU for a single time(currently 128bytes). +2.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/EIDE/.eide/eide.json index dcfcb26..0d642e3 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -83,9 +81,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -102,14 +100,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -128,6 +129,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -140,10 +149,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["USE_HAL_DRIVER","PY32F002Bx5"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/EIDE/.gitignore b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/EIDE/Makefile b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/EIDE/Makefile index 6f54cc1..7400699 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/MDK-ARM/Project.uvoptx index f8c2ff3..ab12336 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/MDK-ARM/Project.uvprojx index 68cd04e..fb635db 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Device\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/readme.txt b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/readme.txt index cba2a6b..58e7f5b 100644 --- a/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/readme.txt +++ b/Projects/PY32F002B-STK/Example/USART/USART_HyperTerminal_Polling/readme.txt @@ -29,11 +29,14 @@ GCC Version: GNU Arm Embedded Toolchain 10.3-2021.10 使用步骤: 1. 编译并下载程序到MCU; 2. 通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart STK板 USB转TTL模块 -PB04(TX) --> RX -PB05(RX) --> TX -GND --> GND -3. PC端打开串口调试助手,正确连接上通讯COM口,波特率设置为115200; +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART配置为波特率115200,数据位8,停止位1,校验位None +@PrintfConfigEnd +3. PC端打开串口调试助手,正确连接上通讯COM口; 4. 按下复位按键,MCU会发送aTxStartMessage数组内的数据到上位机,提示输入12个数据。 5. 上位机发送12个数据到MCU,MCU会反馈同样的12个数据给上位机。同时发送aTxEndMessage 数组内数据到上位机,提示样例执行结束。 @@ -41,14 +44,17 @@ GND --> GND Example execution steps: 1. Compile and download the program to MCU; -2. Connect the PC to the STK board through the USB to TTL module, and the - connection method between the STK board and the USB to TTL module is as follows: -STK board USB to TTL module -PB04(TX) ---> RX -PB05(RX) ---> TX -GND ---> GND +2. Connect the PC to the STK board through the USB to TTL module, and the connection +method between the STK board and the USB to TTL module is as follows: +@PrintfConfigStart +STK board USB to TTL module +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 115200, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd 3. On the PC end, open the serial port debugging assistant, connect the - communication COM port correctly, and set the Baud to 115200; + communication COM port correctly; 4. When the reset button is pressed, the MCU sends the data in the aTxStartMessage array to the host computer, prompting for 12 data inputs. 5. The host computer sends 12 data to the MCU and the MCU feeds back the same 12 @@ -58,7 +64,15 @@ GND ---> GND the communication is normal, and vice versa, the communication is abnormal. ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/EIDE/.eide/eide.json index af19968..98531fa 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -61,9 +59,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -80,14 +78,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -106,6 +107,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -118,10 +127,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/EIDE/Makefile index 1a68d51..280cadc 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/Inc/Config.txt b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/Inc/Config.txt new file mode 100644 index 0000000..7314a75 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/Inc/Config.txt @@ -0,0 +1,10 @@ +[FilePath] +0=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_utils.c +[FileName] +0=py32f002b_ll_utils.c +[Define] +0=PY32F002Bx5 +1=USE_FULL_LL_DRIVER +[User] +0=../Src/main.c +1=../Src/py32f002b_it.c diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/MDK-ARM/Project.uvoptx index a8e0b4d..b632394 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/MDK-ARM/Project.uvprojx index 5e61fb4..c13dee8 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/readme.txt b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/readme.txt index f939eba..590573c 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_MultichannelSwitch/readme.txt @@ -33,17 +33,31 @@ Example execution steps: 4. Switch back to channel 3 after 1 second ================================================================================ 注意事项: -通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +1.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart STK板 USB转TTL模块 PB4(TX) --> RX PB5(RX) --> TX GND --> GND +UART配置为波特率115200,数据位8,停止位1,校验位None +@PrintfConfigEnd +2.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: -Connect the PC to the STK board through the USB to TTL module, the connection -between the STK board and the USB to TTL module is as follows: -STK board USB to TTL module -PB4(TX) --> RX -PB5(RX) --> TX -GND --> GND +1.Connect the PC to the STK board through the USB to TTL module, and the connection +method between the STK board and the USB to TTL module is as follows: +@PrintfConfigStart +STK board USB to TTL module +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 115200, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd +2.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/EIDE/.eide/eide.json index af19968..98531fa 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -61,9 +59,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -80,14 +78,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -106,6 +107,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -118,10 +127,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/EIDE/Makefile index 1a68d51..280cadc 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/MDK-ARM/Project.uvoptx index 2098307..dd1179e 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/MDK-ARM/Project.uvprojx index 5e61fb4..c13dee8 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/readme.txt b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/readme.txt index 4b51260..005931d 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_AWD/readme.txt @@ -34,7 +34,15 @@ Example execution steps: 3. the voltage value of channel 4 (PA7) is higher than 1.65V, the LED on ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.eide/eide.json index af19968..98531fa 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -61,9 +59,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -80,14 +78,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -106,6 +107,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -118,10 +127,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/Makefile index 1a68d51..280cadc 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/MDK-ARM/Project.uvoptx index 2098307..dd1179e 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/MDK-ARM/Project.uvprojx index 5e61fb4..c13dee8 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/readme.txt b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/readme.txt index 15e00dc..57feb1c 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_IT/readme.txt @@ -29,17 +29,31 @@ Example execution steps: 2. USART printf voltage of the channel 4(PA7) once per 1s ================================================================================ 注意事项: -通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +1.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart STK板 USB转TTL模块 PB4(TX) --> RX PB5(RX) --> TX GND --> GND +UART配置为波特率115200,数据位8,停止位1,校验位None +@PrintfConfigEnd +2.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: -Connect the PC to the STK board through the USB to TTL module, the connection -between the STK board and the USB to TTL module is as follows: -STK board USB to TTL module -PB4(TX) --> RX -PB5(RX) --> TX -GND --> GND +1.Connect the PC to the STK board through the USB to TTL module, and the connection +method between the STK board and the USB to TTL module is as follows: +@PrintfConfigStart +STK board USB to TTL module +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 115200, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd +2.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/EIDE/.eide/eide.json index af19968..98531fa 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -61,9 +59,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -80,14 +78,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -106,6 +107,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -118,10 +127,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/EIDE/Makefile index 1a68d51..280cadc 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/MDK-ARM/Project.uvoptx index 2098307..dd1179e 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/MDK-ARM/Project.uvprojx index 5e61fb4..c13dee8 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/readme.txt b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/readme.txt index 469db30..06503f4 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_SingleConversion_TriggerTimer_Polling/readme.txt @@ -29,17 +29,31 @@ Example execution steps: 2. USART printf conversation data of the channel 4(PA7) once per 1s ================================================================================ 注意事项: -通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +1.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart STK板 USB转TTL模块 PB4(TX) --> RX PB5(RX) --> TX GND --> GND +UART配置为波特率115200,数据位8,停止位1,校验位None +@PrintfConfigEnd +2.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: -Connect the PC to the STK board through the USB to TTL module, the connection -between the STK board and the USB to TTL module is as follows: -STK board USB to TTL module -PB4(TX) --> RX -PB5(RX) --> TX -GND --> GND +1.Connect the PC to the STK board through the USB to TTL module, and the connection +method between the STK board and the USB to TTL module is as follows: +@PrintfConfigStart +STK board USB to TTL module +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 115200, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd +2.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/EIDE/.eide/eide.json index af19968..59490bd 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -44,7 +42,11 @@ "files":[ { "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_utils.c" - }], + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_gpio.c" + } + ], "folders": [] }, { @@ -61,9 +63,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -80,14 +82,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -106,6 +111,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -118,10 +131,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/EIDE/Makefile index 1a68d51..5ac5ecf 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source @@ -39,7 +39,8 @@ C_SOURCES = \ ../Src/main.c \ ../Src/py32f002b_it.c \ ../Src/system_py32f002b.c \ ../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit/py32f002bxx_ll_Start_Kit.c \ -../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_utils.c +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_utils.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_gpio.c # ASM sources diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/Inc/Config.txt b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/Inc/Config.txt new file mode 100644 index 0000000..6838f61 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/Inc/Config.txt @@ -0,0 +1,12 @@ +[FilePath] +0=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_utils.c +1=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_gpio.c +[FileName] +0=py32f002b_ll_utils.c +1=py32f002b_ll_gpio.c +[Define] +0=PY32F002Bx5 +1=USE_FULL_LL_DRIVER +[User] +0=../Src/main.c +1=../Src/py32f002b_it.c diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/MDK-ARM/Project.uvoptx index 8df024e..d9d5421 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 CMSIS_AGDI - -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/MDK-ARM/Project.uvprojx index 62ea1d2..36cb25f 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/Src/main.c b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/Src/main.c index b062f09..8554bf3 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/Src/main.c +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/Src/main.c @@ -72,7 +72,7 @@ int main(void) /* Initialize USART(for printf use) */ BSP_USART_Config(); - while(BSP_PB_GetState(BUTTON_USER) != 0); + while(BSP_PB_GetState(BUTTON_USER)); /* Enable ADC1 clock */ LL_APB1_GRP2_EnableClock(LL_APB1_GRP2_PERIPH_ADC1); diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/readme.txt b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/readme.txt index 7de0333..5d5b9a0 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_StopForLowPower/readme.txt @@ -30,18 +30,31 @@ Example execution steps: the serial port. ================================================================================ 注意事项: -通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +1.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart STK板 USB转TTL模块 PB4(TX) --> RX PB5(RX) --> TX GND --> GND +UART配置为波特率115200,数据位8,停止位1,校验位None +@PrintfConfigEnd +2.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: -Connect the PC to the STK board through the USB to TTL module, and the connection +1.Connect the PC to the STK board through the USB to TTL module, and the connection method between the STK board and the USB to TTL module is as follows: - +@PrintfConfigStart STK board USB to TTL module -PB4 (TX) -->RX -PB5 (RX) -->TX -GND -->GND +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 115200, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd +2.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/EIDE/.eide/eide.json index 82c2c81..9ea7d3e 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -65,9 +63,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -84,14 +82,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -110,6 +111,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -122,10 +131,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/EIDE/Makefile index 7a68c59..64a031c 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/Inc/main.h b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/Inc/main.h index 6c15152..204eb94 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/Inc/main.h +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/Inc/main.h @@ -57,7 +57,6 @@ extern "C" { /* Exported variables prototypes ---------------------------------------------*/ /* Exported functions prototypes ---------------------------------------------*/ void APP_ErrorHandler(void); -void APP_AdcGrpRegularUnitaryConvCompleteCallback(void); #ifdef __cplusplus } diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/MDK-ARM/Project.uvoptx index 98be7f3..67536c2 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/MDK-ARM/Project.uvoptx @@ -10,7 +10,7 @@ *.s*; *.src; *.a* *.obj; *.o *.lib - *.txt; *.h; *.inc + *.txt; *.h; *.inc; *.md *.plm *.cpp 0 @@ -125,7 +125,7 @@ 0 CMSIS_AGDI - -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("") -D00(00000000) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"Any" -UAny -O206 -S0 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 @@ -175,7 +175,7 @@ 0 1 - 0 + 1 0 0 0 @@ -211,12 +211,6 @@ - - - System Viewer\ADC - 35905 - - 1 1 diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/MDK-ARM/Project.uvprojx index b887a92..edac6a3 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/MDK-ARM/Project.uvprojx @@ -10,13 +10,13 @@ Project 0x4 ARM-ADS - 5060750::V5.06 update 6 (build 750)::ARMCC + 5060960::V5.06 update 7 (build 960)::.\ARMCC 0 PY32F002Bx5 Puya - Puya.PY32F0xx_DFP.1.2.0 + Puya.PY32F0xx_DFP.1.2.8 https://www.puyasemi.com/uploadfiles/ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE @@ -185,6 +185,8 @@ 0 0 0 + 0 + 0 0 0 8 @@ -351,7 +353,7 @@ 0 0 0 - 0 + 4 diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/Src/main.c b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/Src/main.c index 5832ec7..fd0acd5 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/Src/main.c +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/Src/main.c @@ -33,11 +33,13 @@ #include "py32f002bxx_ll_Start_Kit.h" /* Private define ------------------------------------------------------------*/ +#define HighTemp_85 +/* #define HighTemp_105 */ + #define ADC_CALIBRATION_TIMEOUT_MS ((uint32_t) 1) #define VAR_CONVERTED_DATA_INIT_VALUE (__LL_ADC_DIGITAL_SCALE(LL_ADC_RESOLUTION_12B) + 1) /* Private variables ---------------------------------------------------------*/ -__IO uint32_t ubUserButtonPressed = 0; __IO uint16_t uhADCxConvertedData = VAR_CONVERTED_DATA_INIT_VALUE; __IO uint16_t uhADCxConvertedData_Temp = 0; @@ -81,7 +83,12 @@ int main(void) /* Get ADC conversion data */ uhADCxConvertedData = LL_ADC_REG_ReadConversionData12(ADC1); - uhADCxConvertedData_Temp= __LL_ADC_CALC_TEMPERATURE(3300,uhADCxConvertedData,LL_ADC_RESOLUTION_12B); +/* Please Check the High Temperature Value accord the datasheet */ +#if defined(HighTemp_85) + uhADCxConvertedData_Temp= __LL_ADC_CALC_TEMPERATURE_85(3300,uhADCxConvertedData,LL_ADC_RESOLUTION_12B); +#else + uhADCxConvertedData_Temp= __LL_ADC_CALC_TEMPERATURE_105(3300,uhADCxConvertedData,LL_ADC_RESOLUTION_12B); +#endif /* Printf current temperature value */ printf("Temperature:%u \r\n",uhADCxConvertedData_Temp); diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/readme.txt b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/readme.txt index f5edc90..e451a7b 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Temperature_Init/readme.txt @@ -29,17 +29,36 @@ Example execution steps: 2. USART printf current temperaure value ================================================================================ 注意事项: -通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +1.请检查芯片的高温校准值,如果是85,选择HighTemp_85,如果是105,选择HighTemp_105 + +2.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart STK板 USB转TTL模块 PB4(TX) --> RX PB5(RX) --> TX GND --> GND +UART配置为波特率115200,数据位8,停止位1,校验位None +@PrintfConfigEnd +3.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: -Connect the PC to the STK board through the USB to TTL module, the connection -between the STK board and the USB to TTL module is as follows: -STK board USB to TTL module -PB4(TX) --> RX -PB5(RX) --> TX -GND --> GND +1.Please check the high temperature calibration value of the chip. If it is 85, +select HighTemp_85. If it is 105, select HighTemp_105 + +2.Connect the PC to the STK board through the USB to TTL module, and the connection +method between the STK board and the USB to TTL module is as follows: +@PrintfConfigStart +STK board USB to TTL module +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 115200, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd +3.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/.clang-format b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/.clang-format new file mode 100644 index 0000000..ecc57c4 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/.clang-format @@ -0,0 +1,38 @@ +--- +BasedOnStyle: Microsoft +Language: Cpp + +################################### +# indent conf +################################### + +UseTab: Never +IndentWidth: 4 +TabWidth: 4 +ColumnLimit: 0 +AccessModifierOffset: -4 +NamespaceIndentation: All +FixNamespaceComments: false +BreakBeforeBraces: Linux + +################################### +# other styles +################################### + +# +# for more conf, you can ref: https://clang.llvm.org/docs/ClangFormatStyleOptions.html +# + +AllowShortIfStatementsOnASingleLine: true + +AllowShortLoopsOnASingleLine: true + +AllowShortBlocksOnASingleLine: true + +IndentCaseLabels: true + +SortIncludes: false + +AlignConsecutiveMacros: AcrossEmptyLines + +AlignConsecutiveAssignments: Consecutive diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/.eide/eide.json new file mode 100644 index 0000000..e72a5de --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/.eide/eide.json @@ -0,0 +1,176 @@ +{ + "name": "Project", + "type": "ARM", + "dependenceList": [], + "srcDirs": [], + "virtualFolder": { + "name": "", + "files": [], + "folders": [ + { + "name": "BSP", + "files": [ + { + "path": "../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit/py32f002bxx_ll_Start_Kit.c" + } + ], + "folders": [] + }, + { + "name": "Common", + "files": [ + { + "path": "../Src/system_py32f002b.c" + }, + { + "path": "startup_py32f002bxx.s" + } + ], + "folders": [] + }, + { + "name": "Doc", + "files": [ + { + "path": "../readme.txt" + } + ], + "folders": [] + }, + { + "name": "PY32F002B_HAL_Driver", + "files":[ + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_utils.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_adc.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_tim.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_gpio.c" + } + ], + "folders": [] + }, + { + "name": "User", + "files":[ + { + "path":"../Src/main.c" + }, + { + "path":"../Src/py32f002b_it.c" + } + ], + "folders": [] + } + ] + }, + "outDir": ".", + "deviceName": "PY32F002Bx5", + "packDir": null, + "miscInfo": { + "uid": "36bcf0031e18a3008bbdaa90a96a7987" + }, + "targets": { + "Project": { + "excludeList": [], + "toolchain": "GCC", + "compileConfig": { + "cpuType": "Cortex-M0+", + "floatingPointHardware": "none", + "scatterFilePath": "py32f002bx5.ld", + "useCustomScatterFile": true, + "storageLayout": { + "RAM": [], + "ROM": [] + }, + "options": "null", + "archExtensions": "" + }, + "uploader": "pyOCD", + "uploadConfig": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" + }, + "uploadConfigMap": { + "JLink": { + "bin": "", + "baseAddr": "", + "cpuInfo": { + "vendor": "Puya", + "cpuName": "PY32F002Bx5" + }, + "proType": 1, + "speed": 1000, + "otherCmds": "" + }, + "OpenOCD": { + "bin": "", + "target": "py32f002b", + "interface": "cmsis-dap", + "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" + } + }, + "custom_dep": { + "name": "default", + "incList": [ + "../Inc", + "../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit", + "../../../../../../Drivers/CMSIS/Include", + "../../../../../../Drivers/CMSIS/Device/PY32F0xx/Include", + "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" + ], + "libList": [], + "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } + } + } + }, + "version": "3.6" +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/.gitignore new file mode 100644 index 0000000..8519ec6 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/.gitignore @@ -0,0 +1,15 @@ +# dot files +# /.vscode/launch.json +/.settings +/.eide/log +/.eide.usr.ctx.json + +# project out +/build +/bin +/obj +/out + +# eide template +*.ept +*.eide-template diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/.vscode/settings.json b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/.vscode/settings.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/.vscode/settings.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/.vscode/tasks.json new file mode 100644 index 0000000..854f87f --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/.vscode/tasks.json @@ -0,0 +1,72 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "type": "shell", + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" + }, + { + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" + }, + { + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/Makefile new file mode 100644 index 0000000..930820d --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/Makefile @@ -0,0 +1,179 @@ +########################################################################################################################## +# File automatically-generated by tool: [projectgenerator] version: [3.17.1] date: [Tue Dec 06 16:10:07 CST 2022] +########################################################################################################################## + +# ------------------------------------------------ +# Generic Makefile (based on gcc) +# +# ChangeLog : +# 2017-02-10 - Several enhancements + project update mode +# 2015-07-22 - first version +# ------------------------------------------------ + +###################################### +# target +###################################### +TARGET = Project + + +###################################### +# building variables +###################################### +# debug build? +DEBUG = 1 +# optimization +OPT = -Og + + +####################################### +# paths +####################################### +# Build path +BUILD_DIR = Project + +###################################### +# source +###################################### +# C sources +C_SOURCES = \ ../Src/main.c \ +../Src/py32f002b_it.c \ +../Src/system_py32f002b.c \ +../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit/py32f002bxx_ll_Start_Kit.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_utils.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_adc.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_tim.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_gpio.c + + +# ASM sources +ASM_SOURCES = \ +startup_py32f002bxx.s + + +####################################### +# binaries +####################################### +PREFIX = arm-none-eabi- +# The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx) +# either it can be added to the PATH environment variable. +ifdef GCC_PATH +CC = $(GCC_PATH)/$(PREFIX)gcc +AS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp +CP = $(GCC_PATH)/$(PREFIX)objcopy +SZ = $(GCC_PATH)/$(PREFIX)size +else +CC = $(PREFIX)gcc +AS = $(PREFIX)gcc -x assembler-with-cpp +CP = $(PREFIX)objcopy +SZ = $(PREFIX)size +endif +HEX = $(CP) -O ihex +BIN = $(CP) -O binary -S + +####################################### +# CFLAGS +####################################### +# cpu +CPU = -mcpu=cortex-m0plus + +# fpu +# NONE for Cortex-M0/M0+/M3 + +# float-abi + + +# mcu +MCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI) + +# macros for gcc +# AS defines +AS_DEFS = + +# C defines +C_DEFS = \ +-DPY32F002Bx5\ +-DUSE_FULL_LL_DRIVER + + +# AS includes +AS_INCLUDES = + +# C includes +C_INCLUDES = \ +-I../Inc \ +-I../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit \ +-I../../../../../../Drivers/PY32F002B_HAL_Driver/Inc \ +-I../../../../../../Drivers/CMSIS/Device/PY32F0xx/Include \ +-I../../../../../../Drivers/CMSIS/Include + + +# compile gcc flags +ASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections + +CFLAGS += $(MCU) $(C_DEFS) $(C_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections + +ifeq ($(DEBUG), 1) +CFLAGS += -g -gdwarf-2 +endif + + +# Generate dependency information +CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)" + + +####################################### +# LDFLAGS +####################################### +# link script +LDSCRIPT = py32f002bx5.ld + +# libraries +LIBS = -lc -lm -lnosys +LIBDIR = +LDFLAGS = $(MCU) -specs=nano.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections + +# default action: build all +all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin + + +####################################### +# build the application +####################################### +# list of objects +OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o))) +vpath %.c $(sort $(dir $(C_SOURCES))) +# list of ASM program objects +OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o))) +vpath %.s $(sort $(dir $(ASM_SOURCES))) + +$(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR) + $(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@ + +$(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR) + $(AS) -c $(CFLAGS) $< -o $@ + +$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile + $(CC) $(OBJECTS) $(LDFLAGS) -o $@ + $(SZ) $@ + +$(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf | $(BUILD_DIR) + $(HEX) $< $@ + +$(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR) + $(BIN) $< $@ + +$(BUILD_DIR): + mkdir $@ + +####################################### +# clean up +####################################### +clean: + -rm -fR $(BUILD_DIR) + +####################################### +# dependencies +####################################### +-include $(wildcard $(BUILD_DIR)/*.d) + +# *** EOF *** \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/Project.code-workspace b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/Project.code-workspace new file mode 100644 index 0000000..f200f34 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/Project.code-workspace @@ -0,0 +1,44 @@ +{ + "folders": [ + { + "path": "." + } + ], + "settings": { + "files.autoGuessEncoding": true, + "C_Cpp.default.configurationProvider": "cl.eide", + "C_Cpp.errorSquiggles": "disabled", + "files.associations": { + ".eideignore": "ignore", + "*.a51": "a51", + "*.h": "c", + "*.c": "c", + "*.hxx": "cpp", + "*.hpp": "cpp", + "*.c++": "cpp", + "*.cpp": "cpp", + "*.cxx": "cpp", + "*.cc": "cpp" + }, + "[yaml]": { + "editor.insertSpaces": true, + "editor.tabSize": 4, + "editor.autoIndent": "advanced" + } + }, + "extensions": { + "recommendations": [ + "cl.eide", + "keroc.hex-fmt", + "xiaoyongdong.srecord", + "hars.cppsnippets", + "zixuanwang.linkerscript", + "redhat.vscode-yaml", + "IBM.output-colorizer", + "cschlosser.doxdocgen", + "ms-vscode.vscode-serial-monitor", + "dan-c-underwood.arm", + "marus25.cortex-debug" + ] + } +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/py32f002bx5.ld b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/py32f002bx5.ld new file mode 100644 index 0000000..0b99c54 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/py32f002bx5.ld @@ -0,0 +1,189 @@ +/* +****************************************************************************** +** + +** File : LinkerScript.ld +** +** Author : Puya_HC +** +** Abstract : Linker script for PY32F002Bx5 series +** 24Kbytes FLASH and 3Kbytes RAM +** +** Set heap size, stack size and stack location according +** to application requirements. +** +** Set memory bank area and size if external memory is used. +** +** Target : Puya PY32 +** +** Distribution: The file is distributed “as is,” without any warranty +** of any kind. +** +***************************************************************************** +** @attention +** +**

© COPYRIGHT(c) 2019 Puya Semiconductor

+** +** Redistribution and use in source and binary forms, with or without modification, +** are permitted provided that the following conditions are met: +** 1. Redistributions of source code must retain the above copyright notice, +** this list of conditions and the following disclaimer. +** 2. Redistributions in binary form must reproduce the above copyright notice, +** this list of conditions and the following disclaimer in the documentation +** and/or other materials provided with the distribution. +** 3. Neither the name of Puya Semiconductor nor the names of its contributors +** may be used to endorse or promote products derived from this software +** without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +** +***************************************************************************** +*/ + +/* Entry Point */ +ENTRY(Reset_Handler) + +/* Highest address of the user mode stack */ +_estack = ORIGIN(RAM) + LENGTH(RAM); /* end of RAM */ +/* Generate a link error if heap and stack don't fit into RAM */ +_Min_Heap_Size = 0x000; /* required amount of heap */ +_Min_Stack_Size = 0x400; /* required amount of stack */ + +/* Specify the memory areas */ +MEMORY +{ +RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 3K +FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 24K +} + +/* Define output sections */ +SECTIONS +{ + /* The startup code goes first into FLASH */ + .isr_vector : + { + . = ALIGN(4); + KEEP(*(.isr_vector)) /* Startup code */ + . = ALIGN(4); + } >FLASH + + /* The program code and other data goes into FLASH */ + .text : + { + . = ALIGN(4); + *(.text) /* .text sections (code) */ + *(.text*) /* .text* sections (code) */ + *(.glue_7) /* glue arm to thumb code */ + *(.glue_7t) /* glue thumb to arm code */ + *(.eh_frame) + + KEEP (*(.init)) + KEEP (*(.fini)) + + . = ALIGN(4); + _etext = .; /* define a global symbols at end of code */ + } >FLASH + + /* Constant data goes into FLASH */ + .rodata : + { + . = ALIGN(4); + *(.rodata) /* .rodata sections (constants, strings, etc.) */ + *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ + . = ALIGN(4); + } >FLASH + + .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH + .ARM : { + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + } >FLASH + + .preinit_array : + { + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array*)) + PROVIDE_HIDDEN (__preinit_array_end = .); + } >FLASH + .init_array : + { + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array*)) + PROVIDE_HIDDEN (__init_array_end = .); + } >FLASH + .fini_array : + { + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(SORT(.fini_array.*))) + KEEP (*(.fini_array*)) + PROVIDE_HIDDEN (__fini_array_end = .); + } >FLASH + + /* used by the startup to initialize data */ + _sidata = LOADADDR(.data); + + /* Initialized data sections goes into RAM, load LMA copy after code */ + .data : + { + . = ALIGN(4); + _sdata = .; /* create a global symbol at data start */ + *(.data) /* .data sections */ + *(.data*) /* .data* sections */ + + . = ALIGN(4); + _edata = .; /* define a global symbol at data end */ + } >RAM AT> FLASH + + + /* Uninitialized data section */ + . = ALIGN(4); + .bss : + { + /* This is used by the startup in order to initialize the .bss secion */ + _sbss = .; /* define a global symbol at bss start */ + __bss_start__ = _sbss; + *(.bss) + *(.bss*) + *(COMMON) + + . = ALIGN(4); + _ebss = .; /* define a global symbol at bss end */ + __bss_end__ = _ebss; + } >RAM + + /* User_heap_stack section, used to check that there is enough RAM left */ + ._user_heap_stack : + { + . = ALIGN(8); + PROVIDE ( end = . ); + PROVIDE ( _end = . ); + . = . + _Min_Heap_Size; + . = . + _Min_Stack_Size; + . = ALIGN(8); + } >RAM + + + + /* Remove information from the standard libraries */ + /DISCARD/ : + { + libc.a ( * ) + libm.a ( * ) + libgcc.a ( * ) + } + + .ARM.attributes 0 : { *(.ARM.attributes) } +} + + diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/startup_py32f002bxx.s b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/startup_py32f002bxx.s new file mode 100644 index 0000000..44eda49 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EIDE/startup_py32f002bxx.s @@ -0,0 +1,254 @@ +/** + ****************************************************************************** + * @file startup_py32f002bxx.s + * @author MCD Application Team + * @brief PY32F002Bxx devices vector table GCC toolchain. + * This module performs: + * - Set the initial SP + * - Set the initial PC == Reset_Handler, + * - Set the vector table entries with the exceptions ISR address + * - Branches to main in the C library (which eventually + * calls main()). + * After Reset the Cortex-M0+ processor is in Thread mode, + * priority is Privileged, and the Stack is set to Main. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 + * + ****************************************************************************** + */ + +.syntax unified +.cpu cortex-m0plus +.fpu softvfp +.thumb + +.global g_pfnVectors +.global Default_Handler + +/* start address for the initialization values of the .data section. +defined in linker script */ +.word _sidata +/* start address for the .data section. defined in linker script */ +.word _sdata +/* end address for the .data section. defined in linker script */ +.word _edata +/* start address for the .bss section. defined in linker script */ +.word _sbss +/* end address for the .bss section. defined in linker script */ +.word _ebss + +/** + * @brief This is the code that gets called when the processor first + * starts execution following a reset event. Only the absolutely + * necessary set is performed, after which the application + * supplied main() routine is called. + * @param None + * @retval None +*/ + + .section .text.Reset_Handler + .weak Reset_Handler + .type Reset_Handler, %function +Reset_Handler: + ldr r0, =_estack + mov sp, r0 /* set stack pointer */ + +/* Call the clock system initialization function.*/ + bl SystemInit + +/* Copy the data segment initializers from flash to SRAM */ + ldr r0, =_sdata + ldr r1, =_edata + ldr r2, =_sidata + movs r3, #0 + b LoopCopyDataInit + +CopyDataInit: + ldr r4, [r2, r3] + str r4, [r0, r3] + adds r3, r3, #4 + +LoopCopyDataInit: + adds r4, r0, r3 + cmp r4, r1 + bcc CopyDataInit + +/* Zero fill the bss segment. */ + ldr r2, =_sbss + ldr r4, =_ebss + movs r3, #0 + b LoopFillZerobss + +FillZerobss: + str r3, [r2] + adds r2, r2, #4 + +LoopFillZerobss: + cmp r2, r4 + bcc FillZerobss + +/* Call static constructors */ + bl __libc_init_array +/* Call the application s entry point.*/ + bl main + +LoopForever: + b LoopForever + +.size Reset_Handler, .-Reset_Handler + +/** + * @brief This is the code that gets called when the processor receives an + * unexpected interrupt. This simply enters an infinite loop, preserving + * the system state for examination by a debugger. + * + * @param None + * @retval None +*/ + .section .text.Default_Handler,"ax",%progbits +Default_Handler: +Infinite_Loop: + b Infinite_Loop + .size Default_Handler, .-Default_Handler + +/****************************************************************************** +* +* The minimal vector table for a Cortex M0. Note that the proper constructs +* must be placed on this to ensure that it ends up at physical address +* 0x0000.0000. +* +******************************************************************************/ + .section .isr_vector,"a",%progbits + .type g_pfnVectors, %object + .size g_pfnVectors, .-g_pfnVectors + +g_pfnVectors: + .word _estack + .word Reset_Handler + .word NMI_Handler + .word HardFault_Handler + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word SVC_Handler + .word 0 + .word 0 + .word PendSV_Handler + .word SysTick_Handler + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word FLASH_IRQHandler /* FLASH */ + .word RCC_IRQHandler /* RCC */ + .word EXTI0_1_IRQHandler /* EXTI Line 0 and 1 */ + .word EXTI2_3_IRQHandler /* EXTI Line 2 and 3 */ + .word EXTI4_15_IRQHandler /* EXTI Line 4 to 15 */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word ADC_COMP_IRQHandler /* ADC and COMP1 */ + .word TIM1_BRK_UP_TRG_COM_IRQHandler /* TIM1 Break, Update, Trigger and Commutation */ + .word TIM1_CC_IRQHandler /* TIM1 Capture Compare */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word LPTIM1_IRQHandler /* LPTIM1 */ + .word 0 /* reserved */ + .word TIM14_IRQHandler /* TIM14 */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word I2C1_IRQHandler /* I2C1 */ + .word 0 /* reserved */ + .word SPI1_IRQHandler /* SPI1 */ + .word 0 /* reserved */ + .word USART1_IRQHandler /* USART1 */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + +/******************************************************************************* +* +* Provide weak aliases for each Exception handler to the Default_Handler. +* As they are weak aliases, any function with the same name will override +* this definition. +* +*******************************************************************************/ + + .weak NMI_Handler + .thumb_set NMI_Handler,Default_Handler + + .weak HardFault_Handler + .thumb_set HardFault_Handler,Default_Handler + + .weak SVC_Handler + .thumb_set SVC_Handler,Default_Handler + + .weak PendSV_Handler + .thumb_set PendSV_Handler,Default_Handler + + .weak SysTick_Handler + .thumb_set SysTick_Handler,Default_Handler + + .weak FLASH_IRQHandler + .thumb_set FLASH_IRQHandler,Default_Handler + + .weak RCC_IRQHandler + .thumb_set RCC_IRQHandler,Default_Handler + + .weak EXTI0_1_IRQHandler + .thumb_set EXTI0_1_IRQHandler,Default_Handler + + .weak EXTI2_3_IRQHandler + .thumb_set EXTI2_3_IRQHandler,Default_Handler + + .weak EXTI4_15_IRQHandler + .thumb_set EXTI4_15_IRQHandler,Default_Handler + + .weak ADC_COMP_IRQHandler + .thumb_set ADC_COMP_IRQHandler,Default_Handler + + .weak TIM1_BRK_UP_TRG_COM_IRQHandler + .thumb_set TIM1_BRK_UP_TRG_COM_IRQHandler,Default_Handler + + .weak TIM1_CC_IRQHandler + .thumb_set TIM1_CC_IRQHandler,Default_Handler + + .weak LPTIM1_IRQHandler + .thumb_set LPTIM1_IRQHandler,Default_Handler + + .weak TIM14_IRQHandler + .thumb_set TIM14_IRQHandler,Default_Handler + + .weak I2C1_IRQHandler + .thumb_set I2C1_IRQHandler,Default_Handler + + .weak SPI1_IRQHandler + .thumb_set SPI1_IRQHandler,Default_Handler + + .weak USART1_IRQHandler + .thumb_set USART1_IRQHandler,Default_Handler diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EWARM/Project.ewd b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EWARM/Project.ewd new file mode 100644 index 0000000..4b12306 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EWARM/Project.ewd @@ -0,0 +1,1534 @@ + + + 3 + + Project + + ARM + + 1 + + C-SPY + 2 + + 32 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + CADI_ID + 2 + + 0 + 1 + 1 + + + + + + + + + CMSISDAP_ID + 2 + + 4 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IJET_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JLINK_ID + 2 + + 16 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 3 + 1 + 1 + + + + + + + + + + + + + NULINK_ID + 2 + + 0 + 1 + 1 + + + + + + + PEMICRO_ID + 2 + + 3 + 1 + 1 + + + + + + + + STLINK_ID + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + TIFET_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + + + XDS100_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9BE.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EWARM/Project.ewp b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EWARM/Project.ewp new file mode 100644 index 0000000..c737d11 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EWARM/Project.ewp @@ -0,0 +1,1117 @@ + + + 3 + + Project + + ARM + + 1 + + General + 3 + + 34 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 37 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 11 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + 1 + inputOutputBased + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 26 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + + Doc + + $PROJ_DIR$\..\readme.txt + + + + Drivers + + BSP + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\PY32F002Bxx_Start_Kit\py32f002bxx_ll_Start_Kit.c + + + + CMSIS + + $PROJ_DIR$\..\Src\system_py32f002b.c + + + + PY32F002B_HAL_Driver + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_ll_adc.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_ll_gpio.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_ll_tim.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_ll_utils.c + + + + + Example + + EWARM + + $PROJ_DIR$\startup_py32f002bxx.s + + + + User + + $PROJ_DIR$\..\Src\main.c + + + $PROJ_DIR$\..\Src\py32f002b_it.c + + + + diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EWARM/Project.eww b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EWARM/Project.eww new file mode 100644 index 0000000..46d9d41 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EWARM/Project.eww @@ -0,0 +1,7 @@ + + + + $WS_DIR$\Project.ewp + + + diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EWARM/py32f002bx5_flash.icf b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EWARM/py32f002bx5_flash.icf new file mode 100644 index 0000000..6146162 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EWARM/py32f002bx5_flash.icf @@ -0,0 +1,33 @@ +/*###ICF### Section handled by ICF editor, don't touch! ****/ +/*-Editor annotation file-*/ +/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ +/*-Specials-*/ +define symbol __ICFEDIT_intvec_start__ = 0x08000000; +/*-Memory Regions-*/ +define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; +define symbol __ICFEDIT_region_ROM_end__ = 0x08005FFF; +define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; +define symbol __ICFEDIT_region_RAM_end__ = 0x20000BFF; +/*-Sizes-*/ +define symbol __ICFEDIT_size_cstack__ = 0x00000400; +define symbol __ICFEDIT_size_heap__ = 0x00000000; +/**** End of ICF editor section. ###ICF###*/ + +define memory mem with size = 4G; +define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; +define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; + +define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; +define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; + +initialize by copy { readwrite }; +do not initialize { section .noinit }; + +place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; + +place in ROM_region { readonly }; +place in RAM_region { readwrite, + block CSTACK, block HEAP }; + +export symbol __ICFEDIT_region_RAM_start__; +export symbol __ICFEDIT_region_RAM_end__; \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EWARM/startup_py32f002bxx.s b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EWARM/startup_py32f002bxx.s new file mode 100644 index 0000000..98df065 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/EWARM/startup_py32f002bxx.s @@ -0,0 +1,222 @@ +;****************************************************************************** +;* @file startup_py32f002bxx.s +;* @author MCU Application Team +;* @brief PY32F002Bxx devices vector table for EWARM toolchain. +;* This module performs: +;* - Set the initial SP +;* - Set the initial PC == __iar_program_start +;* - Set the vector table entries with the exceptions ISR address +;* - Branches to __main in the C library (which eventually +;* calls main()). +;* After Reset the CortexM0+ processor is in Thread mode, +;* priority is Privileged, and the Stack is set to Main. +;****************************************************************************** +;* @attention +;* +;*

© Copyright (c) 2023 Puya Semiconductor Co. +;* All rights reserved.

+;* +;* This software component is licensed by Puya 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 +;* +;****************************************************************************** +;* @attention +;* +;*

© Copyright (c) 2016 STMicroelectronics. +;* All rights reserved.

+;* +;* 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 +;* +;****************************************************************************** +; +; The modules in this file are included in the libraries, and may be replaced +; by any user-defined modules that define the PUBLIC symbol _program_start or +; a user defined start symbol. +; To override the cstartup defined in the library, simply add your modified +; version to the workbench project. +; +; The vector table is normally located at address 0. +; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. +; The name "__vector_table" has special meaning for C-SPY: +; it is where the SP start value is found, and the NVIC vector +; table register (VTOR) is initialized to this address if != 0. +; +; Cortex-M version +; + + MODULE ?cstartup + + ;; Forward declaration of sections. + SECTION CSTACK:DATA:NOROOT(3) + + SECTION .intvec:CODE:NOROOT(2) + + EXTERN __iar_program_start + EXTERN SystemInit + PUBLIC __vector_table + + DATA +__vector_table + DCD sfe(CSTACK) ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD 0 ; 0Reserved + DCD 0 ; 1Reserved + DCD 0 ; 2Reserved + DCD FLASH_IRQHandler ; 3FLASH + DCD RCC_IRQHandler ; 4RCC + DCD EXTI0_1_IRQHandler ; 5EXTI Line 0 and 1 + DCD EXTI2_3_IRQHandler ; 6EXTI Line 2 and 3 + DCD EXTI4_15_IRQHandler ; 7EXTI Line 4 to 15 + DCD 0 ; 8Reserved + DCD 0 ; 9Reserved + DCD 0 ; 10Reserved + DCD 0 ; 11Reserved + DCD ADC_COMP_IRQHandler ; 12ADC&COMP1 + DCD TIM1_BRK_UP_TRG_COM_IRQHandler ; 13TIM1 Break, Update, Trigger and Commutation + DCD TIM1_CC_IRQHandler ; 14TIM1 Capture Compare + DCD 0 ; 15Reserved + DCD 0 ; 16Reserved + DCD LPTIM1_IRQHandler ; 17LPTIM1 + DCD 0 ; 18Reserved + DCD TIM14_IRQHandler ; 19TIM14 + DCD 0 ; 20Reserved + DCD 0 ; 21Reserved + DCD 0 ; 22Reserved + DCD I2C1_IRQHandler ; 23I2C1 + DCD 0 ; 24Reserved + DCD SPI1_IRQHandler ; 25SPI1 + DCD 0 ; 26Reserved + DCD USART1_IRQHandler ; 27USART1 + DCD 0 ; 28Reserved + DCD 0 ; 29Reserved + DCD 0 ; 30Reserved + DCD 0 ; 31Reserved + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; Default interrupt handlers. +;; + THUMB + + PUBWEAK Reset_Handler + SECTION .text:CODE:REORDER:NOROOT(2) +Reset_Handler + LDR R0, =SystemInit + BLX R0 + LDR R0, =__iar_program_start + BX R0 + + PUBWEAK NMI_Handler + SECTION .text:CODE:REORDER:NOROOT(1) +NMI_Handler + B NMI_Handler + + PUBWEAK HardFault_Handler + SECTION .text:CODE:REORDER:NOROOT(1) +HardFault_Handler + B HardFault_Handler + + PUBWEAK SVC_Handler + SECTION .text:CODE:REORDER:NOROOT(1) +SVC_Handler + B SVC_Handler + + PUBWEAK PendSV_Handler + SECTION .text:CODE:REORDER:NOROOT(1) +PendSV_Handler + B PendSV_Handler + + PUBWEAK SysTick_Handler + SECTION .text:CODE:REORDER:NOROOT(1) +SysTick_Handler + B SysTick_Handler + + PUBWEAK FLASH_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +FLASH_IRQHandler + B FLASH_IRQHandler + + PUBWEAK RCC_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +RCC_IRQHandler + B RCC_IRQHandler + + PUBWEAK EXTI0_1_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +EXTI0_1_IRQHandler + B EXTI0_1_IRQHandler + + PUBWEAK EXTI2_3_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +EXTI2_3_IRQHandler + B EXTI2_3_IRQHandler + + PUBWEAK EXTI4_15_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +EXTI4_15_IRQHandler + B EXTI4_15_IRQHandler + + PUBWEAK ADC_COMP_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +ADC_COMP_IRQHandler + B ADC_COMP_IRQHandler + + PUBWEAK TIM1_BRK_UP_TRG_COM_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +TIM1_BRK_UP_TRG_COM_IRQHandler + B TIM1_BRK_UP_TRG_COM_IRQHandler + + PUBWEAK TIM1_CC_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +TIM1_CC_IRQHandler + B TIM1_CC_IRQHandler + + PUBWEAK LPTIM1_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +LPTIM1_IRQHandler + B LPTIM1_IRQHandler + + PUBWEAK TIM14_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +TIM14_IRQHandler + B TIM14_IRQHandler + + PUBWEAK I2C1_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +I2C1_IRQHandler + B I2C1_IRQHandler + + PUBWEAK SPI1_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +SPI1_IRQHandler + B SPI1_IRQHandler + + PUBWEAK USART1_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +USART1_IRQHandler + B USART1_IRQHandler + + END + +;************************ (C) COPYRIGHT Puya *****END OF FILE******************* diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/Inc/Config.txt b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/Inc/Config.txt new file mode 100644 index 0000000..ef0a313 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/Inc/Config.txt @@ -0,0 +1,16 @@ +[FilePath] +0=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_utils.c +1=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_adc.c +2=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_tim.c +3=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_gpio.c +[FileName] +0=py32f002b_ll_utils.c +1=py32f002b_ll_adc.c +2=py32f002b_ll_tim.c +3=py32f002b_ll_gpio.c +[Define] +0=PY32F002Bx5 +1=USE_FULL_LL_DRIVER +[User] +0=../Src/main.c +1=../Src/py32f002b_it.c diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/Inc/main.h b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/Inc/main.h new file mode 100644 index 0000000..6c15152 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/Inc/main.h @@ -0,0 +1,68 @@ +/** + ****************************************************************************** + * @file main.h + * @author MCU Application Team + * @brief Header for main.c file. + * This file contains the common defines of the application. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 "py32f002b_ll_rcc.h" +#include "py32f002b_ll_bus.h" +#include "py32f002b_ll_system.h" +#include "py32f002b_ll_cortex.h" +#include "py32f002b_ll_utils.h" +#include "py32f002b_ll_pwr.h" +#include "py32f002b_ll_gpio.h" +#include "py32f002b_ll_adc.h" +#include "py32f002b_ll_tim.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); +void APP_AdcGrpRegularUnitaryConvCompleteCallback(void); + +#ifdef __cplusplus +} +#endif + +#endif /* __MAIN_H */ + +/************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/Inc/py32_assert.h b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/Inc/py32_assert.h new file mode 100644 index 0000000..25669a5 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/Inc/py32_assert.h @@ -0,0 +1,67 @@ +/** + ****************************************************************************** + * @file py32_assert.h + * @brief PY32 assert file. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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******************/ diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/Inc/py32f002b_it.h b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/Inc/py32f002b_it.h new file mode 100644 index 0000000..9581db1 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/Inc/py32f002b_it.h @@ -0,0 +1,57 @@ +/** + ****************************************************************************** + * @file py32f002b_it.h + * @author MCU Application Team + * @brief This file contains the headers of the interrupt handlers. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 __PY32F002B_IT_H +#define __PY32F002B_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 /* __PY32F002B_IT_H */ + +/************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/MDK-ARM/Project.uvoptx new file mode 100644 index 0000000..d898a06 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/MDK-ARM/Project.uvoptx @@ -0,0 +1,389 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + Project + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\Listings\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 3 + + + + + + + + + + + BIN\CMSIS_AGDI.dll + + + + 0 + CMSIS_AGDI + -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) + + + 0 + ARMRTXEVENTFLAGS + -L70 -Z18 -C0 -M0 -T1 + + + 0 + DLGTARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + + + + 0 + DLGUARM + + + + + + + 0 + 1 + uhADCxConvertedData_Voltage_mVolt + + + + + 1 + 1 + 0x40012428 + 0 + + + + 0 + + + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + + System Viewer\ADC + 35905 + + + System Viewer\TIM1 + 35904 + + + + 1 + 1 + 0 + 2 + 1000000 + + + + + + Common + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + ..\Src\system_py32f002b.c + system_py32f002b.c + 0 + 0 + + + 1 + 2 + 2 + 0 + 0 + 0 + .\startup_py32f002bxx.s + startup_py32f002bxx.s + 0 + 0 + + + + + Application/User + 1 + 0 + 0 + 0 + + 2 + 3 + 1 + 0 + 0 + 0 + ..\Src\main.c + main.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + ..\Src\py32f002b_it.c + py32f002b_it.c + 0 + 0 + + + + + BSP/py32f002bxx_Start_Kit + 1 + 0 + 0 + 0 + + 3 + 5 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\BSP\PY32F002Bxx_Start_Kit\py32f002bxx_ll_Start_Kit.c + py32f002bxx_ll_Start_Kit.c + 0 + 0 + + + + + Drivers/PY32F002B_HAL_Driver + 1 + 0 + 0 + 0 + + 4 + 6 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_ll_utils.c + py32f002b_ll_utils.c + 0 + 0 + + + 4 + 7 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_ll_adc.c + py32f002b_ll_adc.c + 0 + 0 + + + 4 + 8 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_ll_tim.c + py32f002b_ll_tim.c + 0 + 0 + + + 4 + 9 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_ll_gpio.c + py32f002b_ll_gpio.c + 0 + 0 + + + + + Doc + 1 + 0 + 0 + 0 + + 5 + 10 + 5 + 0 + 0 + 0 + ..\readme.txt + readme.txt + 0 + 0 + + + +
diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/MDK-ARM/Project.uvprojx new file mode 100644 index 0000000..092790b --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/MDK-ARM/Project.uvprojx @@ -0,0 +1,467 @@ + + + + 2.1 + +
### uVision Project, (C) Keil Software
+ + + + Project + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + 0 + + + PY32F002Bx5 + Puya + Puya.PY32F0xx_DFP.1.2.1 + https://www.puyasemi.com/uploadfiles/ + IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) + 0 + $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h + + + + + + + + + + $$Device:PY32F002Bx5$CMSIS\SVD\PY32F002Bxx.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + Project + 1 + 0 + 1 + 1 + 1 + .\Listings\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -REMAP + DARMCM1.DLL + -pCM0+ + SARMCM3.DLL + + TARMCM1.DLL + -pCM0+ + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M0+" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0xc00 + + + 1 + 0x8000000 + 0x6000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x6000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0xc00 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + + + PY32F002Bx5,USE_FULL_LL_DRIVER + + ..\Inc;..\..\..\..\..\..\Drivers\BSP\PY32F002Bxx_Start_Kit;..\..\..\..\..\..\Drivers\CMSIS\Include;..\..\..\..\..\..\Drivers\CMSIS\Device\PY32F0xx\Include;..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Inc + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + + .\Objects\Project.sct + + + + + + + + + + + Common + + + system_py32f002b.c + 1 + ..\Src\system_py32f002b.c + + + startup_py32f002bxx.s + 2 + .\startup_py32f002bxx.s + + + + + Application/User + + + main.c + 1 + ..\Src\main.c + + + py32f002b_it.c + 1 + ..\Src\py32f002b_it.c + + + + + BSP/py32f002bxx_Start_Kit + + + py32f002bxx_ll_Start_Kit.c + 1 + ..\..\..\..\..\..\Drivers\BSP\PY32F002Bxx_Start_Kit\py32f002bxx_ll_Start_Kit.c + + + + + Drivers/PY32F002B_HAL_Driver + + + py32f002b_ll_utils.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_ll_utils.c + + + py32f002b_ll_adc.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_ll_adc.c + + + py32f002b_ll_tim.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_ll_tim.c + + + py32f002b_ll_gpio.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_ll_gpio.c + + + + + Doc + + + readme.txt + 5 + ..\readme.txt + + + + + + + + + + + + + +
diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/MDK-ARM/startup_py32f002bxx.s b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/MDK-ARM/startup_py32f002bxx.s new file mode 100644 index 0000000..767f75c --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/MDK-ARM/startup_py32f002bxx.s @@ -0,0 +1,228 @@ +;****************************************************************************** +;* @file startup_py32f002bxx.s +;* @author MCU Application Team +;* @brief PY32F002Bxx devices vector table for MDK-ARM toolchain. +;* This module performs: +;* - Set the initial SP +;* - Set the initial PC == Reset_Handler +;* - Set the vector table entries with the exceptions ISR address +;* - Branches to __main in the C library (which eventually +;* calls main()). +;* After Reset the CortexM0+ processor is in Thread mode, +;* priority is Privileged, and the Stack is set to Main. +;****************************************************************************** +;* @attention +;* +;*

© Copyright (c) 2023 Puya Semiconductor Co. +;* All rights reserved.

+;* +;* This software component is licensed by Puya 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 +;* +;****************************************************************************** +;* @attention +;* +;*

© Copyright (c) 2016 STMicroelectronics. +;* All rights reserved.

+;* +;* 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 +;* +;****************************************************************************** +;* <<< Use Configuration Wizard in Context Menu >>> + +; Amount of memory (in bytes) allocated for Stack +; Tailor this value to your application needs +; Stack Configuration +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Stack_Size EQU 0x00000400 + + AREA STACK, NOINIT, READWRITE, ALIGN=3 +Stack_Mem SPACE Stack_Size +__initial_sp + + +; Heap Configuration +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Heap_Size EQU 0x00000000 + + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +Heap_Mem SPACE Heap_Size +__heap_limit + + + PRESERVE8 + THUMB + + +; Vector Table Mapped to Address 0 at Reset + AREA RESET, DATA, READONLY + EXPORT __Vectors + EXPORT __Vectors_End + EXPORT __Vectors_Size + +__Vectors DCD __initial_sp ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD 0 ; 0Reserved + DCD 0 ; 1Reserved + DCD 0 ; 2Reserved + DCD FLASH_IRQHandler ; 3FLASH + DCD RCC_IRQHandler ; 4RCC + DCD EXTI0_1_IRQHandler ; 5EXTI Line 0 and 1 + DCD EXTI2_3_IRQHandler ; 6EXTI Line 2 and 3 + DCD EXTI4_15_IRQHandler ; 7EXTI Line 4 to 15 + DCD 0 ; 8Reserved + DCD 0 ; 9Reserved + DCD 0 ; 10Reserved + DCD 0 ; 11Reserved + DCD ADC_COMP_IRQHandler ; 12ADC&COMP1 + DCD TIM1_BRK_UP_TRG_COM_IRQHandler ; 13TIM1 Break, Update, Trigger and Commutation + DCD TIM1_CC_IRQHandler ; 14TIM1 Capture Compare + DCD 0 ; 15Reserved + DCD 0 ; 16Reserved + DCD LPTIM1_IRQHandler ; 17LPTIM1 + DCD 0 ; 18Reserved + DCD TIM14_IRQHandler ; 19TIM14 + DCD 0 ; 20Reserved + DCD 0 ; 21Reserved + DCD 0 ; 22Reserved + DCD I2C1_IRQHandler ; 23I2C1 + DCD 0 ; 24Reserved + DCD SPI1_IRQHandler ; 25SPI1 + DCD 0 ; 26Reserved + DCD USART1_IRQHandler ; 27USART1 + DCD 0 ; 28Reserved + DCD 0 ; 29Reserved + DCD 0 ; 30Reserved + DCD 0 ; 31Reserved +__Vectors_End + +__Vectors_Size EQU __Vectors_End - __Vectors + + AREA |.text|, CODE, READONLY + + +; Reset Handler + +Reset_Handler PROC + EXPORT Reset_Handler [WEAK] + IMPORT SystemInit + IMPORT __main + LDR R0, =SystemInit + BLX R0 + LDR R0, =__main + BX R0 + ENDP + + +; Dummy Exception Handlers (infinite loops which can be modified) + +NMI_Handler PROC + EXPORT NMI_Handler [WEAK] + B . + ENDP +HardFault_Handler\ + PROC + EXPORT HardFault_Handler [WEAK] + B . + ENDP +SVC_Handler PROC + EXPORT SVC_Handler [WEAK] + B . + ENDP +PendSV_Handler PROC + EXPORT PendSV_Handler [WEAK] + B . + ENDP +SysTick_Handler PROC + EXPORT SysTick_Handler [WEAK] + B . + ENDP + +Default_Handler PROC + + EXPORT FLASH_IRQHandler [WEAK] + EXPORT RCC_IRQHandler [WEAK] + EXPORT EXTI0_1_IRQHandler [WEAK] + EXPORT EXTI2_3_IRQHandler [WEAK] + EXPORT EXTI4_15_IRQHandler [WEAK] + EXPORT ADC_COMP_IRQHandler [WEAK] + EXPORT TIM1_BRK_UP_TRG_COM_IRQHandler [WEAK] + EXPORT TIM1_CC_IRQHandler [WEAK] + EXPORT LPTIM1_IRQHandler [WEAK] + EXPORT TIM14_IRQHandler [WEAK] + EXPORT I2C1_IRQHandler [WEAK] + EXPORT SPI1_IRQHandler [WEAK] + EXPORT USART1_IRQHandler [WEAK] + +FLASH_IRQHandler +RCC_IRQHandler +EXTI0_1_IRQHandler +EXTI2_3_IRQHandler +EXTI4_15_IRQHandler +ADC_COMP_IRQHandler +TIM1_BRK_UP_TRG_COM_IRQHandler +TIM1_CC_IRQHandler +LPTIM1_IRQHandler +TIM14_IRQHandler +I2C1_IRQHandler +SPI1_IRQHandler +USART1_IRQHandler + B . + ENDP + + ALIGN + +; User Initial Stack & Heap + + IF :DEF:__MICROLIB + + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + + ELSE + + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap + +__user_initial_stackheap + + LDR R0, = Heap_Mem + LDR R1, =(Stack_Mem + Stack_Size) + LDR R2, = (Heap_Mem + Heap_Size) + LDR R3, = Stack_Mem + BX LR + + ALIGN + + ENDIF + + END + +;************************ (C) COPYRIGHT Puya *****END OF FILE******************* diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/Src/main.c b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/Src/main.c new file mode 100644 index 0000000..37498a8 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/Src/main.c @@ -0,0 +1,265 @@ +/** + ****************************************************************************** + * @file main.c + * @author MCU Application Team + * @brief Main program body + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 "py32f002bxx_ll_Start_Kit.h" + +/* Private define ------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +uint32_t adc_value; +uint32_t Channel_Value; + +/* Private user code ---------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +static void APP_SystemClockConfig(void); +static void APP_AdcConfig(void); +static void APP_AdcEnable(void); +static void APP_AdcCalibrate(void); + +/** + * @brief Main program. + * @param None + * @retval int + */ +int main(void) +{ + /* Configure Systemclock */ + APP_SystemClockConfig(); + + /* Initialize USART(for printf use) */ + BSP_USART_Config(); + + /* Configure ADC parameters */ + APP_AdcConfig(); + + /* ADC automatic self-calibration */ + APP_AdcCalibrate(); + + /* Enable ADC */ + APP_AdcEnable(); + + /* Start ADC conversion (if it is software triggered then start conversion directly) */ + LL_ADC_REG_StartConversion(ADC1); + while (1) + { + if(LL_ADC_IsActiveFlag_EOS(ADC1)) + { + LL_ADC_ClearFlag_EOS(ADC1); + + /* Get ADC conversion data */ + adc_value = LL_ADC_REG_ReadConversionData12(ADC1); + + /* Convert ADC raw data to voltage value */ + Channel_Value = (adc_value * LL_ADC_VREFBUF_2P5) / 4096; + + /* Printf current Channel Voltage value */ + printf("Channel_Voltage:%u mv\r\n",(unsigned int)Channel_Value); + LL_mDelay(200); + } + } +} + +/** + * @brief Configure ADC parameters + * @param None + * @retval None + */ +static void APP_AdcConfig(void) +{ + __IO uint32_t wait_loop_index = 0; + LL_ADC_InitTypeDef ADC_Init = {0}; + LL_ADC_REG_InitTypeDef LL_ADC_REG_InitType = {0}; + LL_GPIO_InitTypeDef ADCChannelInit = {0}; + + /* Enable ADC clock */ + LL_APB1_GRP2_EnableClock(LL_APB1_GRP2_PERIPH_ADC1); + /* Enabel GPIOA clock */ + LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOA); + + /* Initialize partical features of ADC instance */ + ADC_Init.Clock=LL_ADC_CLOCK_SYNC_PCLK_DIV4; + ADC_Init.DataAlignment=LL_ADC_DATA_ALIGN_RIGHT; + ADC_Init.LowPowerMode=LL_ADC_LP_MODE_NONE; + ADC_Init.Resolution=LL_ADC_RESOLUTION_12B; + LL_ADC_Init(ADC1,&ADC_Init); + /* Sampling time 239.5 ADC clock cycles */ + LL_ADC_SetSamplingTimeCommonChannels(ADC1, LL_ADC_SAMPLINGTIME_239CYCLES_5); + + /* Initialize partical features of ADC instance */ + LL_ADC_REG_InitType.ContinuousMode=LL_ADC_REG_CONV_CONTINUOUS; + LL_ADC_REG_InitType.Overrun=LL_ADC_REG_OVR_DATA_OVERWRITTEN; + LL_ADC_REG_InitType.SequencerDiscont=LL_ADC_REG_SEQ_DISCONT_DISABLE; + LL_ADC_REG_InitType.TriggerSource=LL_ADC_REG_TRIG_SOFTWARE; + LL_ADC_REG_Init(ADC1,&LL_ADC_REG_InitType); + + ADCChannelInit.Pin = LL_GPIO_PIN_7; + ADCChannelInit.Mode = LL_GPIO_MODE_ANALOG; + ADCChannelInit.Pull = LL_GPIO_PULL_NO; + LL_GPIO_Init(GPIOA,&ADCChannelInit); + + /* Set internal channel that connected to VrefInt as conversion channel */ + LL_ADC_REG_SetSequencerChannels(ADC1, LL_ADC_CHANNEL_4); + + /* Enable internal conversion channel */ + LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(ADC1),LL_ADC_PATH_INTERNAL_VREFINT); + + /* Set vrefbuffer voltage to 2.5V */ + LL_ADC_SetVrefBufferVoltage(ADC1,LL_ADC_VREFBUF_2P5V); + + /* Enable Vrefbuffer output */ + LL_ADC_EnableVrefBufferVoltage(ADC1); + + /* Delay for VREFINT stabilization time */ + wait_loop_index = ((LL_ADC_DELAY_VREFINT_STAB_US * (SystemCoreClock / (100000 * 2))) / 10); + while(wait_loop_index != 0) + { + wait_loop_index--; + } +} + +/** + * @brief ADC calibration program. + * @param None + * @retval None + */ +static void APP_AdcCalibrate(void) +{ +#if (USE_TIMEOUT == 1) + uint32_t Timeout = 0; /* Variable used for timeout management */ +#endif /* USE_TIMEOUT */ + + if (LL_ADC_IsEnabled(ADC1) == 0) + { + + /* Enable ADC calibration */ + LL_ADC_StartCalibration(ADC1); + +#if (USE_TIMEOUT == 1) + Timeout = ADC_CALIBRATION_TIMEOUT_MS; +#endif /* USE_TIMEOUT */ + + while (LL_ADC_IsCalibrationOnGoing(ADC1) != 0) + { +#if (USE_TIMEOUT == 1) + /* Detects if the calibration has timed out */ + if (LL_SYSTICK_IsActiveCounterFlag()) + { + if(Timeout-- == 0) + { + + } + } +#endif /* USE_TIMEOUT */ + } + + /* The delay between the end of ADC calibration and ADC enablement is at least 4 ADC clocks */ + LL_mDelay(1); + } +} + +/** + * @brief Enable ADC. + * @param None + * @retval None + */ +static void APP_AdcEnable(void) +{ + /* Enable ADC */ + LL_ADC_Enable(ADC1); + + /* The delay between ADC enablement and ADC stabilization is at least 8 ADC clocks */ + LL_mDelay(1); +} + +/** + * @brief Configure Systemclock + * @param None + * @retval None + */ +static void APP_SystemClockConfig(void) +{ + /* Enable HSI */ + LL_RCC_HSI_Enable(); + while(LL_RCC_HSI_IsReady() != 1) + { + } + + /* Set AHB divider: HCLK = SYSCLK */ + LL_RCC_SetAHBPrescaler(LL_RCC_SYSCLK_DIV_1); + + /* HSISYS used as SYSCLK clock source */ + LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_HSISYS); + while(LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_HSISYS) + { + } + + /* Set APB1 divider */ + LL_RCC_SetAPB1Prescaler(LL_RCC_APB1_DIV_1); + LL_Init1msTick(24000000); + + /* Update CMSIS variable (which can be updated also through SystemCoreClockUpdate function) */ + LL_SetSystemCoreClock(24000000); +} + +/** + * @brief Error handling function + * @param None + * @retval None + */ +void APP_ErrorHandler(void) +{ + /* Infinite loop */ + while (1) + { + } +} + +#ifdef USE_FULL_ASSERT +/** + * @brief Reports the name of the source file and the source line number + * where the assert_param error has occurred. + * @param file:Pointer to the source file name + * @param line:assert_param error line source number + * @retval None + */ +void assert_failed(uint8_t *file, uint32_t line) +{ + /* User can add His own implementation to report the file name and line number, + ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ + /* Infinite loop */ + while (1) + { + } +} +#endif /* USE_FULL_ASSERT */ + +/************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/Src/py32f002b_it.c b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/Src/py32f002b_it.c new file mode 100644 index 0000000..b4c79a1 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/Src/py32f002b_it.c @@ -0,0 +1,92 @@ +/** + ****************************************************************************** + * @file py32f002b_it.c + * @author MCU Application Team + * @brief Interrupt Service Routines. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 "py32f002b_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) +{ +} + +/******************************************************************************/ +/* PY32F002B 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******************/ diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/Src/system_py32f002b.c new file mode 100644 index 0000000..987c778 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/Src/system_py32f002b.c @@ -0,0 +1,170 @@ +/** + ****************************************************************************** + * @file system_py32f002b.c + * @author MCU Application Team + * @Version V1.0.0 + * @Date 2020-10-19 + * @brief CMSIS Cortex-M0+ Device Peripheral Access Layer System Source File. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 + * + ****************************************************************************** + */ + +#include "py32f0xx.h" + +#if !defined (HSE_VALUE) +#define HSE_VALUE 24000000U /*!< Value of the External oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined (HSI_VALUE) +#define HSI_VALUE 24000000U /*!< Value of the Internal oscillator in Hz*/ +#endif /* HSI_VALUE */ + +#if !defined (LSI_VALUE) +#define LSI_VALUE 32768U /*!< Value of LSI in Hz*/ +#endif /* LSI_VALUE */ + +#if !defined (LSE_VALUE) +#define LSE_VALUE 32768U /*!< Value of LSE in Hz*/ +#endif /* LSE_VALUE */ + + +/************************* Miscellaneous Configuration ************************/ +/*!< Uncomment the following line if you need to relocate your vector Table in + Internal SRAM. */ +/* #define FORBID_VECT_TAB_MIGRATION */ +/* #define VECT_TAB_SRAM */ +#define VECT_TAB_OFFSET 0x00 /*!< Vector Table base offset field. + This value must be a multiple of 0x100. */ +/******************************************************************************/ +/*---------------------------------------------------------------------------- + Clock Variable definitions + *----------------------------------------------------------------------------*/ +/* This variable is updated in three ways: + 1) by calling CMSIS function SystemCoreClockUpdate() + 2) by calling HAL API function HAL_RCC_GetHCLKFreq() + 3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency + Note: If you use this function to configure the system clock; then there + is no need to call the 2 first functions listed above, since SystemCoreClock + variable is updated automatically. +*/ +uint32_t SystemCoreClock = HSI_VALUE; + +const uint32_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}; +const uint32_t APBPrescTable[8] = {0, 0, 0, 0, 1, 2, 3, 4}; +#if defined(RCC_HSI48M_SUPPORT) +const uint32_t HSIFreqTable[8] = {4000000U, 8000000U, 0U, 0U, 24000000U, 48000000U, 0U, 0U}; +#else +const uint32_t HSIFreqTable[8] = {4000000U, 8000000U, 0U, 0U, 24000000U, 0U, 0U, 0U}; +#endif + +/* Private function prototypes -----------------------------------------------*/ +#ifndef SWD_DELAY +static void DelayTime(uint32_t mdelay); +#endif /* SWD_DELAY */ + +/** + * @brief Clock functions. + * @param none + * @return none + */ +void SystemCoreClockUpdate(void) /* Get Core Clock Frequency */ +{ + uint32_t tmp; + uint32_t hsidiv; + uint32_t hsifs; + + /* Get SYSCLK source -------------------------------------------------------*/ + switch (RCC->CFGR & RCC_CFGR_SWS) + { + case RCC_CFGR_SWS_0: /* HSE used as system clock */ + SystemCoreClock = HSE_VALUE; + break; + + case (RCC_CFGR_SWS_1 | RCC_CFGR_SWS_0): /* LSI used as system clock */ + SystemCoreClock = LSI_VALUE; + break; +#if defined(RCC_LSE_SUPPORT) + case RCC_CFGR_SWS_2: /* LSE used as system clock */ + SystemCoreClock = LSE_VALUE; + break; +#endif /* RCC_LSE_SUPPORT */ + case 0x00000000U: /* HSI used as system clock */ + default: /* HSI used as system clock */ + hsifs = ((READ_BIT(RCC->ICSCR, RCC_ICSCR_HSI_FS)) >> RCC_ICSCR_HSI_FS_Pos); + hsidiv = (1UL << ((READ_BIT(RCC->CR, RCC_CR_HSIDIV)) >> RCC_CR_HSIDIV_Pos)); + SystemCoreClock = (HSIFreqTable[hsifs] / hsidiv); + break; + } + /* Compute HCLK clock frequency --------------------------------------------*/ + /* Get HCLK prescaler */ + tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos)]; + /* HCLK clock frequency */ + SystemCoreClock >>= tmp; +} + +/** + * @brief Setup the microcontroller system. + * Initialize the System. + * @param none + * @return none + */ +void SystemInit(void) +{ + /*Set the HSI clock to 24MHz by default*/ + RCC->ICSCR = (RCC->ICSCR & 0xFFFF0000) | ((*(uint32_t *)(0x1FFF0100)) & 0xFFFF); + + /*Set the LSI clock to 32.768KHz by default*/ + RCC->ICSCR = (RCC->ICSCR & 0xFE00FFFF) | (((*(uint32_t *)(0x1FFF0144)) & 0x1FF) << RCC_ICSCR_LSI_TRIM_Pos); + + /* Configure the Vector Table location add offset address ------------------*/ +#ifdef VECT_TAB_SRAM + SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */ +#else + SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */ +#endif /* VECT_TAB_SRAM */ + +#ifndef SWD_DELAY + /* When the SWD pin is reused for other functions, this function is used to solve the + problem of not being able to update the code. */ + DelayTime(200); +#endif /* SWD_DELAY */ +} + +#ifndef SWD_DELAY +/** + * @brief This function provides delay (in milliseconds) based on CPU cycles method. + * @param mdelay: specifies the delay time length, in milliseconds. + * @retval None + */ +static void DelayTime(uint32_t mdelay) +{ + __IO uint32_t Delay = mdelay * (24000000U / 8U / 1000U); + do + { + __NOP(); + } + while (Delay --); +} +#endif /* SWD_DELAY */ +/************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/readme.txt b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/readme.txt new file mode 100644 index 0000000..380bfa7 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefbuf2P5_Init/readme.txt @@ -0,0 +1,60 @@ +================================================================================ + 样例使用说明 + Sample Description +================================================================================ +功能描述: +此样例演示了ADC的通道4采样功能和VREFBUF的功能,通过VREFBUF推算出通道4的输入电压。 + +Function descriptions: +This sample demonstrates the channel 4 sampling function of the ADC and the +function of VREFBUF, from which the input voltage of channel 4 is deduced. +================================================================================ +测试环境: +测试用板:PY32F002B_STK +MDK版本: 5.28 +IAR版本: 9.20 +GCC 版本:GNU Arm Embedded Toolchain 10.3-2021.10 + +Test environment: +Test board: PY32F002B_STK +MDK Version: 5.28 +IAR Version: 9.20 +GCC Version: GNU Arm Embedded Toolchain 10.3-2021.10 +================================================================================ +使用步骤: +1. 编译并下载程序; +2. 串口打印出通道4的输入电压值。 + +Example execution steps: +1. Compile and download the program and run it +2. The input voltage value for channel 4 is printed out on the serial port. +================================================================================ +注意事项: +1.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart +STK板 USB转TTL模块 +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART配置为波特率115200,数据位8,停止位1,校验位None +@PrintfConfigEnd +2.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 + +Notes: +1.Connect the PC to the STK board through the USB to TTL module, and the connection +method between the STK board and the USB to TTL module is as follows: +@PrintfConfigStart +STK board USB to TTL module +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 115200, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd +2.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required +================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/EIDE/.eide/eide.json index af19968..98531fa 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -61,9 +59,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -80,14 +78,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -106,6 +107,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -118,10 +127,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/EIDE/Makefile index 1a68d51..280cadc 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/Inc/Config.txt b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/Inc/Config.txt new file mode 100644 index 0000000..7314a75 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/Inc/Config.txt @@ -0,0 +1,10 @@ +[FilePath] +0=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_utils.c +[FileName] +0=py32f002b_ll_utils.c +[Define] +0=PY32F002Bx5 +1=USE_FULL_LL_DRIVER +[User] +0=../Src/main.c +1=../Src/py32f002b_it.c diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/MDK-ARM/Project.uvoptx index b42dfdd..485af21 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/MDK-ARM/Project.uvprojx index 5e61fb4..c13dee8 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/readme.txt b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/readme.txt index 0037444..ddd3962 100644 --- a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_VrefbufManualOffsetCalibration/readme.txt @@ -33,26 +33,36 @@ Example execution steps: 2. USART printf conversation data of the channel 4(PA7) once per 1s ================================================================================ 注意事项: -该样例的PA3(ADC通道1)为推挽输出,如果实际使用中需要用到该通道,需修改为别的通道 +1.该样例的PA3(ADC通道1)为推挽输出,如果实际使用中需要用到该通道,需修改为别的通道 进行校准操作。 - - -通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +2.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart STK板 USB转TTL模块 PB4(TX) --> RX PB5(RX) --> TX GND --> GND +UART配置为波特率115200,数据位8,停止位1,校验位None +@PrintfConfigEnd +3.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: -The PA3 (ADC channel 1) of this example is a push-pull output. If this channel +1.The PA3 (ADC channel 1) of this example is a push-pull output. If this channel is needed in actual use, it needs to be modified to a different channel Perform calibration operations. - - -Connect the PC to the STK board through the USB to TTL module, the connection -between the STK board and the USB to TTL module is as follows: -STK board USB to TTL module -PB4(TX) --> RX -PB5(RX) --> TX -GND --> GND +2.Connect the PC to the STK board through the USB to TTL module, and the connection +method between the STK board and the USB to TTL module is as follows: +@PrintfConfigStart +STK board USB to TTL module +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 115200, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd +3.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/.clang-format b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/.clang-format new file mode 100644 index 0000000..ecc57c4 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/.clang-format @@ -0,0 +1,38 @@ +--- +BasedOnStyle: Microsoft +Language: Cpp + +################################### +# indent conf +################################### + +UseTab: Never +IndentWidth: 4 +TabWidth: 4 +ColumnLimit: 0 +AccessModifierOffset: -4 +NamespaceIndentation: All +FixNamespaceComments: false +BreakBeforeBraces: Linux + +################################### +# other styles +################################### + +# +# for more conf, you can ref: https://clang.llvm.org/docs/ClangFormatStyleOptions.html +# + +AllowShortIfStatementsOnASingleLine: true + +AllowShortLoopsOnASingleLine: true + +AllowShortBlocksOnASingleLine: true + +IndentCaseLabels: true + +SortIncludes: false + +AlignConsecutiveMacros: AcrossEmptyLines + +AlignConsecutiveAssignments: Consecutive diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/.eide/eide.json new file mode 100644 index 0000000..f1224bd --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/.eide/eide.json @@ -0,0 +1,173 @@ +{ + "name": "Project", + "type": "ARM", + "dependenceList": [], + "srcDirs": [], + "virtualFolder": { + "name": "", + "files": [], + "folders": [ + { + "name": "BSP", + "files": [ + { + "path": "../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit/py32f002bxx_ll_Start_Kit.c" + } + ], + "folders": [] + }, + { + "name": "Common", + "files": [ + { + "path": "../Src/system_py32f002b.c" + }, + { + "path": "startup_py32f002bxx.s" + } + ], + "folders": [] + }, + { + "name": "Doc", + "files": [ + { + "path": "../readme.txt" + } + ], + "folders": [] + }, + { + "name": "PY32F002B_HAL_Driver", + "files":[ + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_utils.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_adc.c" + }, + { + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_tim.c" + } + ], + "folders": [] + }, + { + "name": "User", + "files":[ + { + "path":"../Src/main.c" + }, + { + "path":"../Src/py32f002b_it.c" + } + ], + "folders": [] + } + ] + }, + "outDir": ".", + "deviceName": "PY32F002Bx5", + "packDir": null, + "miscInfo": { + "uid": "36bcf0031e18a3008bbdaa90a96a7987" + }, + "targets": { + "Project": { + "excludeList": [], + "toolchain": "GCC", + "compileConfig": { + "cpuType": "Cortex-M0+", + "floatingPointHardware": "none", + "scatterFilePath": "py32f002bx5.ld", + "useCustomScatterFile": true, + "storageLayout": { + "RAM": [], + "ROM": [] + }, + "options": "null", + "archExtensions": "" + }, + "uploader": "pyOCD", + "uploadConfig": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" + }, + "uploadConfigMap": { + "JLink": { + "bin": "", + "baseAddr": "", + "cpuInfo": { + "vendor": "Puya", + "cpuName": "PY32F002Bx5" + }, + "proType": 1, + "speed": 1000, + "otherCmds": "" + }, + "OpenOCD": { + "bin": "", + "target": "py32f002b", + "interface": "cmsis-dap", + "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" + } + }, + "custom_dep": { + "name": "default", + "incList": [ + "../Inc", + "../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit", + "../../../../../../Drivers/CMSIS/Include", + "../../../../../../Drivers/CMSIS/Device/PY32F0xx/Include", + "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" + ], + "libList": [], + "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } + } + } + }, + "version": "3.6" +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/.gitignore new file mode 100644 index 0000000..8519ec6 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/.gitignore @@ -0,0 +1,15 @@ +# dot files +# /.vscode/launch.json +/.settings +/.eide/log +/.eide.usr.ctx.json + +# project out +/build +/bin +/obj +/out + +# eide template +*.ept +*.eide-template diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/.vscode/settings.json b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/.vscode/settings.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/.vscode/settings.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/.vscode/tasks.json new file mode 100644 index 0000000..854f87f --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/.vscode/tasks.json @@ -0,0 +1,72 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "type": "shell", + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" + }, + { + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" + }, + { + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/Makefile new file mode 100644 index 0000000..8e2d450 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/Makefile @@ -0,0 +1,178 @@ +########################################################################################################################## +# File automatically-generated by tool: [projectgenerator] version: [3.17.1] date: [Tue Dec 06 16:10:07 CST 2022] +########################################################################################################################## + +# ------------------------------------------------ +# Generic Makefile (based on gcc) +# +# ChangeLog : +# 2017-02-10 - Several enhancements + project update mode +# 2015-07-22 - first version +# ------------------------------------------------ + +###################################### +# target +###################################### +TARGET = Project + + +###################################### +# building variables +###################################### +# debug build? +DEBUG = 1 +# optimization +OPT = -Og + + +####################################### +# paths +####################################### +# Build path +BUILD_DIR = Project + +###################################### +# source +###################################### +# C sources +C_SOURCES = \ ../Src/main.c \ +../Src/py32f002b_it.c \ +../Src/system_py32f002b.c \ +../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit/py32f002bxx_ll_Start_Kit.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_utils.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_adc.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_tim.c + + +# ASM sources +ASM_SOURCES = \ +startup_py32f002bxx.s + + +####################################### +# binaries +####################################### +PREFIX = arm-none-eabi- +# The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx) +# either it can be added to the PATH environment variable. +ifdef GCC_PATH +CC = $(GCC_PATH)/$(PREFIX)gcc +AS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp +CP = $(GCC_PATH)/$(PREFIX)objcopy +SZ = $(GCC_PATH)/$(PREFIX)size +else +CC = $(PREFIX)gcc +AS = $(PREFIX)gcc -x assembler-with-cpp +CP = $(PREFIX)objcopy +SZ = $(PREFIX)size +endif +HEX = $(CP) -O ihex +BIN = $(CP) -O binary -S + +####################################### +# CFLAGS +####################################### +# cpu +CPU = -mcpu=cortex-m0plus + +# fpu +# NONE for Cortex-M0/M0+/M3 + +# float-abi + + +# mcu +MCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI) + +# macros for gcc +# AS defines +AS_DEFS = + +# C defines +C_DEFS = \ +-DPY32F002Bx5\ +-DUSE_FULL_LL_DRIVER + + +# AS includes +AS_INCLUDES = + +# C includes +C_INCLUDES = \ +-I../Inc \ +-I../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit \ +-I../../../../../../Drivers/PY32F002B_HAL_Driver/Inc \ +-I../../../../../../Drivers/CMSIS/Device/PY32F0xx/Include \ +-I../../../../../../Drivers/CMSIS/Include + + +# compile gcc flags +ASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections + +CFLAGS += $(MCU) $(C_DEFS) $(C_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections + +ifeq ($(DEBUG), 1) +CFLAGS += -g -gdwarf-2 +endif + + +# Generate dependency information +CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)" + + +####################################### +# LDFLAGS +####################################### +# link script +LDSCRIPT = py32f002bx5.ld + +# libraries +LIBS = -lc -lm -lnosys +LIBDIR = +LDFLAGS = $(MCU) -specs=nano.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections + +# default action: build all +all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin + + +####################################### +# build the application +####################################### +# list of objects +OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o))) +vpath %.c $(sort $(dir $(C_SOURCES))) +# list of ASM program objects +OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o))) +vpath %.s $(sort $(dir $(ASM_SOURCES))) + +$(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR) + $(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@ + +$(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR) + $(AS) -c $(CFLAGS) $< -o $@ + +$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile + $(CC) $(OBJECTS) $(LDFLAGS) -o $@ + $(SZ) $@ + +$(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf | $(BUILD_DIR) + $(HEX) $< $@ + +$(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR) + $(BIN) $< $@ + +$(BUILD_DIR): + mkdir $@ + +####################################### +# clean up +####################################### +clean: + -rm -fR $(BUILD_DIR) + +####################################### +# dependencies +####################################### +-include $(wildcard $(BUILD_DIR)/*.d) + +# *** EOF *** \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/Project.code-workspace b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/Project.code-workspace new file mode 100644 index 0000000..f200f34 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/Project.code-workspace @@ -0,0 +1,44 @@ +{ + "folders": [ + { + "path": "." + } + ], + "settings": { + "files.autoGuessEncoding": true, + "C_Cpp.default.configurationProvider": "cl.eide", + "C_Cpp.errorSquiggles": "disabled", + "files.associations": { + ".eideignore": "ignore", + "*.a51": "a51", + "*.h": "c", + "*.c": "c", + "*.hxx": "cpp", + "*.hpp": "cpp", + "*.c++": "cpp", + "*.cpp": "cpp", + "*.cxx": "cpp", + "*.cc": "cpp" + }, + "[yaml]": { + "editor.insertSpaces": true, + "editor.tabSize": 4, + "editor.autoIndent": "advanced" + } + }, + "extensions": { + "recommendations": [ + "cl.eide", + "keroc.hex-fmt", + "xiaoyongdong.srecord", + "hars.cppsnippets", + "zixuanwang.linkerscript", + "redhat.vscode-yaml", + "IBM.output-colorizer", + "cschlosser.doxdocgen", + "ms-vscode.vscode-serial-monitor", + "dan-c-underwood.arm", + "marus25.cortex-debug" + ] + } +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/py32f002bx5.ld b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/py32f002bx5.ld new file mode 100644 index 0000000..0b99c54 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/py32f002bx5.ld @@ -0,0 +1,189 @@ +/* +****************************************************************************** +** + +** File : LinkerScript.ld +** +** Author : Puya_HC +** +** Abstract : Linker script for PY32F002Bx5 series +** 24Kbytes FLASH and 3Kbytes RAM +** +** Set heap size, stack size and stack location according +** to application requirements. +** +** Set memory bank area and size if external memory is used. +** +** Target : Puya PY32 +** +** Distribution: The file is distributed “as is,” without any warranty +** of any kind. +** +***************************************************************************** +** @attention +** +**

© COPYRIGHT(c) 2019 Puya Semiconductor

+** +** Redistribution and use in source and binary forms, with or without modification, +** are permitted provided that the following conditions are met: +** 1. Redistributions of source code must retain the above copyright notice, +** this list of conditions and the following disclaimer. +** 2. Redistributions in binary form must reproduce the above copyright notice, +** this list of conditions and the following disclaimer in the documentation +** and/or other materials provided with the distribution. +** 3. Neither the name of Puya Semiconductor nor the names of its contributors +** may be used to endorse or promote products derived from this software +** without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +** +***************************************************************************** +*/ + +/* Entry Point */ +ENTRY(Reset_Handler) + +/* Highest address of the user mode stack */ +_estack = ORIGIN(RAM) + LENGTH(RAM); /* end of RAM */ +/* Generate a link error if heap and stack don't fit into RAM */ +_Min_Heap_Size = 0x000; /* required amount of heap */ +_Min_Stack_Size = 0x400; /* required amount of stack */ + +/* Specify the memory areas */ +MEMORY +{ +RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 3K +FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 24K +} + +/* Define output sections */ +SECTIONS +{ + /* The startup code goes first into FLASH */ + .isr_vector : + { + . = ALIGN(4); + KEEP(*(.isr_vector)) /* Startup code */ + . = ALIGN(4); + } >FLASH + + /* The program code and other data goes into FLASH */ + .text : + { + . = ALIGN(4); + *(.text) /* .text sections (code) */ + *(.text*) /* .text* sections (code) */ + *(.glue_7) /* glue arm to thumb code */ + *(.glue_7t) /* glue thumb to arm code */ + *(.eh_frame) + + KEEP (*(.init)) + KEEP (*(.fini)) + + . = ALIGN(4); + _etext = .; /* define a global symbols at end of code */ + } >FLASH + + /* Constant data goes into FLASH */ + .rodata : + { + . = ALIGN(4); + *(.rodata) /* .rodata sections (constants, strings, etc.) */ + *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ + . = ALIGN(4); + } >FLASH + + .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH + .ARM : { + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + } >FLASH + + .preinit_array : + { + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array*)) + PROVIDE_HIDDEN (__preinit_array_end = .); + } >FLASH + .init_array : + { + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array*)) + PROVIDE_HIDDEN (__init_array_end = .); + } >FLASH + .fini_array : + { + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(SORT(.fini_array.*))) + KEEP (*(.fini_array*)) + PROVIDE_HIDDEN (__fini_array_end = .); + } >FLASH + + /* used by the startup to initialize data */ + _sidata = LOADADDR(.data); + + /* Initialized data sections goes into RAM, load LMA copy after code */ + .data : + { + . = ALIGN(4); + _sdata = .; /* create a global symbol at data start */ + *(.data) /* .data sections */ + *(.data*) /* .data* sections */ + + . = ALIGN(4); + _edata = .; /* define a global symbol at data end */ + } >RAM AT> FLASH + + + /* Uninitialized data section */ + . = ALIGN(4); + .bss : + { + /* This is used by the startup in order to initialize the .bss secion */ + _sbss = .; /* define a global symbol at bss start */ + __bss_start__ = _sbss; + *(.bss) + *(.bss*) + *(COMMON) + + . = ALIGN(4); + _ebss = .; /* define a global symbol at bss end */ + __bss_end__ = _ebss; + } >RAM + + /* User_heap_stack section, used to check that there is enough RAM left */ + ._user_heap_stack : + { + . = ALIGN(8); + PROVIDE ( end = . ); + PROVIDE ( _end = . ); + . = . + _Min_Heap_Size; + . = . + _Min_Stack_Size; + . = ALIGN(8); + } >RAM + + + + /* Remove information from the standard libraries */ + /DISCARD/ : + { + libc.a ( * ) + libm.a ( * ) + libgcc.a ( * ) + } + + .ARM.attributes 0 : { *(.ARM.attributes) } +} + + diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/startup_py32f002bxx.s b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/startup_py32f002bxx.s new file mode 100644 index 0000000..44eda49 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EIDE/startup_py32f002bxx.s @@ -0,0 +1,254 @@ +/** + ****************************************************************************** + * @file startup_py32f002bxx.s + * @author MCD Application Team + * @brief PY32F002Bxx devices vector table GCC toolchain. + * This module performs: + * - Set the initial SP + * - Set the initial PC == Reset_Handler, + * - Set the vector table entries with the exceptions ISR address + * - Branches to main in the C library (which eventually + * calls main()). + * After Reset the Cortex-M0+ processor is in Thread mode, + * priority is Privileged, and the Stack is set to Main. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 + * + ****************************************************************************** + */ + +.syntax unified +.cpu cortex-m0plus +.fpu softvfp +.thumb + +.global g_pfnVectors +.global Default_Handler + +/* start address for the initialization values of the .data section. +defined in linker script */ +.word _sidata +/* start address for the .data section. defined in linker script */ +.word _sdata +/* end address for the .data section. defined in linker script */ +.word _edata +/* start address for the .bss section. defined in linker script */ +.word _sbss +/* end address for the .bss section. defined in linker script */ +.word _ebss + +/** + * @brief This is the code that gets called when the processor first + * starts execution following a reset event. Only the absolutely + * necessary set is performed, after which the application + * supplied main() routine is called. + * @param None + * @retval None +*/ + + .section .text.Reset_Handler + .weak Reset_Handler + .type Reset_Handler, %function +Reset_Handler: + ldr r0, =_estack + mov sp, r0 /* set stack pointer */ + +/* Call the clock system initialization function.*/ + bl SystemInit + +/* Copy the data segment initializers from flash to SRAM */ + ldr r0, =_sdata + ldr r1, =_edata + ldr r2, =_sidata + movs r3, #0 + b LoopCopyDataInit + +CopyDataInit: + ldr r4, [r2, r3] + str r4, [r0, r3] + adds r3, r3, #4 + +LoopCopyDataInit: + adds r4, r0, r3 + cmp r4, r1 + bcc CopyDataInit + +/* Zero fill the bss segment. */ + ldr r2, =_sbss + ldr r4, =_ebss + movs r3, #0 + b LoopFillZerobss + +FillZerobss: + str r3, [r2] + adds r2, r2, #4 + +LoopFillZerobss: + cmp r2, r4 + bcc FillZerobss + +/* Call static constructors */ + bl __libc_init_array +/* Call the application s entry point.*/ + bl main + +LoopForever: + b LoopForever + +.size Reset_Handler, .-Reset_Handler + +/** + * @brief This is the code that gets called when the processor receives an + * unexpected interrupt. This simply enters an infinite loop, preserving + * the system state for examination by a debugger. + * + * @param None + * @retval None +*/ + .section .text.Default_Handler,"ax",%progbits +Default_Handler: +Infinite_Loop: + b Infinite_Loop + .size Default_Handler, .-Default_Handler + +/****************************************************************************** +* +* The minimal vector table for a Cortex M0. Note that the proper constructs +* must be placed on this to ensure that it ends up at physical address +* 0x0000.0000. +* +******************************************************************************/ + .section .isr_vector,"a",%progbits + .type g_pfnVectors, %object + .size g_pfnVectors, .-g_pfnVectors + +g_pfnVectors: + .word _estack + .word Reset_Handler + .word NMI_Handler + .word HardFault_Handler + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word SVC_Handler + .word 0 + .word 0 + .word PendSV_Handler + .word SysTick_Handler + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word FLASH_IRQHandler /* FLASH */ + .word RCC_IRQHandler /* RCC */ + .word EXTI0_1_IRQHandler /* EXTI Line 0 and 1 */ + .word EXTI2_3_IRQHandler /* EXTI Line 2 and 3 */ + .word EXTI4_15_IRQHandler /* EXTI Line 4 to 15 */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word ADC_COMP_IRQHandler /* ADC and COMP1 */ + .word TIM1_BRK_UP_TRG_COM_IRQHandler /* TIM1 Break, Update, Trigger and Commutation */ + .word TIM1_CC_IRQHandler /* TIM1 Capture Compare */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word LPTIM1_IRQHandler /* LPTIM1 */ + .word 0 /* reserved */ + .word TIM14_IRQHandler /* TIM14 */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word I2C1_IRQHandler /* I2C1 */ + .word 0 /* reserved */ + .word SPI1_IRQHandler /* SPI1 */ + .word 0 /* reserved */ + .word USART1_IRQHandler /* USART1 */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + .word 0 /* reserved */ + +/******************************************************************************* +* +* Provide weak aliases for each Exception handler to the Default_Handler. +* As they are weak aliases, any function with the same name will override +* this definition. +* +*******************************************************************************/ + + .weak NMI_Handler + .thumb_set NMI_Handler,Default_Handler + + .weak HardFault_Handler + .thumb_set HardFault_Handler,Default_Handler + + .weak SVC_Handler + .thumb_set SVC_Handler,Default_Handler + + .weak PendSV_Handler + .thumb_set PendSV_Handler,Default_Handler + + .weak SysTick_Handler + .thumb_set SysTick_Handler,Default_Handler + + .weak FLASH_IRQHandler + .thumb_set FLASH_IRQHandler,Default_Handler + + .weak RCC_IRQHandler + .thumb_set RCC_IRQHandler,Default_Handler + + .weak EXTI0_1_IRQHandler + .thumb_set EXTI0_1_IRQHandler,Default_Handler + + .weak EXTI2_3_IRQHandler + .thumb_set EXTI2_3_IRQHandler,Default_Handler + + .weak EXTI4_15_IRQHandler + .thumb_set EXTI4_15_IRQHandler,Default_Handler + + .weak ADC_COMP_IRQHandler + .thumb_set ADC_COMP_IRQHandler,Default_Handler + + .weak TIM1_BRK_UP_TRG_COM_IRQHandler + .thumb_set TIM1_BRK_UP_TRG_COM_IRQHandler,Default_Handler + + .weak TIM1_CC_IRQHandler + .thumb_set TIM1_CC_IRQHandler,Default_Handler + + .weak LPTIM1_IRQHandler + .thumb_set LPTIM1_IRQHandler,Default_Handler + + .weak TIM14_IRQHandler + .thumb_set TIM14_IRQHandler,Default_Handler + + .weak I2C1_IRQHandler + .thumb_set I2C1_IRQHandler,Default_Handler + + .weak SPI1_IRQHandler + .thumb_set SPI1_IRQHandler,Default_Handler + + .weak USART1_IRQHandler + .thumb_set USART1_IRQHandler,Default_Handler diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EWARM/Project.ewd b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EWARM/Project.ewd new file mode 100644 index 0000000..4b12306 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EWARM/Project.ewd @@ -0,0 +1,1534 @@ + + + 3 + + Project + + ARM + + 1 + + C-SPY + 2 + + 32 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + CADI_ID + 2 + + 0 + 1 + 1 + + + + + + + + + CMSISDAP_ID + 2 + + 4 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IJET_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JLINK_ID + 2 + + 16 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 3 + 1 + 1 + + + + + + + + + + + + + NULINK_ID + 2 + + 0 + 1 + 1 + + + + + + + PEMICRO_ID + 2 + + 3 + 1 + 1 + + + + + + + + STLINK_ID + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + TIFET_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + + + XDS100_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9BE.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EWARM/Project.ewp b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EWARM/Project.ewp new file mode 100644 index 0000000..02e3650 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EWARM/Project.ewp @@ -0,0 +1,1114 @@ + + + 3 + + Project + + ARM + + 1 + + General + 3 + + 34 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 37 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 11 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + 1 + inputOutputBased + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 26 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + + Doc + + $PROJ_DIR$\..\readme.txt + + + + Drivers + + BSP + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\PY32F002Bxx_Start_Kit\py32f002bxx_ll_Start_Kit.c + + + + CMSIS + + $PROJ_DIR$\..\Src\system_py32f002b.c + + + + PY32F002B_HAL_Driver + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_ll_utils.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_ll_adc.c + + + $PROJ_DIR$\..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_ll_tim.c + + + + + Example + + EWARM + + $PROJ_DIR$\startup_py32f002bxx.s + + + + User + + $PROJ_DIR$\..\Src\main.c + + + $PROJ_DIR$\..\Src\py32f002b_it.c + + + + diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EWARM/Project.eww b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EWARM/Project.eww new file mode 100644 index 0000000..46d9d41 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EWARM/Project.eww @@ -0,0 +1,7 @@ + + + + $WS_DIR$\Project.ewp + + + diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EWARM/py32f002bx5_flash.icf b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EWARM/py32f002bx5_flash.icf new file mode 100644 index 0000000..6146162 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EWARM/py32f002bx5_flash.icf @@ -0,0 +1,33 @@ +/*###ICF### Section handled by ICF editor, don't touch! ****/ +/*-Editor annotation file-*/ +/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ +/*-Specials-*/ +define symbol __ICFEDIT_intvec_start__ = 0x08000000; +/*-Memory Regions-*/ +define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; +define symbol __ICFEDIT_region_ROM_end__ = 0x08005FFF; +define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; +define symbol __ICFEDIT_region_RAM_end__ = 0x20000BFF; +/*-Sizes-*/ +define symbol __ICFEDIT_size_cstack__ = 0x00000400; +define symbol __ICFEDIT_size_heap__ = 0x00000000; +/**** End of ICF editor section. ###ICF###*/ + +define memory mem with size = 4G; +define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; +define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; + +define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; +define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; + +initialize by copy { readwrite }; +do not initialize { section .noinit }; + +place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; + +place in ROM_region { readonly }; +place in RAM_region { readwrite, + block CSTACK, block HEAP }; + +export symbol __ICFEDIT_region_RAM_start__; +export symbol __ICFEDIT_region_RAM_end__; \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EWARM/startup_py32f002bxx.s b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EWARM/startup_py32f002bxx.s new file mode 100644 index 0000000..98df065 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/EWARM/startup_py32f002bxx.s @@ -0,0 +1,222 @@ +;****************************************************************************** +;* @file startup_py32f002bxx.s +;* @author MCU Application Team +;* @brief PY32F002Bxx devices vector table for EWARM toolchain. +;* This module performs: +;* - Set the initial SP +;* - Set the initial PC == __iar_program_start +;* - Set the vector table entries with the exceptions ISR address +;* - Branches to __main in the C library (which eventually +;* calls main()). +;* After Reset the CortexM0+ processor is in Thread mode, +;* priority is Privileged, and the Stack is set to Main. +;****************************************************************************** +;* @attention +;* +;*

© Copyright (c) 2023 Puya Semiconductor Co. +;* All rights reserved.

+;* +;* This software component is licensed by Puya 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 +;* +;****************************************************************************** +;* @attention +;* +;*

© Copyright (c) 2016 STMicroelectronics. +;* All rights reserved.

+;* +;* 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 +;* +;****************************************************************************** +; +; The modules in this file are included in the libraries, and may be replaced +; by any user-defined modules that define the PUBLIC symbol _program_start or +; a user defined start symbol. +; To override the cstartup defined in the library, simply add your modified +; version to the workbench project. +; +; The vector table is normally located at address 0. +; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. +; The name "__vector_table" has special meaning for C-SPY: +; it is where the SP start value is found, and the NVIC vector +; table register (VTOR) is initialized to this address if != 0. +; +; Cortex-M version +; + + MODULE ?cstartup + + ;; Forward declaration of sections. + SECTION CSTACK:DATA:NOROOT(3) + + SECTION .intvec:CODE:NOROOT(2) + + EXTERN __iar_program_start + EXTERN SystemInit + PUBLIC __vector_table + + DATA +__vector_table + DCD sfe(CSTACK) ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD 0 ; 0Reserved + DCD 0 ; 1Reserved + DCD 0 ; 2Reserved + DCD FLASH_IRQHandler ; 3FLASH + DCD RCC_IRQHandler ; 4RCC + DCD EXTI0_1_IRQHandler ; 5EXTI Line 0 and 1 + DCD EXTI2_3_IRQHandler ; 6EXTI Line 2 and 3 + DCD EXTI4_15_IRQHandler ; 7EXTI Line 4 to 15 + DCD 0 ; 8Reserved + DCD 0 ; 9Reserved + DCD 0 ; 10Reserved + DCD 0 ; 11Reserved + DCD ADC_COMP_IRQHandler ; 12ADC&COMP1 + DCD TIM1_BRK_UP_TRG_COM_IRQHandler ; 13TIM1 Break, Update, Trigger and Commutation + DCD TIM1_CC_IRQHandler ; 14TIM1 Capture Compare + DCD 0 ; 15Reserved + DCD 0 ; 16Reserved + DCD LPTIM1_IRQHandler ; 17LPTIM1 + DCD 0 ; 18Reserved + DCD TIM14_IRQHandler ; 19TIM14 + DCD 0 ; 20Reserved + DCD 0 ; 21Reserved + DCD 0 ; 22Reserved + DCD I2C1_IRQHandler ; 23I2C1 + DCD 0 ; 24Reserved + DCD SPI1_IRQHandler ; 25SPI1 + DCD 0 ; 26Reserved + DCD USART1_IRQHandler ; 27USART1 + DCD 0 ; 28Reserved + DCD 0 ; 29Reserved + DCD 0 ; 30Reserved + DCD 0 ; 31Reserved + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; Default interrupt handlers. +;; + THUMB + + PUBWEAK Reset_Handler + SECTION .text:CODE:REORDER:NOROOT(2) +Reset_Handler + LDR R0, =SystemInit + BLX R0 + LDR R0, =__iar_program_start + BX R0 + + PUBWEAK NMI_Handler + SECTION .text:CODE:REORDER:NOROOT(1) +NMI_Handler + B NMI_Handler + + PUBWEAK HardFault_Handler + SECTION .text:CODE:REORDER:NOROOT(1) +HardFault_Handler + B HardFault_Handler + + PUBWEAK SVC_Handler + SECTION .text:CODE:REORDER:NOROOT(1) +SVC_Handler + B SVC_Handler + + PUBWEAK PendSV_Handler + SECTION .text:CODE:REORDER:NOROOT(1) +PendSV_Handler + B PendSV_Handler + + PUBWEAK SysTick_Handler + SECTION .text:CODE:REORDER:NOROOT(1) +SysTick_Handler + B SysTick_Handler + + PUBWEAK FLASH_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +FLASH_IRQHandler + B FLASH_IRQHandler + + PUBWEAK RCC_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +RCC_IRQHandler + B RCC_IRQHandler + + PUBWEAK EXTI0_1_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +EXTI0_1_IRQHandler + B EXTI0_1_IRQHandler + + PUBWEAK EXTI2_3_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +EXTI2_3_IRQHandler + B EXTI2_3_IRQHandler + + PUBWEAK EXTI4_15_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +EXTI4_15_IRQHandler + B EXTI4_15_IRQHandler + + PUBWEAK ADC_COMP_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +ADC_COMP_IRQHandler + B ADC_COMP_IRQHandler + + PUBWEAK TIM1_BRK_UP_TRG_COM_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +TIM1_BRK_UP_TRG_COM_IRQHandler + B TIM1_BRK_UP_TRG_COM_IRQHandler + + PUBWEAK TIM1_CC_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +TIM1_CC_IRQHandler + B TIM1_CC_IRQHandler + + PUBWEAK LPTIM1_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +LPTIM1_IRQHandler + B LPTIM1_IRQHandler + + PUBWEAK TIM14_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +TIM14_IRQHandler + B TIM14_IRQHandler + + PUBWEAK I2C1_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +I2C1_IRQHandler + B I2C1_IRQHandler + + PUBWEAK SPI1_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +SPI1_IRQHandler + B SPI1_IRQHandler + + PUBWEAK USART1_IRQHandler + SECTION .text:CODE:REORDER:NOROOT(1) +USART1_IRQHandler + B USART1_IRQHandler + + END + +;************************ (C) COPYRIGHT Puya *****END OF FILE******************* diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/Inc/Config.txt b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/Inc/Config.txt new file mode 100644 index 0000000..ebea77e --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/Inc/Config.txt @@ -0,0 +1,14 @@ +[FilePath] +0=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_utils.c +1=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_adc.c +2=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_tim.c +[FileName] +0=py32f002b_ll_utils.c +1=py32f002b_ll_adc.c +2=py32f002b_ll_tim.c +[Define] +0=PY32F002Bx5 +1=USE_FULL_LL_DRIVER +[User] +0=../Src/main.c +1=../Src/py32f002b_it.c diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/Inc/main.h b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/Inc/main.h new file mode 100644 index 0000000..6c15152 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/Inc/main.h @@ -0,0 +1,68 @@ +/** + ****************************************************************************** + * @file main.h + * @author MCU Application Team + * @brief Header for main.c file. + * This file contains the common defines of the application. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 "py32f002b_ll_rcc.h" +#include "py32f002b_ll_bus.h" +#include "py32f002b_ll_system.h" +#include "py32f002b_ll_cortex.h" +#include "py32f002b_ll_utils.h" +#include "py32f002b_ll_pwr.h" +#include "py32f002b_ll_gpio.h" +#include "py32f002b_ll_adc.h" +#include "py32f002b_ll_tim.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); +void APP_AdcGrpRegularUnitaryConvCompleteCallback(void); + +#ifdef __cplusplus +} +#endif + +#endif /* __MAIN_H */ + +/************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/Inc/py32_assert.h b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/Inc/py32_assert.h new file mode 100644 index 0000000..25669a5 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/Inc/py32_assert.h @@ -0,0 +1,67 @@ +/** + ****************************************************************************** + * @file py32_assert.h + * @brief PY32 assert file. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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******************/ diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/Inc/py32f002b_it.h b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/Inc/py32f002b_it.h new file mode 100644 index 0000000..9581db1 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/Inc/py32f002b_it.h @@ -0,0 +1,57 @@ +/** + ****************************************************************************** + * @file py32f002b_it.h + * @author MCU Application Team + * @brief This file contains the headers of the interrupt handlers. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 __PY32F002B_IT_H +#define __PY32F002B_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 /* __PY32F002B_IT_H */ + +/************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/MDK-ARM/Project.uvoptx new file mode 100644 index 0000000..259c647 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/MDK-ARM/Project.uvoptx @@ -0,0 +1,377 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + Project + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\Listings\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 3 + + + + + + + + + + + BIN\CMSIS_AGDI.dll + + + + 0 + CMSIS_AGDI + -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) + + + 0 + ARMRTXEVENTFLAGS + -L70 -Z18 -C0 -M0 -T1 + + + 0 + DLGTARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + + + + 0 + DLGUARM + + + + + + + 0 + 1 + uhADCxConvertedData_Voltage_mVolt + + + + + 1 + 1 + 0x40012428 + 0 + + + + 0 + + + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + + System Viewer\ADC + 35905 + + + System Viewer\TIM1 + 35904 + + + + 1 + 1 + 0 + 2 + 1000000 + + + + + + Common + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + ..\Src\system_py32f002b.c + system_py32f002b.c + 0 + 0 + + + 1 + 2 + 2 + 0 + 0 + 0 + .\startup_py32f002bxx.s + startup_py32f002bxx.s + 0 + 0 + + + + + Application/User + 1 + 0 + 0 + 0 + + 2 + 3 + 1 + 0 + 0 + 0 + ..\Src\main.c + main.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + ..\Src\py32f002b_it.c + py32f002b_it.c + 0 + 0 + + + + + BSP/py32f002bxx_Start_Kit + 1 + 0 + 0 + 0 + + 3 + 5 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\BSP\PY32F002Bxx_Start_Kit\py32f002bxx_ll_Start_Kit.c + py32f002bxx_ll_Start_Kit.c + 0 + 0 + + + + + Drivers/PY32F002B_HAL_Driver + 1 + 0 + 0 + 0 + + 4 + 6 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_ll_utils.c + py32f002b_ll_utils.c + 0 + 0 + + + 4 + 7 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_ll_adc.c + py32f002b_ll_adc.c + 0 + 0 + + + 4 + 8 + 1 + 0 + 0 + 0 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_ll_tim.c + py32f002b_ll_tim.c + 0 + 0 + + + + + Doc + 1 + 0 + 0 + 0 + + 5 + 9 + 5 + 0 + 0 + 0 + ..\readme.txt + readme.txt + 0 + 0 + + + +
diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/MDK-ARM/Project.uvprojx new file mode 100644 index 0000000..a79b90d --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/MDK-ARM/Project.uvprojx @@ -0,0 +1,462 @@ + + + + 2.1 + +
### uVision Project, (C) Keil Software
+ + + + Project + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + 0 + + + PY32F002Bx5 + Puya + Puya.PY32F0xx_DFP.1.2.2 + https://www.puyasemi.com/uploadfiles/ + IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) + 0 + $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h + + + + + + + + + + $$Device:PY32F002Bx5$CMSIS\SVD\PY32F002Bxx.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + Project + 1 + 0 + 1 + 1 + 1 + .\Listings\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -REMAP + DARMCM1.DLL + -pCM0+ + SARMCM3.DLL + + TARMCM1.DLL + -pCM0+ + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M0+" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0xc00 + + + 1 + 0x8000000 + 0x6000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x6000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0xc00 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + + + PY32F002Bx5,USE_FULL_LL_DRIVER + + ..\Inc;..\..\..\..\..\..\Drivers\BSP\PY32F002Bxx_Start_Kit;..\..\..\..\..\..\Drivers\CMSIS\Include;..\..\..\..\..\..\Drivers\CMSIS\Device\PY32F0xx\Include;..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Inc + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + + .\Objects\Project.sct + + + + + + + + + + + Common + + + system_py32f002b.c + 1 + ..\Src\system_py32f002b.c + + + startup_py32f002bxx.s + 2 + .\startup_py32f002bxx.s + + + + + Application/User + + + main.c + 1 + ..\Src\main.c + + + py32f002b_it.c + 1 + ..\Src\py32f002b_it.c + + + + + BSP/py32f002bxx_Start_Kit + + + py32f002bxx_ll_Start_Kit.c + 1 + ..\..\..\..\..\..\Drivers\BSP\PY32F002Bxx_Start_Kit\py32f002bxx_ll_Start_Kit.c + + + + + Drivers/PY32F002B_HAL_Driver + + + py32f002b_ll_utils.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_ll_utils.c + + + py32f002b_ll_adc.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_ll_adc.c + + + py32f002b_ll_tim.c + 1 + ..\..\..\..\..\..\Drivers\PY32F002B_HAL_Driver\Src\py32f002b_ll_tim.c + + + + + Doc + + + readme.txt + 5 + ..\readme.txt + + + + + + + + + + + + + +
diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/MDK-ARM/startup_py32f002bxx.s b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/MDK-ARM/startup_py32f002bxx.s new file mode 100644 index 0000000..767f75c --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/MDK-ARM/startup_py32f002bxx.s @@ -0,0 +1,228 @@ +;****************************************************************************** +;* @file startup_py32f002bxx.s +;* @author MCU Application Team +;* @brief PY32F002Bxx devices vector table for MDK-ARM toolchain. +;* This module performs: +;* - Set the initial SP +;* - Set the initial PC == Reset_Handler +;* - Set the vector table entries with the exceptions ISR address +;* - Branches to __main in the C library (which eventually +;* calls main()). +;* After Reset the CortexM0+ processor is in Thread mode, +;* priority is Privileged, and the Stack is set to Main. +;****************************************************************************** +;* @attention +;* +;*

© Copyright (c) 2023 Puya Semiconductor Co. +;* All rights reserved.

+;* +;* This software component is licensed by Puya 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 +;* +;****************************************************************************** +;* @attention +;* +;*

© Copyright (c) 2016 STMicroelectronics. +;* All rights reserved.

+;* +;* 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 +;* +;****************************************************************************** +;* <<< Use Configuration Wizard in Context Menu >>> + +; Amount of memory (in bytes) allocated for Stack +; Tailor this value to your application needs +; Stack Configuration +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Stack_Size EQU 0x00000400 + + AREA STACK, NOINIT, READWRITE, ALIGN=3 +Stack_Mem SPACE Stack_Size +__initial_sp + + +; Heap Configuration +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Heap_Size EQU 0x00000000 + + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +Heap_Mem SPACE Heap_Size +__heap_limit + + + PRESERVE8 + THUMB + + +; Vector Table Mapped to Address 0 at Reset + AREA RESET, DATA, READONLY + EXPORT __Vectors + EXPORT __Vectors_End + EXPORT __Vectors_Size + +__Vectors DCD __initial_sp ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD 0 ; 0Reserved + DCD 0 ; 1Reserved + DCD 0 ; 2Reserved + DCD FLASH_IRQHandler ; 3FLASH + DCD RCC_IRQHandler ; 4RCC + DCD EXTI0_1_IRQHandler ; 5EXTI Line 0 and 1 + DCD EXTI2_3_IRQHandler ; 6EXTI Line 2 and 3 + DCD EXTI4_15_IRQHandler ; 7EXTI Line 4 to 15 + DCD 0 ; 8Reserved + DCD 0 ; 9Reserved + DCD 0 ; 10Reserved + DCD 0 ; 11Reserved + DCD ADC_COMP_IRQHandler ; 12ADC&COMP1 + DCD TIM1_BRK_UP_TRG_COM_IRQHandler ; 13TIM1 Break, Update, Trigger and Commutation + DCD TIM1_CC_IRQHandler ; 14TIM1 Capture Compare + DCD 0 ; 15Reserved + DCD 0 ; 16Reserved + DCD LPTIM1_IRQHandler ; 17LPTIM1 + DCD 0 ; 18Reserved + DCD TIM14_IRQHandler ; 19TIM14 + DCD 0 ; 20Reserved + DCD 0 ; 21Reserved + DCD 0 ; 22Reserved + DCD I2C1_IRQHandler ; 23I2C1 + DCD 0 ; 24Reserved + DCD SPI1_IRQHandler ; 25SPI1 + DCD 0 ; 26Reserved + DCD USART1_IRQHandler ; 27USART1 + DCD 0 ; 28Reserved + DCD 0 ; 29Reserved + DCD 0 ; 30Reserved + DCD 0 ; 31Reserved +__Vectors_End + +__Vectors_Size EQU __Vectors_End - __Vectors + + AREA |.text|, CODE, READONLY + + +; Reset Handler + +Reset_Handler PROC + EXPORT Reset_Handler [WEAK] + IMPORT SystemInit + IMPORT __main + LDR R0, =SystemInit + BLX R0 + LDR R0, =__main + BX R0 + ENDP + + +; Dummy Exception Handlers (infinite loops which can be modified) + +NMI_Handler PROC + EXPORT NMI_Handler [WEAK] + B . + ENDP +HardFault_Handler\ + PROC + EXPORT HardFault_Handler [WEAK] + B . + ENDP +SVC_Handler PROC + EXPORT SVC_Handler [WEAK] + B . + ENDP +PendSV_Handler PROC + EXPORT PendSV_Handler [WEAK] + B . + ENDP +SysTick_Handler PROC + EXPORT SysTick_Handler [WEAK] + B . + ENDP + +Default_Handler PROC + + EXPORT FLASH_IRQHandler [WEAK] + EXPORT RCC_IRQHandler [WEAK] + EXPORT EXTI0_1_IRQHandler [WEAK] + EXPORT EXTI2_3_IRQHandler [WEAK] + EXPORT EXTI4_15_IRQHandler [WEAK] + EXPORT ADC_COMP_IRQHandler [WEAK] + EXPORT TIM1_BRK_UP_TRG_COM_IRQHandler [WEAK] + EXPORT TIM1_CC_IRQHandler [WEAK] + EXPORT LPTIM1_IRQHandler [WEAK] + EXPORT TIM14_IRQHandler [WEAK] + EXPORT I2C1_IRQHandler [WEAK] + EXPORT SPI1_IRQHandler [WEAK] + EXPORT USART1_IRQHandler [WEAK] + +FLASH_IRQHandler +RCC_IRQHandler +EXTI0_1_IRQHandler +EXTI2_3_IRQHandler +EXTI4_15_IRQHandler +ADC_COMP_IRQHandler +TIM1_BRK_UP_TRG_COM_IRQHandler +TIM1_CC_IRQHandler +LPTIM1_IRQHandler +TIM14_IRQHandler +I2C1_IRQHandler +SPI1_IRQHandler +USART1_IRQHandler + B . + ENDP + + ALIGN + +; User Initial Stack & Heap + + IF :DEF:__MICROLIB + + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + + ELSE + + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap + +__user_initial_stackheap + + LDR R0, = Heap_Mem + LDR R1, =(Stack_Mem + Stack_Size) + LDR R2, = (Heap_Mem + Heap_Size) + LDR R3, = Stack_Mem + BX LR + + ALIGN + + ENDIF + + END + +;************************ (C) COPYRIGHT Puya *****END OF FILE******************* diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/Src/main.c b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/Src/main.c new file mode 100644 index 0000000..36bd2a5 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/Src/main.c @@ -0,0 +1,254 @@ +/** + ****************************************************************************** + * @file main.c + * @author MCU Application Team + * @brief Main program body + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 "py32f002bxx_ll_Start_Kit.h" + +/* Private define ------------------------------------------------------------*/ +#define ADC_CALIBRATION_TIMEOUT_MS ((uint32_t) 1) +#define VAR_CONVERTED_DATA_INIT_VALUE (__LL_ADC_DIGITAL_SCALE(LL_ADC_RESOLUTION_12B) + 1) + +/* Private variables ---------------------------------------------------------*/ +__IO uint32_t ubUserButtonPressed = 0; +__IO uint16_t uhADCxConvertedData = VAR_CONVERTED_DATA_INIT_VALUE; +__IO uint16_t uhADCxConvertedData_Voltage_mVolt = 0; + +/* Private user code ---------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +static void APP_SystemClockConfig(void); +static void APP_AdcConfig(void); +static void APP_AdcEnable(void); +static void APP_AdcCalibrate(void); + +/** + * @brief Main program. + * @param None + * @retval int + */ +int main(void) +{ + /* Configure Systemclock */ + APP_SystemClockConfig(); + + /* Initialize USART(for printf use) */ + BSP_USART_Config(); + + /* Configure ADC parameters */ + APP_AdcConfig(); + + /* ADC automatic self-calibration */ + APP_AdcCalibrate(); + + /* Enable ADC */ + APP_AdcEnable(); + + /* Start ADC conversion (if it is software triggered then start conversion directly) */ + LL_ADC_REG_StartConversion(ADC1); + while (1) + { + if(LL_ADC_IsActiveFlag_EOS(ADC1)) + { + LL_ADC_ClearFlag_EOS(ADC1); + /* Get ADC conversion data */ + uhADCxConvertedData = LL_ADC_REG_ReadConversionData12(ADC1); + + /* Convert ADC raw data to voltage value */ + uhADCxConvertedData_Voltage_mVolt=__LL_ADC_CALC_VREFANALOG_VOLTAGE(uhADCxConvertedData, LL_ADC_RESOLUTION_12B); + + /* Printf current VCC value */ + printf("VCC:%u mv\r\n",(unsigned int)uhADCxConvertedData_Voltage_mVolt); + LL_mDelay(200); + } + } +} + +/** + * @brief Configure ADC parameters + * @param None + * @retval None + */ +static void APP_AdcConfig(void) +{ + __IO uint32_t wait_loop_index = 0; + LL_ADC_InitTypeDef ADC_Init = {0}; + LL_ADC_REG_InitTypeDef LL_ADC_REG_InitType = {0}; + + /* Enable ADC clock */ + LL_APB1_GRP2_EnableClock(LL_APB1_GRP2_PERIPH_ADC1); + + /* Initialize partical features of ADC instance */ + ADC_Init.Clock=LL_ADC_CLOCK_SYNC_PCLK_DIV4; + ADC_Init.DataAlignment=LL_ADC_DATA_ALIGN_RIGHT; + ADC_Init.LowPowerMode=LL_ADC_LP_MODE_NONE; + ADC_Init.Resolution=LL_ADC_RESOLUTION_12B; + LL_ADC_Init(ADC1,&ADC_Init); + /* Sampling time 239.5 ADC clock cycles */ + LL_ADC_SetSamplingTimeCommonChannels(ADC1, LL_ADC_SAMPLINGTIME_239CYCLES_5); + + /* Initialize partical features of ADC instance */ + LL_ADC_REG_InitType.ContinuousMode=LL_ADC_REG_CONV_CONTINUOUS; + LL_ADC_REG_InitType.Overrun=LL_ADC_REG_OVR_DATA_OVERWRITTEN; + LL_ADC_REG_InitType.SequencerDiscont=LL_ADC_REG_SEQ_DISCONT_DISABLE; + LL_ADC_REG_InitType.TriggerSource=LL_ADC_REG_TRIG_SOFTWARE; + LL_ADC_REG_Init(ADC1,&LL_ADC_REG_InitType); + + /* Set internal channel that connected to VrefInt as conversion channel */ + LL_ADC_REG_SetSequencerChannels(ADC1, LL_ADC_CHANNEL_VREFINT); + + /* Enable internal conversion channel */ + LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(ADC1),LL_ADC_PATH_INTERNAL_VREFINT); + + /* Delay for VREFINT stabilization time */ + wait_loop_index = ((LL_ADC_DELAY_VREFINT_STAB_US * (SystemCoreClock / (100000 * 2))) / 10); + while(wait_loop_index != 0) + { + wait_loop_index--; + } +} + +/** + * @brief ADC calibration program. + * @param None + * @retval None + */ +static void APP_AdcCalibrate(void) +{ +#if (USE_TIMEOUT == 1) + uint32_t Timeout = 0; /* Variable used for timeout management */ +#endif /* USE_TIMEOUT */ + + if (LL_ADC_IsEnabled(ADC1) == 0) + { + + /* Enable ADC calibration */ + LL_ADC_StartCalibration(ADC1); + +#if (USE_TIMEOUT == 1) + Timeout = ADC_CALIBRATION_TIMEOUT_MS; +#endif /* USE_TIMEOUT */ + + while (LL_ADC_IsCalibrationOnGoing(ADC1) != 0) + { +#if (USE_TIMEOUT == 1) + /* Detects if the calibration has timed out */ + if (LL_SYSTICK_IsActiveCounterFlag()) + { + if(Timeout-- == 0) + { + + } + } +#endif /* USE_TIMEOUT */ + } + + /* The delay between the end of ADC calibration and ADC enablement is at least 4 ADC clocks */ + LL_mDelay(1); + } +} + +/** + * @brief Enable ADC. + * @param None + * @retval None + */ +static void APP_AdcEnable(void) +{ + /* Enable ADC */ + LL_ADC_Enable(ADC1); + + /* The delay between ADC enablement and ADC stabilization is at least 8 ADC clocks */ + LL_mDelay(1); +} + +/** + * @brief Configure Systemclock + * @param None + * @retval None + */ +static void APP_SystemClockConfig(void) +{ + /* Enable HSI */ + LL_RCC_HSI_Enable(); + while(LL_RCC_HSI_IsReady() != 1) + { + } + + /* Set AHB divider: HCLK = SYSCLK */ + LL_RCC_SetAHBPrescaler(LL_RCC_SYSCLK_DIV_1); + + /* HSISYS used as SYSCLK clock source */ + LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_HSISYS); + while(LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_HSISYS) + { + } + + /* Set APB1 divider */ + LL_RCC_SetAPB1Prescaler(LL_RCC_APB1_DIV_1); + LL_Init1msTick(24000000); + + /* Update CMSIS variable (which can be updated also through SystemCoreClockUpdate function) */ + LL_SetSystemCoreClock(24000000); +} + +/** + * @brief Error handling function + * @param None + * @retval None + */ +void APP_ErrorHandler(void) +{ + /* Infinite loop */ + while (1) + { + } +} + +#ifdef USE_FULL_ASSERT +/** + * @brief Reports the name of the source file and the source line number + * where the assert_param error has occurred. + * @param file:Pointer to the source file name + * @param line:assert_param error line source number + * @retval None + */ +void assert_failed(uint8_t *file, uint32_t line) +{ + /* User can add His own implementation to report the file name and line number, + ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ + /* Infinite loop */ + while (1) + { + } +} +#endif /* USE_FULL_ASSERT */ + +/************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/Src/py32f002b_it.c b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/Src/py32f002b_it.c new file mode 100644 index 0000000..b4c79a1 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/Src/py32f002b_it.c @@ -0,0 +1,92 @@ +/** + ****************************************************************************** + * @file py32f002b_it.c + * @author MCU Application Team + * @brief Interrupt Service Routines. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 "py32f002b_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) +{ +} + +/******************************************************************************/ +/* PY32F002B 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******************/ diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/Src/system_py32f002b.c new file mode 100644 index 0000000..987c778 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/Src/system_py32f002b.c @@ -0,0 +1,170 @@ +/** + ****************************************************************************** + * @file system_py32f002b.c + * @author MCU Application Team + * @Version V1.0.0 + * @Date 2020-10-19 + * @brief CMSIS Cortex-M0+ Device Peripheral Access Layer System Source File. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2023 Puya Semiconductor Co. + * All rights reserved.

+ * + * This software component is licensed by Puya 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 + * + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2016 STMicroelectronics. + * All rights reserved.

+ * + * 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 + * + ****************************************************************************** + */ + +#include "py32f0xx.h" + +#if !defined (HSE_VALUE) +#define HSE_VALUE 24000000U /*!< Value of the External oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined (HSI_VALUE) +#define HSI_VALUE 24000000U /*!< Value of the Internal oscillator in Hz*/ +#endif /* HSI_VALUE */ + +#if !defined (LSI_VALUE) +#define LSI_VALUE 32768U /*!< Value of LSI in Hz*/ +#endif /* LSI_VALUE */ + +#if !defined (LSE_VALUE) +#define LSE_VALUE 32768U /*!< Value of LSE in Hz*/ +#endif /* LSE_VALUE */ + + +/************************* Miscellaneous Configuration ************************/ +/*!< Uncomment the following line if you need to relocate your vector Table in + Internal SRAM. */ +/* #define FORBID_VECT_TAB_MIGRATION */ +/* #define VECT_TAB_SRAM */ +#define VECT_TAB_OFFSET 0x00 /*!< Vector Table base offset field. + This value must be a multiple of 0x100. */ +/******************************************************************************/ +/*---------------------------------------------------------------------------- + Clock Variable definitions + *----------------------------------------------------------------------------*/ +/* This variable is updated in three ways: + 1) by calling CMSIS function SystemCoreClockUpdate() + 2) by calling HAL API function HAL_RCC_GetHCLKFreq() + 3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency + Note: If you use this function to configure the system clock; then there + is no need to call the 2 first functions listed above, since SystemCoreClock + variable is updated automatically. +*/ +uint32_t SystemCoreClock = HSI_VALUE; + +const uint32_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}; +const uint32_t APBPrescTable[8] = {0, 0, 0, 0, 1, 2, 3, 4}; +#if defined(RCC_HSI48M_SUPPORT) +const uint32_t HSIFreqTable[8] = {4000000U, 8000000U, 0U, 0U, 24000000U, 48000000U, 0U, 0U}; +#else +const uint32_t HSIFreqTable[8] = {4000000U, 8000000U, 0U, 0U, 24000000U, 0U, 0U, 0U}; +#endif + +/* Private function prototypes -----------------------------------------------*/ +#ifndef SWD_DELAY +static void DelayTime(uint32_t mdelay); +#endif /* SWD_DELAY */ + +/** + * @brief Clock functions. + * @param none + * @return none + */ +void SystemCoreClockUpdate(void) /* Get Core Clock Frequency */ +{ + uint32_t tmp; + uint32_t hsidiv; + uint32_t hsifs; + + /* Get SYSCLK source -------------------------------------------------------*/ + switch (RCC->CFGR & RCC_CFGR_SWS) + { + case RCC_CFGR_SWS_0: /* HSE used as system clock */ + SystemCoreClock = HSE_VALUE; + break; + + case (RCC_CFGR_SWS_1 | RCC_CFGR_SWS_0): /* LSI used as system clock */ + SystemCoreClock = LSI_VALUE; + break; +#if defined(RCC_LSE_SUPPORT) + case RCC_CFGR_SWS_2: /* LSE used as system clock */ + SystemCoreClock = LSE_VALUE; + break; +#endif /* RCC_LSE_SUPPORT */ + case 0x00000000U: /* HSI used as system clock */ + default: /* HSI used as system clock */ + hsifs = ((READ_BIT(RCC->ICSCR, RCC_ICSCR_HSI_FS)) >> RCC_ICSCR_HSI_FS_Pos); + hsidiv = (1UL << ((READ_BIT(RCC->CR, RCC_CR_HSIDIV)) >> RCC_CR_HSIDIV_Pos)); + SystemCoreClock = (HSIFreqTable[hsifs] / hsidiv); + break; + } + /* Compute HCLK clock frequency --------------------------------------------*/ + /* Get HCLK prescaler */ + tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos)]; + /* HCLK clock frequency */ + SystemCoreClock >>= tmp; +} + +/** + * @brief Setup the microcontroller system. + * Initialize the System. + * @param none + * @return none + */ +void SystemInit(void) +{ + /*Set the HSI clock to 24MHz by default*/ + RCC->ICSCR = (RCC->ICSCR & 0xFFFF0000) | ((*(uint32_t *)(0x1FFF0100)) & 0xFFFF); + + /*Set the LSI clock to 32.768KHz by default*/ + RCC->ICSCR = (RCC->ICSCR & 0xFE00FFFF) | (((*(uint32_t *)(0x1FFF0144)) & 0x1FF) << RCC_ICSCR_LSI_TRIM_Pos); + + /* Configure the Vector Table location add offset address ------------------*/ +#ifdef VECT_TAB_SRAM + SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */ +#else + SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */ +#endif /* VECT_TAB_SRAM */ + +#ifndef SWD_DELAY + /* When the SWD pin is reused for other functions, this function is used to solve the + problem of not being able to update the code. */ + DelayTime(200); +#endif /* SWD_DELAY */ +} + +#ifndef SWD_DELAY +/** + * @brief This function provides delay (in milliseconds) based on CPU cycles method. + * @param mdelay: specifies the delay time length, in milliseconds. + * @retval None + */ +static void DelayTime(uint32_t mdelay) +{ + __IO uint32_t Delay = mdelay * (24000000U / 8U / 1000U); + do + { + __NOP(); + } + while (Delay --); +} +#endif /* SWD_DELAY */ +/************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/readme.txt b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/readme.txt new file mode 100644 index 0000000..7bc69b0 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/ADC/ADC_Vrefint_Init/readme.txt @@ -0,0 +1,62 @@ +================================================================================ + 样例使用说明 + Sample Description +================================================================================ +功能描述: +此样例演示了ADC模块的VREFINT采样功能,通过采样VREFINT的值,计算得出VCC的值,并通过 +串口打印出来。 + +Function descriptions: +This example demonstrates the VREFINT sampling function of the ADC module. By +sampling the value of VREFINT, the VCC value is calculated and printed through +the serial port. +================================================================================ +测试环境: +测试用板:PY32F002B_STK +MDK版本: 5.28 +IAR版本: 9.20 +GCC 版本:GNU Arm Embedded Toolchain 10.3-2021.10 + +Test environment: +Test board: PY32F002B_STK +MDK Version: 5.28 +IAR Version: 9.20 +GCC Version: GNU Arm Embedded Toolchain 10.3-2021.10 +================================================================================ +使用步骤: +1. 编译并下载程序; +2. 串口打印出VCC电压值。 + +Example execution steps: +1. Compile and download the program and run it +2. USART printf voltage of VCC +================================================================================ +注意事项: +1.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart +STK板 USB转TTL模块 +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART配置为波特率115200,数据位8,停止位1,校验位None +@PrintfConfigEnd +2.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 + +Notes: +1.Connect the PC to the STK board through the USB to TTL module, and the connection +method between the STK board and the USB to TTL module is as follows: +@PrintfConfigStart +STK board USB to TTL module +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 115200, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd +2.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required +================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/EIDE/.eide/eide.json index 03e1025..426f178 100644 --- a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -65,9 +63,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -84,14 +82,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -110,6 +111,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -122,10 +131,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/EIDE/Makefile index 668b25c..034d1e6 100644 --- a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/MDK-ARM/Project.uvoptx index d363cd7..10de8cc 100644 --- a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/MDK-ARM/Project.uvprojx index 0511978..2f62202 100644 --- a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/readme.txt b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/readme.txt index 09fb150..550043c 100644 --- a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Polling_Init/readme.txt @@ -37,6 +37,14 @@ Example execution steps: 3. When PA04 input is less than 1.65V,LED on ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/EIDE/.eide/eide.json index af19968..98531fa 100644 --- a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -61,9 +59,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -80,14 +78,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -106,6 +107,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -118,10 +127,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/EIDE/Makefile index 1a68d51..280cadc 100644 --- a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/MDK-ARM/Project.uvoptx index 20185d7..d5217cc 100644 --- a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/MDK-ARM/Project.uvprojx index 5e61fb4..c13dee8 100644 --- a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/Src/main.c b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/Src/main.c index fc52b79..8f63e8e 100644 --- a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/Src/main.c +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/Src/main.c @@ -66,7 +66,7 @@ int main(void) BSP_LED_On(LED_GREEN); /* Wait Button */ - while(BSP_PB_GetState(BUTTON_KEY) == 1) + while(BSP_PB_GetState(BUTTON_KEY)) { } diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/readme.txt b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/readme.txt index 97f289c..28b5928 100644 --- a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_WakeupFromSleep/readme.txt @@ -43,6 +43,14 @@ generated; 5. Next, the LED flips every 200ms and the program runs normally. ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.eide/eide.json index af19968..98531fa 100644 --- a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -61,9 +59,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -80,14 +78,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -106,6 +107,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -118,10 +127,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/Makefile index 1a68d51..280cadc 100644 --- a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/MDK-ARM/Project.uvoptx index c3880b8..51c3381 100644 --- a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/MDK-ARM/Project.uvprojx index 5e61fb4..c13dee8 100644 --- a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/readme.txt b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/readme.txt index c11e96c..86dcede 100644 --- a/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/COMP/COMP_CompareGpioVs1_2VCC_Window/readme.txt @@ -35,6 +35,14 @@ Example execution steps: 3. when the PB0 input is greater than 1.65V,LED off ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/EIDE/.eide/eide.json index af19968..98531fa 100644 --- a/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -61,9 +59,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -80,14 +78,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -106,6 +107,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -118,10 +127,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/EIDE/Makefile index 1a68d51..280cadc 100644 --- a/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/MDK-ARM/Project.uvoptx index 258c4f5..fca7ca6 100644 --- a/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/MDK-ARM/Project.uvprojx index 5e61fb4..c13dee8 100644 --- a/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/readme.txt b/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/readme.txt index 1dbb347..993b795 100644 --- a/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/CRC/CRC_CalculateCheckValue/readme.txt @@ -33,7 +33,15 @@ Example execution steps: successful, otherwise the execution fails ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/EIDE/.eide/eide.json index 748f68c..5748e2c 100644 --- a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -68,9 +66,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -87,14 +85,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -113,6 +114,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -125,10 +134,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/EIDE/Makefile index 26722a5..12a1ebe 100644 --- a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/MDK-ARM/Project.uvoptx index 133b165..0275a53 100644 --- a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/MDK-ARM/Project.uvprojx index 1f8631f..01b6d9a 100644 --- a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/readme.txt b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/readme.txt index 2fe444b..576561a 100644 --- a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_ToggleLed_IT_Init/readme.txt @@ -32,8 +32,16 @@ Example execution steps: 2. Every time the user presses the key, the LED is observed to toggle; ================================================================================ 注意事项: -用户按键所对应的引脚为PA0 +1.用户按键所对应的引脚为PA0 +2.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: -PA0 pin is used as user key +1.PA0 pin is used as user key +2.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/EIDE/.eide/eide.json index 748f68c..5748e2c 100644 --- a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -68,9 +66,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -87,14 +85,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -113,6 +114,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -125,10 +134,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/EIDE/Makefile index 26722a5..12a1ebe 100644 --- a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/MDK-ARM/Project.uvoptx index 133b165..0275a53 100644 --- a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/MDK-ARM/Project.uvprojx index 1f8631f..01b6d9a 100644 --- a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/Src/main.c b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/Src/main.c index 71248f5..b5015fa 100644 --- a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/Src/main.c +++ b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/Src/main.c @@ -68,7 +68,7 @@ int main(void) BSP_LED_On(LED_GREEN); /* Wait for the user to press the key, the program starts to run */ - while (BSP_PB_GetState(BUTTON_KEY) == 1) + while (BSP_PB_GetState(BUTTON_KEY)) { } diff --git a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/readme.txt b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/readme.txt index 4b0c712..63aadfa 100644 --- a/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/EXTI/EXTI_WakeUp_Event/readme.txt @@ -38,7 +38,15 @@ will enter the STOP mode be toggled ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/EIDE/.eide/eide.json index 41698fd..98531fa 100644 --- a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -41,30 +39,29 @@ }, { "name": "PY32F002B_HAL_Driver", - "files": [ + "files":[ { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_utils.c" - } - ], + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_utils.c" + }], "folders": [] }, { "name": "User", - "files": [ + "files":[ { - "path": "../Src/main.c" + "path":"../Src/main.c" }, { - "path": "../Src/py32f002b_it.c" + "path":"../Src/py32f002b_it.c" } ], "folders": [] } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -81,14 +78,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -107,6 +107,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -119,13 +127,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], - "defineList": [ - "PY32F002Bx5", - "USE_FULL_LL_DRIVER" - ] + "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/EIDE/Makefile index 08c9c38..280cadc 100644 --- a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/EIDE/Makefile @@ -1,178 +1,176 @@ -########################################################################################################################## -# File automatically-generated by tool: [projectgenerator] version: [3.17.1] date: [Tue Dec 06 16:10:07 CST 2022] -########################################################################################################################## - -# ------------------------------------------------ -# Generic Makefile (based on gcc) -# -# ChangeLog : -# 2017-02-10 - Several enhancements + project update mode -# 2015-07-22 - first version -# ------------------------------------------------ - -###################################### -# target -###################################### -TARGET = Project - - -###################################### -# building variables -###################################### -# debug build? -DEBUG = 1 -# optimization -OPT = -Og - - -####################################### -# paths -####################################### -# Build path -BUILD_DIR = build\Project - -###################################### -# source -###################################### -# C sources -C_SOURCES = \ -../Src/main.c \ -../Src/py32f002b_it.c \ -../Src/system_py32f002b.c \ -../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit/py32f002bxx_ll_Start_Kit.c \ -../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_utils.c - - - -# ASM sources -ASM_SOURCES = \ -startup_py32f002bxx.s - - -####################################### -# binaries -####################################### -PREFIX = arm-none-eabi- -# The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx) -# either it can be added to the PATH environment variable. -ifdef GCC_PATH -CC = $(GCC_PATH)/$(PREFIX)gcc -AS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp -CP = $(GCC_PATH)/$(PREFIX)objcopy -SZ = $(GCC_PATH)/$(PREFIX)size -else -CC = $(PREFIX)gcc -AS = $(PREFIX)gcc -x assembler-with-cpp -CP = $(PREFIX)objcopy -SZ = $(PREFIX)size -endif -HEX = $(CP) -O ihex -BIN = $(CP) -O binary -S - -####################################### -# CFLAGS -####################################### -# cpu -CPU = -mcpu=cortex-m0plus - -# fpu -# NONE for Cortex-M0/M0+/M3 - -# float-abi - - -# mcu -MCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI) - -# macros for gcc -# AS defines -AS_DEFS = - -# C defines -C_DEFS = \ --DUSE_FULL_LL_DRIVER \ --DPY32F002Bx5 - - -# AS includes -AS_INCLUDES = - -# C includes -C_INCLUDES = \ --I../Inc \ --I../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit \ --I../../../../../../Drivers/PY32F002B_HAL_Driver/Inc \ --I../../../../../../Drivers/CMSIS/Device/PY32F0xx/Include \ --I../../../../../../Drivers/CMSIS/Include - - -# compile gcc flags -ASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections - -CFLAGS += $(MCU) $(C_DEFS) $(C_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections - -ifeq ($(DEBUG), 1) -CFLAGS += -g -gdwarf-2 -endif - - -# Generate dependency information -CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)" - - -####################################### -# LDFLAGS -####################################### -# link script -LDSCRIPT = py32f002bx5.ld - -# libraries -LIBS = -lc -lm -lnosys -LIBDIR = -LDFLAGS = $(MCU) -specs=nano.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections - -# default action: build all -all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin - - -####################################### -# build the application -####################################### -# list of objects -OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o))) -vpath %.c $(sort $(dir $(C_SOURCES))) -# list of ASM program objects -OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o))) -vpath %.s $(sort $(dir $(ASM_SOURCES))) - -$(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR) - $(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@ - -$(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR) - $(AS) -c $(CFLAGS) $< -o $@ - -$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile - $(CC) $(OBJECTS) $(LDFLAGS) -o $@ - $(SZ) $@ - -$(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf | $(BUILD_DIR) - $(HEX) $< $@ - -$(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR) - $(BIN) $< $@ - -$(BUILD_DIR): - mkdir $@ - -####################################### -# clean up -####################################### -clean: - -rm -fR $(BUILD_DIR) - -####################################### -# dependencies -####################################### --include $(wildcard $(BUILD_DIR)/*.d) - +########################################################################################################################## +# File automatically-generated by tool: [projectgenerator] version: [3.17.1] date: [Tue Dec 06 16:10:07 CST 2022] +########################################################################################################################## + +# ------------------------------------------------ +# Generic Makefile (based on gcc) +# +# ChangeLog : +# 2017-02-10 - Several enhancements + project update mode +# 2015-07-22 - first version +# ------------------------------------------------ + +###################################### +# target +###################################### +TARGET = Project + + +###################################### +# building variables +###################################### +# debug build? +DEBUG = 1 +# optimization +OPT = -Og + + +####################################### +# paths +####################################### +# Build path +BUILD_DIR = Project + +###################################### +# source +###################################### +# C sources +C_SOURCES = \ ../Src/main.c \ +../Src/py32f002b_it.c \ +../Src/system_py32f002b.c \ +../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit/py32f002bxx_ll_Start_Kit.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_utils.c + + +# ASM sources +ASM_SOURCES = \ +startup_py32f002bxx.s + + +####################################### +# binaries +####################################### +PREFIX = arm-none-eabi- +# The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx) +# either it can be added to the PATH environment variable. +ifdef GCC_PATH +CC = $(GCC_PATH)/$(PREFIX)gcc +AS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp +CP = $(GCC_PATH)/$(PREFIX)objcopy +SZ = $(GCC_PATH)/$(PREFIX)size +else +CC = $(PREFIX)gcc +AS = $(PREFIX)gcc -x assembler-with-cpp +CP = $(PREFIX)objcopy +SZ = $(PREFIX)size +endif +HEX = $(CP) -O ihex +BIN = $(CP) -O binary -S + +####################################### +# CFLAGS +####################################### +# cpu +CPU = -mcpu=cortex-m0plus + +# fpu +# NONE for Cortex-M0/M0+/M3 + +# float-abi + + +# mcu +MCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI) + +# macros for gcc +# AS defines +AS_DEFS = + +# C defines +C_DEFS = \ +-DPY32F002Bx5\ +-DUSE_FULL_LL_DRIVER + + +# AS includes +AS_INCLUDES = + +# C includes +C_INCLUDES = \ +-I../Inc \ +-I../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit \ +-I../../../../../../Drivers/PY32F002B_HAL_Driver/Inc \ +-I../../../../../../Drivers/CMSIS/Device/PY32F0xx/Include \ +-I../../../../../../Drivers/CMSIS/Include + + +# compile gcc flags +ASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections + +CFLAGS += $(MCU) $(C_DEFS) $(C_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections + +ifeq ($(DEBUG), 1) +CFLAGS += -g -gdwarf-2 +endif + + +# Generate dependency information +CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)" + + +####################################### +# LDFLAGS +####################################### +# link script +LDSCRIPT = py32f002bx5.ld + +# libraries +LIBS = -lc -lm -lnosys +LIBDIR = +LDFLAGS = $(MCU) -specs=nano.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections + +# default action: build all +all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin + + +####################################### +# build the application +####################################### +# list of objects +OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o))) +vpath %.c $(sort $(dir $(C_SOURCES))) +# list of ASM program objects +OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o))) +vpath %.s $(sort $(dir $(ASM_SOURCES))) + +$(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR) + $(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@ + +$(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR) + $(AS) -c $(CFLAGS) $< -o $@ + +$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile + $(CC) $(OBJECTS) $(LDFLAGS) -o $@ + $(SZ) $@ + +$(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf | $(BUILD_DIR) + $(HEX) $< $@ + +$(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR) + $(BIN) $< $@ + +$(BUILD_DIR): + mkdir $@ + +####################################### +# clean up +####################################### +clean: + -rm -fR $(BUILD_DIR) + +####################################### +# dependencies +####################################### +-include $(wildcard $(BUILD_DIR)/*.d) + # *** EOF *** \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/Inc/Config.txt b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/Inc/Config.txt index b2b98c0..7314a75 100644 --- a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/Inc/Config.txt +++ b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/Inc/Config.txt @@ -1,17 +1,10 @@ [FilePath] -0=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_flash.c -1=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal.c -2=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_cortex.c -3=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_utils.c +0=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_utils.c [FileName] -0=py32f002b_hal_flash.c -1=py32f002b_hal.c -2=py32f002b_hal_cortex.c -3=py32f002b_ll_utils.c +0=py32f002b_ll_utils.c [Define] -0=USE_HAL_DRIVER -1=PY32F002Bx5 +0=PY32F002Bx5 +1=USE_FULL_LL_DRIVER [User] 0=../Src/main.c 1=../Src/py32f002b_it.c -2=../Src/py32f002b_hal_msp.c diff --git a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/MDK-ARM/Project.uvoptx index 1b66403..80becc0 100644 --- a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 CMSIS_AGDI - -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/MDK-ARM/Project.uvprojx index 06c27e1..022e337 100644 --- a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/Src/main.c b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/Src/main.c index a7877ec..8aef1d5 100644 --- a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/Src/main.c +++ b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/Src/main.c @@ -76,7 +76,7 @@ int main(void) BSP_PB_Init(BUTTON_KEY,BUTTON_MODE_GPIO); /* Wait for the BUTTON to be pressed */ - while(BSP_PB_GetState(BUTTON_KEY) == 1); + while(BSP_PB_GetState(BUTTON_KEY)); LL_FLASH_Unlock(FLASH); diff --git a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/readme.txt b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/readme.txt index 68bf993..25bde43 100644 --- a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_PageEraseAndWrite/readme.txt @@ -31,7 +31,15 @@ Example execution steps: 3. page erase successfully and page write successfully, the LED on. ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/EIDE/.eide/eide.json index 41698fd..98531fa 100644 --- a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -41,30 +39,29 @@ }, { "name": "PY32F002B_HAL_Driver", - "files": [ + "files":[ { - "path": "../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_utils.c" - } - ], + "path":"../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_utils.c" + }], "folders": [] }, { "name": "User", - "files": [ + "files":[ { - "path": "../Src/main.c" + "path":"../Src/main.c" }, { - "path": "../Src/py32f002b_it.c" + "path":"../Src/py32f002b_it.c" } ], "folders": [] } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -81,14 +78,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -107,6 +107,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -119,13 +127,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], - "defineList": [ - "PY32F002Bx5", - "USE_FULL_LL_DRIVER" - ] + "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/EIDE/Makefile index 08c9c38..280cadc 100644 --- a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/EIDE/Makefile @@ -1,178 +1,176 @@ -########################################################################################################################## -# File automatically-generated by tool: [projectgenerator] version: [3.17.1] date: [Tue Dec 06 16:10:07 CST 2022] -########################################################################################################################## - -# ------------------------------------------------ -# Generic Makefile (based on gcc) -# -# ChangeLog : -# 2017-02-10 - Several enhancements + project update mode -# 2015-07-22 - first version -# ------------------------------------------------ - -###################################### -# target -###################################### -TARGET = Project - - -###################################### -# building variables -###################################### -# debug build? -DEBUG = 1 -# optimization -OPT = -Og - - -####################################### -# paths -####################################### -# Build path -BUILD_DIR = build\Project - -###################################### -# source -###################################### -# C sources -C_SOURCES = \ -../Src/main.c \ -../Src/py32f002b_it.c \ -../Src/system_py32f002b.c \ -../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit/py32f002bxx_ll_Start_Kit.c \ -../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_utils.c - - - -# ASM sources -ASM_SOURCES = \ -startup_py32f002bxx.s - - -####################################### -# binaries -####################################### -PREFIX = arm-none-eabi- -# The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx) -# either it can be added to the PATH environment variable. -ifdef GCC_PATH -CC = $(GCC_PATH)/$(PREFIX)gcc -AS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp -CP = $(GCC_PATH)/$(PREFIX)objcopy -SZ = $(GCC_PATH)/$(PREFIX)size -else -CC = $(PREFIX)gcc -AS = $(PREFIX)gcc -x assembler-with-cpp -CP = $(PREFIX)objcopy -SZ = $(PREFIX)size -endif -HEX = $(CP) -O ihex -BIN = $(CP) -O binary -S - -####################################### -# CFLAGS -####################################### -# cpu -CPU = -mcpu=cortex-m0plus - -# fpu -# NONE for Cortex-M0/M0+/M3 - -# float-abi - - -# mcu -MCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI) - -# macros for gcc -# AS defines -AS_DEFS = - -# C defines -C_DEFS = \ --DUSE_FULL_LL_DRIVER \ --DPY32F002Bx5 - - -# AS includes -AS_INCLUDES = - -# C includes -C_INCLUDES = \ --I../Inc \ --I../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit \ --I../../../../../../Drivers/PY32F002B_HAL_Driver/Inc \ --I../../../../../../Drivers/CMSIS/Device/PY32F0xx/Include \ --I../../../../../../Drivers/CMSIS/Include - - -# compile gcc flags -ASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections - -CFLAGS += $(MCU) $(C_DEFS) $(C_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections - -ifeq ($(DEBUG), 1) -CFLAGS += -g -gdwarf-2 -endif - - -# Generate dependency information -CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)" - - -####################################### -# LDFLAGS -####################################### -# link script -LDSCRIPT = py32f002bx5.ld - -# libraries -LIBS = -lc -lm -lnosys -LIBDIR = -LDFLAGS = $(MCU) -specs=nano.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections - -# default action: build all -all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin - - -####################################### -# build the application -####################################### -# list of objects -OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o))) -vpath %.c $(sort $(dir $(C_SOURCES))) -# list of ASM program objects -OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o))) -vpath %.s $(sort $(dir $(ASM_SOURCES))) - -$(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR) - $(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@ - -$(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR) - $(AS) -c $(CFLAGS) $< -o $@ - -$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile - $(CC) $(OBJECTS) $(LDFLAGS) -o $@ - $(SZ) $@ - -$(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf | $(BUILD_DIR) - $(HEX) $< $@ - -$(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR) - $(BIN) $< $@ - -$(BUILD_DIR): - mkdir $@ - -####################################### -# clean up -####################################### -clean: - -rm -fR $(BUILD_DIR) - -####################################### -# dependencies -####################################### --include $(wildcard $(BUILD_DIR)/*.d) - +########################################################################################################################## +# File automatically-generated by tool: [projectgenerator] version: [3.17.1] date: [Tue Dec 06 16:10:07 CST 2022] +########################################################################################################################## + +# ------------------------------------------------ +# Generic Makefile (based on gcc) +# +# ChangeLog : +# 2017-02-10 - Several enhancements + project update mode +# 2015-07-22 - first version +# ------------------------------------------------ + +###################################### +# target +###################################### +TARGET = Project + + +###################################### +# building variables +###################################### +# debug build? +DEBUG = 1 +# optimization +OPT = -Og + + +####################################### +# paths +####################################### +# Build path +BUILD_DIR = Project + +###################################### +# source +###################################### +# C sources +C_SOURCES = \ ../Src/main.c \ +../Src/py32f002b_it.c \ +../Src/system_py32f002b.c \ +../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit/py32f002bxx_ll_Start_Kit.c \ +../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_utils.c + + +# ASM sources +ASM_SOURCES = \ +startup_py32f002bxx.s + + +####################################### +# binaries +####################################### +PREFIX = arm-none-eabi- +# The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx) +# either it can be added to the PATH environment variable. +ifdef GCC_PATH +CC = $(GCC_PATH)/$(PREFIX)gcc +AS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp +CP = $(GCC_PATH)/$(PREFIX)objcopy +SZ = $(GCC_PATH)/$(PREFIX)size +else +CC = $(PREFIX)gcc +AS = $(PREFIX)gcc -x assembler-with-cpp +CP = $(PREFIX)objcopy +SZ = $(PREFIX)size +endif +HEX = $(CP) -O ihex +BIN = $(CP) -O binary -S + +####################################### +# CFLAGS +####################################### +# cpu +CPU = -mcpu=cortex-m0plus + +# fpu +# NONE for Cortex-M0/M0+/M3 + +# float-abi + + +# mcu +MCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI) + +# macros for gcc +# AS defines +AS_DEFS = + +# C defines +C_DEFS = \ +-DPY32F002Bx5\ +-DUSE_FULL_LL_DRIVER + + +# AS includes +AS_INCLUDES = + +# C includes +C_INCLUDES = \ +-I../Inc \ +-I../../../../../../Drivers/BSP/PY32F002Bxx_Start_Kit \ +-I../../../../../../Drivers/PY32F002B_HAL_Driver/Inc \ +-I../../../../../../Drivers/CMSIS/Device/PY32F0xx/Include \ +-I../../../../../../Drivers/CMSIS/Include + + +# compile gcc flags +ASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections + +CFLAGS += $(MCU) $(C_DEFS) $(C_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections + +ifeq ($(DEBUG), 1) +CFLAGS += -g -gdwarf-2 +endif + + +# Generate dependency information +CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)" + + +####################################### +# LDFLAGS +####################################### +# link script +LDSCRIPT = py32f002bx5.ld + +# libraries +LIBS = -lc -lm -lnosys +LIBDIR = +LDFLAGS = $(MCU) -specs=nano.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections + +# default action: build all +all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin + + +####################################### +# build the application +####################################### +# list of objects +OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o))) +vpath %.c $(sort $(dir $(C_SOURCES))) +# list of ASM program objects +OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o))) +vpath %.s $(sort $(dir $(ASM_SOURCES))) + +$(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR) + $(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@ + +$(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR) + $(AS) -c $(CFLAGS) $< -o $@ + +$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile + $(CC) $(OBJECTS) $(LDFLAGS) -o $@ + $(SZ) $@ + +$(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf | $(BUILD_DIR) + $(HEX) $< $@ + +$(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR) + $(BIN) $< $@ + +$(BUILD_DIR): + mkdir $@ + +####################################### +# clean up +####################################### +clean: + -rm -fR $(BUILD_DIR) + +####################################### +# dependencies +####################################### +-include $(wildcard $(BUILD_DIR)/*.d) + # *** EOF *** \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/Inc/Config.txt b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/Inc/Config.txt index c29a5dd..7314a75 100644 --- a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/Inc/Config.txt +++ b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/Inc/Config.txt @@ -1,17 +1,10 @@ [FilePath] -0=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_flash.c -1=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal.c -2=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_hal_cortex.c -3=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_utils.c +0=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_utils.c [FileName] -0=py32f002b_hal_flash.c -1=py32f002b_hal.c -2=py32f002b_hal_cortex.c -3=py32f002b_ll_utils.c +0=py32f002b_ll_utils.c [Define] -0=USE_HAL_DRIVER -1=PY32F002Bx5 +0=PY32F002Bx5 +1=USE_FULL_LL_DRIVER [User] 0=../Src/main.c -1=../Src/py32f002b_hal_msp.c -2=../Src/py32f002b_it.c +1=../Src/py32f002b_it.c diff --git a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/MDK-ARM/Project.uvoptx index 1b66403..80becc0 100644 --- a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 CMSIS_AGDI - -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/MDK-ARM/Project.uvprojx index 06c27e1..022e337 100644 --- a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/Src/main.c b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/Src/main.c index cf2eb5e..c6914d7 100644 --- a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/Src/main.c +++ b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/Src/main.c @@ -77,7 +77,7 @@ int main(void) BSP_PB_Init(BUTTON_KEY,BUTTON_MODE_GPIO); /* Wait for the BUTTON to be pressed */ - while(BSP_PB_GetState(BUTTON_KEY) == 1); + while(BSP_PB_GetState(BUTTON_KEY)); LL_FLASH_Unlock(FLASH); diff --git a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/readme.txt b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/readme.txt index 254cd21..d874fa3 100644 --- a/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/FLASH/FLASH_SectorEraseAndWrite/readme.txt @@ -32,7 +32,15 @@ write; 3. sector erase successfully and page write successfully, the LED on. ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/EIDE/.eide/eide.json index 0e28bde..59490bd 100644 --- a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -65,9 +63,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -84,14 +82,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -110,6 +111,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -122,10 +131,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/EIDE/Makefile index 0a8183e..5ac5ecf 100644 --- a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/MDK-ARM/Project.uvoptx index 1cda216..3121c50 100644 --- a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/MDK-ARM/Project.uvprojx index 101fe76..1396764 100644 --- a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/readme.txt b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/readme.txt index d323229..670392e 100644 --- a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_FastIO/readme.txt @@ -31,7 +31,15 @@ Example execution steps: frequency of port PA1 can be observed to be 12MHz. ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/EIDE/.eide/eide.json index af19968..98531fa 100644 --- a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -61,9 +59,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -80,14 +78,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -106,6 +107,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -118,10 +127,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/EIDE/Makefile index 1a68d51..280cadc 100644 --- a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/MDK-ARM/Project.uvoptx index 15f1dc3..c8b37b8 100644 --- a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/MDK-ARM/Project.uvprojx index 5e61fb4..c13dee8 100644 --- a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/readme.txt b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/readme.txt index 2b659a1..9e16bff 100644 --- a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle/readme.txt @@ -32,7 +32,15 @@ Example execution steps: 2. Observed LED that on the STK board is toggling ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/EIDE/.eide/eide.json index 0e28bde..59490bd 100644 --- a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -65,9 +63,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -84,14 +82,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -110,6 +111,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -122,10 +131,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/EIDE/Makefile index 0a8183e..5ac5ecf 100644 --- a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/MDK-ARM/Project.uvoptx index 1cda216..3121c50 100644 --- a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/MDK-ARM/Project.uvprojx index 101fe76..1396764 100644 --- a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/readme.txt b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/readme.txt index eee0dd1..0eac478 100644 --- a/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/GPIO/GPIO_Toggle_Init/readme.txt @@ -32,7 +32,15 @@ Example execution steps: 2. Observed LED that on the STK board is toggling ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/EIDE/.eide/eide.json index 7faa847..62a1332 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -71,9 +69,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -90,14 +88,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -116,6 +117,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -128,10 +137,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/EIDE/Makefile index b0b279b..55e0059 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/MDK-ARM/Project.uvoptx index 41c5474..c8cce0b 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/MDK-ARM/Project.uvprojx index 96dae20..405c17e 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/Src/main.c b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/Src/main.c index 00b950a..d915cf1 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/Src/main.c +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/Src/main.c @@ -80,7 +80,7 @@ int main(void) APP_ConfigI2cMaster(); /* Wait for the button to be pressed */ - while(BSP_PB_GetState(BUTTON_KEY) == 1); + while(BSP_PB_GetState(BUTTON_KEY)); /* Master send data */ APP_MasterTransmit_IT(I2C_ADDRESS, (uint8_t *)aTxBuffer, sizeof(aTxBuffer)); diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/readme.txt b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/readme.txt index 8d80be4..f23e28a 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_IT_Init/readme.txt @@ -42,16 +42,26 @@ receive and send data successfully; When the LED of the host or slave is blinkin it indicates that the host or slave fails to receive and or data. ================================================================================ 注意事项: +1. PB3 ------> I2C_SCL PB4 ------> I2C_SDA 主机程序为I2C_TwoBoard_CommunicationMaster_IT_Init 从机程序为I2C_TwoBoard_CommunicationSlave_IT_Init 如需修改速率,直接修改I2C_SPEEDCLOCK即可 +2.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +1. PB3 ------> I2C_SCL PB4 ------> I2C_SDA Master program name:I2C_TwoBoard_CommunicationMaster_IT_Init Slave program name:I2C_TwoBoard_CommunicationSlave_IT_Init I2C_SPEEDCLOCK can be modified to change the communication frequency +2.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/EIDE/.eide/eide.json index 7faa847..62a1332 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -71,9 +69,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -90,14 +88,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -116,6 +117,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -128,10 +137,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/EIDE/Makefile index b0b279b..55e0059 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/MDK-ARM/Project.uvoptx index 41c5474..c8cce0b 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/MDK-ARM/Project.uvprojx index 96dae20..405c17e 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/Src/main.c b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/Src/main.c index 432b72c..0e723b4 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/Src/main.c +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/Src/main.c @@ -79,7 +79,7 @@ int main(void) APP_ConfigI2cMaster(); /* Wait for the button to be pressed */ - while(BSP_PB_GetState(BUTTON_KEY) == 1); + while(BSP_PB_GetState(BUTTON_KEY)); /* Master send data */ APP_MasterTransmit(I2C_ADDRESS, (uint8_t *)aTxBuffer, sizeof(aTxBuffer)); diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/readme.txt b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/readme.txt index a1eddc1..ace4bb4 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationMaster_Polling_Init/readme.txt @@ -42,16 +42,26 @@ receive and send data successfully; When the LED of the host or slave is blinking,it indicates that the host or slave fails to receive and or data. ================================================================================ 注意事项: +1. PB3 ------> I2C_SCL PB4 ------> I2C_SDA 主机程序为I2C_TwoBoard_CommunicationMaster_Polling_Init 从机程序为I2C_TwoBoard_CommunicationSlave_IT_Init 如需修改速率,直接修改I2C_SPEEDCLOCK即可 +2.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +1. PB3 ------> I2C_SCL PB4 ------> I2C_SDA Master program name:I2C_TwoBoard_CommunicationMaster_Polling_Init Slave program name:I2C_TwoBoard_CommunicationSlave_IT_Init I2C_SPEEDCLOCK can be modified to change the communication frequency +2If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/EIDE/.eide/eide.json index 7faa847..62a1332 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -71,9 +69,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -90,14 +88,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -116,6 +117,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -128,10 +137,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/EIDE/Makefile index b0b279b..55e0059 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/MDK-ARM/Project.uvoptx index 9f282dd..64d3411 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/MDK-ARM/Project.uvprojx index 96dae20..405c17e 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/readme.txt b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/readme.txt index 54a215a..2f55952 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoard_CommunicationSlave_IT_Init/readme.txt @@ -42,16 +42,26 @@ receive and send data successfully; When the LED of the host or slave is blinking,it indicates that the host or slave fails to receive and or data. ================================================================================ 注意事项: +1. PB3 ------> I2C_SCL PB4 ------> I2C_SDA 主机程序为I2C_TwoBoard_CommunicationMaster_IT_Init 从机程序为I2C_TwoBoard_CommunicationSlave_IT_Init 如需修改速率,直接修改I2C_SPEEDCLOCK即可 +2.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +1. PB3 ------> I2C_SCL PB4 ------> I2C_SDA Master program name:I2C_TwoBoard_CommunicationMaster_IT_Init Slave program name:I2C_TwoBoard_CommunicationSlave_IT_Init I2C_SPEEDCLOCK can be modified to change the communication frequency +2If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/EIDE/.eide/eide.json index 7faa847..62a1332 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -71,9 +69,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -90,14 +88,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -116,6 +117,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -128,10 +137,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/EIDE/Makefile index b0b279b..55e0059 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/MDK-ARM/Project.uvoptx index 41c5474..c8cce0b 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/MDK-ARM/Project.uvprojx index 96dae20..405c17e 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/Src/main.c b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/Src/main.c index 08c904e..9a20673 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/Src/main.c +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/Src/main.c @@ -83,7 +83,7 @@ int main(void) APP_ConfigI2cSlave(); /* Wait for the button to be pressed */ - while(BSP_PB_GetState(BUTTON_KEY) == 1) + while(BSP_PB_GetState(BUTTON_KEY)) {} /* Enable I2C1 periphreal(as slave ) */ @@ -96,7 +96,7 @@ int main(void) APP_ConfigI2cMaster(); /* Wait for the button to be pressed */ - while(BSP_PB_GetState(BUTTON_KEY) == 1) + while(BSP_PB_GetState(BUTTON_KEY)) {} /* Enable I2C1 periphreal(as master ) */ diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/readme.txt b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/readme.txt index be4e598..1b5b8b4 100644 --- a/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_Polling/readme.txt @@ -47,10 +47,20 @@ receives data, the LED lights on the host board and slave board respectively. Otherwise, the LED light is blinking ================================================================================ 注意事项: +1. PB3 ------> I2C_SCL PB4 ------> I2C_SDA +2.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +1. PB3 ------> I2C_SCL PB4 ------> I2C_SDA +2.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/EIDE/.eide/eide.json index af19968..98531fa 100644 --- a/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -61,9 +59,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -80,14 +78,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -106,6 +107,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -118,10 +127,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/EIDE/Makefile index 1a68d51..280cadc 100644 --- a/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/MDK-ARM/Project.uvoptx index 258c4f5..fca7ca6 100644 --- a/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/MDK-ARM/Project.uvprojx index 5e61fb4..c13dee8 100644 --- a/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/readme.txt b/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/readme.txt index 8ff991d..665919e 100644 --- a/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/IWDG/IWDG_RESET/readme.txt @@ -43,7 +43,15 @@ configure the dog feeding time to 1.1s; 5. Observe that the LED is off. ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/EIDE/.eide/eide.json index 80317bd..feacf8c 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -65,9 +63,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -84,14 +82,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -110,6 +111,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -122,10 +131,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/EIDE/Makefile index 0c310f2..479047b 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/Inc/Config.txt b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/Inc/Config.txt new file mode 100644 index 0000000..5c4c421 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/Inc/Config.txt @@ -0,0 +1,12 @@ +[FilePath] +0=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_utils.c +1=../../../../../../Drivers/PY32F002B_HAL_Driver/Src/py32f002b_ll_lptim.c +[FileName] +0=py32f002b_ll_utils.c +1=py32f002b_ll_lptim.c +[Define] +0=PY32F002Bx5 +1=USE_FULL_LL_DRIVER +[User] +0=../Src/main.c +1=../Src/py32f002b_it.c diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/MDK-ARM/Project.uvoptx index abe53eb..283bbf2 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 CMSIS_AGDI - -X"" -O206 -S8 -C0 -P00 -N00("") -D00(00000000) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"" -O206 -S8 -C0 -P00 -N00("") -D00(00000000) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/MDK-ARM/Project.uvprojx index 4cd15ac..6a98f5f 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/Src/main.c b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/Src/main.c index 91e2df8..b941361 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/Src/main.c +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/Src/main.c @@ -86,7 +86,7 @@ int main(void) BSP_LED_On(LED_GREEN); /* Wait the button be pressed */ - while (BSP_PB_GetState(BUTTON_USER) != 0) + while (BSP_PB_GetState(BUTTON_USER)) { } diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/readme.txt b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/readme.txt index cac389c..e490e0b 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFE/readme.txt @@ -32,6 +32,14 @@ Example execution steps: 4. In the main loop ,the LED flashes at 2.5Hz,PA3 flips at 2.5Hz; ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/EIDE/.eide/eide.json index 80317bd..feacf8c 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -65,9 +63,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -84,14 +82,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -110,6 +111,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -122,10 +131,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/EIDE/Makefile index 0c310f2..479047b 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/MDK-ARM/Project.uvoptx index 81bac0d..1edfa94 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/MDK-ARM/Project.uvoptx @@ -125,7 +125,7 @@ 0 CMSIS_AGDI - -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"Any" -UAny -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/Src/main.c b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/Src/main.c index 6635a9e..af7e7e7 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/Src/main.c +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/Src/main.c @@ -86,7 +86,7 @@ int main(void) BSP_LED_On(LED_GREEN); /* Wait the button be pressed */ - while (BSP_PB_GetState(BUTTON_USER) != 0) + while (BSP_PB_GetState(BUTTON_USER)) { } diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/readme.txt b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/readme.txt index dd11c53..dfb9fca 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_ContinuousMode_WakeUp_WFI/readme.txt @@ -36,6 +36,14 @@ mode and waking up PA3 flips at 2.5Hz; ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.eide/eide.json index 80317bd..feacf8c 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -65,9 +63,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -84,14 +82,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -110,6 +111,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -122,10 +131,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/Makefile index 0c310f2..479047b 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/MDK-ARM/Project.uvoptx index d5de359..553835b 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 CMSIS_AGDI - -X"" -O206 -S0 -C0 -P00 -N00("") -D00(00000000) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"" -O206 -S0 -C0 -P00 -N00("") -D00(00000000) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/MDK-ARM/Project.uvprojx index 4cd15ac..6a98f5f 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/Src/main.c b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/Src/main.c index 8c99651..95a268c 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/Src/main.c +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/Src/main.c @@ -33,7 +33,7 @@ #include "py32f002bxx_ll_Start_Kit.h" /* Private define ------------------------------------------------------------*/ -#define Delay 40*3 +#define Delay 40*4 /* Private variables ---------------------------------------------------------*/ LL_LPTIM_InitTypeDef LPTIM_InitStruct = {0}; @@ -86,7 +86,7 @@ int main(void) BSP_LED_On(LED_GREEN); /* Wait for the button to be pressed */ - while (BSP_PB_GetState(BUTTON_USER) != 0) + while (BSP_PB_GetState(BUTTON_USER)) { } diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/readme.txt b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/readme.txt index 2ae139e..7a5ad1f 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFE/readme.txt @@ -34,6 +34,14 @@ Example execution steps: 4. you can see LED toggle ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.eide/eide.json index 80317bd..feacf8c 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -65,9 +63,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -84,14 +82,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -110,6 +111,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -122,10 +131,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/Makefile index 0c310f2..479047b 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/MDK-ARM/Project.uvoptx index d5de359..553835b 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 CMSIS_AGDI - -X"" -O206 -S0 -C0 -P00 -N00("") -D00(00000000) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"" -O206 -S0 -C0 -P00 -N00("") -D00(00000000) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/MDK-ARM/Project.uvprojx index 4cd15ac..6a98f5f 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/Src/main.c b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/Src/main.c index ef2b260..f15d3ca 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/Src/main.c +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/Src/main.c @@ -33,7 +33,7 @@ #include "py32f002bxx_ll_Start_Kit.h" /* Private define ------------------------------------------------------------*/ -#define Delay 40*3 +#define Delay 40*4 /* Private variables ---------------------------------------------------------*/ LL_LPTIM_InitTypeDef LPTIM_InitStruct = {0}; @@ -87,7 +87,7 @@ int main(void) BSP_LED_On(LED_GREEN); /* Wait for the button to be pressed */ - while (BSP_PB_GetState(BUTTON_USER) != 0) + while (BSP_PB_GetState(BUTTON_USER)) { } diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/readme.txt b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/readme.txt index 3568a0b..76e2ddf 100644 --- a/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/LPTIM/LPTIM_OnceMode_WakeUp_WFI/readme.txt @@ -34,6 +34,14 @@ Example execution steps: 4. you can see LED toggle ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/EIDE/.eide/eide.json index 4d41157..32eb69b 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -68,9 +66,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -87,14 +85,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -113,6 +114,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -125,10 +134,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/EIDE/Makefile index 95b77b0..39bcee7 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/MDK-ARM/Project.uvoptx index 67f9839..f00f390 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/MDK-ARM/Project.uvprojx index 5a70bcc..8e5af1f 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/readme.txt b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/readme.txt index 895c1f3..33f1cc8 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFE/readme.txt @@ -33,14 +33,22 @@ Example execution steps: 4. the LED are toggled in 200ms intervals. ================================================================================ 注意事项: -1,演示此样例功能时需要断开swd连接线并重新上电,因为默认情况下,仿真器会把 +1.演示此样例功能时需要断开swd连接线并重新上电,因为默认情况下,仿真器会把 DBGMCU_CR.DBG_STOP置位。 -2,注意关闭systick中断,防止该中断唤醒MCU。 +2.注意关闭systick中断,防止该中断唤醒MCU。 +3.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: -1. to demonstrate this sample function, you need to disconnect the swd +1.to demonstrate this sample function, you need to disconnect the swd connection wire and re-power,because by default, the emulator will set the DBGMCU_CR.DBG_STOP. -2. Be careful to turn off the systick interrupt to avoid this interrupt waking +2.Be careful to turn off the systick interrupt to avoid this interrupt waking up the MCU. +3.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/EIDE/.eide/eide.json index 4d41157..32eb69b 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -68,9 +66,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -87,14 +85,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -113,6 +114,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -125,10 +134,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/EIDE/Makefile index 95b77b0..39bcee7 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/MDK-ARM/Project.uvoptx index 67f9839..f00f390 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/MDK-ARM/Project.uvprojx index 5a70bcc..8e5af1f 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/readme.txt b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/readme.txt index 7ef2c1f..24c4e25 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_SLEEP_WFI/readme.txt @@ -33,15 +33,23 @@ Example execution steps: 4. the LED are toggled in 200ms intervals. ================================================================================ 注意事项: -1,演示此样例功能时需要断开swd连接线并重新上电,因为默认情况下,仿真器会把 +1.演示此样例功能时需要断开swd连接线并重新上电,因为默认情况下,仿真器会把 DBGMCU_CR.DBG_STOP置位。 -2,注意关闭systick中断,防止该中断唤醒MCU。 +2.注意关闭systick中断,防止该中断唤醒MCU。 +3.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: -1. to demonstrate this sample function, you need to disconnect the swd +1.to demonstrate this sample function, you need to disconnect the swd connection wire and re-power,because by default, the emulator will set the DBGMCU_CR.DBG_STOP. -2. Be careful to turn off the systick interrupt to avoid this interrupt waking +2.Be careful to turn off the systick interrupt to avoid this interrupt waking up the MCU. +3.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/EIDE/.eide/eide.json index 4d41157..32eb69b 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -68,9 +66,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -87,14 +85,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -113,6 +114,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -125,10 +134,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/EIDE/Makefile index 95b77b0..39bcee7 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/MDK-ARM/Project.uvoptx index 2e89e25..df29497 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/MDK-ARM/Project.uvprojx index 5a70bcc..8e5af1f 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/readme.txt b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/readme.txt index 295c231..5060f84 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFE/readme.txt @@ -33,14 +33,22 @@ Example execution steps: 4. the LED are toggled in 200ms intervals. ================================================================================ 注意事项: -1,演示此样例功能时需要断开swd连接线并重新上电,因为默认情况下,仿真器会把 +1.演示此样例功能时需要断开swd连接线并重新上电,因为默认情况下,仿真器会把 DBGMCU_CR.DBG_STOP置位。 -2,注意关闭systick中断,防止该中断唤醒MCU。 +2.注意关闭systick中断,防止该中断唤醒MCU。 +3.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: -1. to demonstrate this sample function, you need to disconnect the swd +1.to demonstrate this sample function, you need to disconnect the swd connection wire and re-power,because by default, the emulator will set the DBGMCU_CR.DBG_STOP. -2. Be careful to turn off the systick interrupt to avoid this interrupt waking +2.Be careful to turn off the systick interrupt to avoid this interrupt waking up the MCU. +3.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/EIDE/.eide/eide.json index 4d41157..32eb69b 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -68,9 +66,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -87,14 +85,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -113,6 +114,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -125,10 +134,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/EIDE/Makefile index 95b77b0..39bcee7 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/MDK-ARM/Project.uvoptx index 67f9839..f00f390 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/MDK-ARM/Project.uvprojx index 5a70bcc..8e5af1f 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/readme.txt b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/readme.txt index 00d3546..c8a91df 100644 --- a/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/PWR/PWR_STOP_WFI/readme.txt @@ -33,14 +33,22 @@ Example execution steps: 4. the LED are toggled in 200ms intervals. ================================================================================ 注意事项: -1,演示此样例功能时需要断开swd连接线并重新上电,因为默认情况下,仿真器会把 +1.演示此样例功能时需要断开swd连接线并重新上电,因为默认情况下,仿真器会把 DBGMCU_CR.DBG_STOP置位。 -2,注意关闭systick中断,防止该中断唤醒MCU。 +2.注意关闭systick中断,防止该中断唤醒MCU。 +3.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: -1. to demonstrate this sample function, you need to disconnect the swd +1.to demonstrate this sample function, you need to disconnect the swd connection wire and re-power,because by default, the emulator will set the DBGMCU_CR.DBG_STOP. -2. Be careful to turn off the systick interrupt to avoid this interrupt waking +2.Be careful to turn off the systick interrupt to avoid this interrupt waking up the MCU. +3.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/PY32F002B_LL Sample Description.pdf b/Projects/PY32F002B-STK/Example_LL/PY32F002B_LL Sample Description.pdf index 562c188..9983be3 100644 Binary files a/Projects/PY32F002B-STK/Example_LL/PY32F002B_LL Sample Description.pdf and b/Projects/PY32F002B-STK/Example_LL/PY32F002B_LL Sample Description.pdf differ diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/EIDE/.eide/eide.json index 0e28bde..59490bd 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -65,9 +63,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -84,14 +82,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -110,6 +111,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -122,10 +131,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/EIDE/Makefile index 0a8183e..5ac5ecf 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/MDK-ARM/Project.uvoptx index 1cda216..3121c50 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/MDK-ARM/Project.uvprojx index 101fe76..1396764 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/Src/main.c b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/Src/main.c index 3b78591..b318cda 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/Src/main.c +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/Src/main.c @@ -48,7 +48,7 @@ int main(void) BSP_PB_Init(BUTTON_USER,BUTTON_MODE_GPIO); /* Wait for the BUTTON to be pressed */ - while(BSP_PB_GetState(BUTTON_USER) != 0) + while(BSP_PB_GetState(BUTTON_USER)) { } diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/readme.txt b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/readme.txt index 334acf3..38d6c7e 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSE_Bypass_Output/readme.txt @@ -34,7 +34,15 @@ Example execution steps: 4. The PA07 output HSE waveform (24MHz) can be observed by the oscilloscope. ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/EIDE/.eide/eide.json index 0e28bde..59490bd 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -65,9 +63,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -84,14 +82,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -110,6 +111,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -122,10 +131,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/EIDE/Makefile index 0a8183e..5ac5ecf 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/MDK-ARM/Project.uvoptx index 1cda216..3121c50 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/MDK-ARM/Project.uvprojx index 101fe76..1396764 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/readme.txt b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/readme.txt index 21fe9b5..31c4ed6 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_HSI_Output/readme.txt @@ -30,7 +30,15 @@ Example execution steps: 2. The PA07 output HSI waveform (24MHz) can be observed by the oscilloscope. ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/EIDE/.eide/eide.json index 0e28bde..59490bd 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -65,9 +63,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -84,14 +82,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -110,6 +111,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -122,10 +131,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/EIDE/Makefile index 0a8183e..5ac5ecf 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/MDK-ARM/Project.uvoptx index f899828..292c744 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/MDK-ARM/Project.uvprojx index 101fe76..1396764 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/Src/main.c b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/Src/main.c index c41880a..875ec57 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/Src/main.c +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/Src/main.c @@ -48,7 +48,7 @@ int main(void) BSP_PB_Init(BUTTON_USER,BUTTON_MODE_GPIO); /* Wait for the BUTTON to be pressed */ - while(BSP_PB_GetState(BUTTON_USER) != 0) + while(BSP_PB_GetState(BUTTON_USER)) { } @@ -104,6 +104,13 @@ static void APP_ConfigGPIO(void) */ void APP_SystemClockConfig(void) { + /* Disable Low Speed External (LSE) crystal */ + LL_RCC_LSE_Disable(); + while(LL_RCC_LSE_IsReady() != 0) + { + } + /* Set LSE oscillator drive capability */ + LL_RCC_LSE_SetDriveCapability(LL_RCC_LSEDRIVE_MEDIUM); /* Enable Low Speed External (LSE) crystal */ LL_RCC_LSE_Enable(); while(LL_RCC_LSE_IsReady() != 1) diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/readme.txt b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/readme.txt index f3695af..d2e4156 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSE_Output/readme.txt @@ -31,7 +31,15 @@ Example execution steps: observed by the oscilloscope. ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/EIDE/.eide/eide.json index 0e28bde..59490bd 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -65,9 +63,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -84,14 +82,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -110,6 +111,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -122,10 +131,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/EIDE/Makefile index 0a8183e..5ac5ecf 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/MDK-ARM/Project.uvoptx index 89a9c3b..7845ded 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/MDK-ARM/Project.uvprojx index 101fe76..1396764 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/Src/main.c b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/Src/main.c index 6f1a755..a8744fb 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/Src/main.c +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/Src/main.c @@ -48,7 +48,7 @@ int main(void) BSP_PB_Init(BUTTON_USER,BUTTON_MODE_GPIO); /* Wait for the BUTTON to be pressed */ - while(BSP_PB_GetState(BUTTON_USER) != 0) + while(BSP_PB_GetState(BUTTON_USER)) { } diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/readme.txt b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/readme.txt index 7ba3113..905bc4d 100644 --- a/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/RCC/RCC_LSI_Output/readme.txt @@ -31,7 +31,15 @@ Example execution steps: observed by the oscilloscope. ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/EIDE/.eide/eide.json index b8be8cf..aa7cffb 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -68,9 +66,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -87,14 +85,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -113,6 +114,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -125,10 +134,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/EIDE/Makefile index dbdbf56..b3d558c 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/MDK-ARM/Project.uvoptx index ac524f8..5ecac5d 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/MDK-ARM/Project.uvprojx index b0a52ab..dd1082a 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/Src/main.c b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/Src/main.c index b946003..6729bb8 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/Src/main.c +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/Src/main.c @@ -72,7 +72,7 @@ int main(void) APP_ConfigSPI(); /* wait for the button to be pressed */ - while(BSP_PB_GetState(BUTTON_KEY) == 1); + while(BSP_PB_GetState(BUTTON_KEY)); /* Enable SPI1 */ LL_SPI_Enable(SPI1); diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/readme.txt b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/readme.txt index db79f7a..98d597e 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_IT_Init/readme.txt @@ -38,14 +38,9 @@ SCK(PB2) -----> SCK(PB2) MISO(PA1) <----- MISO(PA1) MOSI(PA7) -----> MOSI(PA7) GND <-----> GND -5.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; -STK板 USB转TTL模块 -PB4(TX) --> RX -PB5(RX) --> TX -GND --> GND -6.主从机上电 -7.按下从机复位按键先运行从机程序,再按下主机用户按键运行主机程序 -8.观察串口助手,如果主、从机串口助手均接收到“SPI transfer succeeded”则通信成功; +5.主从机上电 +6.按下从机复位按键先运行从机程序,再按下主机用户按键运行主机程序 +7.观察串口助手,如果主、从机串口助手均接收到“SPI transfer succeeded”则通信成功; 如果主、从机串口助手接收到“SPI Transfer Error”则通信失败。 Example execution steps: @@ -59,16 +54,10 @@ SCK(PB2) -----> SCK(PB2) MISO(PA1) <----- MISO(PA1) MOSI(PA7) -----> MOSI(PA7) GND <-----> GND -5.connect the PC to the STK board via the USB to TTL module, the connection -between the STK board and the USB to TTL module is as follows: -STK board USB to TTL module -PB4(TX) --> RX -PB5(RX) --> TX -GND --> GND -6.Power on the master and slave -7.Press the slave reset button to run the slave program first, then press the +5.Power on the master and slave +6.Press the slave reset button to run the slave program first, then press the host user button to run the host program -8.Observe the serial assistant, if both master and slave serial assistant +7.Observe the serial assistant, if both master and slave serial assistant receive "SPI transfer succeeded", the communication is successful; If the master and slave serial assistant receive "SPI Transfer Error",the communication fails. @@ -81,6 +70,20 @@ communication fails. 脚) 4.板子上的LED灯引脚为PA1,与SPI_MISO引脚为同一个,不能再用LED表示通讯成功或失败 的状态。 +5.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart +STK板 USB转TTL模块 +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART配置为波特率115200,数据位8,停止位1,校验位None +@PrintfConfigEnd +6.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 +7.开发板焊接了FLASH器件,使用该样例建议去除R42/R44/R45/R46/R47五个电阻。没有焊接 +FLASH器件,无需关注这五个电阻。 Notes: 1.You must first press the slave reset button to make the slave program run @@ -93,4 +96,20 @@ sample uses the NSS software mode, no need to connect the NSS pins) 4.The LED pin on the board is PA1, which is the same as the SPI_MISO pin, and can no longer use LEDs to indicate the status of communication success or failure. +5.Connect the PC to the STK board through the USB to TTL module, and the connection +method between the STK board and the USB to TTL module is as follows: +@PrintfConfigStart +STK board USB to TTL module +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 115200, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd +6.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required +7.The development board is soldered FLASH devices, the use of this sample is +recommended to remove the five resistors R41/R45/R46/R47/R48. No FLASH device is +soldered, no need to pay attention to these five resistors. ================================================================================ diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/EIDE/.eide/eide.json index b8be8cf..aa7cffb 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -68,9 +66,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -87,14 +85,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -113,6 +114,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -125,10 +134,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/EIDE/Makefile index dbdbf56..b3d558c 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/MDK-ARM/Project.uvoptx index ac524f8..5ecac5d 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/MDK-ARM/Project.uvprojx index b0a52ab..dd1082a 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/Src/main.c b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/Src/main.c index c8bb1e5..6847daf 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/Src/main.c +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/Src/main.c @@ -73,7 +73,7 @@ int main(void) APP_ConfigSPI(); /* wait for the button to be pressed */ - while(BSP_PB_GetState(BUTTON_KEY) == 1); + while(BSP_PB_GetState(BUTTON_KEY)); /* Enable SPI1 */ LL_SPI_Enable(SPI1); diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/readme.txt b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/readme.txt index a7b8802..50ab65d 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexMaster_Polling_Init/readme.txt @@ -38,14 +38,9 @@ SCK(PB2) -----> SCK(PB2) MISO(PA1) <----- MISO(PA1) MOSI(PA7) -----> MOSI(PA7) GND <-----> GND -5.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; -STK板 USB转TTL模块 -PB4(TX) --> RX -PB5(RX) --> TX -GND --> GND -6.主从机上电 -7.按下从机复位按键先运行从机程序,再按下主机用户按键运行主机程序 -8.观察串口助手,如果主、从机串口助手均接收到“SPI transfer succeeded”则通信成功; +5..主从机上电 +6.按下从机复位按键先运行从机程序,再按下主机用户按键运行主机程序 +7.观察串口助手,如果主、从机串口助手均接收到“SPI transfer succeeded”则通信成功; 如果主、从机串口助手接收到“SPI Transfer Error”则通信失败。 Example execution steps: @@ -61,16 +56,10 @@ SCK(PB2) -----> SCK(PB2) MISO(PA1) <----- MISO(PA1) MOSI(PA7) -----> MOSI(PA7) GND <-----> GND -5.connect the PC to the STK board via the USB to TTL module, the connection -between the STK board and the USB to TTL module is as follows: -STK board USB to TTL module -PB4(TX) --> RX -PB5(RX) --> TX -GND --> GND -6.Power on the master and slave -7.Press the slave reset button to run the slave program first, then press the +5.Power on the master and slave +6.Press the slave reset button to run the slave program first, then press the host user button to run the host program -8.Observe the serial assistant, if both master and slave serial assistant +7.Observe the serial assistant, if both master and slave serial assistant receive "SPI transfer succeeded", the communication is successful; If the master and slave serial assistant receive "SPI Transfer Error",the communication fails. @@ -83,6 +72,20 @@ communication fails. 脚) 4.板子上的LED灯引脚为PA1,与SPI_MISO引脚为同一个,不能再用LED表示通讯成功或失败 的状态。 +5.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart +STK板 USB转TTL模块 +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART配置为波特率115200,数据位8,停止位1,校验位None +@PrintfConfigEnd +6.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 +7.开发板焊接了FLASH器件,使用该样例建议去除R42/R44/R45/R46/R47五个电阻。没有焊接 +FLASH器件,无需关注这五个电阻。 Notes: 1.You must first press the slave reset button to make the slave program run @@ -95,4 +98,20 @@ sample uses the NSS software mode, no need to connect the NSS pins) 4.The LED pin on the board is PA1, which is the same as the SPI_MISO pin, and can no longer use LEDs to indicate the status of communication success or failure. +5.Connect the PC to the STK board through the USB to TTL module, and the connection +method between the STK board and the USB to TTL module is as follows: +@PrintfConfigStart +STK board USB to TTL module +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 115200, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd +6.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required +7.The development board is soldered FLASH devices, the use of this sample is +recommended to remove the five resistors R41/R45/R46/R47/R48. No FLASH device is +soldered, no need to pay attention to these five resistors. ================================================================================ diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/EIDE/.eide/eide.json index b8be8cf..aa7cffb 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -68,9 +66,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -87,14 +85,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -113,6 +114,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -125,10 +134,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/EIDE/Makefile index dbdbf56..b3d558c 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/MDK-ARM/Project.uvoptx index ac524f8..5ecac5d 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/MDK-ARM/Project.uvprojx index b0a52ab..dd1082a 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/readme.txt b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/readme.txt index db79f7a..98d597e 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_IT_Init/readme.txt @@ -38,14 +38,9 @@ SCK(PB2) -----> SCK(PB2) MISO(PA1) <----- MISO(PA1) MOSI(PA7) -----> MOSI(PA7) GND <-----> GND -5.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; -STK板 USB转TTL模块 -PB4(TX) --> RX -PB5(RX) --> TX -GND --> GND -6.主从机上电 -7.按下从机复位按键先运行从机程序,再按下主机用户按键运行主机程序 -8.观察串口助手,如果主、从机串口助手均接收到“SPI transfer succeeded”则通信成功; +5.主从机上电 +6.按下从机复位按键先运行从机程序,再按下主机用户按键运行主机程序 +7.观察串口助手,如果主、从机串口助手均接收到“SPI transfer succeeded”则通信成功; 如果主、从机串口助手接收到“SPI Transfer Error”则通信失败。 Example execution steps: @@ -59,16 +54,10 @@ SCK(PB2) -----> SCK(PB2) MISO(PA1) <----- MISO(PA1) MOSI(PA7) -----> MOSI(PA7) GND <-----> GND -5.connect the PC to the STK board via the USB to TTL module, the connection -between the STK board and the USB to TTL module is as follows: -STK board USB to TTL module -PB4(TX) --> RX -PB5(RX) --> TX -GND --> GND -6.Power on the master and slave -7.Press the slave reset button to run the slave program first, then press the +5.Power on the master and slave +6.Press the slave reset button to run the slave program first, then press the host user button to run the host program -8.Observe the serial assistant, if both master and slave serial assistant +7.Observe the serial assistant, if both master and slave serial assistant receive "SPI transfer succeeded", the communication is successful; If the master and slave serial assistant receive "SPI Transfer Error",the communication fails. @@ -81,6 +70,20 @@ communication fails. 脚) 4.板子上的LED灯引脚为PA1,与SPI_MISO引脚为同一个,不能再用LED表示通讯成功或失败 的状态。 +5.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart +STK板 USB转TTL模块 +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART配置为波特率115200,数据位8,停止位1,校验位None +@PrintfConfigEnd +6.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 +7.开发板焊接了FLASH器件,使用该样例建议去除R42/R44/R45/R46/R47五个电阻。没有焊接 +FLASH器件,无需关注这五个电阻。 Notes: 1.You must first press the slave reset button to make the slave program run @@ -93,4 +96,20 @@ sample uses the NSS software mode, no need to connect the NSS pins) 4.The LED pin on the board is PA1, which is the same as the SPI_MISO pin, and can no longer use LEDs to indicate the status of communication success or failure. +5.Connect the PC to the STK board through the USB to TTL module, and the connection +method between the STK board and the USB to TTL module is as follows: +@PrintfConfigStart +STK board USB to TTL module +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 115200, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd +6.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required +7.The development board is soldered FLASH devices, the use of this sample is +recommended to remove the five resistors R41/R45/R46/R47/R48. No FLASH device is +soldered, no need to pay attention to these five resistors. ================================================================================ diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/EIDE/.eide/eide.json index b8be8cf..aa7cffb 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -68,9 +66,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -87,14 +85,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -113,6 +114,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -125,10 +134,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/EIDE/Makefile index dbdbf56..b3d558c 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/MDK-ARM/Project.uvoptx index ac524f8..5ecac5d 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/MDK-ARM/Project.uvprojx index b0a52ab..dd1082a 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/readme.txt b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/readme.txt index 43555ba..f5aec1d 100644 --- a/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/SPI/SPI_TwoBoards_FullDuplexSlave_Polling_Init/readme.txt @@ -38,14 +38,9 @@ SCK(PB2) -----> SCK(PB2) MISO(PA1) <----- MISO(PA1) MOSI(PA7) -----> MOSI(PA7) GND <-----> GND -5.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; -STK板 USB转TTL模块 -PB4(TX) --> RX -PB5(RX) --> TX -GND --> GND -6.主从机上电 -7.按下从机复位按键先运行从机程序,再按下主机用户按键运行主机程序 -8.观察串口助手,如果主、从机串口助手均接收到“SPI transfer succeeded”则通信成功; +5.主从机上电 +6.按下从机复位按键先运行从机程序,再按下主机用户按键运行主机程序 +7.观察串口助手,如果主、从机串口助手均接收到“SPI transfer succeeded”则通信成功; 如果主、从机串口助手接收到“SPI Transfer Error”则通信失败。 Example execution steps: @@ -61,16 +56,10 @@ SCK(PB2) -----> SCK(PB2) MISO(PA1) <----- MISO(PA1) MOSI(PA7) -----> MOSI(PA7) GND <-----> GND -5.connect the PC to the STK board via the USB to TTL module, the connection -between the STK board and the USB to TTL module is as follows: -STK board USB to TTL module -PB4(TX) --> RX -PB5(RX) --> TX -GND --> GND -6.Power on the master and slave -7.Press the slave reset button to run the slave program first, then press the +5.Power on the master and slave +6.Press the slave reset button to run the slave program first, then press the host user button to run the host program -8.Observe the serial assistant, if both master and slave serial assistant +7.Observe the serial assistant, if both master and slave serial assistant receive"SPI transfer succeeded", the communication is successful; If the master and slave serial assistant receive "SPI Transfer Error",the communication fails. @@ -83,6 +72,21 @@ communication fails. 脚) 4.板子上的LED灯引脚为PA1,与SPI_MISO引脚为同一个,不能再用LED表示通讯成功或失败 的状态。 +5.通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart +STK板 USB转TTL模块 +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART配置为波特率115200,数据位8,停止位1,校验位None +@PrintfConfigEnd +6.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 +7.开发板焊接了FLASH器件,使用该样例建议去除R42/R44/R45/R46/R47五个电阻。没有焊接 +FLASH器件,无需关注这五个电阻。 + Notes: 1.You must first press the slave reset button to make the slave program run first,and then press the host user button to start running the host program, @@ -94,4 +98,20 @@ sample uses the NSS software mode, no need to connect the NSS pins) 4.The LED pin on the board is PA1, which is the same as the SPI_MISO pin, and can no longer use LEDs to indicate the status of communication success or failure. +5.Connect the PC to the STK board through the USB to TTL module, and the connection +method between the STK board and the USB to TTL module is as follows: +@PrintfConfigStart +STK board USB to TTL module +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 115200, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd +6.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required +7.The development board is soldered FLASH devices, the use of this sample is +recommended to remove the five resistors R41/R45/R46/R47/R48. No FLASH device is +soldered, no need to pay attention to these five resistors. ================================================================================ diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/EIDE/.eide/eide.json index 2be8100..bc6f2c5 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -71,9 +69,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -90,14 +88,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -116,6 +117,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -128,10 +137,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/EIDE/Makefile index 36ccdc3..cd18a5c 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/MDK-ARM/Project.uvoptx index e803b1a..91239c7 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/MDK-ARM/Project.uvprojx index 5e36a3e..074a21d 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/readme.txt b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/readme.txt index 591af67..64a9930 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_6Step_Init/readme.txt @@ -33,7 +33,7 @@ Example execution steps: 2. Observe PA5/PB2/PA3/PB1/PA4/PB0 waveforms with logic analyzer ================================================================================ 注意事项: -换向步骤和波形如下所示: +1.换向步骤和波形如下所示: 第一步 第二步 第三步 第四步 第五步 第六步 CH1 1 0 0 0 0 1 CH1N 0 0 1 1 0 0 @@ -50,9 +50,13 @@ CH2N (PB01) |||||||||||||||________________________________ CH3 (PA04) _______||||||||||||||||________________________ CH3N (PB00) ________________________________||||||||||||||| +2.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: -The commutation steps and waveforms are shown below: +1.The commutation steps and waveforms are shown below: step 1 step 2 step 3 step 4 step 5 step 6 CH1 1 0 0 0 0 1 CH1N 0 0 1 1 0 0 @@ -69,4 +73,8 @@ CH2N (PB01) |||||||||||||||________________________________ CH3 (PA04) _______||||||||||||||||________________________ CH3N (PB00) ________________________________||||||||||||||| +2.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/EIDE/.eide/eide.json index 2be8100..bc6f2c5 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -71,9 +69,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -90,14 +88,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -116,6 +117,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -128,10 +137,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/EIDE/Makefile index 36ccdc3..cd18a5c 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/MDK-ARM/Project.uvoptx index 39eddba..2f9ac62 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/MDK-ARM/Project.uvprojx index 5e36a3e..074a21d 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/readme.txt b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/readme.txt index 15f11d1..75fb922 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_Init/readme.txt @@ -32,7 +32,15 @@ Example execution steps: 2. LED will toggled once per the button is pressed ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.eide/eide.json index 2be8100..bc6f2c5 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -71,9 +69,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -90,14 +88,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -116,6 +117,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -128,10 +137,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/Makefile index 36ccdc3..cd18a5c 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/MDK-ARM/Project.uvoptx index e803b1a..91239c7 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/MDK-ARM/Project.uvprojx index 5e36a3e..074a21d 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/readme.txt b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/readme.txt index 2db1f73..322e03e 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_InputCapture_XORCh1Ch2Ch3/readme.txt @@ -34,7 +34,15 @@ Example execution steps: third pin polarity changes ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/EIDE/.eide/eide.json index af19968..98531fa 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -61,9 +59,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -80,14 +78,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -106,6 +107,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -118,10 +127,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/EIDE/Makefile index 1a68d51..280cadc 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/MDK-ARM/Project.uvoptx index 642d66f..dfb95d1 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/MDK-ARM/Project.uvprojx index 5e61fb4..c13dee8 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/readme.txt b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/readme.txt index 21f945d..cccfc04 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle/readme.txt @@ -32,7 +32,15 @@ Example execution steps: 2. Observe PA5 with an oscilloscope ,toggle frequency is 0.5 Hz ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/EIDE/.eide/eide.json index af19968..98531fa 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -61,9 +59,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -80,14 +78,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -106,6 +107,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -118,10 +127,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/EIDE/Makefile index 1a68d51..280cadc 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/MDK-ARM/Project.uvoptx index e6b4687..8b2c46c 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/MDK-ARM/Project.uvprojx index 5e61fb4..c13dee8 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/readme.txt b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/readme.txt index 360a772..92f32a3 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_OC_Toggle_IT/readme.txt @@ -35,7 +35,15 @@ Example execution steps: 3. LED is toggled at 0.5Hz frequency ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/EIDE/.eide/eide.json index 41c9a10..d430f43 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -68,9 +66,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -87,14 +85,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -113,6 +114,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -125,10 +134,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/EIDE/Makefile index a659d17..9082f2f 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/MDK-ARM/Project.uvoptx index 4dfcef7..1693a54 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/MDK-ARM/Project.uvprojx index e609a69..d0f35ae 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/Src/main.c b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/Src/main.c index eab34cb..55fe229 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/Src/main.c +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/Src/main.c @@ -64,7 +64,7 @@ int main(void) BSP_PB_Init(BUTTON_USER,BUTTON_MODE_GPIO); /* wait the button to be pressed */ - while(BSP_PB_GetState(BUTTON_USER) != 0) + while(BSP_PB_GetState(BUTTON_USER)) {} /* Set TIM1 PWM related GPIO */ diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/readme.txt b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/readme.txt index f4820c5..0543c74 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_PWM3CH_Init/readme.txt @@ -34,12 +34,22 @@ Example execution steps: 3. Observe PA5/PB0/PA4 waveforms with logic analyzer ================================================================================ 注意事项: +1. PA5------>CH1 75% PB0------>CH2 50% PA4------>CH3 25% +2.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +1. PA5------>CH1 75% PB0------>CH2 50% PA4------>CH3 25% +2.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/EIDE/.eide/eide.json index 41c9a10..d430f43 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -68,9 +66,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -87,14 +85,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -113,6 +114,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -125,10 +134,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/EIDE/Makefile index a659d17..9082f2f 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/Inc/main.h b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/Inc/main.h index 0cd03fa..9dfdb2e 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/Inc/main.h +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/Inc/main.h @@ -45,12 +45,8 @@ extern "C" { #include "py32f002b_ll_utils.h" #include "py32f002b_ll_pwr.h" #include "py32f002b_ll_gpio.h" - #include "py32f002b_ll_adc.h" -#include "py32f002b_ll_comp.h" - #include "py32f002b_ll_iwdg.h" -#include "py32f002b_ll_crc.h" #include "py32f002b_ll_tim.h" #if defined(USE_FULL_ASSERT) diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/MDK-ARM/Project.uvoptx index 37146e1..8671fb3 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/MDK-ARM/Project.uvoptx @@ -10,7 +10,7 @@ *.s*; *.src; *.a* *.obj; *.o *.lib - *.txt; *.h; *.inc + *.txt; *.h; *.inc; *.md *.plm *.cpp 0 @@ -120,12 +120,12 @@ 0 CMSIS_AGDI - -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/MDK-ARM/Project.uvprojx index e609a69..7b10efd 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/MDK-ARM/Project.uvprojx @@ -10,18 +10,18 @@ Project 0x4 ARM-ADS - 5060750::V5.06 update 6 (build 750)::ARMCC + 5060960::V5.06 update 7 (build 960)::.\ARMCC 0 PY32F002Bx5 Puya - Puya.PY32F0xx_DFP.1.2.0 + Puya.PY32F0xx_DFP.1.2.6 https://www.puyasemi.com/uploadfiles/ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h @@ -185,6 +185,8 @@ 0 0 0 + 0 + 0 0 0 8 @@ -351,7 +353,7 @@ 0 0 0 - 0 + 4 diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/readme.txt b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/readme.txt index 0052c40..6580937 100644 --- a/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/TIM/TIM1_TimeBase_Init/readme.txt @@ -31,7 +31,15 @@ Example execution steps: 2. The update interruption generated once per second,then LED toggled ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/EIDE/.eide/eide.json index ba7a24d..eb2dd12 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -71,9 +69,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -90,14 +88,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -116,6 +117,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -128,10 +137,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/EIDE/Makefile index 73f2bb1..2c93dd9 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/MDK-ARM/Project.uvoptx index 1ba162c..9ac2d54 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/MDK-ARM/Project.uvprojx index cf45bbd..9e0696c 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/Src/main.c b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/Src/main.c index 843c8d0..5d9c11a 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/Src/main.c +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/Src/main.c @@ -80,6 +80,13 @@ int main(void) /* Transmit data */ APP_UsartTransmit_IT(USART1, (uint8_t*)aTxBuffer, sizeof(aTxBuffer)-1); } + else if((LL_USART_IsActiveFlag_ABRE(USART1) == 1) && (LL_USART_IsActiveFlag_ABRF(USART1) == 1)) + { + /* Baud Rate Adaptive Detection Error */ + } + else + { + } } } @@ -115,7 +122,7 @@ static void APP_SystemClockConfig(void) /** * @brief USART configuration functions - * @param USARTx:USART Instance,This parameter can be one of the following values:USART1、USART2 + * @param USARTx:USART1 Instance * @retval None */ static void APP_ConfigUsart(USART_TypeDef *USARTx) @@ -187,7 +194,7 @@ static void APP_ConfigUsart(USART_TypeDef *USARTx) /** * @brief USART transmission function - * @param USARTx:USART Instance,This parameter can be one of the following values:USART1、USART2 + * @param USARTx:USART1 Instance * @param pData:Pointer to transmission buffer * @param Size:Size of transmission buffer * @retval None @@ -204,7 +211,7 @@ static void APP_UsartTransmit_IT(USART_TypeDef *USARTx, uint8_t *pData, uint16_t /** * @brief USART receive function - * @param USARTx:USART Instance,This parameter can be one of the following values:USART1、USART2 + * @param USARTx:USART1 Instance * @param pData:Pointer to receive buffer * @param Size:Size of receive buffer * @retval None @@ -225,7 +232,7 @@ static void APP_UsartReceive_IT(USART_TypeDef *USARTx, uint8_t *pData, uint16_t /** * @brief USART interrupt handler function - * @param USARTx:USART Instance,This parameter can be one of the following values:USART1、USART2 + * @param USARTx:USART1 Instance * @retval None */ void APP_UsartIRQCallback(USART_TypeDef *USARTx) @@ -274,6 +281,11 @@ void APP_UsartIRQCallback(USART_TypeDef *USARTx) /* The transmit data register is not empty */ if ((LL_USART_IsActiveFlag_TXE(USARTx) != RESET) && (LL_USART_IsEnabledIT_TXE(USARTx) != RESET)) { + /* To prevent the TC flag bit from being affected by other operations during + data transmission, read the SR register in conjunction with write the DR + Register to clear the TC flag bit. + */ + (void)(USARTx->SR); LL_USART_TransmitData8(USARTx, *TxBuff); TxBuff++; diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/readme.txt b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/readme.txt index dd64d96..9ff4407 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_AutoBaund_IT_Init/readme.txt @@ -26,29 +26,42 @@ GCC Version: GNU Arm Embedded Toolchain 10.3-2021.10 使用步骤: 1. 编译并下载程序到MCU; 2. 通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart STK板 USB转TTL模块 -PB4(TX) --> RX -PB5(RX) --> TX -GND --> GND -3. PC端打开串口调试助手,正确连接上通讯COM口, - 波特率设置为9600,1位停止位,8位数据位,无奇偶校验。 +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART配置为波特率9600,数据位8,停止位1,校验位None +@PrintfConfigEnd +3. PC端打开串口调试助手,正确连接上通讯COM口,波特率设置为9600。 4. 调试助手发送一个字符0x55,MCU反馈字符串:Auto BaudRate Test; Example execution steps: 1. compile and download the program to MCU and run it; -2. Connect PC and STK board through USB to TTL module and the connection method -is as follows -STK board USB to TTL moudle -PB4(TX) --> RX -PB5(RX) --> TX -GND --> GND +2. Connect the PC to the STK board through the USB to TTL module, and the connection +method between the STK board and the USB to TTL module is as follows: +@PrintfConfigStart +STK board USB to TTL module +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 9600, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd 3. Open the serial port Assistant on the PC, connect the COM port correctly, and -set the baud rate to 9600,1 stop bit, and 8 data bit ,without parity check. +set the baud rate to 9600. 4. Send a character 0x55 using the serial assistant. The MCU will return the string "Auto BaudRate Test". ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/EIDE/.eide/eide.json index ba7a24d..eb2dd12 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -71,9 +69,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -90,14 +88,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -116,6 +117,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -128,10 +137,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/EIDE/Makefile index 73f2bb1..2c93dd9 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/Inc/main.h b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/Inc/main.h index f542a7e..6441443 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/Inc/main.h +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/Inc/main.h @@ -55,6 +55,7 @@ extern "C" { /* Exported variables prototypes ---------------------------------------------*/ /* Exported functions prototypes ---------------------------------------------*/ void APP_ErrorHandler(void); +void APP_UsartErrorCallback(void); void APP_UsartIRQCallback(USART_TypeDef *USARTx); #ifdef __cplusplus diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/MDK-ARM/Project.uvoptx index 1ba162c..9ac2d54 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/MDK-ARM/Project.uvprojx index cf45bbd..c9071c6 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/MDK-ARM/Project.uvprojx @@ -16,12 +16,12 @@ PY32F002Bx5 Puya - Puya.PY32F0xx_DFP.1.2.0 + Puya.PY32F0xx_DFP.1.2.3 https://www.puyasemi.com/uploadfiles/ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/Src/main.c b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/Src/main.c index e456a7d..a975e78 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/Src/main.c +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/Src/main.c @@ -43,17 +43,16 @@ uint8_t aTxEndMessage[] = "\n\r Example Finished\n\r"; uint8_t aRxBuffer[12] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; -__IO uint8_t uErrorState = 0; uint8_t *TxBuff = NULL; -__IO uint16_t TxSize = 0; __IO uint16_t TxCount = 0; uint8_t *RxBuff = NULL; -__IO uint16_t RxSize = 0; __IO uint16_t RxCount = 0; __IO ITStatus UsartReady = RESET; -__IO ITStatus UsartError = RESET; + +uint32_t EieFlags = 0; +uint32_t ErrorFlags = 0; /* Private user code ---------------------------------------------------------*/ /* Private macro -------------------------------------------------------------*/ @@ -96,13 +95,25 @@ int main(void) APP_UsartTransmit_IT(USART1, (uint8_t*)aTxEndMessage, TXENDMESSAGESIZE); APP_WaitToReady(); - /* Turn on LED if test passes then enter infinite loop */ - BSP_LED_On(LED_GREEN); + if(EieFlags) + { + while (1) + { + /* If some error occurs during transmission, the LED blinking + and the test failed */ + BSP_LED_Toggle(LED_GREEN); + LL_mDelay(500); + } + } + else + { + /* Turn on LED if test passes then enter infinite loop */ + BSP_LED_On(LED_GREEN); + } /* Infinite loop */ while (1) { - } } @@ -146,16 +157,11 @@ static void APP_WaitToReady(void) while (UsartReady != SET); UsartReady = RESET; - - if(UsartError == SET) - { - APP_ErrorHandler(); - } } /** * @brief USART configuration functions - * @param USARTx:USART Instance,This parameter can be one of the following values:USART1、USART2 + * @param USARTx:USART1 Instance * @retval None */ static void APP_ConfigUsart(USART_TypeDef *USARTx) @@ -223,7 +229,7 @@ static void APP_ConfigUsart(USART_TypeDef *USARTx) /** * @brief USART transmission function - * @param USARTx:USART Instance,This parameter can be one of the following values:USART1、USART2 + * @param USARTx:USART1 Instance * @param pData:Pointer to transmission buffer * @param Size:Size of transmission buffer * @retval None @@ -231,7 +237,6 @@ static void APP_ConfigUsart(USART_TypeDef *USARTx) static void APP_UsartTransmit_IT(USART_TypeDef *USARTx, uint8_t *pData, uint16_t Size) { TxBuff = pData; - TxSize = Size; TxCount = Size; /* Enable transmit data register empty interrupt */ @@ -240,7 +245,7 @@ static void APP_UsartTransmit_IT(USART_TypeDef *USARTx, uint8_t *pData, uint16_t /** * @brief USART receive function - * @param USARTx:USART Instance,This parameter can be one of the following values:USART1、USART2 + * @param USARTx:USART1 Instance * @param pData:Pointer to receive buffer * @param Size:Size of receive buffer * @retval None @@ -248,7 +253,6 @@ static void APP_UsartTransmit_IT(USART_TypeDef *USARTx, uint8_t *pData, uint16_t static void APP_UsartReceive_IT(USART_TypeDef *USARTx, uint8_t *pData, uint16_t Size) { RxBuff = pData; - RxSize = Size; RxCount = Size; /* Enable parity error interrupt */ @@ -263,16 +267,17 @@ static void APP_UsartReceive_IT(USART_TypeDef *USARTx, uint8_t *pData, uint16_t /** * @brief USART interrupt handler function - * @param USARTx:USART Instance,This parameter can be one of the following values:USART1、USART2 + * @param USARTx:USART1 Instance * @retval None */ void APP_UsartIRQCallback(USART_TypeDef *USARTx) { - /* The receive data register is not empty */ - uint32_t errorflags = (LL_USART_IsActiveFlag_PE(USARTx) | LL_USART_IsActiveFlag_FE(USARTx) |\ - LL_USART_IsActiveFlag_ORE(USARTx) | LL_USART_IsActiveFlag_NE(USARTx)); - if (errorflags == RESET) + /* Check SR register PE,FE,ORE,NE bit */ + ErrorFlags = (LL_USART_IsActiveFlag_PE(USARTx) | LL_USART_IsActiveFlag_FE(USARTx) | \ + LL_USART_IsActiveFlag_ORE(USARTx) | LL_USART_IsActiveFlag_NE(USARTx)); + if (ErrorFlags == RESET) { + /* The receive data register is not empty */ if ((LL_USART_IsActiveFlag_RXNE(USARTx) != RESET) && (LL_USART_IsEnabledIT_RXNE(USARTx) != RESET)) { *RxBuff = LL_USART_ReceiveData8(USARTx); @@ -292,22 +297,31 @@ void APP_UsartIRQCallback(USART_TypeDef *USARTx) } /* An error occurred during receiving data */ - if (errorflags != RESET) + if (ErrorFlags != RESET) { - /* APP_ErrorHandler(); */ + /* Clearing the ORE bit here will clear the FE, PE, NE + flag bits together. */ + LL_USART_ClearFlag_ORE(USARTx); + + /* Error callback function */ + APP_UsartErrorCallback(); } /* The transmit data register is not empty */ if ((LL_USART_IsActiveFlag_TXE(USARTx) != RESET) && (LL_USART_IsEnabledIT_TXE(USARTx) != RESET)) { + /* To prevent the TC flag bit from being affected by other operations during + data transmission, read the SR register in conjunction with write the DR + Register to clear the TC flag bit. + */ + (void)(USARTx->SR); LL_USART_TransmitData8(USARTx, *TxBuff); TxBuff++; if (--TxCount == 0U) { - LL_USART_DisableIT_TXE(USARTx); - - LL_USART_EnableIT_TC(USARTx); + LL_USART_DisableIT_TXE(USARTx); + LL_USART_EnableIT_TC(USARTx); } return; @@ -323,6 +337,16 @@ void APP_UsartIRQCallback(USART_TypeDef *USARTx) } } +/** + * @brief USART Error handling function + * @param None + * @retval None + */ +void APP_UsartErrorCallback(void) +{ + EieFlags = ErrorFlags; +} + /** * @brief Error handling function * @param None diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/readme.txt b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/readme.txt index 08b08eb..e19cbd7 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IT_Init/readme.txt @@ -29,12 +29,14 @@ GCC Version: GNU Arm Embedded Toolchain 10.3-2021.10 使用步骤: 1. 编译并下载程序到MCU; 2. 通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart STK板 USB转TTL模块 -PB4(TX) --> RX -PB5(RX) --> TX -GND --> GND -3. PC端打开串口调试助手,正确连接上通讯COM口, - 波特率设置为9600,1位停止位,8位数据位,无奇偶校验。 +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART配置为波特率9600,数据位8,停止位1,校验位None +@PrintfConfigEnd +3. PC端打开串口调试助手,正确连接上通讯COM口。 4. 按下复位按键,MCU会发送aTxStartMessage数组内的数据到上位机,提示输入12个数据。 5. 上位机发送12个数据到MCU,MCU会反馈同样的12个数据给上位机。同时发送aTxEndMessage 数组内数据到上位机,提示样例执行结束。 @@ -42,14 +44,16 @@ GND --> GND Example execution steps: 1. compile and download the program to MCU and run it; -2. Connect PC and STK board through USB to TTL module and the connection method - is as follows -STK board USB to TTL moudle -PB4(TX) --> RX -PB5(RX) --> TX -GND --> GND -3. Open the serial port Assistant on the PC, connect the COM port correctly, and - set the baud rate to 9600,1 stop bit, and 8 data bit ,without parity check. +2. Connect the PC to the STK board through the USB to TTL module, and the connection +method between the STK board and the USB to TTL module is as follows: +@PrintfConfigStart +STK board USB to TTL module +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 9600, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd +3. Open the serial port Assistant on the PC, connect the COM port correctly. 4. When the reset button is pressed, the MCU sends the data in the aTxStartMessage array to the host computer, prompting for 12 data inputs. 5. The host computer sends 12 data to the MCU and the MCU feeds back the same 12 @@ -59,7 +63,15 @@ GND --> GND the communication is normal, and vice versa, the communication is abnormal. ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.eide/eide.json index ba7a24d..eb2dd12 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -71,9 +69,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -90,14 +88,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -116,6 +117,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -128,10 +137,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/Makefile index 73f2bb1..2c93dd9 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Inc/main.h b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Inc/main.h index 57e0100..8d42536 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Inc/main.h +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Inc/main.h @@ -61,6 +61,7 @@ extern uint8_t aRxBuffer[RX_MAX_LEN]; /* Exported functions prototypes ---------------------------------------------*/ void APP_ErrorHandler(void); +void APP_UsartErrorCallback(void); #ifdef __cplusplus } diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/MDK-ARM/Project.uvoptx index c5870dc..59e8972 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/MDK-ARM/Project.uvoptx @@ -120,12 +120,12 @@ 0 CMSIS_AGDI - -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + -X"" -O206 -S0 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0PY064xx_24.FLM -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 @@ -149,13 +149,6 @@ - - - 0 - 1 - aRxBuffer[cRxIndex++] - - 0 diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/MDK-ARM/Project.uvprojx index 6512a51..c9071c6 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/MDK-ARM/Project.uvprojx @@ -16,12 +16,12 @@ PY32F002Bx5 Puya - Puya.PY32F0xx_DFP.1.2.1 + Puya.PY32F0xx_DFP.1.2.3 https://www.puyasemi.com/uploadfiles/ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Src/main.c b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Src/main.c index 7594e48..0390f65 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Src/main.c +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Src/main.c @@ -53,6 +53,9 @@ int main(void) /* Configure Systemclock */ APP_SystemClockConfig(); + /* Configure LED_GREEN */ + BSP_LED_Init(LED_GREEN); + /* Configure USART1 */ APP_ConfigUsart(USART1); @@ -96,8 +99,8 @@ static void APP_SystemClockConfig(void) } /** - * @brief USART2 configuration function - * @param None + * @brief USART1 configuration function + * @param USARTx:USART1 Instance * @retval None */ static void APP_ConfigUsart(USART_TypeDef *USARTx) @@ -158,6 +161,17 @@ static void APP_ConfigUsart(USART_TypeDef *USARTx) LL_USART_Enable(USARTx); } +/** + * @brief USART Error interrupt handler function + * @param None + * @retval None + */ +void APP_UsartErrorCallback(void) +{ + /* Turn on the LED */ + BSP_LED_On(LED_GREEN); +} + /** * @brief Error handling function * @param None diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Src/py32f002b_it.c b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Src/py32f002b_it.c index ea7a60d..dca6398 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Src/py32f002b_it.c +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Src/py32f002b_it.c @@ -96,17 +96,28 @@ void USART1_IRQHandler(void) /* receive data register not empty */ if ((LL_USART_IsActiveFlag_RXNE(USART1) != RESET) && (LL_USART_IsEnabledIT_RXNE(USART1) != RESET)) { - /* Receive data */ aRxBuffer[cRxIndex] = (uint8_t)(USART1->DR & (uint8_t)0x00FF); + /* Wait SR_TXE bit set 1 */ + while(LL_USART_IsActiveFlag_TXE(USART1) == RESET) + { + } /* Send received data */ USART1->DR = aRxBuffer[cRxIndex]; - + cRxIndex++; if(cRxIndex > (RX_MAX_LEN - 1)) { cRxIndex = (RX_MAX_LEN - 1); } } + if(LL_USART_IsActiveFlag_ORE(USART1) == SET) + { + /* Clearing the ORE bit */ + LL_USART_ClearFlag_ORE(USART1); + + /* Error callback function */ + APP_UsartErrorCallback(); + } } /************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/readme.txt b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/readme.txt index c797107..116dd97 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_IndefiniteLengthData_IT/readme.txt @@ -29,31 +29,44 @@ GCC Version: GNU Arm Embedded Toolchain 10.3-2021.10 使用步骤: 1. 编译并下载程序到MCU,并运行; 2. 通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart STK板 USB转TTL模块 -PB04(TX) --> RX -PB05(RX) --> TX -GND --> GND -3. PC端打开串口调试助手,正确连接上通讯COM口,波特率设置为115200; +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART配置为波特率115200,数据位8,停止位1,校验位None +@PrintfConfigEnd +3. PC端打开串口调试助手,正确连接上通讯COM口; 4. 上位机发送任意长度个数据(不超过128bytes),MCU会将接收到的数据回发给上位机 Example execution steps: 1. compile and download the program to MCU and run it; -2. Connect the PC to the STK board through the USB-to-TTL module. The connection -method between the STK board and the USB-to-TTL module is as follows. -STK board USB-to-TTL module -PB04(TX) --> RX -PB05(RX) --> TX -GND --> GND -3. Start the serial assistant on the PC, correctly connect the COM port, and set -the baud rate to 115200. +2. Connect the PC to the STK board through the USB to TTL module, and the connection +method between the STK board and the USB to TTL module is as follows: +@PrintfConfigStart +STK board USB to TTL module +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 115200, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd +3. Start the serial assistant on the PC, correctly connect the COM port. 4. The upper computer sends any length of data (not exceeding 128 bytes), and the MCU will send the received data back to the upper computer ================================================================================ 注意事项: -用户可根据需要修改main.h中宏RX_MAX_LEN的值,RX_MAX_LEN定义了MCU单次接收数据长度 +1.用户可根据需要修改main.h中宏RX_MAX_LEN的值,RX_MAX_LEN定义了MCU单次接收数据长度 (当前样例为128bytes)。 +2.如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: -Users can modify the values of macros RX_MAX_LEN in main.h as needed. RX_MAX_LEN +1.Users can modify the values of macros RX_MAX_LEN in main.h as needed. RX_MAX_LEN defines the length of data received by MCU for a single time(currently 128bytes). +2.If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/EIDE/.eide/eide.json b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/EIDE/.eide/eide.json index ba7a24d..eb2dd12 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/EIDE/.eide/eide.json +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -71,9 +69,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": "../../../../../../Packs/GCC/.pack/Puya/PY32F0xx_DFP", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -90,14 +88,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -116,6 +117,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -128,10 +137,40 @@ "../../../../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": ["PY32F002Bx5","USE_FULL_LL_DRIVER"] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/EIDE/.eide/files.options.yml b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/EIDE/.gitignore b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/EIDE/.gitignore +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/EIDE/.vscode/launch.json b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/EIDE/.vscode/tasks.json b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/EIDE/.vscode/tasks.json +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/EIDE/Makefile b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/EIDE/Makefile index 73f2bb1..2c93dd9 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/EIDE/Makefile +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/EIDE/commands.jlink b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/MDK-ARM/Project.uvoptx b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/MDK-ARM/Project.uvoptx index 1ba162c..9ac2d54 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/MDK-ARM/Project.uvoptx +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/MDK-ARM/Project.uvprojx b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/MDK-ARM/Project.uvprojx index cf45bbd..9e0696c 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/MDK-ARM/Project.uvprojx +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\Puya\PY32F0xx\Include\py32f0xx.h diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/Src/main.c b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/Src/main.c index b4dec37..c0de85b 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/Src/main.c +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/Src/main.c @@ -126,7 +126,7 @@ static void APP_SystemClockConfig(void) /** * @brief USART configuration functions - * @param USARTx:USART Instance,This parameter can be one of the following values:USART1、USART2 + * @param USARTx:USART1 Instance * @retval None */ static void APP_ConfigUsart(USART_TypeDef *USARTx) @@ -189,7 +189,7 @@ static void APP_ConfigUsart(USART_TypeDef *USARTx) /** * @brief USART transmission function - * @param USARTx:USART Instance,This parameter can be one of the following values:USART1、USART2 + * @param USARTx:USART1 Instance * @param pData:Pointer to transmission buffer * @param Size:Size of transmission buffer * @retval None @@ -216,7 +216,7 @@ static void APP_UsartTransmit(USART_TypeDef *USARTx, uint8_t *pData, uint16_t Si /** * @brief USART receive function - * @param USARTx:USART Instance,This parameter can be one of the following values:USART1、USART2 + * @param USARTx:USART1 Instance * @param pData:Pointer to receive buffer * @param Size:Size of receive buffer * @retval None diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/Src/system_py32f002b.c b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/Src/system_py32f002b.c +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/readme.txt b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/readme.txt index 40913c6..a00b357 100644 --- a/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/readme.txt +++ b/Projects/PY32F002B-STK/Example_LL/USART/USART_HyperTerminal_Polling_Init/readme.txt @@ -29,12 +29,14 @@ GCC Version: GNU Arm Embedded Toolchain 10.3-2021.10 使用步骤: 1. 编译并下载程序到MCU; 2. 通过USB转TTL模块连接PC与STK板,STK板与USB转TTL模块的连线方式如下; +@PrintfConfigStart STK板 USB转TTL模块 -PB4(TX) --> RX -PB5(RX) --> TX -GND --> GND -3. PC端打开串口调试助手,正确连接上通讯COM口, - 波特率设置为9600,1位停止位,8位数据位,无奇偶校验。 +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART配置为波特率9600,数据位8,停止位1,校验位None +@PrintfConfigEnd +3. PC端打开串口调试助手,正确连接上通讯COM口。 4. 按下复位按键,MCU会发送aTxStartMessage数组内的数据到上位机,提示输入12个数据。 5. 上位机发送12个数据到MCU,MCU会反馈同样的12个数据给上位机。同时发送aTxEndMessage 数组内数据到上位机,提示样例执行结束。 @@ -42,14 +44,16 @@ GND --> GND Example execution steps: 1. compile and download the program to MCU and run it; -2. Connect PC and STK board through USB to TTL module and the connection method - is as follows -STK board USB to TTL moudle -PB4(TX) --> RX -PB5(RX) --> TX -GND --> GND -3. Open the serial port Assistant on the PC, connect the COM port correctly, and - set the baud rate to 9600,1 stop bit, and 8 data bit ,without parity check. +2. Connect the PC to the STK board through the USB to TTL module, and the connection +method between the STK board and the USB to TTL module is as follows: +@PrintfConfigStart +STK board USB to TTL module +PB4(TX) --> RX +PB5(RX) --> TX +GND --> GND +UART is configured as BaudRate 9600, data bit 8, stop bit 1, and parity None. +@PrintfConfigEnd +3. Open the serial port Assistant on the PC, connect the COM port correctly. 5. The host computer sends 12 data to the MCU and the MCU feeds back the same 12 data to the host computer. Also send the data in the aTxEndMessage array to the host computer to signal the end of the sample execution. @@ -57,7 +61,15 @@ GND --> GND the communication is normal, and vice versa, the communication is abnormal. ================================================================================ 注意事项: +如果需要使用按键: +StartKit版本为V1.0,需将StartKit.h中的StartKitVersion 2 注释掉,并打开 +StartKitVersion 1 +StartKit版本为V1.0以上版本,则无需操作 Notes: +If you need to use buttons: +StartKit version is V1.0, please comment out StartKitVersion 2 in StartKit.h and +open StartKitVersion 1 +If the StartKit version is above V1.0, no operation is required ================================================================================ \ No newline at end of file diff --git a/Templates/PY32F002Bxx_Templates/EIDE/.eide/eide.json b/Templates/PY32F002Bxx_Templates/EIDE/.eide/eide.json index 6751383..2a4e481 100644 --- a/Templates/PY32F002Bxx_Templates/EIDE/.eide/eide.json +++ b/Templates/PY32F002Bxx_Templates/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -80,9 +78,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": ".pack/Puya/PY32F0xx_DFP.1.2.0", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -99,14 +97,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -125,6 +126,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -137,13 +146,43 @@ "../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": [ "USE_HAL_DRIVER", "PY32F002Bx5" ] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Templates/PY32F002Bxx_Templates/EIDE/.eide/files.options.yml b/Templates/PY32F002Bxx_Templates/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Templates/PY32F002Bxx_Templates/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Templates/PY32F002Bxx_Templates/EIDE/.gitignore b/Templates/PY32F002Bxx_Templates/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Templates/PY32F002Bxx_Templates/EIDE/.gitignore +++ b/Templates/PY32F002Bxx_Templates/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Templates/PY32F002Bxx_Templates/EIDE/.vscode/launch.json b/Templates/PY32F002Bxx_Templates/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Templates/PY32F002Bxx_Templates/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Templates/PY32F002Bxx_Templates/EIDE/.vscode/tasks.json b/Templates/PY32F002Bxx_Templates/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Templates/PY32F002Bxx_Templates/EIDE/.vscode/tasks.json +++ b/Templates/PY32F002Bxx_Templates/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Templates/PY32F002Bxx_Templates/EIDE/Makefile b/Templates/PY32F002Bxx_Templates/EIDE/Makefile index 6f54edd..e38ef32 100644 --- a/Templates/PY32F002Bxx_Templates/EIDE/Makefile +++ b/Templates/PY32F002Bxx_Templates/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Templates/PY32F002Bxx_Templates/EIDE/commands.jlink b/Templates/PY32F002Bxx_Templates/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Templates/PY32F002Bxx_Templates/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Templates/PY32F002Bxx_Templates/MDK-ARM/Project.uvoptx b/Templates/PY32F002Bxx_Templates/MDK-ARM/Project.uvoptx index 3f3329f..31446e3 100644 --- a/Templates/PY32F002Bxx_Templates/MDK-ARM/Project.uvoptx +++ b/Templates/PY32F002Bxx_Templates/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Templates/PY32F002Bxx_Templates/MDK-ARM/Project.uvprojx b/Templates/PY32F002Bxx_Templates/MDK-ARM/Project.uvprojx index 7481741..bb900ba 100644 --- a/Templates/PY32F002Bxx_Templates/MDK-ARM/Project.uvprojx +++ b/Templates/PY32F002Bxx_Templates/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\PY32F0xx\Include\py32f0xx.h diff --git a/Templates/PY32F002Bxx_Templates/Src/system_py32f002b.c b/Templates/PY32F002Bxx_Templates/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Templates/PY32F002Bxx_Templates/Src/system_py32f002b.c +++ b/Templates/PY32F002Bxx_Templates/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ } diff --git a/Templates/PY32F002Bxx_Templates_LL/EIDE/.eide/eide.json b/Templates/PY32F002Bxx_Templates_LL/EIDE/.eide/eide.json index ce5b037..2666e5b 100644 --- a/Templates/PY32F002Bxx_Templates_LL/EIDE/.eide/eide.json +++ b/Templates/PY32F002Bxx_Templates_LL/EIDE/.eide/eide.json @@ -2,9 +2,7 @@ "name": "Project", "type": "ARM", "dependenceList": [], - "srcDirs": [ - ".eide/deps" - ], + "srcDirs": [], "virtualFolder": { "name": "", "files": [], @@ -62,9 +60,9 @@ } ] }, - "outDir": "build", + "outDir": ".", "deviceName": "PY32F002Bx5", - "packDir": ".pack/Puya/PY32F0xx_DFP.1.2.0", + "packDir": null, "miscInfo": { "uid": "36bcf0031e18a3008bbdaa90a96a7987" }, @@ -81,14 +79,17 @@ "RAM": [], "ROM": [] }, - "options": "null" + "options": "null", + "archExtensions": "" }, - "uploader": "OpenOCD", + "uploader": "pyOCD", "uploadConfig": { "bin": "", - "target": "py32f002b", - "interface": "cmsis-dap", - "baseAddr": "0x08000000" + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" }, "uploadConfigMap": { "JLink": { @@ -107,6 +108,14 @@ "target": "py32f002b", "interface": "cmsis-dap", "baseAddr": "0x08000000" + }, + "pyOCD": { + "bin": "", + "targetName": "PY32F002Bx5", + "baseAddr": "0x08000000", + "speed": "4M", + "otherCmds": "\"--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack\"", + "config": ".eide/project.pyocd.yaml" } }, "custom_dep": { @@ -119,13 +128,43 @@ "../../../Drivers/PY32F002B_HAL_Driver/Inc" ], "libList": [], - "sourceDirList": [], "defineList": [ "PY32F002Bx5", "USE_FULL_LL_DRIVER" ] + }, + "builderOptions": { + "GCC": { + "version": 5, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "$float-abi-type": "softfp", + "output-debug-info": "enable", + "misc-control": "--specs=nosys.specs --specs=nano.specs" + }, + "c/cpp-compiler": { + "language-c": "c11", + "language-cpp": "c++11", + "optimization": "level-debug", + "warnings": "all-warnings", + "one-elf-section-per-function": true, + "one-elf-section-per-data": true, + "C_FLAGS": "", + "CXX_FLAGS": "" + }, + "asm-compiler": { + "ASM_FLAGS": "" + }, + "linker": { + "output-format": "elf", + "remove-unused-input-sections": true, + "LD_FLAGS": " ", + "LIB_FLAGS": "-lm" + } + } } } }, - "version": "3.3" + "version": "3.6" } \ No newline at end of file diff --git a/Templates/PY32F002Bxx_Templates_LL/EIDE/.eide/files.options.yml b/Templates/PY32F002Bxx_Templates_LL/EIDE/.eide/files.options.yml new file mode 100644 index 0000000..4acb900 --- /dev/null +++ b/Templates/PY32F002Bxx_Templates_LL/EIDE/.eide/files.options.yml @@ -0,0 +1,17 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: {} diff --git a/Templates/PY32F002Bxx_Templates_LL/EIDE/.gitignore b/Templates/PY32F002Bxx_Templates_LL/EIDE/.gitignore index c2f4ce9..8519ec6 100644 --- a/Templates/PY32F002Bxx_Templates_LL/EIDE/.gitignore +++ b/Templates/PY32F002Bxx_Templates_LL/EIDE/.gitignore @@ -1,5 +1,5 @@ # dot files -/.vscode/launch.json +# /.vscode/launch.json /.settings /.eide/log /.eide.usr.ctx.json diff --git a/Templates/PY32F002Bxx_Templates_LL/EIDE/.vscode/launch.json b/Templates/PY32F002Bxx_Templates_LL/EIDE/.vscode/launch.json new file mode 100644 index 0000000..aa2a157 --- /dev/null +++ b/Templates/PY32F002Bxx_Templates_LL/EIDE/.vscode/launch.json @@ -0,0 +1,49 @@ +{ + // 使用 IntelliSense 了解相关属性? + // 悬停以查看现有属性的描述? + // 欲了解更多信息,请访?: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "cwd": "${workspaceRoot}", + "executable": "Project/Project.elf", + "name": "pyocd", + "request": "launch", + "type": "cortex-debug", + "targetId": "PY32F002Bx5", + "runToEntryPoint": "main", + "showDevDebugOutput": "none", + "servertype": "pyocd", + "cmsisPack": "${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "openocd", + "servertype": "openocd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "configFiles": [ + "interface/cmsis-dap.cfg", + "target/py32f002b.cfg" + ], + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + }, + { + "cwd": "${workspaceRoot}", + "type": "cortex-debug", + "request": "launch", + "name": "jlink", + "servertype": "jlink", + "interface": "swd", + "executable": "Project/Project.elf", + "runToEntryPoint": "main", + "device": "PY32F002Bx5", + "toolchainPrefix": "arm-none-eabi", + "svdFile": "${env:PYSDEPATH}\\svd\\PY32F002Bxx.svd" + } + ] +} \ No newline at end of file diff --git a/Templates/PY32F002Bxx_Templates_LL/EIDE/.vscode/tasks.json b/Templates/PY32F002Bxx_Templates_LL/EIDE/.vscode/tasks.json index ee8a5ea..854f87f 100644 --- a/Templates/PY32F002Bxx_Templates_LL/EIDE/.vscode/tasks.json +++ b/Templates/PY32F002Bxx_Templates_LL/EIDE/.vscode/tasks.json @@ -1,73 +1,72 @@ { + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "type": "shell", - "label": "make", - "command": "make", - "args": [], - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "type": "shell", - "label": "make and download", - "command": "openocd", - "args": [ - "-s", - "../../../scripts", - "-f", - "interface/cmsis-dap.cfg", - "-f", - "target/py32f002b.cfg", - "-c", - "program build/Project/Project.elf verify reset exit" - ], - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "dependsOn": "make" - }, - { - "label": "build", - "type": "shell", - "command": "${command:eide.project.build}", - "group": "build", - "problemMatcher": [] - }, - { - "label": "flash", "type": "shell", - "command": "${command:eide.project.uploadToDevice}", - "group": "build", - "problemMatcher": [] + "label": "build", + "command": "make", + "args": [], + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + } }, { - "label": "build and flash", - "type": "shell", - "command": "${command:eide.project.buildAndFlash}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "pyocd download", + "command": "pyocd", + "args": [ + "load", + "Project/Project.elf", + "--target=PY32F002Bx5", + "--frequency=1000000", + "--pack=${env:PYSDEPATH}\\packs\\PY32F0xx_DFP.pack" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "rebuild", - "type": "shell", - "command": "${command:eide.project.rebuild}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "openocd download", + "command": "openocd", + "args": [ + "-f", + "interface/cmsis-dap.cfg", + "-f", + "target/py32f002b.cfg", + "-c", + "program Project/Project.elf verify reset exit" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" }, { - "label": "clean", - "type": "shell", - "command": "${command:eide.project.clean}", - "group": "build", - "problemMatcher": [] + "type": "shell", + "label": "jlink download", + "command": "JLink.exe", + "args": [ + "-device", "PY32F002Bx5", + "-if", "SWD", + "-speed", "4000", + "-autoconnect", "1", + "-CommanderScript", "commands.jlink" + ], + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "dependsOn": "build" } ] } \ No newline at end of file diff --git a/Templates/PY32F002Bxx_Templates_LL/EIDE/Makefile b/Templates/PY32F002Bxx_Templates_LL/EIDE/Makefile index f3463d4..f7a14cd 100644 --- a/Templates/PY32F002Bxx_Templates_LL/EIDE/Makefile +++ b/Templates/PY32F002Bxx_Templates_LL/EIDE/Makefile @@ -29,7 +29,7 @@ OPT = -Og # paths ####################################### # Build path -BUILD_DIR = build\Project +BUILD_DIR = Project ###################################### # source diff --git a/Templates/PY32F002Bxx_Templates_LL/EIDE/commands.jlink b/Templates/PY32F002Bxx_Templates_LL/EIDE/commands.jlink new file mode 100644 index 0000000..433a5a9 --- /dev/null +++ b/Templates/PY32F002Bxx_Templates_LL/EIDE/commands.jlink @@ -0,0 +1,6 @@ +r +halt +loadfile "Project\Project.hex" +r +go +exit \ No newline at end of file diff --git a/Templates/PY32F002Bxx_Templates_LL/MDK-ARM/Project.uvoptx b/Templates/PY32F002Bxx_Templates_LL/MDK-ARM/Project.uvoptx index a3a09a7..0e2a612 100644 --- a/Templates/PY32F002Bxx_Templates_LL/MDK-ARM/Project.uvoptx +++ b/Templates/PY32F002Bxx_Templates_LL/MDK-ARM/Project.uvoptx @@ -120,7 +120,7 @@ 0 UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM) + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0PY32F002Bxx_24 -FL06000 -FS08000000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM) 0 diff --git a/Templates/PY32F002Bxx_Templates_LL/MDK-ARM/Project.uvprojx b/Templates/PY32F002Bxx_Templates_LL/MDK-ARM/Project.uvprojx index f396208..d56845a 100644 --- a/Templates/PY32F002Bxx_Templates_LL/MDK-ARM/Project.uvprojx +++ b/Templates/PY32F002Bxx_Templates_LL/MDK-ARM/Project.uvprojx @@ -21,7 +21,7 @@ IRAM(0x20000000,0x00000C00) IROM(0x08000000,0x00006000) CPUTYPE("Cortex-M0+") CLOCK(12000000) ELITTLE - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY32F002Bxx_24.FLM)) + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0PY32F002Bxx_24 -FS08000000 -FL06000 -FP0($$Device:PY32F002Bx5$CMSIS\Flash\PY064xx_24.FLM)) 0 $$Device:PY32F002Bx5$Drivers\CMSIS\Device\PY32F0xx\Include\py32f0xx.h diff --git a/Templates/PY32F002Bxx_Templates_LL/Src/system_py32f002b.c b/Templates/PY32F002Bxx_Templates_LL/Src/system_py32f002b.c index 141ef86..987c778 100644 --- a/Templates/PY32F002Bxx_Templates_LL/Src/system_py32f002b.c +++ b/Templates/PY32F002Bxx_Templates_LL/Src/system_py32f002b.c @@ -147,7 +147,7 @@ void SystemInit(void) #ifndef SWD_DELAY /* When the SWD pin is reused for other functions, this function is used to solve the problem of not being able to update the code. */ - DelayTime(100); + DelayTime(200); #endif /* SWD_DELAY */ }