在我的程序中,不可能没有0x55aa.
1.掉电保护 在早期的MCU中,一般没有掉电标志.即使现在好多有我一般也不用. 可以这样在上电或干扰复位时实现对掉电的跟踪: if (SystemRamTest != 0x55aa) {//掉电或RAM被破坏 /*---------------------------------------------------- 在此加入掉电或RAM被破坏处理代码 一般为出厂配置等初始化数据 ------------------------------------------------------*/ SystemRamTest = 0x55aa;//完成初始化代码 } else { /*---------------------------------------------------- 在此加入关机立即开机或看门狗复位但RAM未破坏处理代码 对一些有用的实时数据不初始化 ------------------------------------------------------*/ }
在这里0x55aa就有"相邻单元"之意... 上电或干扰几乎不可能有此"破坏"的组合能力.
2.外部地址或数据总线
在外部扩展存储器中,地址或数据总线由于干扰将导致数据读出或写入错误. 而0x55aa可帮助解决大部分的问题所在. 在这里0x55aa就有"相邻总线"之意...
测试此问题一般在外部扩展存储器中的某个特定单元中事先写入0x55aa. 在测试时读此"特定字符"及校验字,若错误则地址或数据总线必有错误. 如果结合IO管脚测试技术,则可基本能准确地判定地址或数据总线的某根线出错.
这个在我的产品中已应用近20年,在21ic的灌水帖也有描述...
3.IO管脚测试
在产品批量后,产品自检测试中IO管脚测试可谓是最基本的. 它可用键盘扫描原理解释.
在这里0x55aa就有"相邻键盘"之意...
4.通讯协议
在好些通讯协议的引导部分都有0x55aa的身影,尤其是0x55及大写字母'U'.
在这里0x55aa就有"理想方波"之意...
测量它的宽度或简单地数据分析,就可达到波特率自适应...
5........
累了...就灌到这里吧...明天(实际就是5小时后)还要到农田里浇花,还是节约用水为好...
好久没"看见"张工...高兴了就多灌了点... |
文章评论(0条评论)
登录后参与讨论