# Update History ------ ## V2.2.0 Sep 30, 2023 #### documents #### drivers - ##### bsp/components - **nt35510** - Optimize function arguments - ##### bsp/ev_hc32f4a0_lqfp176 - Fix some typo: KYESCAN -> KEYSCAN - Add API BSP_XTAL32_Init() - Optimize function BSP_I2C_Init() - Add include file named hc32_ll_fcm.h and add declaration of BSP_XTAL32_Init() - Modify DMC timing for EXCLK frequency 60MHz -> 30MHz - Modify SMC timing parameter: EXCLK 60MHz -> 30MHz - Optimize comments - Change Reset control pin from NMOS to CMOS output cause of "EV_F4A0_LQ176_Rev1.0"'s modification - Rename local variables: stcTca9539Config -> m_stcTca9539Config - Modify the IO properties of SPI - Modify for MISRAC2012 - Modify SPI clock divide factor from DIV4 to DIV64 - Modify 'BSP_SPI_TIMEOUT' to HCLK_VALUE - Rename local variables: stcWm8731Config -> m_stcWm8731Config - ##### cmsis/Device - Modify headfile based on reference manual Rev1.3 - ##### hc32_ll_driver - **generic** - Modify version as 2.2.0 - Modify typo - Add __NO_OPTIMIZE configuration item - Add attribute for __RAM_FUNC definition - **interrupts_share** - Modify typo - IRQxxx_Handler add __DSB for Arm Errata 838869 - The BCSTR register of TimerA is split into BCSTRH and BCSTRL - Modify for head file update: EIRQFR -> EIFR - **adc** - Modify typo - API fixed: ADC_DeInit() - **aes** - Add API AES_DeInit() - **aos** - Modify for new head file - **can** - Added 3 APIs for local-reset - Modify typo - Added 3 APIs for local-reset.Refine local function CAN_ReadRxBuf(), CAN_WriteTxBuf() - **clk** - Modify typo - Modify CLK_SetUSBClockSrc(), add delay after configure USB clock - Modify API CLK_Xtal32Cmd(), CLK_MrcCmd() and CLK_LrcCmd(), use DDL_DelayUS() to replace CLK_Delay() - **cmp** - Modify typo - Add assert for CIEN bit in GetCmpFuncStatusAndDisFunc function - Remove redundant code in function CMP_WindowModeInit - **crc** - Reconstruct interface function relate to calculate CRC - Modify return type of function CRC_DeInit - Modify comment - Delete and modify some of group/function relate to calculate CRC - Optimize CRC_DeInit function - Modify typo - **ctc** - Modify typo - Modify the init assignment of i32Ret in CTC_DeInit() - **dac** - Refine definition of dac resolution - Modify API DAC_DeInit - Refine data validation - Modify function:DAC_DeInit - **dbgc** - Add hc32_ll_dbgc driver - **dcu** - Modify typo - Delete macro definition: DCU_INT_SAWTOOTH_WAVE_RELOAD - Modify macro-definition according to RM:DCU_CTL_COMP_TRG->DCU_CTL_COMPTRG - Modify API DCU_DeInit() - Modify function DCU_IntCmd() for misra - **dma** - Add API DMA_SetDataWidth() - Modify typo - Modify blocksize assert, 1024U is valid - Optimize set blocksize & repeat count process - **dmc** - Modify typo - **dvp** - Modify typo - Add function: DVP_GetCaptureState - **efm** - Add FLASH security addr define - Modify API EFM_OTP_Lock() - Modify API EFM_Program() - Modify assert IS_EFM_ADDR() range - Modify typo - Modify API EFM_WriteSecurityCode(), switch to read_only mode before exit - Use FNWPRT_REG to replace CM_EFM->F0NWPRT0 - Remove address assert from EFM_ReadByte() - Refine EFM_SequenceProgram() & EFM_ChipErase(), and put them in RAM - **emb** - Update EMB_CTL1_CMPEN0~3 to EMB_CTL1_CMPEN1~4 - Update EMB_INTEN_PORTINTEN to EMB_INTEN_PORTININTEN - Function EMB_TMR4_Init don't call EMB_DeInit - Function EMB_TMR6_Init don't call EMB_DeInit - Function EMB_DeInit set register EMB_RLSSEL to reset value - **eth** - Modify typo - Add ETH_MAC_SetInterface function - Optimize ETH start and stop timing - Modify the process of obtaining PHY status - Modify the process of auto-negotiation disable - Modify ETH_PTP_UpdateBasicAddend function - Modify the clock division of SMIC - Modify operation sequence of ETH_DeInit function - **event_port** - Modify typo - Modify for new head file - **fcg** - Modify for head file update: PWC_FCG3_CMP1->PWC_FCG3_CMP12, PWC_FCG3_CMP2->PWC_FCG3_CMP34 - **fcm** - Modify API FCM_DeInit() - **fmac** - Modify API FMAC_DeInit() - **gpio** - Rename GPIO_ExIntCmd() as GPIO_ExtIntCmd - Modify GPIO_SetFunc() - Optimize API: GPIO_Init(), GPIO_SetFunc(), GPIO_SubFuncCmd(), GPIO_InputMOSCmd(), GPIO_AnalogCmd(), GPIO_ExtIntCmd() - **hash** - Add HASH_DeInit function - **hrpwm** - Modify typo - **i2c** - Modify typo - Move macro define I2C_SRC_CLK to head file - Disable slave address function in I2C_Init() - **i2s** - Modify I2S_ClearStatus function - **interrupts** - IRQxxx_Handler add __DSB for Arm Errata 838869 - Modify micro define EIRQCFR_REG and EIRQFR_REG base RM - Remove space line - **keyscan** - Add function KEYSCAN_DeInit - **mau** - Add API MAU_DeInit() - **mpu** - Modify typo - Optimize MPU_ClearStatus function - **nfc** - Modify typo - Add API function: EXMC_NFC_Read/EXMC_NFC_Write - Typo: featrue -> feature; regsiter, Regster -> register - Modify macro: EXMC_NFC_4BIT_ECCS -> EXMC_NFC_4BIT_ECC - Change function attributes from local to global: EXMC_NFC_Read/EXMC_NFC_Write - **ots** - Modify typo - Modify API OTS_DeInit() - **pwc** - Modify group PWC_Stop_Type - Add function PWC_LVD_DeInit - Modify the PWC_LVD_Detection_Voltage_Sel comment - Modify typo - Add api PWC_LVD_DeInit() - Modify API PWC_STOP_Enter() & add assert IS_PWC_STOP_TYPE() - **qspi** - Modify return value type of QSPI_DeInit function - Optimize QSPI_ClearStatus function - **rmu** - Use IS_RMU_UNLOCKED() to assert - **rtc** - Modify typo - **sdioc** - Modify typo - Rename function SDMMC_ACMD41_SendOperatCond to SDMMC_ACMD41_SendOperateCond - Rename function SDMMC_CMD1_SendOperatCond to SDMMC_CMD1_SendOperateCond - Support CMD5/CMD52/CMD53 - Rename macro definition SDIOC_ACMD52_RW_DIRECT to SDIOC_CMD52_IO_RW_DIRECT - Rename macro definition SDIOC_ACMD53_RW_EXTENDED to SDIOC_CMD53_IO_RW_EXTENDED - Modify response type of MMC CMD3 - Optimize SDIOC_GetMode function - **smc** - API EXMC_SMC_DeInit add return value - Function EXMC_SMC_DeInit add return value - **spi** - Add SPI_SetSckPolarity,SPI_SetSckPhase functions - Add group SPI_SCK_Polarity_Define, SPI_SCK_Phase_Define - Modify return type of fuction SPI_DeInit - Modify SPI_GetStatus,SPI_TxRx,SPI_Tx function - **sram** - Modify typo - API fixed: SRAM_ClearStatus() - API fixed: SRAM_SetWaitCycle() - **swdt** - Optimize SWDT_ClearStatus function timeout - **tmr0** - Modify typo - **tmr2** - Modify typo - **tmr4** - Add the macros group @ref TMR4_OC_Output_Polarity - Modify typo - TMR4_OC_Buffer_Object group add macro-definition: TMR4_OC_BUF_NONE - Modify API TMR4_DeInit - Fix spell error about "response" that in function name - Add function comments: macros group @ref TMR4_OC_Channel - Modify function return value comments: TMR4_OC_GetPolarity - Modify function parameter comments: TMR4_PWM_SetPolarity - Modify function: TMR4_DeInit, TMR4_OC_DeInit, TMR4_PWM_DeInit, TMR4_EVT_DeInit - Modify macro-definition: IS_TMR4_OC_BUF_OBJECT - Fix magic number of function: TMR4_OC_StructInit - Modify fuction:TMR4_PWM_Init - Modify comment - **tmr6** - Delete union in stc_tmr6_init_t structure - Modify macro define for group TMR6_Emb_Ch_Define - Add macro define for TMR6_Count_Dir_Status_Define - Modify typo - Modify API TMR6_GetCountDir() - **tmra** - Modify typo - Update about split 16bit register TMRA_BCSTR into two 8bit registers TMRA_BCSTRH and TMRA_BCSTRL - Delete union in stc_tmra_init_t structure - Modify some of member type of struct stc_tmra_init_t and relate fuction about these member - Modify macro-definition value for group TMRA_Interrupt_Type/TMRA_Status_Flag - Rename marco definition IS_TMRA_CMPVAL_BUF_COND to IS_TMRA_BUF_TRANS_COND - **trng** - Add TRNG_Cmd,TRNG_DeInit functions - API optimized for better random numbers: TRNG_GenerateRandom() - API fixed: rewrite TRNG_GenerateRandom() to Support get multiple random data - API optimized for better random numbers: TRNG_GenerateRandom(), TRNG_GetRandom() - Add TRNG_Cmd,TRNG_DeInit functions and optimize TRNG_Start function - Optimize the processing of discarded data and enable TRNG in TRNG_Init() - **usart** - Modify typo - Change macro-definition: USART_DR_MPID -> USART_TDR_MPID - Modify USART_SetTransType parameter: u32Type -> u16Type - Modify USART_SC_ETU_CLK128/256 value - Modify return type of function USART_DeInit - Remove u32StopBit param from stc_usart_smartcard_init_t structure - Add function note: USART_FuncCmd - Round off baudrate fraction division - Split register USART_DR to USART_RDR and USART_TDR - Delete function: USART_GetUsartClockDiv - Fix MISRAC2012 warning: USART_GetUsartClockFreq - Code Refine - Modify return type of function USART_DeInit() - Modify USART_SmartCard_Init() for stc_usart_smartcard_init_t has modified(u32StopBit has removed) - Fix bug: did not enable MP while USART_MultiProcessor_Init() - Re-define IS_USART_SMARTCARD_UNIT - API refined: USART_SetBaudrate() - **usb** - Modify typo - Fix bug for function usb_clearepstall() - **utility** - Modify register USART DR to USART TDR - Prohibit DDL_DelayMS and DDL_DelayUS functions from being optimized - **wdt** - Optimize WDT_ClearStatus function timeout #### midwares - ##### hc32/iec60730_class_b_stl - Modify register USART DR to USART TDR - ##### hc32/usb - Modify for variable alignment - Typo: Initailizes -> Initializes - Modify API usb_dev_resume() - Modify function usb_susp_isr() - Modify for doxygen - Replace MAX_CHNUM by USB_MAX_CH_NUM - Delete micro define MAX_CHNUM #### projects - ##### ev_hc32f4a0_lqfp176/applications - **execute_inplace/qspi_xip** - SysTick_Handler add __DSB for Arm Errata 838869 - **functional_safety/iec60730_class_b** - SysTick_Handler add __DSB for Arm Errata 838869 - Change STL IO test input pin: PA0 -> PH7 - Initialize XTAL32 using BSP_XTAL32_Init - Modify sw_count field of stc_tmra_init_t: u16xxx -> u8xxx - **iap/iap_app** - SysTick_Handler add __DSB for Arm Errata 838869 - Rename function CRC_CalculateData8 to CRC_CRC16_Calculate - **iap/iap_boot** - SysTick_Handler add __DSB for Arm Errata 838869 - Rename function CRC_CalculateData8 to CRC_CRC16_Calculate - **iap/iap_ymodem_app** - SysTick_Handler add __DSB for Arm Errata 838869 - **iap/iap_ymodem_boot** - SysTick_Handler add __DSB for Arm Errata 838869 - **usb/usb_dev_cdc_msc** - Rename function SDMMC_ACMD41_SendOperatCond to SDMMC_ACMD41_SendOperateCond - Do not erase SD card before write operation - **usb/usb_dev_hid_msc** - Rename function SDMMC_ACMD41_SendOperatCond to SDMMC_ACMD41_SendOperateCond - Do not erase SD card before write operation - **usb/usb_dev_mouse** - SysTick_Handler add __DSB for Arm Errata 838869 - **usb/usb_dev_msc** - Rename function SDMMC_ACMD41_SendOperatCond to SDMMC_ACMD41_SendOperateCond - Do not erase SD card before write operation - **usb/usb_host_cdc** - SysTick_Handler add __DSB for Arm Errata 838869 - **usb/usb_host_mouse_kb** - SysTick_Handler add __DSB for Arm Errata 838869 - **usb/usb_host_msc** - SysTick_Handler add __DSB for Arm Errata 838869 - ##### ev_hc32f4a0_lqfp176/examples - **adc/adc_awd** - Set XTAL as system clock source - Modify printf baudrate - **adc/adc_base** - Set XTAL as system clock source - Modify printf baudrate - **adc/adc_channel_remap** - Set XTAL as system clock source - Modify printf baudrate - **adc/adc_dma** - Set XTAL as system clock source - Modify printf baudrate - **adc/adc_extended_channel** - Set XTAL as system clock source - Modify printf baudrate - **adc/adc_hard_trigger** - Set XTAL as system clock source - Modify printf baudrate - **adc/adc_pga** - Set XTAL as system clock source - Modify printf baudrate - **adc/adc_sample_hold** - Set XTAL as system clock source - Modify printf baudrate - **aes/aes_base** - Set XTAL as system clock source - Modify printf baudrate - **can/can_classical** - SysTick_Handler add __DSB for Arm Errata 838869 - **can/can_fd** - SysTick_Handler add __DSB for Arm Errata 838869 - Changed baudrate of data phase from 8Mbps to 5Mbps. - **can/can_ttcan** - SysTick_Handler add __DSB for Arm Errata 838869 - **clk/clk_switch_sysclk** - Modify XTAL32 initialize process, use BSP_XTAL32_Init() to replace Xtal32Init() - **crc/crc_hw_accumulate_check** - Add crc_hw_accumulate_check example - **crc/crc_hw_encode_hw_check** - Modify for reconstructed API - **crc/crc_hw_encode_sw_check** - Modify for reconstructed API - **ctc/ctc_xtal32_trimming** - Initialize XTAL32 using BSP_XTAL32_Init - **dac/dac_base** - Define DAC_DATA_MAX by resolution - **dac/dac_sync_mode** - Define DAC_DATA_MAX by resolution - **dcu/dcu_sawtooth_wave_mode** - Sync driver: DCU reload interrupt is always valid - **dmac/dmac_base** - Add DMA2_Error_IrqCallback function - **dvp/dvp_camera_display** - Re-implement code - **efm/efm_chip_erase** - Add efm_chip_erase example - **efm/efm_dbus** - Add efm_dbus example - **efm/efm_otp** - Modify the process - **efm/efm_sequence_program** - Add Customize defintion - Re-structure - **efm/efm_swap** - Use EFM_GetSwapStatus to judge - **emb/emb_cmp_brake_timer4** - Typo: hander -> handler - Fix magic number - Modify TMR4_PwmConfig: enable main output following PWM initialization - **emb/emb_cmp_brake_timer6** - Modify typo - Fix magic number - **emb/emb_osc_brake_timer4** - Typo: hander -> handler - Modify TMR4_PwmConfig: enable main output following PWM initialization - **emb/emb_osc_brake_timer6** - Modify typo - **emb/emb_port_brake_timer4** - Typo: hander -> handler - Modify TMR4_PwmConfig: enable main output following PWM initialization - **emb/emb_port_brake_timer6** - Modify typo - **emb/emb_pwm_brake_timer4** - Typo: hander -> handler - Modify TMR4_PwmConfig: enable main output following PWM initialization - **emb/emb_pwm_brake_timer6** - Modify typo - **emb/emb_sw_brake_timer4** - Modify TMR4_PwmConfig: enable main output following PWM initialization - **emb/emb_sw_brake_timer6** - Modify typo - **eth/eth_loopback** - Modify the process of obtaining PHY status - Add MAC interface selection before ETH_DeInit function - Disable auto negotiation in low_level_init function - SysTick_Handler add __DSB for Arm Errata 838869 - **eth/eth_twoboards** - Add MAC interface selection before ETH_DeInit function - SysTick_Handler add __DSB for Arm Errata 838869 - **exmc/exmc_dmc_sdram_is42s16400j7tli** - Modify EXCLK frequency: 60MHz -> 30MHz - Fix typos - Fix memory address printf value - **exmc/exmc_sdram_sram** - Modify EXCLK frequency: 60MHz -> 30MHz - Fix typos - Fix memory address printf value - **exmc/exmc_smc_lcd_nt35510** - Change EXCLK freqeuncy to 30MHz - **exmc/exmc_smc_sram_is62wv51216** - Modify EXCLK frequency: 60MHz -> 30MHz - Fix typos and modify file brief - Fix memory address printf value - **hash/hash_base** - Set XTAL as system clock source - Modify printf baudrate - **hash/hash_hmac** - Set XTAL as system clock source - Modify printf baudrate - **hrpwm/hrpwm_output** - Modify for Peripheral clock command process - **i2c/i2c_master_dma** - SysTick_Handler add __DSB for Arm Errata 838869 - Add definition I2C_ADDR_MD as address condition select - Configure DMA interrupt disable in I2C_DMA_Initialize() function - **i2c/i2c_master_int** - SysTick_Handler add __DSB for Arm Errata 838869 - **i2c/i2c_master_polling** - SysTick_Handler add __DSB for Arm Errata 838869 - Add definition I2C_ADDR_MD as address condition select - **i2c/i2c_slave_dma** - SysTick_Handler add __DSB for Arm Errata 838869 - Add definition I2C_ADDR_MD as address condition select - Configure DMA interrupt disable in I2C_DMA_Initialize() function - **i2c/i2c_slave_int** - SysTick_Handler add __DSB for Arm Errata 838869 - Add definition I2C_ADDR_MD as address condition select - **i2c/i2c_slave_polling** - SysTick_Handler add __DSB for Arm Errata 838869 - Add definition I2C_ADDR_MD as address condition select - **icg/icg_wdt_interrupt_hw_startup** - Add delay before WDT_GetStatus function - **intc/intc_nmi_xtalstop** - NMI_Handler add __DSB for Arm Errata 838869 - **mpu/mpu_core_write_protect** - Fixed parameters error of Core_MPU_Region_Size - MemManage_Handler add __DSB for Arm Errata 838869 - Modify trigger condition for RTC protection - Optimize RTC init sequence - **mpu/mpu_dma_write_protect** - NMI_Handler add __DSB for Arm Errata 838869 - Remove key jitter - **mpu/mpu_ip_read_protect** - BusFault_Handler add __DSB for Arm Errata 838869 - Optimize RTC init sequence - **ots/ots_base** - Set XTAL as system clock source - Modify printf baudrate - **ots/ots_scaling_experiment** - Set XTAL as system clock source - Modify printf baudrate - **pwc/pwc_lpc** - Modify typo - Clear wake up event flag in PdMode_Init() function - **pwc/pwc_stop_wake** - Support PWC_STOP_WFE - **rtc/rtc_alarm** - Optimize RTC init sequence - Replace XTAL32_ClkInit to BSP_XTAL32_Init - **rtc/rtc_calendar** - Optimize RTC init sequence - Modify the judgment condition for RTC operation status - **rtc/rtc_calibration_output** - Optimize RTC init sequence - Replace XTAL32_ClkInit to BSP_XTAL32_Init - **rtc/rtc_intrusion_detect** - Optimize RTC init sequence - Replace XTAL32_ClkInit to BSP_XTAL32_Init - **rtc/rtc_low_power** - Optimize RTC init sequence - Delete XTAL32_ClkInit - **sdioc/sdioc_mmc** - Modify RCA value about EMMC device - Rename function SDMMC_CMD1_SendOperatCond to SDMMC_CMD1_SendOperateCond - Rename MMC_CARD_STAT_PAG to MMC_CARD_STAT_PGM - **sdioc/sdioc_sd** - Rename function SDMMC_ACMD41_SendOperatCond to SDMMC_ACMD41_SendOperateCond - **sdioc/sdioc_sdio** - Add sdioc_sdio example - **spi/spi_dma** - Modify the IO properties of SPI - **spi/spi_int** - Modify the IO properties of SPI - Modify rx interrupt priority of SPI - **spi/spi_polling** - Modify the IO properties of SPI - Replace the tx&rx function of SPI - **sram/sram_error_check** - NMI_Handler add __DSB for Arm Errata 838869 - **systick/systick_int** - SysTick_Handler add __DSB for Arm Errata 838869 - **timer0/timer0_basetimer** - Replace XTAL32_Config to BSP_XTAL32_Init - **timer2/timer2_capture** - Refine code due to some of member type of struct stc_tmra_init_t is changed - **timer2/timer2_clock_source** - Refine code due to some of member type of struct stc_tmra_init_t is changed - **timer4/timer4_event_compare** - Update TMR4 event: EVT_SRC_TMR4_1_SCMP_UH -> EVT_SRC_TMR4_1_SCMP0 - **timer4/timer4_event_delay** - Update TMR4 event: EVT_SRC_TMR4_1_SCMP_UH -> EVT_SRC_TMR4_1_SCMP0 - **timer4/timer4_pwm_through** - Modify the initial configuration to achieve 0% or 100% duty cycle - **timer6/timer6_capture** - Modify the PWM stop polarity as high - **timer6/timer6_capture_dual_buf** - Modify the PWM stop polarity as high - **timer6/timer6_cmp_deadtime** - Remove redundant code - **timer6/timer6_cmp_sawtooth** - Remove redundant code - **timer6/timer6_cmp_sawtooth_dual_buf** - Remove redundant code - **timer6/timer6_cmp_triangular_buf** - Remove redundant code - **timer6/timer6_define_pwm_number** - Modify for Peripheral clock command process - **timer6/timer6_hw_code_cnt** - Modify debug info - **timer6/timer6_pulse_encoder_z_count** - Add timer6_pulse_encoder_z_count example - **timera/timera_base_timer** - Refine code due to some of member type of struct stc_tmra_init_t is changed - **timera/timera_capture** - Set XTAL as system clock source - Refine code due to some of member type of struct stc_tmra_init_t is changed - Modify uart baudrate:19200->115200 - **timera/timera_cascade_count** - Refine code due to some of member type of struct stc_tmra_init_t is changed - **timera/timera_compare_value_buffer** - Set XTAL as system clock source - Refine code due to some of member type of struct stc_tmra_init_t is changed - Modify uart baudrate:19200->115200 - **timera/timera_pulse_encoder_z_count** - Add timera_pulse_encoder_z_count example - **timera/timera_pwm** - Refine code due to some of member type of struct stc_tmra_init_t is changed - **trng/trng_base** - Set XTAL as system clock source - Modify printf baudrate - **usart/usart_clocksync_dma** - Add usart_clocksync_dma example - **usart/usart_smartcard_atr** - Remove u32StopBit from stcSmartCardInit structure - **usart/usart_uart_dma** - Split register USART_DR to USART_RDR and USART_TDR - **usart/usart_uart_multiprocessor** - Optimize the RX process - **wdt/wdt_interrupt_sw_startup** - Add delay before WDT_GetStatus function #### utils ------ ## V2.1.0 Jan 15, 2023 #### documents #### drivers - ##### bsp/components - **gt9xx** - Add gt9xx component - **nt35510** - Compliant LCD drive IC: NT35310 - ##### bsp/ev_hc32f4a0_lqfp176 - Add configuration of XTAL IO as analog function - Add XTAL/XTAL32 IO define - Re-define macro: BSP_KEY_KEY10_WAKEUP - Add gt9xx bsp - Add timing comments - Optimize timing parameters - Optimize function arguments - Update function arguments - Add macro-define:LIN & smartcard - Initialize CS state - ##### cmsis/Device - Modify headfile register address and register name based on reference manual Rev1.13 - Delete the __low_level_init function of IAR and $Sub$$main function of MDK - ##### hc32_ll_driver - **generic** - Modify version as 2.1.0 - Implemented the definition of __NO_INIT for AC6 and ARM Compiler - ARM Compiler suppress warning message: diag_1296 - **interrupts_share** - Rename I2Cx_Error_IrqHandler as I2Cx_EE_IrqHandler - Refine TMRA CMP DCU MAU share handler - **adc** - Modify macro group definition: ADC_Scan_Mode, ADC_Sync_Unit, ADC_Sync_Mode - API fixed: ADC_DeInit() - **aos** - Modified parameters name of API AOS_CommonTriggerCmd() and AOS_SetTriggerEventSrc() - Macro name modified: from IS_AOS_TRIG_SEL to IS_AOS_TARGET - Modified parameters name and comments of AOS_CommonTriggerCmd() and AOS_SetTriggerEventSrc() - **can** - Deleted redundant comments - Remove CAN_FLAG_RX_BUF_OVF from CAN_FLAG_CLR_ALL - API fixed: CAN_FillTxFrame(), CAN_GetStatus(), CAN_ClearStatus() - **clk** - Refine stc_clock_freq_t - Fixed bug# GetClockFreq() API xtal32 value - Modified CLK_PLLN_DEFAULT value - Optimize API CLK_SetCANClockSrc(), add assert IS_PWC_UNLOCKED() - **cmp** - Modify structure stc_cmp_window_init_t - Modify macro define for API - **crc** - Add waiting time after write CRC data - **dac** - Modify function: DAC_AMPCmd - Modify function: DAC_AMPCmd and add assert - Synchronize register: EN->E,ADPSL->ADCSL,ALIGN->DPSEL - **dcu** - Modify macro group comments: DCU_Interrupt_Type - Synchronize register: DCU_INTSEL -> DCU_INTEVTSEL - Modify function comments: DCU_IntCmd - **dma** - Modify DMA_StructInit() default value - Modify API DMA_DeInit and add LLP address assert - **efm** - Add Flash protect level define - Code refine - Use define to replace magic data - Add API EFM_Protect_Enable & EFM_WriteSecurityCode - Modify API EFM_Read & EFM_Program - **emb** - Modify structure comments:stc_emb_monitor_tmr_pwm_t - Optimize function: EMB_TMR4_Init - Optimize function: EMB_TMR6_Init - **fcm** - Modify parameter check for reference clock source - **gpio** - Add API GPIO_AnalogCmd() and GPIO_ExIntCmd() - **i2c** - Add API I2C_SlaveAddrCmd() - Add API I2C_SlaveAddrCmd(), modify API I2C_SlaveAddrConfig() - **icg** - Delete ICG2 function - **interrupts** - Delete comment code - Add macro-definition: EIRQFR_REG/NMIENR_REG/INTWKEN_REG - **mpu** - Update define base on new head file - Modify IS_MPU_SP_START_ADDR & SP start address - **ots** - API fixed: OTS_CalculateTemp() - **pwc** - Refine API PWC_STOP_Enter() - Modify API PWC_HighSpeedToLowSpeed() base umRev1.13 - Optimize API PWC_STOP_ClockSelect() & comment - **qspi** - Modify the conditions for entering direct communication mode - **smc** - Modify EXMC_SMC_StructInit, EXMC_SMC_Init, EXMC_SMC_GetChipConfig - Delete function comments: EXMC_SMC_Chipx - **spi** - Add frame level processing for API SPI_TxRx(),SPI_Tx() - **sram** - Deleted redundant comments - **tmr2** - Deleted redundant comments - **tmr4** - Update API parameter u16IntType to u32IntType - Modify macro-define: TMR4_OCSR_MASK - Re-name parameter u16IntType to u32IntType - Add RCSR register data type - **tmr6** - Modify structure stc_tmr6_deadtime_config_t - Modify structure stc_timer6_init_t to stc_tmr6_init_t - Modify macro define for group TMR6_Emb_Ch_Define - Modify macro define for group TMR6_hardware_xxx_condition_Define - Modify macro define for group TMR6_HW_Count_xx_Cond_Define - Modify macro define for group TMR6_Valid_Period_Count_Cond_Define - Modify API TMR6_SetFilterClockDiv() - Define variable in the beginning of the function - **tmra** - Comments optimization - **trng** - API fixed: TRNG_Init() - **usart** - Optimize UART DIV_Fraction calculation time - Fix bug: expressions may cause overflow when calculate UART DIV_Fraction - **usb** - Add USB core ID select function - Delete comment - Add USB DMA function - **utility** - Support re-target printf for IAR EW version 9 or later #### midwares - ##### hc32/iec60730_class_b_stl - Optimize macros definitions - Modify USART_SR_TXE to USART_SR_TC in STL_ConsoleOutputChar() - Fix warning: MISRAC2012-Rule-18.4 - Fix bug: Reading CC Build CRC32 value is error in release project - ##### hc32/usb - Add USB core ID select function - Modify for MISRAC - Delete comment - Fix bug for USB endpoint GET_STATUS request - Modify for variable alignment - Add bot xfer error processing - Remove msc bot reset operation - Optimize for device insert detection - Remove the judgment of ErrCnt when xfer error #### projects - ##### ev_hc32f4a0_lqfp176/applications - **functional_safety/iec60730_class_b** - Add VBAT initialization - Add configuration of XTAL32 IO as analog function - **iap/iap_boot** - Add configuration of XTAL IO as analog function - **iap/iap_ymodem_boot** - Add configuration of XTAL IO as analog function - Add print strings for download and upload completion - **usb/usb_dev_cdc** - Modify for MISRAC - Add USB core ID select function - Modify DEV_MANUFACTURER_STRING - **usb/usb_dev_cdc_msc** - Modify for MISRAC - Add USB core ID select function - Using micro SD card as memory and support USB HS - Add usb_dev_cdc_msc application - Modify the error of CSD parameter calculation - Modify DEV_MANUFACTURER_STRING - Modify Vendor Identification - **usb/usb_dev_hid_cdc** - Modify for MISRAC - Add USB core ID select function - Modify DEV_MANUFACTURER_STRING - **usb/usb_dev_hid_custom** - Add USB core ID select function - Modify DEV_MANUFACTURER_STRING - **usb/usb_dev_hid_msc** - Add USB core ID select function - Using micro SD card as memory and support USB HS - Add usb_dev_hid_msc application - Modify the error of CSD parameter calculation - Modify DEV_MANUFACTURER_STRING - Modify Vendor Identification - **usb/usb_dev_mouse** - Add USB core ID select function - Modify DEV_MANUFACTURER_STRING - **usb/usb_dev_msc** - Add USB core ID select function - Using micro SD card as memory and support USB HS - Add usb_dev_msc application - Modify the error of CSD parameter calculation - Modify DEV_MANUFACTURER_STRING - Modify Vendor Identification - **usb/usb_host_cdc** - Add USB core ID select function - **usb/usb_host_mouse_kb** - Add USB core ID select function - **usb/usb_host_msc** - Add USB core ID select function - Support LFN print - Fix bug for device disconnect detect - ##### ev_hc32f4a0_lqfp176/examples - **adc/adc_awd** - Comment fixed - **adc/adc_base** - Add configuration of XTAL IO as analog function - Add configuration usage of sampling time - **can/can_classical** - CAN_IrqCallback() fixed - **can/can_fd** - CAN_IrqCallback() fixed - **can/can_ttcan** - CAN_IrqCallback() fixed - **clk/clk_switch_sysclk** - Add configuration of XTAL and XTAL32 IO as analog function - **clk/clk_xtalstop_detect** - Add configuration of XTAL IO as analog function - **cmp/cmp_normal_blankwindow** - Modify for driver update - **cmp/cmp_normal_int** - Modify for driver update - **cmp/cmp_window** - Modify for driver update - **ctc/ctc_ctcref_trimming** - Add configuration of XTAL IO as analog function - **ctc/ctc_xtal32_trimming** - Add configuration of XTAL and XTAL32 IO as analog function - **ctc/ctc_xtal_trimming** - Add configuration of XTAL IO as analog function - **dac/dac_base** - Simplify the dac base example - **dac/dac_sync_mode** - Add dac_sync_mode example - **efm/efm_protect** - Add efm_protect example - **emb/emb_cmp_brake_timer4** - Sync CMP and DAC driver - **emb/emb_cmp_brake_timer6** - Sync CMP and DAC driver - Modify structure stc_timer6_init_t to stc_tmr6_init_t - **emb/emb_osc_brake_timer4** - Add configuration of XTAL IO as analog function - **emb/emb_osc_brake_timer6** - Add configuration of XTAL IO as analog function - Modify structure stc_timer6_init_t to stc_tmr6_init_t - **emb/emb_port_brake_timer6** - Modify structure stc_timer6_init_t to stc_tmr6_init_t - **emb/emb_pwm_brake_timer6** - Modify structure stc_timer6_init_t to stc_tmr6_init_t - **emb/emb_sw_brake_timer6** - Modify structure stc_timer6_init_t to stc_tmr6_init_t - **eth/eth_loopback** - Delect RX_ER Pin in RMII mode - **eth/eth_twoboards** - Add configuration of XTAL IO as analog function - **exmc/exmc_dmc_sdram_is42s16400j7tli** - Initialize buffer with random data - **exmc/exmc_nfc_nandflash_mt29f2g08ab** - Initialize buffer with random data - **exmc/exmc_sdram_sram** - Add exmc_sdram_sram example - **exmc/exmc_smc_lcd_nt35510** - Add exmc_smc_lcd_nt35510 example - **exmc/exmc_smc_sram_is62wv51216** - Initialize buffer with random data - **fcm/fcm_freq_measure** - Add configuration of XTAL and XTAL32 IO as analog function - Modify print process after clear flag in IRQ handle - Modify reference clock for SWDTLRC - **hrpwm/hrpwm_output** - Modify structure stc_timer6_init_t to stc_tmr6_init_t - **i2c/i2c_master_dma** - Add i2c_master_dma example - **i2c/i2c_master_int** - Modify LED blink time - **i2c/i2c_master_polling** - Modify LED blink time - **i2c/i2c_slave_dma** - Add i2c_slave_dma example - **i2c/i2c_slave_int** - Modify LED blink time - **i2c/i2c_slave_polling** - Modify LED blink time - **icg/icg_swdt_interrupt_hw_startup** - Exchange LED color - **icg/icg_wdt_interrupt_hw_startup** - Exchange LED color - **intc/intc_nmi_xtalstop** - Add configuration of XTAL IO as analog function - **ots/ots_base** - Print log fixed - **pwc/pwc_lpc** - Code refine - **pwc/pwc_lvd** - Add filter configure to LVD initialize - **pwc/pwc_stop_wake** - Code refine - **rtc/rtc_alarm** - Add configuration of XTAL32 IO as analog function - **rtc/rtc_calibration_output** - Add configuration of XTAL32 IO as analog function - **rtc/rtc_intrusion_detect** - Add configuration of XTAL32 IO as analog function - **rtc/rtc_low_power** - Add configuration of XTAL32 IO as analog function - **sdioc/sdioc_mmc** - Add configuration of XTAL IO as analog function - Add the function to get extended CSD register - **sdioc/sdioc_sd** - Add configuration of XTAL IO as analog function - Modify the error of CSD parameter calculation - **swdt/swdt_interrupt_sw_startup** - Exchange LED color - **timer0/timer0_basetimer** - Add configuration of XTAL32 IO as analog function - **timer2/timer2_capture** - Macro definition fixed - **timer4/timer4_counter_sawtooth** - Fix MISRA warning: MISRAC2012-Rule-10.3 - **timer6/timer6_capture** - Modify structure stc_timer6_init_t to stc_tmr6_init_t - Modify macro define for group TMR6_hardware_xxx_condition_Define - **timer6/timer6_capture_dual_buf** - Modify structure stc_timer6_init_t to stc_tmr6_init_t - Modify macro define for group TMR6_hardware_xxx_condition_Define - **timer6/timer6_cmp_deadtime** - Modify structure stc_tmr6_deadtime_config_t - Modify structure stc_timer6_init_t to stc_tmr6_init_t - **timer6/timer6_cmp_sawtooth** - Modify structure stc_timer6_init_t to stc_tmr6_init_t - **timer6/timer6_cmp_sawtooth_dual_buf** - Modify structure stc_timer6_init_t to stc_tmr6_init_t - **timer6/timer6_cmp_triangular_buf** - Modify structure stc_timer6_init_t to stc_tmr6_init_t - **timer6/timer6_define_pwm_number** - Modify structure stc_timer6_init_t to stc_tmr6_init_t - **timer6/timer6_hw_code_cnt** - Modify macro define for group TMR6_HW_Count_xx_Cond_Define - **timer6/timer6_hw_sta_stp_clr** - Modify structure stc_timer6_init_t to stc_tmr6_init_t - Modify macro define for group TMR6_hardware_xxx_condition_Define - **timer6/timer6_sw_sync** - Modify structure stc_timer6_init_t to stc_tmr6_init_t - Code refine for peripheral clock command - **timer6/timer6_valid_period** - Modify structure stc_timer6_init_t to stc_tmr6_init_t - **timera/timera_base_timer** - Comments fixed - **timera/timera_capture** - TMRA_IrqCallback(): comment fixed, print log fixed - **timera/timera_pwm** - Comment fixed - **usart/usart_clocksync_int** - Read USART_DR.RDR when USART overrun error occur - **usart/usart_smartcard_atr** - Add delay time for smartcard cold reset - Read USART_DR.RDR when USART overrun error occur. - **usart/usart_uart_dma** - Delete the redundant code - Read USART_DR.RDR when USART overrun error occur. - Update UART timeout function calculating formula for Timer0 CMP value - **usart/usart_uart_halfduplex_int** - Read USART_DR.RDR when USART overrun error occur - **usart/usart_uart_int** - Read USART_DR.RDR when USART overrun error occur - **usart/usart_uart_multiprocessor** - Read USART_DR.RDR when USART overrun error occur - **usart/usart_uart_polling** - Read USART_DR.RDR when USART overrun error occur - **wdt/wdt_interrupt_sw_startup** - Exchange LED color #### utils ------ ## V2.0.0 Mar 31, 2022 - Initial release.