完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在前面的几个章节中我们介绍了关于MM32F0130系列的ClassB 认证的实现方式,本章节中我们将为大家介绍在MM32F0130上ClassB认证的各部分代码段测试所花费的时间。 ClassB认证的各部分代码段运行都会增加MCU的负担,为防止认证代码影响应用控制,我们需要对各个部分代码执行时间进行测试,分时段利用时间空隙进行自检。耗时与很多因素有关系,MCU的性能和开发环境都会有影响,在单次运行中执行启动测试,测试时间取决于MCU性能和测试区的大小。运行期间测试逐块执行,因此其时间也取决于被测试块大小和测试的重复频率。 用户需要在应用所需的性能和安全认证所需的性能之间找到平衡,主要挑战在于实现较短的整体诊断测试间隔,同时保持应用过程安全时间在可接受的长度范围内。在关键情况下,运行时测试可限制在收集关键代码或数据的区域。 用户应考虑到该间隔也用于在运行期间计算系统时钟和LSI之间的时钟交叉参考率,因而其长度不得低于时钟交叉测量所用的LSI周期数相应间隔。 当特定测试(RAM、Flash、时钟)启动时及每次完成测试程序(启动时和运行期间)时,通过切换I/O的翻转来测试各个部分的耗时。其中,在启动时和运行期间,这些I/O可用于测量测试长度、局部测试的频率及完成整个单测试周期所需的时间。完全检测被测试的专用区域后,一组局部测试又重新开始。 在ClassB自检的过程中,ClassB自检流程分为启动自检与运行自检两个部分,本次例程我们将采用翻转GPIO口的方式来测试ClassB启动自检以及运行自检所花费的时间。 本次测试我们翻转PA0来进行计算时间(即在自检之前设置为低电平,自检完成以后设置为高电平,然后使用逻辑分析仪抓取低电平的持续时间即为自检部分花费的时间)。启动自检 启动自检部分包含CPU寄存器自检,看门狗自检,FLASH自检,RAM自检以及时钟自检,启动自检的流程如下图所示:
01 CPU寄存器自检 CPU寄存器自检调用的函数为STL_StartUpCPUTest(), 在此函数之前我们调用GPIO的配置函数,将PA0配置为低电平,在函数运行完成后将PA0配置为高电平,然后使用逻辑分析仪抓取两次电平翻转的脉宽即可,逻辑分析仪获取波形如下: 02 看门狗自检 看门狗自检调用的函数为STL_WDGSelfTest() ,在此函数中进行PA0的翻转设置,其操作与CPU寄存器的操作一样,但是我们需要屏蔽掉CPU寄存器自检操作过程中PA0的翻转操作(由于本次测试的内容较多,为了防止计算错误,故一个一个的测试)。 03 FLASH自检 FALSH自检操作在FLASH自检的地方对GPIO口进行翻转操作,逻辑分析仪获取波形如下: 04 RAM自检 RAM自检操作在RAM自检的地方对GPIO口进行翻转操作,逻辑分析仪获取波形如下: 05 时钟自检 时钟自检操作在时钟自检的地方对GPIO口进行翻转操作,具体操作如下: |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
2248个成员聚集在这个小组
加入小组灵动微电子MM32全系列MCU产品应用手册,库函数和例程和选型表
11676 浏览 3 评论
【MM32 eMiniBoard试用连载】+基于OLED12864的GUI---U8G2
5922 浏览 1 评论
【MM32 eMiniBoard试用连载】移植RT-Thread至MM32L373PS
10953 浏览 0 评论
【MM32 eMiniBoard测评报告】+ 开箱 + 初探
4571 浏览 1 评论
灵动微课堂(第106讲) | MM32 USB功能学习笔记 —— WinUSB设备
4297 浏览 1 评论
[MM32软件] MM32F002使用内部flash存储数据怎么操作?
964浏览 1评论
792浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 04:26 , Processed in 0.533454 second(s), Total 38, Slave 31 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号