• 资料介绍
    • 前言
    • 准备
    • 创建 CubeMX 工程
    • 移植过程中可能遇到的问题
    • 小结
  • 资料预览
  • 相关推荐
申请入驻 产业图谱

LAT1257 建立基于STM32CubeIDE的ClassB工程

03/25 14:50
389
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

LAT1257 建立基于STM32CubeIDE的ClassB工程

446.83 KB

前言

大家都知道 ST 的 ClassB 功能安全软件设计包是免费的,也有众多客户基于STM32CubeIDE 免费的 IDE 进行开发,本文档将展示如何轻松的实现 ClassB 在STM32CubeIDE 上的移植。

准备

硬件:NUCLEO-G070

软件:X-CUBE-CLASSB version 2.3.0

创建 CubeMX 工程

在 CubeMX 中创建闪灯和串口打印的基础工程,并在实验板上验证工程的正确性。然后继续配置 IWDG、WWDG、CRC 外设。为了避免程序在移植和调试时产生复位,可以在 CubeMX 中配置为不调用。

移植过程中可能遇到的问题

问题 1:编译通过,无错误,但是发现 hex 文件只有 132B。

方法:通过 map 文件,发现 source 包含的一些文件夹不见了,在工程选项中添加对应的文件即可。

问题 2:#define ALLOC_GLOBALS 这个宏定义是为了防止变量的多次重复定义。

方法:需要检查其应当放在对应的相关变量的头文件之前。

问题 3:初始化时,在 CubeIDE 中出现了各种 startup 阶段的失败,

方法:需要将 ClassB lib 的优化等级设置为-O1 才可以。

问题 4:Runtime 时出现“Run-time FLASH CRC Error”的错误

方法:原因在于为了方便调试,下载了没有带 CRC 的 hex 文件,改成带 CRC 的 hex 文件后就没问题了。

问题 5:时钟检测不过,测试时,发现工程为 F030,但实际芯片是 F042,二者存在时钟配置上的差异,主要是 SystemInit 和 SystemCoreClockUpdate 函数中的差异。

方法:按照实际芯片正确配置时钟即可。

小结

在移植 ClassB 的过程中,难免会出现各种各样的编译错误,我们要有耐心,根据工具的提示,逐个消除错误即可。本文档提供了对应的例程,用户可以对比参考使用。

资料预览

点赞
收藏
评论
分享
加入交流群
举报

相关推荐

方案定制

去合作
方案开发定制化,2000+方案商即时响应!