|
根据应用对代码进行调整 启动时的检测部分 01 和Flash检测相关的配置
下载Srecord 工具(http://srecord.sourceforge.net )。将srec_cat.exe,srec_cmp.exe,srec_info.exe拷贝到C:\SREC(自己新建)目录下。
Flash检测分为两个阶段:启动阶段的检测和运行阶段的检测。启动阶段是一次性对全部的flash范围进行完整性检测。运行阶段则是每次分块进行,每次检测一小部分。 Stm32fxx_STLparam.h文件中设定程序检测Flash的范围。如果你的应用程序就是放在0x8000000开始的位置,这部分代码就不需要修改。如果应用程序的起始位置是其他的地址,就需要修改ROM_START的定义。
另外需要注意的是此处的定义,必须与sct文件中对Flash的范围定义一致。 存放CRC值的位置是应该排除在计算的范围内的。 02 和RAM检测相关的配置 RAM的检测分为启动和运行两个阶段,在系统启动的时候,这个时候是对整个片上RAM进行检测,检测范围在stm32fxx_STLparam.h中定义:
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这两个函数。
05 Watchdog测试 启动时,在STL_StartUp函数中,通过STL_WDGSelfTest函数对IWDG,WWDG进行检测。 |
谢谢分享 |
微信公众号
手机版