目录前言一、工具安装与设备支持包获取二、固件库下载三、建立工程文件目录四、创建MDK工程五、工程文件移植六、工程配置七、下载与调试八、常见问题总结前言GD32L235是兆易创新GgigaDevice继GD32L233系列后推出的又一款超低功耗Arm® Cortex®-M23微控制器。它在待机(Standby)模式下的整体功耗电流仅有0.26uA即使在最高主频全速工作模式下其功耗也仅为66μA/MHz如此低的运行功耗和休眠功耗意味着在电池供电场景下可大幅度提高设备的续航时间非常适合对功耗敏感和长续航要求的物联网终端设备。本教程作为系列应用指南的开篇将详细介绍如何从零开始创建一个适用于GD32L235 的Keil MDK基础代码工程。一、工具安装与设备支持包获取Keil MDK软件工具安装和破解教程可参考以下链接Keil5 详细安装教程C51MDK - CaspianCKY - 博客园Keil MDK软件工具安装完成之后还需要获取GD32L235的设备支持包目前有两种途径可以获取设备支持包第一种方法是去Keil 官网Keil官方会将不同芯片厂商的设备支持包资源在CMSIS上但是对于GD这样的国产芯片厂商而言Keil官方更新设备支持包资源存在一定的滞后。第二种方法也是推荐的一种做法就是直接去兆易官网上去下载设备支持包资源在芯片资源下载页面找到GD32L23x_Addon_V2.2.0具体版本根据实际情况为准将该压缩包解压后.pack为后缀的文件就是Keil的设备支持包。二、固件库下载1.浏览器搜索兆易创新然后利用其官网提供的搜索工具搜索GD32L235。2.网页搜索结果中找到32位微控制器MCU这一项然后在右侧点击当前使用的MCU具体信号。3.在跳转后的界面往下翻找到“固件库”可以看到当前固件库的版本是V2.4点击右侧压缩包图标就可以触发浏览器的下载任务。4.点击图标后会弹出软件许可界面选择接受即可5.兆易创新官方账号才能下载没有的话可以注册一个以后再有此类的需求直接登录账号即可。6.固件库解压后的目录下包含5个目录Docs存放的是GD32L235-Eval板原理图和固件库使用指南文件Examples目录存放的是GD官方基于Eval开发板编写的外设应用历程外设开发时可以作为参考代码使用Firmware存放的是官方标准库文件、启动文件等是固件工程移植必需的内容Template是GD官方提供的工程模板适用于Keil、IAR和GD32Embedded Builder开发工具不过这些模板为了兼容固件库目录结构工程文件路径和文件结构比较杂乱Utilities目录存放的是GD官方为GD32L235-Eval板编写驱动文件。三、建立工程文件目录在嵌入式项目开发中为了便于管理工程文件同时也能让工程架构更加清晰可以建立如下目录注意工程目录尽量不要使用中文命名。Doc目录用于存放与项目相关的文档如固件版本变更记录、通信协议文档等内容。Drivers目录用于存放GD提供的官方外设库。MDK-ARM目录用于存放Keil工程和编译输出的文件。User目录用于存放用户编写的代码文件该目录下包含三个子目录分别为APP、BSW和SL。APP目录用于存放应用层文件BSW目录用于存放驱动层文件SL目录用于存放服务调用文件和通用文件。每个目录下又包含一个Inc和一个Src子目录分别用来存放头文件和源文件。四、创建MDK工程1.打开 Keil μVision 软件点击菜单栏的Project - New uVision Project。2.选择MDK-ARM目录作为工程文件的存放位置并将工程命名为GD32L235_Project。3.在弹出的芯片选择窗口中选择目标芯片型号可以在Search右侧搜索框内输入具体的芯片型号如GD32L235CB然后点击选中目标芯片最后点击OK。4.在弹出的运行环境管理窗口中CMSIS勾选Core选项否则编译时会报‘cmsis_armclang.h’ file not found错误5.进入工程项目管理界面根据项目文件结构创建源文件虚拟目录6.分别创建User/APP、User/BSW、User/SL和Drivers/GD32L23x_Standard_Driver虚拟目录分别用于管理用户代码和GD官方驱动库文件修改工程名称为GD32L235_Project。至此Keil工程就创建完成了下面就可以开始工程文件移植步骤了。五、工程文件移植1.将固件库中的CMSIS和GD32L23x_standard_peripheral拷贝到工程的Drivers目录2.将GD32L23x_Firmware_Library_V2.4.0/Template目录下的gd32l23x_libopt.h文件拷贝到工程Drivers/GD32L23x_standard_peripheral/Include目录下。3.将GD32L23x_Firmware_Library_V2.4.0/Template目录下的main.h和main.c文件分别拷贝到工程User/App/Inc和User/App/Src目录下。4.点击菜单栏的File - New创建新文件点击保存图标文件命名为driver.h保存到User/BSW/Inc目录下重复相同步骤创建driver.c文件保存到User/BSW/Src目录下。5.在driver.h文件中添加以下内容并在driver.c文件中包含driver.h头文件。6.点击菜单栏的File - Open打开GD32L23x_Firmware_Library_V2.4.0/Template目录下的gd32l23x_it.h文件将其中的函数声明代码拷贝到driver.h文件中。同样的方式打开systick.h文件也将其中的函数声明代码拷贝到driver.h文件中。7.点击菜单栏的File - Open打开GD32L23x_Firmware_Library_V2.4.0/Template目录下的gd32l23x_it.c文件将SRAM_ECC_ERROR_HANDLE宏定义、NMI_Handler函数、HardFault_Handler函数、SVC_Handler函数、PendSV_Handler函数和SysTick_Handler函数定义代码拷贝到driver.c文件中注意需要把SysTick_Handler函数中“led_spark();”删除它是GD官方基于Eval板的闪灯程序。同样的方式打开systick.c文件也将systick_config函数、delay_1ms函数、delay_decrement函数和delay变量定义代码拷贝到driver.c文件中。8.添加官方库文件到工程。界面左侧工程目录下选择Drivers/GD32L23x_Standard_Driver单击鼠标右键第一种方法在弹出的选项列表中选择Add Existing Files to Group Drivers/GD32L23x_Standard_Driver…。第二种方法在弹出的选项列表中选择Manage Project Items …在弹出的窗口选择Drivers/GD32L23x_Standard_Driver点击Add Files…。在弹出的路径选择窗口找到工程目录下Drivers/GD32L23x_Standard_Driver/Source文件夹全部选中所有.c文件点击Add添加。以同样的操作步骤将Drivers/CMSIS/GD/GD32L23x/Source目录下的system_gd32l23x.c和ARM子目录下的startup_gd32l235.s也添加到Drivers/GD32L23x_Standard_Driver组。9.以同样的操作步骤把driver.c文件添加到User/BSW组把main.c添加到User/APP组10.添加头文件路径。点击菜单栏Options for Target…在弹出的窗口中选择C/C(AC6)在Preprocessor Sysmbols栏添加“GD32L235”宏定义。点击Include Paths栏右侧…在弹出的窗口中,将Drivers\GD32L23x_standard_peripheral\Include、Drivers\CMSIS\GD\GD32L23x\Include、User\APP\Inc、User\BSW\Inc和User\SL\Inc添加到include paths。11.main.c/.h文件修改。由于移植main.c和main.h均来自官方例程其中的代码只适用于eval板所以需要删除这些无用代码仅需保留main函数定义即可。六、工程配置1.点击菜单栏Options for Target…在弹出的窗口中选择Target选项在ARM Compiler选择编译器版本注意较早的keil版本中会包含V5版本的编译器建议使用V6版本编译速度更快。2.选择Output选项点Select Folder for Objects…选择MDK-ARM/Objects为编译输出目标文件夹。勾选Create HEX File。3.选择C/C选项优化等级选择-O0警告模式选择AC5-like Warnings。4.选择Debug选项设置仿真器类型JATG选择J-LINK/J-TRACE CortexGD-LINK选择CMSIS-DAP ARMv8-M Debugger。5.选择Utilities选项,取消Use Debug Driver勾选在Settings选项框中选择使用的仿真器型号点击Settings在弹出的设置窗口中选择Flash Download项勾选Reset and Run。七、下载与调试1.连接好仿真器点击菜单栏Options for Target…在弹出的窗口中选择Debug选项选择使用的仿真器根据实际型号选择由于使用的是J-TAG仿真器所以这里选择J-LINK/J-TRACE Cotex点击Settings,端口选择SW可以看到右侧SW Device出现了对应的序列好说明仿真器正常识别到的芯片。2.选择菜单栏Download即可烧录程序选择Stop/Start Session即可进入调试模式八、常见问题总结1.编译时报error: cmsis_armclang.h file not found错误需要在Manage Run-Time Environment的CMSIS项勾选CORE。2.编译时报. warning: no newline at end of file [-Wnewline-eof]警告C/C选项中Warnings栏改为AC5-like Warnings。3.头文件显示x但是编译时又无错误和警告信息检查路径中是否存在中文。
GD32L235应用教程系列之Keil MDK代码工程创建
发布时间:2026/6/10 9:52:35
目录前言一、工具安装与设备支持包获取二、固件库下载三、建立工程文件目录四、创建MDK工程五、工程文件移植六、工程配置七、下载与调试八、常见问题总结前言GD32L235是兆易创新GgigaDevice继GD32L233系列后推出的又一款超低功耗Arm® Cortex®-M23微控制器。它在待机(Standby)模式下的整体功耗电流仅有0.26uA即使在最高主频全速工作模式下其功耗也仅为66μA/MHz如此低的运行功耗和休眠功耗意味着在电池供电场景下可大幅度提高设备的续航时间非常适合对功耗敏感和长续航要求的物联网终端设备。本教程作为系列应用指南的开篇将详细介绍如何从零开始创建一个适用于GD32L235 的Keil MDK基础代码工程。一、工具安装与设备支持包获取Keil MDK软件工具安装和破解教程可参考以下链接Keil5 详细安装教程C51MDK - CaspianCKY - 博客园Keil MDK软件工具安装完成之后还需要获取GD32L235的设备支持包目前有两种途径可以获取设备支持包第一种方法是去Keil 官网Keil官方会将不同芯片厂商的设备支持包资源在CMSIS上但是对于GD这样的国产芯片厂商而言Keil官方更新设备支持包资源存在一定的滞后。第二种方法也是推荐的一种做法就是直接去兆易官网上去下载设备支持包资源在芯片资源下载页面找到GD32L23x_Addon_V2.2.0具体版本根据实际情况为准将该压缩包解压后.pack为后缀的文件就是Keil的设备支持包。二、固件库下载1.浏览器搜索兆易创新然后利用其官网提供的搜索工具搜索GD32L235。2.网页搜索结果中找到32位微控制器MCU这一项然后在右侧点击当前使用的MCU具体信号。3.在跳转后的界面往下翻找到“固件库”可以看到当前固件库的版本是V2.4点击右侧压缩包图标就可以触发浏览器的下载任务。4.点击图标后会弹出软件许可界面选择接受即可5.兆易创新官方账号才能下载没有的话可以注册一个以后再有此类的需求直接登录账号即可。6.固件库解压后的目录下包含5个目录Docs存放的是GD32L235-Eval板原理图和固件库使用指南文件Examples目录存放的是GD官方基于Eval开发板编写的外设应用历程外设开发时可以作为参考代码使用Firmware存放的是官方标准库文件、启动文件等是固件工程移植必需的内容Template是GD官方提供的工程模板适用于Keil、IAR和GD32Embedded Builder开发工具不过这些模板为了兼容固件库目录结构工程文件路径和文件结构比较杂乱Utilities目录存放的是GD官方为GD32L235-Eval板编写驱动文件。三、建立工程文件目录在嵌入式项目开发中为了便于管理工程文件同时也能让工程架构更加清晰可以建立如下目录注意工程目录尽量不要使用中文命名。Doc目录用于存放与项目相关的文档如固件版本变更记录、通信协议文档等内容。Drivers目录用于存放GD提供的官方外设库。MDK-ARM目录用于存放Keil工程和编译输出的文件。User目录用于存放用户编写的代码文件该目录下包含三个子目录分别为APP、BSW和SL。APP目录用于存放应用层文件BSW目录用于存放驱动层文件SL目录用于存放服务调用文件和通用文件。每个目录下又包含一个Inc和一个Src子目录分别用来存放头文件和源文件。四、创建MDK工程1.打开 Keil μVision 软件点击菜单栏的Project - New uVision Project。2.选择MDK-ARM目录作为工程文件的存放位置并将工程命名为GD32L235_Project。3.在弹出的芯片选择窗口中选择目标芯片型号可以在Search右侧搜索框内输入具体的芯片型号如GD32L235CB然后点击选中目标芯片最后点击OK。4.在弹出的运行环境管理窗口中CMSIS勾选Core选项否则编译时会报‘cmsis_armclang.h’ file not found错误5.进入工程项目管理界面根据项目文件结构创建源文件虚拟目录6.分别创建User/APP、User/BSW、User/SL和Drivers/GD32L23x_Standard_Driver虚拟目录分别用于管理用户代码和GD官方驱动库文件修改工程名称为GD32L235_Project。至此Keil工程就创建完成了下面就可以开始工程文件移植步骤了。五、工程文件移植1.将固件库中的CMSIS和GD32L23x_standard_peripheral拷贝到工程的Drivers目录2.将GD32L23x_Firmware_Library_V2.4.0/Template目录下的gd32l23x_libopt.h文件拷贝到工程Drivers/GD32L23x_standard_peripheral/Include目录下。3.将GD32L23x_Firmware_Library_V2.4.0/Template目录下的main.h和main.c文件分别拷贝到工程User/App/Inc和User/App/Src目录下。4.点击菜单栏的File - New创建新文件点击保存图标文件命名为driver.h保存到User/BSW/Inc目录下重复相同步骤创建driver.c文件保存到User/BSW/Src目录下。5.在driver.h文件中添加以下内容并在driver.c文件中包含driver.h头文件。6.点击菜单栏的File - Open打开GD32L23x_Firmware_Library_V2.4.0/Template目录下的gd32l23x_it.h文件将其中的函数声明代码拷贝到driver.h文件中。同样的方式打开systick.h文件也将其中的函数声明代码拷贝到driver.h文件中。7.点击菜单栏的File - Open打开GD32L23x_Firmware_Library_V2.4.0/Template目录下的gd32l23x_it.c文件将SRAM_ECC_ERROR_HANDLE宏定义、NMI_Handler函数、HardFault_Handler函数、SVC_Handler函数、PendSV_Handler函数和SysTick_Handler函数定义代码拷贝到driver.c文件中注意需要把SysTick_Handler函数中“led_spark();”删除它是GD官方基于Eval板的闪灯程序。同样的方式打开systick.c文件也将systick_config函数、delay_1ms函数、delay_decrement函数和delay变量定义代码拷贝到driver.c文件中。8.添加官方库文件到工程。界面左侧工程目录下选择Drivers/GD32L23x_Standard_Driver单击鼠标右键第一种方法在弹出的选项列表中选择Add Existing Files to Group Drivers/GD32L23x_Standard_Driver…。第二种方法在弹出的选项列表中选择Manage Project Items …在弹出的窗口选择Drivers/GD32L23x_Standard_Driver点击Add Files…。在弹出的路径选择窗口找到工程目录下Drivers/GD32L23x_Standard_Driver/Source文件夹全部选中所有.c文件点击Add添加。以同样的操作步骤将Drivers/CMSIS/GD/GD32L23x/Source目录下的system_gd32l23x.c和ARM子目录下的startup_gd32l235.s也添加到Drivers/GD32L23x_Standard_Driver组。9.以同样的操作步骤把driver.c文件添加到User/BSW组把main.c添加到User/APP组10.添加头文件路径。点击菜单栏Options for Target…在弹出的窗口中选择C/C(AC6)在Preprocessor Sysmbols栏添加“GD32L235”宏定义。点击Include Paths栏右侧…在弹出的窗口中,将Drivers\GD32L23x_standard_peripheral\Include、Drivers\CMSIS\GD\GD32L23x\Include、User\APP\Inc、User\BSW\Inc和User\SL\Inc添加到include paths。11.main.c/.h文件修改。由于移植main.c和main.h均来自官方例程其中的代码只适用于eval板所以需要删除这些无用代码仅需保留main函数定义即可。六、工程配置1.点击菜单栏Options for Target…在弹出的窗口中选择Target选项在ARM Compiler选择编译器版本注意较早的keil版本中会包含V5版本的编译器建议使用V6版本编译速度更快。2.选择Output选项点Select Folder for Objects…选择MDK-ARM/Objects为编译输出目标文件夹。勾选Create HEX File。3.选择C/C选项优化等级选择-O0警告模式选择AC5-like Warnings。4.选择Debug选项设置仿真器类型JATG选择J-LINK/J-TRACE CortexGD-LINK选择CMSIS-DAP ARMv8-M Debugger。5.选择Utilities选项,取消Use Debug Driver勾选在Settings选项框中选择使用的仿真器型号点击Settings在弹出的设置窗口中选择Flash Download项勾选Reset and Run。七、下载与调试1.连接好仿真器点击菜单栏Options for Target…在弹出的窗口中选择Debug选项选择使用的仿真器根据实际型号选择由于使用的是J-TAG仿真器所以这里选择J-LINK/J-TRACE Cotex点击Settings,端口选择SW可以看到右侧SW Device出现了对应的序列好说明仿真器正常识别到的芯片。2.选择菜单栏Download即可烧录程序选择Stop/Start Session即可进入调试模式八、常见问题总结1.编译时报error: cmsis_armclang.h file not found错误需要在Manage Run-Time Environment的CMSIS项勾选CORE。2.编译时报. warning: no newline at end of file [-Wnewline-eof]警告C/C选项中Warnings栏改为AC5-like Warnings。3.头文件显示x但是编译时又无错误和警告信息检查路径中是否存在中文。