Release Notes for

AT32F435_437 Firmware Library

V2.2.5-2026/06/02

1.         CMSIS

l  system_at32f435_437.c

w   更新System_init()函数流程,避免切换过程中可能导致的时钟异常。

2.         Middlewares

l  USB

w   更新msc class,增加对test_unit()和start_stop()函数的处理,完善兼容性。

3.         Drivers

l  PWC

w   用于内存屏障的__force_stores()改由__ISB()和__DSB()替代,解决不同编译器下共用问题。

l  CRM

w   更新crm_reset(),crm_hick_sclk_frequency_select()和crm_hick_divider_select()函数流程,避免切换过程中可能导致的时钟异常。

l  EXINT

w   新增定义EXINT_TRIGGER_NONE_EDGE,以适应软触发无边沿配置需求。

4.         更新部分注释。

 

V2.2.4-2026/04/08

1.         CMSIS

l  at32f435_437.h

w   新增支持AT32F435VCH7、AT32F435VDH7、AT32F435VGH7和AT32F435VMH7等型号。

w   新增支持AT32F437VCH7、AT32F437VDH7、AT32F437VGH7和AT32F437VMH7等型号。

l  system_at32f435_437.h

w   新增SystemCoreClock宏定义,防止三方库默认引用时报错。

2.         Middlewares

l  USB

w   更新host模式下usbh_enum_handler()函数,在进行主机枚举过程中,SET_ADDRESS成功后添加10ms延时等待设备端地址生效,再进行后续请求及配置。该项以增加兼容性。

w   更新msc class,解决uhost_process_handler()函数中在未开启USBH_DEBUG_ENABLE调试模式时出现的编译警告问题。

l  I2C

w   修正宏定义拼写错误,I2C_MEM_ADDR_WIDIH_8修正为I2C_MEM_ADDR_WIDTH_8,I2C_MEM_ADDR_WIDIH_16修正为I2C_MEM_ADDR_WIDTH_16。

3.         Demos

l  SUFER_BOARD

w   修正APE格式解码时可能造成的内存泄漏问题。

l  Utilities

w   更新usb_iap_demo,修改app_led4_toggle工程中APP_ADDRESS地址,从0x08005000改到0x08006000。

l  EMAC

w   更新http_server demo,修改html_temp数组大小由4096改为8192,解决因数组长度不够而导致问题。

l  I2C

w   更新所有I2C demo中宏定义拼写错误,I2C_MEM_ADDR_WIDIH_8修正为I2C_MEM_ADDR_WIDTH_8,I2C_MEM_ADDR_WIDIH_16修正为I2C_MEM_ADDR_WIDTH_16。

 

V2.2.3-2025/11/24

1.         CMSIS

l  at32f435_437.h

w   新增支持AT32F435RGT7-7和AT32F435RMT7-7型号。

2.         Drivers

l  ADC

w   新增adc_combine_mode_set()函数,设置主从组合模式。

l  CRM

w   修正bit位域名adc14rst为tmr14rst,新增adc2en bit位域名。

l  GPIO

w   新增gpio_bits_toggle()函数。

l  QSPI

w   修正xip_cmd_w2_bit.xipr_dcnt bit宽度为6 bit。

l  TMR

w   更新tmr_pwm_input_config()、tmr_encoder_mode_config()和tmr_output_channel_config()函数。通道模式配置前关闭通道使能,否则通道模式无法切换。

3.         Middlewares

l  USB

w   更新keyboard class,在keyboard_type结构体中新增成员send_state用于记录发送状态,并更新函数usb_keyboard_class_send_report用于发送时的流控处理,避免发送数据出错。

w   更新 audio class,修改audio sampling frequency请求配置,解决部分主机兼容性问题。

l  EMAC

w   更新DNS服务器默认IP地址为:114.114.114.114。

4.         Demos

l  ADC

w   更新所有demo的ADC初始化顺序,防止在极端情况下异常。

w   更新有使用DMA的相关demo,配置流程中开启DMA循环模式,功能实现更新为循环触发。

w   删除重复的 software_trigger_repeat demo。

l  CRM

w   更新sysclk_switch demo中时钟配置流程,根据不同主频档位设定相应的LDO电压档。

l  DVP

w   更新dvp 所有demo中时钟配置流程,移除无用代码。

l  USB

w   更新所有usb_device demo的时钟分频配置流程,防止因AHB分频后导致USB时钟分频设置错误。

w   调整keyboard中唤醒稳定延时方式。

w   调整mouse中唤醒稳定延时方式。

w   更新msc中宏定义USB_FLASH_ADDR_OFFSET值,由0x08005000改为0x08008000,解决不同环境下编译范围溢出导致出错问题。

w   更新virtual_msc_iap demo中跳转APP函数,添加编译不优化设定,防止部分跳转优化失败的问题。

l  SRAM

w   删除SRAM demo,SRAM大小调整使用ICP工具进行。

l  Utilities

w   更新qspi_algorithm_demo,移除多余配置流程并修正代码中使用空指针的错误操作。

l  templates

w   更新eclipse_gcc中工程配置的include路径,防止多工程导入时workspace_project_locations参数错误导致编译报错。

l  Board

w   更新board.c中部分参数变量的写法,解决新版编译器下编译警告。

l  Cortex-m4

w   更新systick_interrupt中判断延时的写法由大于改为大于等于,避免翻转IO多1ms问题。

l  AT32IDE和Eclipse工程

w   删除工程配置中release项,只保留debug项。

l  IAP相关

w   更新所有IAP_Programmer.exe应用程序。

l  Keil工程

w   更新部分Keil工程的IROM size配置。

5.         更新部分注释。

 

V2.2.2-2025/01/20

1.         Middlewares

l  USB

w   更新host模式下usbh_hch_in_handler()函数,在NAK时的中断传输和同步传输不使能通道。

2.         Demos

l  IAP相关

w   更新所有IAP_Programmer.exe应用程序。

l  USB_DEVICE

w   更新USB低功耗唤醒模式的配置和唤醒流程,增加进出低功耗状态的系统稳定性。

l  SPI

w   更新所有SPI示例代码的结构和框架,移除usb_jtagpin_hardwarecs_dma并新增fullduplex_dma。

l  SURF_BOARD

w   at_surf_f437中新增video示例,用于演示视频解码。

3.         更新部分注释。

 

V2.2.1-2024/12/13

1.         CMSIS

l  DSP

w   进版了DSP源码库。

w   更新system_at32f435_437.c中system_core_clock_update()函数,修正可能计算值溢出导致结果错误的情况。

2.         Drivers

l  PWC

w   调整LDO输出档位设定,移除LDO配置项PWC_LDO_OUTPUT_1V0。

l  CAN

w   更新发送中止函数can_transmit_cancel()写法,以避免误操作而导致中止命令在各邮箱间互相影响。

l  USB

w   更新host模式下usb_hch_halt()函数,完善通道halt处理流程。

w   更新host模式下usb_hc_enable()函数,使能对应通道时确保清除其原有状态。

w   更新host模式下usb_host_disable()函数,更新关闭通道流程,以避免误打开其余通道。

w   更新device模式下usb_ept_open()函数,增加同步传输类型的处理,忽略其帧号。

w   更新device模式下usb_ept_close()函数,完善关闭端点流程。

3.         Middlewares

l  USB

w   更新usbd_reset_handler()函数,当USB RESET时将端点状态改为NAK。

w   新增usbd_ept_in_check_fifo()函数,在USB发送数据时增加对当前端点状态和fifo的检测。

w   更新mouse_class.c和custom_hid_class.c,增加在发送hid/mouse数据时检查上一包数据是否发送完成。

w   更新device模式下usbd_set_configuration()函数,修正USB set configuration的判断方式。

4.         Demos

l  I2C

w   新增memory_write示例。

w   更新eeprom,增加多页写逻辑。

l  PWC

w   PWC各demo代码流程中更新DEEPSLEEP模式唤醒后的过渡状态时间延时方式,确保各种情况下的稳定状态。

l  FLASH

w   移除fap_enable示例,以防恶劣电子环境下的意外情况造成系统异常。

l  TMR

w   修正oc_toggle_tmr9和pwm_output_tmr10中无输出问题,原示例中遗漏了输出使能功能tmr_output_enable()函数的开启。

l  EMAC

w   更新wake_on_lan示例中代码结构及唤醒初始化流程。

l  SDIO

w   更新at32_sdio.c协议驱动层并新增sd_emmc_card示例。

l  QSPI

w   更新xip_port_read_write_sram中QSPI接口配置流程,改为关闭cache。

l  BOARD

w   更新at_surf_f437_board_qspi_sram.c中QSPI接口配置流程,改为关闭cache。

l  USB

w   修正virtual_comport中SOF pin脚定义错误。

l  SURF_BOARD

w   at_surf_f437中新增picture示例,用于演示图片解码。

l  Utilities

w   SLIB demo中新增支持AT32IDE工程。

w   更新usb_iap下bootloader的跳转地址变量,将局部变量方式改为全局变量,尽可能确保跳转地址不被优化所影响。

5.         更新部分注释。

 

V2.2.0-2024/08/08

1.         Drivers

l  QSPI

w   更新qspi_flag_clear()函数的写法,修正AC6编译警告。

2.         Demos

l  I2C

w   I2C外设的GPIO初始化中,GPIO_PULL_UP改为GPIO_PULL_NONE。以增强不同外部电路的适应性。

w   修正communication_dma中DMA channel的配置顺序,以防止非法指针访问。

l  USB

w   修改virtual_msc_iap中flash_fat16.c的文件系统的写处理过程,以增强兼容性。

l  QSPI

w   更新所有QSPI demo中QSPI接口的初始化流程和写法。

3.         更新部分注释。

 

V2.1.9-2024/04/30

1.         CMSIS

l  device_support

w   增加AT32F435xD和AT32F437xD型号gcc和IAR环境下所使用的链接文件。

2.         Drivers

l  QSPI

w   修正fifo深度定义名,将QSPI_DMA_FIFO_THOD_WORD32改为QSPI_DMA_FIFO_THOD_WORD24。

3.         Middlewares

l  USB

w   关键词写法替换 ,用__WEAK替换__weak,增加平台通用性。

4.         Demos

l  Cortex-m4

w   调整代码初始化顺序,修正AC5编译错误。

l  SDIO

w   调整示例工程中SDIO的总线时钟频率,SD_CARD V1.1和V2.0提升到12MHz,另外的提升到25MHz。

l  XMC

w   在lcd_8bit的XMC初始化流程中增加读LCD id流程。

l  Utilities

w   调整usart_iap_demo和usb_iap_demo中不优化选项的__attribute__关键词写法,兼容AC6编译器。

 

V2.1.8-2024/04/08

1.         Drivers

l  QSPI

w   新增qspi_auto_ispc_enable()函数,用于总线输入时钟的相位匹配。

2.         Middlewares

l  USB

w   修正usbh_hch_out_handler()中断函数中STALL状态赋值方式。

3.         Demos

l  QSPI

w   更新所有demo,初始化流程中新增qspi_auto_ispc_enable()调用。

4.         更新部分注释。

 

V2.1.7-2024/03/01

1.         Demos

l  QSPI

w   新增run_in_qspi_flash示例。

w   更新所有qspi_cmd_esmt32m.c文件,移除未使用的user_func_check_timeout()函数。

l  EMAC

w   更新所有EMAC demo中sys_check_timeouts()函数的调用方式。

l  Utilities

w   更新qspi_algorithm中LDO输出配置,以及算法所用QSPI外设以宏定义方式呈现,方便接口切换。

 

V2.1.6-2024/01/26

1.         Middlewares

l  USB

w   更新usbd_core_type结构体成员类型,确保结构体中default_config和dev_config成员的地址4字节对齐。

w   更新custom hid report和audio hid report描述符。

2.         Demos

l  Board

w   更新at_surf_f437_board_usart.c文件,完善gcc环境下printf重定向输出函数__write()。

3.         更新部分注释。

 

V2.1.5-2024/01/05

1.         更新timer下input_capture demo的计数计算方式。

2.         更新部分USB demo HID识别慢问题。

3.         更新systick interrupt demo中systick的初始化函数。

4.         新增winusb demo。

5.         新增 ADC loop_transfer demo。

6.         各demo中更新xx_interrupt_flag_get()函数调用方式。

 

V2.1.4-2023/10/26

1.         更新QSPI demo。

2.         更新QSPI下载算法demo。

3.         更新部分注释及readme。

 

V2.1.3-2023/08/04

1.         utilities下各demo增加AT32IDE工程支持。

2.         CRC驱动新增多项式及多项式宽度可修改的支持。

3.         新增对AT32F435/437 Flash容量448KB型号的支持。

4.         更新USB驱动及demo,完善数据对齐问题,优化代码流程。

5.         完善IAR9使用printf时的重定向兼容性问题。

6.         新增按FLASH容量区分的宏定义并更新FLASH demo。

7.         更新部分注释。

 

V2.1.2-2023/02/16

1.         完善utilities下freertos demo的AC6编译问题。

2.         完善EMAC相关demo,更新cc.h文件以解决AC6编译后对齐出错问题,并增加lwip assert信息从串口输出。

3.         更新EMAC demo中lwip底层封包接口,以更好的支持多包传输。

4.         在at32f435_437_conf.h中新增了LEXT_VALUE宏定义。

5.         在*.ld文件中新增spim相关的section描述,以更好支持gcc下spim地址的链接处理。

6.         调整system_clock_config系统时钟配置函数中crm_reset函数的调用位置,避免进行系统时钟来回切换使用时出错。

7.         调整USB设置地址的时机,并修改USB host枚举超时处理流程。

8.         新增XMC pc_card demo。

9.         更新QSPI flash demo中所使用的qspi_data_write()函数流程,以解决当传入的flash起始地址非page对齐时出现写入数据错误问题。

10.     更新部分注释。

 

V2.1.1-2022/11/18

1.         移除各文件中文件头部分的版本及日期记录项。

2.         新增一份release notes drivers,单独记录drivers部分的更新,文件位于libraries\drivers目录下。

3.         修正USB的cdc_msc复合类在linux失败的问题。

4.         更新USB的virtual msc iap demo以支持linux。

5.         更新USB的audio相关内容,以提供更好的兼容性。

6.         更新了IAR_Programmer.exe。

7.         USART interrupt demo的中断函数中,标志位的检测加入了中断使能判断。

8.         ADC新增repeat_conversion_loop_transfer demo,采用DMA循环取ADC数据。

9.         VCO时钟上限调整为1200MHz,更新相关内容。

 

V2.1.0-2022/08/16

1.         更新I2C eeprom demo,增加16 位地址支持。

2.         新增USB主机CDC demo。

3.         QSPI新增XIP模式下对flash的读demo。

4.         template下新增IAR v9.3的工程demo。

5.         修正gcc环境下printf无法输出的问题。

6.         启动文件支持configuration wizard图形配置。

 

V2.0.9-2022/06/28

1.         新增USART RS485 demo。

2.         新增IO toggle demo。

3.         新增USB composite_vcp_msc demo。

4.         新增EMAC mqtt 客户端demo。

5.         新增FLASH 访问保护使能demo。

6.         优化部分demo及驱动流程,更正注释。

 

V2.0.8-2022/04/25

1.         修改USB virtual msc iap demo的分区表描述符。

2.         新增EMAC相关demo网络连接状态的检测功能,并更新local_time变量。

3.         关闭QSPI 相关demo中xip模式的cache功能。

4.         优化部分demo,更正注释。

 

V2.0.7-2022/04/02

1.         at_surf_f437综合应用中新增lvgl_music_player demo。

2.         导入DSP相关源码及新增cmsis_dsp demo。

3.         优化部分demo及驱动流程,更正注释。

 

V2.0.6-2022/03/11

1.         新增wdt_standby demo。

2.         新增适配于at_surf_f437开发板的各项demo。

 

V2.0.5-2022/02/11

1.         USB中新增virtual_comport demo。

2.         新增双OTG相关demo(1Host&1Device,2Host,2Device)。

3.         完善USB msc iap demo在不同系统下的兼容问题。

4.         优化部分demo及驱动流程,更正注释。

 

V2.0.4-2021/12/31

1.         修正中断优先级组参数定义错误的问题。

2.         统一printf的串口初始化及重定向函数到xx_board.c中,并去除各demo中的相关内容。

3.         更新部分demo,以支持AC6、 –O3优化等级编译。

4.         USB中新增composite_audio_hid demo,并完善回馈及同步机制。

5.         修正AT32F437 EMAC使用phy dp83848时,speed状态和duplex模式定义错误的问题。

 

V2.0.3-2021/12/17

1.         修正各外设的flag清除函数,防止位域方式下的误操作问题。

2.         修正USB设备类数组4字节对齐问题。

3.         更新SDRAM结构体成员名称。

4.         更新virtual_msc_iap demo的虚拟空间大小为100 MB。

5.         修正composite_vcp_keyboard demo中虚拟串口bulk传输结束问题。

6.         更新XMC部分demo内容及注释。

7.         更新DVP demo中所使用demo的PIN脚初始化,修正显示不稳定问题。

8.         更新USB demo中keyboard相关的发送函数。

9.         更新ADC demo中timer触发adc转换的定时器频率配置流程。

10.     调整了XMC外设驱动架构,并更新对应demo。

 

V2.0.2-2021/11/26

1.         更新部分注释及readme。

2.         修正audio codec设置麦克风频率的采样率判断流程。

3.         修正audio codec 的I2C通讯接口配置错误。

4.         修正USB audio feedback 功能异常问题。

5.         修正USB发数据写fifo时的字节对齐问题。

6.         新增SCFG中mem_map功能的示例demo。

7.         更改所有I2C demo中初始化宏定义I2Cx_SPEED为I2Cx_CLKCTRL。

8.         更新pwc_wakeup_pinx_enable与各引脚相关函数,将各pin独立的函数,统一调用接口为pwc_wakeup_pin_enable()。

 

V2.0.1-2021/11/15

1.         更新部分外设驱动的flag_clear()函数,修正bit位为w1c属性时的勿操作问题。

2.         解锁USD或SLIB后,增加unlock标志的判断流程。

3.         修正QSPI外设xip/cmd模式的驱动函数切换流程。

4.         更新部分ADC demo,修正原有配置的错误。

5.         更新USB audio demo,修正插拔录音的问题。

6.         更新sdram_dma demo中SDRAM外设配置参数。

7.         更新了部分文件中的注释及描述。

 

V2.0.0-2021/09/06

1.         AT32F435和AT32F437系列固件库初始发布版。