应用笔记 | 建立基于STM32CubeIDE的ClassB工程

描述

单片机

关键字:STM32CubeIDE,ClassB

 

 

 目录预览

 

1.前言

2.准备

3.创建CubeMX工程

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

5.小结

 

   

 

01  前言

 

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

 

02  准备

 

硬件:NUCLEO-G070

 

软件:X-CUBE-CLASSB version 2.3.0

 

03  创建CubeMX工程

 

在CubeMX中创建闪灯和串口打印的基础工程,并在实验板上验证工程的正确性。

 

然后继续配置IWDG、WWDG、CRC外设。为了避免程序在移植和调试时产生复位,可以在CubeMX中配置为不调用。

 

单片机

 

将X-CUBE-CLASSB V2.3.0中整个Middleware文件夹复制到目标工程目录下:

 

单片机

 

复制ClassB相关的3个汇编文件,如下图所示:

 

单片机

 

复制“crc_gen_gcc.bat”脚本(注意要修改bat中的工程名称):

 

单片机

 

修改bat文件中的名称为对应工程的名称:

 

单片机

 

修改id链接文件,添加ClassB相关的section信息:

 

单片机

 

添加ClassB文件的路径和文件夹:

 

单片机

 

复制“stm32xx_STLparam.h”到目标工程的inc文件夹下:

 

单片机

 

在main.h中添加必要的宏定义

 

#define USARTx USART1

#define MAX_FLASH_LATENCY FLASH_LATENCY_1

#define _HAL_RCC_CLEAR_FLAG_HAL_RCC_CLEAR_RE SET_FLAGS

#define USART_Configuration MX_USART1_UART_Init

 

根据编译提示,消除编译错误

 

在工程选项中添加编译步骤(添加“.bat”):

 

单片机

 

arm-none-eabi-objcopy-O binary"${BuildArtifactFile BaseName}.elf"

"${BuildArtifactFileBaseName}.bin"&&arm-none-eabi-size"${BuildArtifactFileName}"&&..crc_gen_gcc. bat

 

在排除基本的编译错误后,可以得到如下编译通过的信息:

 

单片机

 

然后我们可以通过配置下载选项,将带有CRC校验值的工程下载到板子上:

 

单片机

 

在串口视图中可以看到ClassB工程运行的状态信息:

 

单片机

 

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

 

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

 

05  小结

 

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

 

完整内容请点击“阅读原文”下载原文档。

 

单片机订阅号

关注STM32

单片机视频号

 

单片机B站账号

点击“阅读原文”,可下载原文档


原文标题:应用笔记 | 建立基于STM32CubeIDE的ClassB工程

文章出处:【微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分