【Silicon Labs BG22-EK4108A 蓝牙开发评测】评测三 尝试Keil/IAR开发
[复制链接]
本帖最后由 单笑寒 于 2022-1-22 17:32 编辑
评测三 尝试Keil/IAR开发
BLE5.2的新特性包括:
- Enhanced Attribute Protocol
- LE Power Control
- LE Isochronous Channels(LC3 Codec Audio)
本想尝试一把蓝牙mesh的兼容性问题,但Simplicity Studio的编译速度确实捉急,考虑先移植到别的开发平台。这几天在进行EFR32BG22的上手时,每次编译要经过漫长的等待,动则15分钟过去,效率也是生产力,
图1 漫长的编译时间(耗时13分钟)
无论编译器选择自带GNU还是IAR_ICC亦或是SES均很慢,想到同是ARM M33核,何不试试常用的Keil-MDK和IAR,由于官方没有给相应例子,于是只得从0开始动手。
- keil建工程
首先我的环境是Keil v5.27,由于没有EFR32BG22对应DFP,去官网https://www.keil.com/dd2/下载包,下载完后在工程属性Define定义SDK宏StudioSdkPath=E:\studysoftware\SiliconLabs\SimplicityStudio_v5\developer\sdks\gecko_sdk_suite\v3.2,在C/C++ Include Paths包含必须文件(我也是报错什么添加什么,好心酸):
图2 Keil文件路径
当提示需要启动文件,于是同样见山过山去寻找启动文件,结果在路径{$StudioSdkPath}\platform\Device\SiliconLabs\EFR32BG22\Source下发现只支持IAR和GCC,于是有了下一章节:
图3 启动文件
- IAR建工程
IAR不像Keil架构会有芯片包类似插件,缺哪个装哪个DFP,但IAR不是,手头的IAR v8.40,于是又重新下载安装了IAR v9.10(最新版好像到了9.2x),历经曲折破解完成,开始建工程,芯片类型终于有EFR32BG22C224F512IM40:
图4 IAR制定目标芯片型号
同时添加繁多的路径:
图5 IAR文件路径图
添加预定义宏“EFR32BG22C224F512IM40”(不然em_device.h会报错PART NUMBER undefined):
图6 IAR预定义宏
启动文件也有,编译,结果陷入沉思,提示一堆库接口sl_xx找不到,时间有限,只好作罢。
- 总结
Keil有对应芯片DFP但缺启动文件,IAR要很新的版本才有目标芯片型号和启动文件,但众多的库接口找不到定义,SS全有,但编译速度着实让人沉思,下次接着本次的工作接着IAR的进度做下去。
|