GD32 MCU标准固件库是一个固件函数包,它由程序、数据结构和宏组成,包括了GD32 MCU所 有外设的性能特征。固件库还包括每一个外设的驱动描述和基于评估板的固件库使用例程。通过 使用标准固件库,用户无需深入掌握细节,也可以轻松应用每一个外设。使用固件库可以大大减 少用户的编程时间, 从而降低开发成本。每个外设驱动都由一组函数组成,这组函数覆盖了该外 设所有功能。 可以通过调用一组通用API(application programming interface应用编程界面)来实 现对外设的驱动, 这些API的结构、函数名称和参数名称都进行了标准化规范。 在此以GD32E23x系列固件库为例进行说明固件库架构及使用方法,其他系列固件库可类比参考。
1.固件库文件夹组织结构GD32E230_Firmware_Library文件组织结构如图 0-1固件库文件组织结构图所示。 2. 文件夹 Examples 文件详解文件夹Examples,对应每一个GD32外设均包含一个子文件夹。 每个子文件夹包含了关于本外设的一个或多个例程,来示范如何使用对应外设。 每个例程子文件夹包含如下文件: ◼ readme.txt: 关于本例程的简单描述和使用说明; ◼ GD32e230_libopt.h:该头文件可以设置例程所使用到的外设,由不同的“DEFINE”语句组成(默认情况下,所有外设均打开); ◼ GD32e230_it.c:该源文件包含了所有的中断处理程序(如果未使用到中断,则所有的函数体都为空); ◼ GD32e230.it.h:该头文件包含了所有的中断处理程序的原形; ◼ systick.c: 该源文件包含了使用systick的精准延时程序; ◼ systick.h: 该头文件包含了使用systick的精准延时程序的原形; ◼ main.c:例程代码注:所有的例程的使用,都不受不同软件开发环境的影响。Firmware文件夹包含组成固件库核心的所有子文件夹和文件: ◼ CMSIS子文件夹包含有Cortex M23内核的支持文件、 基于Cortex M23内核处理器的启动代码和库引导文件以及基于GD32E230的全局头文件和系统配置文件; ◼ GD32E230_standard_peripheral子文件夹;
– Include子文件夹包含了固件函数库所需的头文件,用户无需修改该文件夹;
– Source子文件夹包含了固件函数库所需的源文件,用户无需修改该文件夹。 3. 固件库例程使用方法3、Template文件夹包含一个关于使用LED、 USART打印、 按键控制的简单例程,(IAR_project用于IAR编译环境, Keil_project用于Keil5编译环境)。 用户可以使用该工程模板进行固件库例程的移植编译, 具体使用方法见下: (1) 选择文件 打开“Examples”文件夹,选择需要测试的模块,如SPI,打开”SPI”文件夹,选择SPI的一个例程,如”SPI_master_transmit_slave_receive_interrupt”,如图所示 (2)拷贝文件 打开“Template”文件夹,将” IAR_project”和” Keil_project”两个文件夹保留,其他文件都删除,然后将“SPI_master_transmit_slave_receive_interrupt”文件夹中的所有文件拷到“Template”文件夹子目录下,如图所示 (3)打开工程 GD提 供 Keil和 IAR两种版本的工程,根据客户所安装的软件,打开不同的 project,如”Keil_project”,打开\Template\Keil_project\Project.uvproj,如图所示 由于不同的模块、不同的功能,会使用到不同的文件,需要根据客户选择拷贝的文件,对工程里的文件进行增加或删除,如图所示 (4)编译调试下载 首先编译整个工程,如果无错误,按照readme中的介绍,选择正确的跳线及连线,然后再将程序下载到目标板上,则会有如readme中描述的现象。 IDE的具体使用,请参考相应的软件使用说明。如客户使用的是Keil,可见下图 4. Utilities 文件夹Utilities文件夹包含运行固件库例程评估板的文件: ◼ Binary、 LCD_Commom及Third_Party子文件夹; ◼ GD32e230_eval.h及GD32e230_lcd_eval.h文件是运行固件库例程所需关于评估板的头文件; ◼ GD32e230_eval.c及GD32e230_lcd_eval.c文件是运行固件库例程所需关于评估板的源文件 5. 固件函数库文件描述固件库使用的主要文件如表下表固件函数库文件描述所示,读者可以参考。
教程由GD32 MCU方案商聚沃科技原创发布,了解更多GD32 MCU教程,关注聚沃科技官网,GD32MCU技术交流群:859440462
|