summaryrefslogtreecommitdiff
path: root/bsp/hc32/libraries/hc32f460_ddl/ChangeLog.md
blob: 1a1f50cfa89fca3d150585de30c5e6834efa5a36 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
# Update History
------
## V3.2.0  Sep 30, 2023
#### documents
#### drivers
- ##### bsp/ev_hc32f460_lqfp100_v2
  - 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 for MISRAC2012
  - Modify SPI clock divide factor from DIV4 to DIV64
  - Modify spi timeout value
- ##### cmsis/Device
  - Modify headfile based on reference manual Rev1.6
  - Optimze for the unused bit definitions
- ##### hc32_ll_driver
  - **generic**
    - Modify version as 3.2.0
    - Modify typo
    - Add __NO_OPTIMIZE configuration item
    - Add attribute for __RAM_FUNC definition
  - **interrupts_share**
    - 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 FCG0 default value
    - 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 IEN bit in GetCmpFuncStatusAndDisFunc function
  - **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
  - **dbgc**
    - Add hc32_ll_dbgc driver
  - **dcu**
    - Modify macro-definition according to RM:DCU_CTL_COMP_TRG->DCU_CTL_COMPTRG
    - Modify typo
    - Modify API DCU_DeInit()
    - Add CM_DCU4
    - 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
  - **efm**
    - Add FLASH security addr define
    - Modify API EFM_Program()
    - Modify assert IS_EFM_ADDR() range
    - Modify API EFM_Protect_Enable()
    - Modify typo
    - Modify API EFM_WriteSecurityCode(), switch to read_only mode before exit
    - Remove address assert from EFM_ReadByte()
    - Refine EFM_SequenceProgram() & EFM_ChipErase(), and put them in RAM
    - Fix bug of EFM_GetSwapStatus()
  - **emb**
    - Update EMB_CTL_CMPEN0~2 to EMB_CTL_CMPEN1~3
    - Update EMB_INTEN_PORTINTEN to EMB_INTEN_PORTININTEN
    - Update EMB_INTEN_PWMINTEN to EMB_INTEN_PWMSINTEN
    - Function EMB_TMR4_Init don't call EMB_DeInit
    - Function EMB_TMR6_Init don't call EMB_DeInit
  - **event_port**
    - Modify typo
    - Modify for new head file
  - **fcm**
    - Modify API FCM_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
  - **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
  - **mpu**
    - Modify typo
    - Optimize MPU_ClearStatus function
  - **ots**
    - Modify API OTS_DeInit()
    - Modify typo
  - **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
  - **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
  - **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
  - **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**
    - Modify for TMR6_Count_Mode_Define
    - Delete union in stc_tmr6_init_t structure
    - Add macro define for TMR6_Count_Dir_Status_Define
    - Modify typo
    - Modify API TMR6_GetCountDir()
    - Modify API TMR6_Init()
  - **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()
    - 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_hc32f460_lqfp100_v2/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
    - 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**
    - Rename UsbClockIni() as UsbClockInit()
  - **usb/usb_dev_cdc_msc**
    - Rename UsbClockIni() as UsbClockInit()
  - **usb/usb_dev_hid_cdc**
    - Rename EXINT_IrqCallback as EXTINT_IrqCallback
    - Rename UsbClockIni() as UsbClockInit()
  - **usb/usb_dev_hid_custom**
    - Rename EXINT_IrqCallback as EXTINT_IrqCallback
    - Rename UsbClockIni() as UsbClockInit()
  - **usb/usb_dev_hid_msc**
    - Rename UsbClockIni() as UsbClockInit()
  - **usb/usb_dev_mouse**
    - SysTick_Handler add __DSB for Arm Errata 838869
    - Rename UsbClockIni() as UsbClockInit()
  - **usb/usb_dev_msc**
    - Rename UsbClockIni() as UsbClockInit()
  - **usb/usb_host_cdc**
    - SysTick_Handler add __DSB for Arm Errata 838869
    - Rename UsbClockIni() as UsbClockInit()
  - **usb/usb_host_mouse_kb**
    - SysTick_Handler add __DSB for Arm Errata 838869
    - Rename UsbClockIni() as UsbClockInit()
  - **usb/usb_host_msc**
    - SysTick_Handler add __DSB for Arm Errata 838869
    - Rename UsbClockIni() as UsbClockInit()
- ##### ev_hc32f460_lqfp100_v2/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
  - **aes/aes_base**
    - Set XTAL as system clock source
    - Modify printf baudrate
  - **can/can_classical**
    - SysTick_Handler add __DSB for Arm Errata 838869
    - Modified the prescaler of CAN communication clock from 1 to 2.
  - **can/can_ttcan**
    - SysTick_Handler add __DSB for Arm Errata 838869
    - Modified the prescaler of CAN communication clock from 1 to 2.
  - **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**
    - Functional reconstruction
  - **crc/crc_hw_encode_sw_check**
    - Functional reconstruction
  - **dmac/dmac_base**
    - Add DMA2_Error_IrqCallback function
  - **efm/efm_chip_erase**
    - Add efm_chip_erase example
  - **efm/efm_sequence_program**
    - Re-structure
  - **efm/efm_swap**
    - Use EFM_GetSwapStatus() to judge and use only K10 to swich swap status
  - **emb/emb_cmp_brake_timer4**
    - Typo: hander -> handler
  - **emb/emb_cmp_brake_timer6**
    - Typo: hander -> handler
  - **emb/emb_osc_brake_timer4**
    - Typo: hander -> handler
  - **emb/emb_osc_brake_timer6**
    - Typo: hander -> handler
  - **emb/emb_port_brake_timer4**
    - Typo: hander -> handler
  - **emb/emb_port_brake_timer6**
    - Typo: hander -> handler
  - **emb/emb_pwm_brake_timer4**
    - Typo: hander -> handler
  - **emb/emb_pwm_brake_timer6**
    - Typo: hander -> handler
  - **hash/hash_base**
    - Set XTAL as system clock source
    - Modify printf baudrate
  - **i2c/i2c_master_polling**
    - Add definition I2C_ADDR_MD as address condition select
  - **i2c/i2c_slave_int**
    - Add definition I2C_ADDR_MD as address condition select
  - **i2c/i2c_slave_polling**
    - Add definition I2C_ADDR_MD as address condition select
  - **icg/icg_nmi_pin_hw_startup**
    - NMI_Handler add __DSB for Arm Errata 838869
  - **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**
    - Disable Xtal32 power while PD3
  - **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
  - **rtc/rtc_calibration_output**
    - Optimize RTC init sequence
    - Replace XTAL32_ClkInit to BSP_XTAL32_Init
  - **rtc/rtc_low_power**
    - Optimize RTC init sequence
  - **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
  - **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_32bit**
    - Delete gpio initialize
  - **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_hw_code_cnt**
    - Modify debug info
  - **timer6/timer6_hw_sta_stp_clr**
    - Fix IO conflicts with printf: PE6->PB1
  - **timer6/timer6_pulse_encoder_z_count**
    - Add timer6_pulse_encoder_z_count example
  - **timera/timera_capture**
    - Set XTAL as system clock source
  - **timera/timera_compare_value_buffer**
    - Set XTAL as system clock source
  - **timera/timera_pulse_encoder_z_count**
    - Add timera_pulse_encoder_z_count example
  - **trng/trng_base**
    - Set XTAL as system clock source
  - **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
------
## V3.1.0  Jan 15, 2023
#### documents
#### drivers
- ##### bsp/ev_hc32f460_lqfp100_v2
  - Add configuration of XTAL IO as analog function
  - Add XTAL/XTAL32 IO define
  - Initialize CS state
- ##### cmsis/Device
  - Modify headfile based on reference manual Rev1.5
  - Delete the __low_level_init function of IAR and $Sub$$main function of MDK
- ##### hc32_ll_driver
  - **generic**
    - Modify version as 3.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
    - Bug fix of TMRA CMP DCU and USART, refine IRQ143
  - **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
    - Optimize API CLK_SetCANClockSrc(), add assert IS_PWC_UNLOCKED()
    - Modify CLK_PLL_FREQ_MAX value, remove redundant code
  - **cmp**
    - Modify macro define for API
    - Code refine for scan function
  - **crc**
    - Add waiting time after write CRC data
  - **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 DMA config API
    - Modify API DMA_DeInit and add LLP address assert
  - **efm**
    - Add Flash protect level define
    - Code refine
    - 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()
  - **interrupts**
    - Delete comment code
    - Add macro-definition: EIRQFR_REG/NMIENR_REG/INTWKEN_REG
  - **ots**
    - API fixed: OTS_CalculateTemp()
  - **pwc**
    - Refine API PWC_STOP_Enter()
    - Bug fixed# PWC_PD_VdrCmd() and disable VDDR when enter PD3/4
    - Optimize API PWC_STOP_ClockSelect() & comment
    - Modify API PWC_HighSpeedToLowSpeed() & PWC_HighPerformanceToLowSpeed() base um_Rev1.42
  - **qspi**
    - Modify the conditions for entering direct communication mode
  - **spi**
    - Add frame level processing for API SPI_TxRx(),SPI_Tx()
  - **sram**
    - 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_timer6_init_t to stc_tmr6_init_t
    - 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_hc32f460_lqfp100_v2/applications
  - **functional_safety/iec60730_class_b**
    - Add configuration of XTAL32 IO as analog function
  - **iap/iap_boot**
    - Add configuration of XTAL IO as analog function
    - Replace PWC_HighPerformanceToLowSpeed to PWC_HighPerformanceToHighSpeed
  - **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
    - 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
    - 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
    - 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_hc32f460_lqfp100_v2/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_ttcan**
    - CAN_IrqCallback() fixed
  - **clk/clk_switch_sysclk**
    - Add configuration of XTAL/XTAL32 IO as analog function
  - **clk/clk_xtalstop_detect**
    - Add configuration of XTAL IO as analog function
  - **cmp/cmp_normal_int**
    - Modify for driver update
  - **cmp/cmp_scan_mode**
    - Modify for driver update
  - **efm/efm_protect**
    - Add efm_protect example
  - **emb/emb_cmp_brake_timer4**
    - Modify for driver update
  - **emb/emb_cmp_brake_timer6**
    - Modify for driver update
    - 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
  - **fcm/fcm_freq_measure**
    - Add configuration of XTAL/XTAL32 IO as analog function
    - Modify print process after clear flag in IRQ handle
    - Modify reference clock for SWDTLRC
  - **icg/icg_nmi_pin_hw_startup**
    - Add NMI pin init
  - **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_lvd_ex**
    - Add filter configure to LVD initialize
  - **pwc/pwc_stop_wake**
    - Code refine
  - **rtc/rtc_alarm**
    - Set XTAL32 pins to analog mode
  - **rtc/rtc_calibration_output**
    - Set XTAL32 pins to analog mode
  - **rtc/rtc_low_power**
    - Set XTAL32 pins to analog mode
  - **sdioc/sdioc_mmc**
    - Add the function to get extended CSD register
  - **sdioc/sdioc_sd**
    - Modify the error of CSD parameter calculation
  - **timer0/timer0_basetimer**
    - Add configuration of XTAL32 IO as analog function
  - **timer6/timer6_32bit**
    - Modify structure stc_timer6_init_t to stc_tmr6_init_t
  - **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_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
  - **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_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
------
## V3.0.0  Mar 31, 2022
- Initial release.