bat比较有意思的代码_XCubeClassB代码 的移植

本文介绍了如何将ST的X-CUBE-CLASSB软件包移植到STM32F207Nucleo板上,包括了解例程文件、添加和修改相关代码、配置HAL驱动、启动和运行时的检测设置,以及解决移植过程中遇到的问题。主要内容涉及STM32的Flash和RAM检测、CPU测试、时钟和Watchdog测试,以及运行时的检测部分。
摘要由CSDN通过智能技术生成

前言

ST在www.st.com官网上提供了针对IEC60730/IEC60335 ClassB认证的软件包。软件包分为三个,分别适用STM8,STM32(基于标准外设库)和STM32(基于HAL库):STM8-SafeCLASSB,STM32-CLASSB-SPL,X-CUBE-CLASSB。本文以X-CUBE-CLASSB为例介绍如何做代码的移植以及经常遇到的问题的解决办法。

X-CUBE-CLASSB软件包中分别提供有STM32F0/F1/F2/F3/F4/F7/L0/L1/L4的例程。但是STM32每个系列又分很多型号,每个型号的flash,ram大小可能也不相同。客户的应用程序大小以及架构也不尽相同。所以看起来很简单的移植过程还是会碰到这样那样的问题。

在本文中,笔者将以STM32F207Nucleo板为例,用CubeMX新建一个简单工程,然后将ClassB的功能添加到该工程中。当然这里提到的ClassB功能也仅指跟MCU相关的部分,和应用相关的检测因为直接依赖具体的应用,所以这里就不涉及了。

02fa1a3ce682f0eead97bbf1c6ad64eb.png

新建用户代码

首先,需要用CubeMX新建一个可以在F207Nucleo板子上运行的简单程序。

打开CubeMXv5.0.0, 选择F207Nucleo板子来新建一个工程:

d08840a33b1a367e8f1b3316df47db78.png

168617ede23d9629b7c01f58cdf6a7cc.png

3b9c02568d96f857c0dd4b081b70fef0.png

设置基于KEIL IDE环境的工程名称及位置。

aec59d11599a6b65a3cc6b6ac20ca3ac.png

3db20b11605c1082585c288a8e92c5dd.png

生成KEIL工程,并打开工程,

383496d0ffa8a3719bb043c0409b81dd.png

在main函数中,添加闪灯的用户代码。通过编译后,一个简单的点灯程序就可以在F207Nucleo板上正常运行了。

8b8f8ee4821bdbaeccdc8e54f3973cd3.png

当前的工程结构:

c0df49b1010f846bbd1a1dc2dbb4680d.png

添加ClassB相关代码

01

了解例程中相关的文件

在AN4435中的表3中列出了和安全监测相关的通用代码文件,这些文件在X-CUBE-CLASSB软件包的Middlewares\STM32_SelfTest_Library目录下,所以直接将STM32_SelfTest_Library目录拷贝到新的工程的Middlewares目录下就可以了。

22beb5a6b9bbc2dc73df3b3995daadec.png

下面表4中列出的文件是和新工程所用的IDE以及应用程序相关的文件。Source这一行中的文件,主要是区分了不同的IDE,所以根据实际使用的IDE进行选择添加就好。这里用的是KEIL,所以可以将X-CUBE-CLASSB软件包的\Projects\STM322xG_EVAL\MDK-ARM路径下的这三个文件拷贝到新工程对应的位置:

  • stm32f2xx_STLcpurunKEIL.s

  • stm32f2xx_STLcpustartKEIL.s

  • stm32fxx_STLRamMcMxKEIL.s

Header这一行中的stm32xxx_STLparam.h文件也需要添加到新工程中ÿ

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值