GD32与STM32移植:晶振设置与代码执行速度差异分析
需积分: 5 37 浏览量
更新于2024-08-06
收藏 198KB PDF 举报
"本文主要介绍了在系统移植过程中,特别是从STM32到GD32国产芯片移植时需要注意的事项,包括HSE启动时间宏定义的修改以及代码执行速度的差异。文章提供了两个实际案例来说明这些问题可能带来的影响,并强调了在不同平台间移植代码时需对延时和性能进行调整的重要性。"
在系统移植过程中,尤其是从STM32迁移到GD32国产芯片时,有两个关键的方面需要特别关注。首先,关于HSE启动时间宏定义的修改,原文指出,V3.x版本的库将HSE_STARTUP_TIMEOUT宏定义放在了xxx32f10x.h头文件中,而在V3.0之前的库中,这个宏定义位于xxx32f10x_rcc.c中的HSEStartUp_TimeOut。在STM32与GD32之间,由于晶振电路设计和参数要求的不同,原始的HSE_STARTUP_TIMEOUT值可能不适用于GD32。因此,将宏定义修改为0xFFFF可以确保外部高速晶振(HSE)正常启动。虽然有些情况下不修改也能运行,但为了保证程序的稳定性和可靠性,建议始终进行此修改。
其次,GD32芯片采用了专利技术,提升了相同工作频率下的代码执行效率。这意味着从STM32移植过来的代码,如包含While或For循环的延时函数,其执行速度在GD32上会显著缩短。这可能导致原有的延时计算不再准确。举例来说,一个简单的延时函数在STM32上执行时间为7.4us,在GD32上则缩短至5.4us。对于那些对时间精度有严格要求的应用,必须考虑这一差异并调整相关参数。
此外,文章提供了一个实际案例,展示了当使用IO模拟I2C通信时,查应答函数在STM32和GD32上的不同表现。在STM32上执行正常的代码,在GD32上可能出现问题,这可能源于GD32的快速执行速度导致的判断条件执行过快。因此,在进行系统移植时,需要仔细检查和优化这类时间敏感的代码,确保它们在新平台上能够正确运行。
从STM32向GD32移植代码时,开发者需要考虑HSE启动时间的适配和代码执行速度的差异,这直接影响到系统的稳定性和应用程序的性能。进行移植时,不仅要关注硬件层面的差异,还要充分理解新平台的特性和性能优势,以便对软件进行相应的优化和调整。
117 浏览量
2022-09-20 上传
2022-09-24 上传
2011-07-28 上传
点击了解资源详情
2011-08-15 上传
2018-11-28 上传
2021-03-09 上传
2020-01-11 上传
sun海涛
- 粉丝: 36
- 资源: 3844
最新资源
- 火炬连体网络在MNIST的2D嵌入实现示例
- Angular插件增强Application Insights JavaScript SDK功能
- 实时三维重建:InfiniTAM的ros驱动应用
- Spring与Mybatis整合的配置与实践
- Vozy前端技术测试深入体验与模板参考
- React应用实现语音转文字功能介绍
- PHPMailer-6.6.4: PHP邮件收发类库的详细介绍
- Felineboard:为猫主人设计的交互式仪表板
- PGRFileManager:功能强大的开源Ajax文件管理器
- Pytest-Html定制测试报告与源代码封装教程
- Angular开发与部署指南:从创建到测试
- BASIC-BINARY-IPC系统:进程间通信的非阻塞接口
- LTK3D: Common Lisp中的基础3D图形实现
- Timer-Counter-Lister:官方源代码及更新发布
- Galaxia REST API:面向地球问题的解决方案
- Node.js模块:随机动物实例教程与源码解析