对比STM32和GD32固件库,你会发现其中的秘密! |
您所在的位置:网站首页 › gd32可以用cbuemx吗 › 对比STM32和GD32固件库,你会发现其中的秘密! |
额外说两点: STM32的标准外设库,目前只有较早的系列有,这后面新出的芯片,只有HAL和LL库了。 标准外设库只有这几个系列: GD32是以GD32F10x_Demo_Suites这种套件形式提供,套件包含了几类文件: 嵌入式专栏 3 对比 固件库(源码) 下面正式进入主题,对比STM32和GD32的固件库(标准外设库)。 1.对标文件夹 图中两个文件夹几乎是一一对应的内容,GD32把USB的驱动库文件整理在一起了,STM32对应的USB驱动库是和其他系列整理在一起的,地址: https://www.st.com/zh/embedded-software/stsw-stm32121.html 源文件和头文件也是一一对应,只是文件(夹 )名不一样 : 2.xx32f10x.h源代码对比 a.文件头描述 b.宏定义描述 c.中断向量表 d.地址定义 STM32和GD32基地址偏移地址使用方式有所不同,先看下定义: e.外设相关宏定义 STM32外设相关宏定义更多是在stm32f10x.h文件: 而GD32更多是定义在外设对应的头文件(这里以ADC为例): 3.system_xx32f10x.c源代码对比 a.主频 GD32一个特点就是,具有更高的主频(系统时钟108M): b.系统时钟申明和定义 c.系统初始化 4.startup_xx32f10x_hd.s启动源代码对比 这里以hd型号为例: a.堆栈分配 GD32分配的空间比较多: b.其他差不多 启动文件,对比一下,你会发现,其实大同小异。 5.外设源代码对比 这里以ADC为例(xx32f10x_adc.c): a.STM32更多mask宏定义 b.一个用if else,一个用case c.STM32有更多断言assert (参数检查): d.函数、变量命名方式 一个大写开通,一个小写,用下划线分开: 其他很多内容都具有相似之处,只是大同小异。 嵌入式专栏 4 结论 上面对比了各种类型的固件库(源代码),你会发现一个什么问题? 能看懂其中一个固件库(源码),再去看另一个,是不是一点都不费力。它们几乎都差不多,可以拿“双胞胎”来形容。 因为基地址几乎一样(上面源码对比有提到),所以,它们的软件兼容性很好,甚至在一定情况下,可以做到“无缝替换”。 额外说一下,上面源码对比使用的是Beyond Compare比较工具,之前给大家分享过很多好用的对比工具《 嵌入式软件工程师常用的代码比较工具 》,感兴趣的可以看下。 ------------ END------------ 后台回复『 单片机』『 嵌入式软件设计与开发 欢迎关注我的公众号 ,回复“ 加群”按规则加入技术交流群,回复“ 1024”查看更多内容。 欢迎关注我的视频号:返回搜狐,查看更多 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |