开发需知
在着手开发之前,先了解下SDK执行程序组成员有哪些,如何正确配置SDK。SDK请参考百度网盘开发板资料/03 - 软件资料/相关软件包/
里的WIFI&BLE固件。
百度网盘地址:点击跳转🚀
SDK执行程序组
SDK 最终生成的执行程序主要有两个:一个是 MBL(Main Bootloader),一个是 MSDK (Main SDK)。它们最终都将被烧写到 FLASH 运行。上电之后,程序将从 MBL 的 Reset_Handler 启动,然后跳转到MSDK主程序运行,如下图所示。
SDK配置
无线模块配置
配置文件为 GD32VW55x_RELEASE/config/platform_def.h
,主要内容见下图。
如果是WIFI
和蓝牙
都开启模式,请打开:
#define CFG_WLAN_SUPPORT
#define CFG_BLE_SUPPORT
2
如果只开启蓝牙模式,请只打开:
#define CFG_BLE_SUPPORT
如果只打开WIFI模式,请只打开:
#define CFG_WLAN_SUPPORT
如果关闭无线模块,请全部关闭。
关闭的方法就是将其注释。
SRAM布局(通常不需要配置)
配置文件为 GD32VW55x_RELEASE\config\config_gdm32.h
。修改以下宏定义值,可以对可执行程序段MBL及IMG占用的SRAM空间进行规划。这些值是偏移地址,基地址定义在该文 件开头处。 标注!Keep unchanged!
的行不能修改,否则会影响ROM中代码MbedTLS的运行。
每个可执行程序段内部的 SRAM 空间规划可以参考对应工程下的*.ld
文件,如 MBL\project\eclipse\mbl.ld
和 MSDK\plf\riscv\env_Eclipse\gd32vw55x.ld
文件。
FLASH布局(通常不需要配置)
配置文件为 GD32VW55x_RELEASE\config\config_gdm32.h
。修改以下宏定义值,可以对可执行程序段MBL及MSDK占用的FLASH空间进行规划。这些值是偏移地址,基地址定义在 该文件开头处。 标注!Keep unchanged!
的行不能修改,否则会影响工程运行。
每个可执行程序段内部的 FLASH 空间规划可以参考对应工程下的 *.ld
文件,如 MBL\project\eclipse\mbl.ld
和 MSDK\plf\riscv\env_Eclipse\gd32vw55x.ld
文件。
固件版本号
配置文件为 GD32VW55x_RELEASE\config\config_gdm32.h
。修改以下宏定义值,可以指定 版本号。但是影响将来用户升级的版本号只有RE_IMG_VERSION。 MBL只能本地升级,IMG可以支持在线升级,SDK发布的版本号与 RE_IMG_VERSION
保持一致。
APP配置
配置文件为 GD32VW55x_RELEASE\MSDK\app\app_cfg.h
。可以选择是否打开一些应用,例 如:ATCMD,阿里云,MQTT等等。
GD32EmbeddedBuilder 工程
本章将介绍如何在GD32EmbeddedBuilder下编译和调试SDK。 工程组由MBL/MSDK 这两个工程组成。MSDK包含WiFi协议栈、BLE 协议栈、外设驱动及 应用程序等等,MBL 主要负责从两个MSDK固件(一个为当前固件,一个为升级后固件)中 选择一个正确的运行。
打开工程组
检查SDK 目录GD32VW55x_RELEASE,如下图所示。
启动IDE,双击 GD32EmbeddedBuilder_v1.4.12.28625 目录下 GD32EmbeddedBuilder\GD32EmbeddedBuilder.exe
, 并选择 SDK 目录GD32VW55x_RELEASE 为 workspace,点击 launch 按钮,如下图所示。
导入MBL工程
File
菜单点击 Open Projects from file System
, 如下图所示。
选择工程路径GD32VW55x_RELEASE\MBL\project\eclipse
,如下图所示,并点击 finish
。
关闭welcome界面就可以看到MBL工程,如下图所示。
导入MSDK工程
File
菜单点击Open Projects from file System
。 工程路径选择GD32VW55x_RELEASE\MSDK\projects\eclipse\msdk
,如下图所示,并点击finish
。
查看MSDK 和MBL 工程界面,如下图所示。
ToolChain 下载
下载
官网地址:https://nucleisys.com/download.php
ToolChain选择2022.04版本。
Nuclei Toolchain 目录结构如下:
将Nuclei Toolchain
放置在GD32EmbeddedBuilder_v1.4.12.28625
中的Tools
目录下
编译
设置MBL工程编译工具配置
右击工程,点击properties
,依次选择C/C++ Build Settings
,选项卡点击toolchain settings
,将下载的ToolChain
路径填入。点击apply and close
。
编译MBL工程
右击工程,点击build project
,如下图所示。
编译结果,如下图所示。
设置MSDK工程编译工具配置
右击工程,点击properties
,依次选择C/C++ Build Settings
,选项卡点击toolchain settings
,将下载的ToolChain
路径填入。点击apply and close
。右击工程,依次点击 Build Configurations—>Set Active—>
选择需要的配置,MSDK 默认 configuration
为msdk。
编译MSDK工程
步骤同上。
编译结果
SDK生成的image
在 MSDK
编译完成之后,images
输出在 GD32VW55x_RELEASE\scripts\images
路径,如下图所示。
Image-all.bin中包含可执行程序段MBL和MSDK,该固件可用于生产,烧录到空白FLASH中。烧录请参考串口烧录章节。
SEGGER Embedded Studio IDE 工程
SEGGER Embedded Studio IDE 安装
请访问 https://wiki.segger.com/GD32V 获取 SEGGER Embedded Studio IDE 和 License Activation Key。
按照如下步骤进行安装激活。
相关步骤
- 访问注册网页
- 在浏览器中打开注册页面:https://license.segger.com/gd-rv.cgi
- 填写注册信息
- 完成表单后,点击 "
Request License
" 按钮提交申请。
- 获取激活密钥
- 通过邮箱接收
Activation Key
,复制邮件中的密钥内容。
- 启动软件
- 打开
Embedded Studio for RISC-V
,此时标题栏显示 "Non-Commercial License
"。
- 打开许可证管理器
- 在软件中导航至:
Tools → License Manager
,选择 "Activate SEGGER Embedded Studio
"。
- 安装许可证
- 将邮件中的
Activation Key
粘贴到输入框,点击 "Install License
"。
- 完成激活
- 确认许可证信息无误后,点击 "Close" 完成激活。
打开 MBL 工程
打开目录:GD32VW55x_RELEASE\MBL\project\segger
,双击 MBL.emProject
打开 MBL SES
工程,打开后的工程如下
打开 MSDK 工程
打开目录:GD32VW55x_RELEASE\MSDK\projects\segger
,双击 MSDK.emProject
打开
MSDK 工程,打开后的工程如下
编译
Nuclei Toolchain 配置
将 nuclei_riscv_newlibc_prebuilt_win32_2022.04\gcc\bin
放至 windows
的环境变量 path
中。
编译 MBL 工程
右击工程,点击 build
,或者点击菜单栏 Build->Build MBL
。编译完成后会自动调用脚本 MBL\project\mbl_afterbuild.bat
生成 mbl.bin
,并拷贝至目录 scripts\images
。
编译 MSDK 工程
右击 MSDK
工程内 Project ‘MSDK’
,点击 Build
。
MSDK configuration 选择
当前 SES 的工程仅支持了msdk 和 msdk_ffd,MSDK 的 configuration 切换如下:
编译结果如下:
SDK生成的image
MSDK 编译完成之后,会调用 MSDK\projects\image_afterbuild.bat
生成 image-ota.bin
和
image-all.bin
。并将生成的 bin
文件拷贝至\scripts\images
内,image-ota.bin
是 MSDK
工程生成的 bin
文件,可用于 OTA
升级,image-all.bin
是MBL(mbl.bin)
和 MSDK(image-ota.bin)
的组合,该固件可用于生产,烧录到 flash 中运行。