你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

X-Cube-ClassB代码 的移植(叁)

[复制链接]
eefishing 发布时间:2020-1-19 20:13
根据应用对代码进行调整




启动时的检测部分


01
和Flash检测相关的配置
  • 安装Srecord工具

下载Srecord 工具(http://srecord.sourceforge.net )。将srec_cat.exe,srec_cmp.exe,srec_info.exe拷贝到C:\SREC(自己新建)目录下。
  • 将crc_gen_keil.bat中的TARGET_NAME和TARGET_PATH改成跟新工程一致。否则不能成功的自动生成带CRC校验值的HEX文件。

1.jpg
  • Flash检测范围

Flash检测分为两个阶段:启动阶段的检测和运行阶段的检测。启动阶段是一次性对全部的flash范围进行完整性检测。运行阶段则是每次分块进行,每次检测一小部分。
Stm32fxx_STLparam.h文件中设定程序检测Flash的范围。如果你的应用程序就是放在0x8000000开始的位置,这部分代码就不需要修改。如果应用程序的起始位置是其他的地址,就需要修改ROM_START的定义。
2.jpg
另外需要注意的是此处的定义,必须与sct文件中对Flash的范围定义一致。
存放CRC值的位置是应该排除在计算的范围内的。

02
和RAM检测相关的配置
RAM的检测分为启动和运行两个阶段,在系统启动的时候,这个时候是对整个片上RAM进行检测,检测范围在stm32fxx_STLparam.h中定义:
3.jpg

03
CPU测试
这部分测试独立于应用,只和内核相关。相关函数:STL_StartUpCPUTest
04
Clock测试
启动时时钟检测时,使用HSE作为系统时钟,LSI作为TIMER5的Channel4的输入。实际程序的配置如下:
HSE/2作为TIMER5计数的时钟,LSI/8作为TIMER5的Channel4的输入。通过捕获的LSI/8的周期计数,与设定的上下限进行比较,来校验HSE。
代码中需要注意的地方:
下面是使用HSE时,进行检测的代码。里面的HSE_VALUE,必须与实际板子上的值吻合。
代码中默认接收+/-25%范围内的偏差,如果对HSE允许的范围有不同的要求,就需要去修改HSE_LimitLow和HSE_LimitHigh这两个函数。
4.jpg

05
Watchdog测试
启动时,在STL_StartUp函数中,通过STL_WDGSelfTest函数对IWDG,WWDG进行检测。
收藏 评论1 发布时间:2020-1-19 20:13

举报

1个回答
天越萍踪 回答时间:2020-6-8 18:17:17
谢谢分享

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版