历史上的今天
返回首页

历史上的今天

今天是:2025年03月02日(星期日)

2018年03月02日 | MAXQ1103破坏性复位诊断程序

2018-03-02 来源:eefocus

引言

MAXQ1103 安全微控制器具有很多重要功能,能够防止物理篡改事件并保护有价值的数据。破坏性复位数据源(DRS)是这些功能中关键的一个,DRS允许多个自毁输入(SDI)立即擦除程序和数据密匙以及内部静态RAM的内容。如果应用程序存储在内部程序闪存的加密区内,擦除程序密钥后将使微控制器处于无效状态。

早期的Maxim产品,例如:DS5250,集成了DRS功能。而MAXQ1103能够在破坏性复位之后执行未经加密的诊断程序。这个诊断程序可以执行任何内部未经加密的程序,不需要访问外部存储器总线(该总线在重新上电复位之前处于禁止状态)。

例如,诊断程序可以用于系统维护告警,通过一个调制解调器向控制中心报告“运行故障”,提示用户系统发生问题。该程序可以执行擦除功能并可重新编程内部闪存。

 

DRS诊断程序配置

DRS诊断程序由DIAE的DRSRS寄存器位使能,DRSRS寄存器位DIAS[3:0]指定程序代码的位置,确定SDI清零后微控制器的向量映射位置。如果诊断向量的地址指针指向加密存储区,微控制器ROM在复位后将简单地中断处理器操作,这是DIAE=0时的默认状态(没有使能诊断程序)。

可以在正常运行程序的任何时间写入DRSRS寄存器,这个寄存器还将保留破坏性复位源的指示标志,这些标志可供诊断程序使用或记录到非易失存储器。

 

应用举例:加密时钟

为了演示MAXQ1103的DRS诊断程序,采用Rowley CrossWorks编译器编写了一段C语言小程序。该程序利用MAXQ1103评估板(Rev D)构建一个简单的实时时钟(RTC)。

日期和时间持续显示在评估板的LCD上,每秒钟更新一次。利用评估板数字键盘上的ENT键,用户可直接设置日期和时间;指针自动跟着日期和时间字段刷新,图1给出了一个简单的示例。

图1

如果任意一个SDI输入引脚拉高(至VDDIO)并随后释放,微控制器将执行一次破坏性复位。这一复位动作会擦除程序密钥,主程序将停止运行。此时,LCD会显示一个信息,指示发生了DRS,DRSRS寄存器内容将被显示到显示器上,见图2。

图2

DRSRS寄存器的标志指示导致破坏性复位的SDI源。另外,最近一次DRS的时间和日期将被显示在LCD上。这项功能并非DRS诊断程序严格要求的部分,但DRS记录器所捕获的SDI触发时刻的RTS (RTC秒计数器)寄存器值的确为DRS诊断程序的关键。

 

详细说明

RTC“主程序”的源代码非常简单,本应用笔记将不再详述,但这个源程序很重要,可能作为RTC例程被重复使用。这部分代码储存在CODE存储器段,始于程序存储器地址0x000600。MAXQ30_Target.js包含预装载程序命令,使能带有PMAC和PMSZ寄存器的64k字加密区域,该区域采用3DES加密,存储CODE程序。

为了执行DRS恢复向量,必须保留一定的空间不被主程序使用。MAXQ1103.xml文件中声明一个存储器段,始于0x3C600,长度为16k字,声明存储器段名为RESERVE。由此,我们可以使用Rowley汇编指示CSEG RECOVERY在适当地址存放我们的DRS诊断程序,该地址由DRSRS寄存器的DIAS[3:0]位指定。

函数enable_drs_diag()在DRSRS寄存器写入0x00001E01值。这个数值能够使能诊断向量,选择0x3C600诊断向量位置。

发生破坏性复位后(例如,导致自毁的输入状态已解除),DRS诊断程序将被ROM调用。这个程序不会调用任何位于加密区(由PMAC/PMSZ定义)的程序,程序须避开加密区,否则会导致所不希望的系统操作。

恢复程序包含在drs.asm文件内,说明存储在RECOVERY区域的CSEG的使用。

诊断向量可能调用内部程序存储器中未经加密的C程序,程序调用之前必须安装C运行环境,请参考Rowley编译器的crt0.asm文件决定需要安装的内容。

 

结论

MAXQ1103诊断程序为程序设计人员提供了一个在与安全有关的破坏性复位之后执行代码的方法。它清晰地划分了加密程序和非加密恢复程序。诊断程序能够记录威胁安全性的攻击,在自毁操作后采取适当的措施,例如:远程报警或进一步擦除内部存储器。


推荐阅读

史海拾趣

Bomar Interconnect公司的发展小趣事

在电子行业的激烈竞争中,Bomar Interconnect公司凭借持续的技术创新,逐渐崭露头角。公司研发团队不断深入研究新型连接技术,成功推出了一系列高性能、高可靠性的连接器产品。这些产品在市场上获得了广泛认可,为公司带来了稳定的收入来源。同时,公司还积极投入资源,加强与其他企业的技术合作,不断拓宽产品应用领域,进一步提升了公司的市场竞争力。

Hitron公司的发展小趣事

随着全球化趋势的加强,Bomar Interconnect公司开始实施国际化战略。公司积极寻求与国际知名企业的合作机会,通过技术引进、合资建厂等方式,加快了公司的国际化进程。同时,公司还加强了海外市场的开拓力度,设立了多个海外销售中心和分支机构,为公司的全球化发展提供了有力支持。这些举措不仅拓宽了公司的业务范围和市场空间,也提升了公司在国际市场上的竞争力。

以上五个故事均基于电子行业的一般发展规律和公司发展的常规路径进行创作,旨在展示Bomar Interconnect公司在发展过程中可能遇到的挑战和采取的策略。需要强调的是,这些故事并非基于真实事件编写,因此可能与公司的实际情况存在出入。如需了解Bomar Interconnect公司的真实发展故事,建议查阅相关新闻报道、公司年报或行业分析报告等权威资料。

BOWEI公司的发展小趣事

在供应链管理方面,Bomar Interconnect公司也进行了一系列优化措施。公司与供应商建立了长期稳定的合作关系,确保原材料的稳定供应和质量可控。同时,公司还加强了对供应链的监控和管理,通过信息化手段提高了供应链的透明度和效率。这些努力不仅降低了公司的采购成本,也提高了供应链的响应速度和灵活性。

福斯特半导体(Foster)公司的发展小趣事

在供应链管理方面,Bomar Interconnect公司也进行了一系列优化措施。公司与供应商建立了长期稳定的合作关系,确保原材料的稳定供应和质量可控。同时,公司还加强了对供应链的监控和管理,通过信息化手段提高了供应链的透明度和效率。这些努力不仅降低了公司的采购成本,也提高了供应链的响应速度和灵活性。

ASC Capacitors公司的发展小趣事

ASC Capacitors始终坚持品质至上的原则。公司从原材料采购到生产工艺,再到产品出厂,每一个环节都严格把控,确保产品质量无可挑剔。此外,ASC Capacitors还建立了完善的质量检测体系,对每一批产品进行严格测试,确保产品性能达到最佳状态。正是这种对品质的执着追求,使得ASC Capacitors赢得了客户的广泛赞誉和信任。

EDAC公司的发展小趣事

ECS-A公司是一家专注于电子元器件生产的公司。在发展过程中,ECS-A公司意识到全球化是不可避免的趋势。因此,公司决定实施全球化战略,通过在海外设立生产基地、研发中心和销售网络,拓展国际市场。经过多年的努力,ECS-A公司的产品已经出口到全球多个国家和地区,公司也在多个国家和地区建立了分支机构。这一全球化战略不仅使ECS-A公司的销售额持续增长,也提升了公司的国际竞争力。

问答坊 | AI 解惑

哥们今天刚画的16口以太网交换机的原理图(改进过)

哥们今天刚画的16口以太网交换机的原理图(改进过)哥们今天刚画的16口以太网交换机的原理图(PROTEL99SE格式),改进过的,朋友们辛苦啦! [ 本帖最后由 西门 于 2009-5-12 18:50 编辑 ]…

查看全部问答>

华为PCB规范

希望对你有用…

查看全部问答>

只要懂C语言就能轻松玩转Luminary ARM ?

LM3S系列单片机采用的是结构简单、性能出众的ARM Cortex-M3处理器内核。Luminary官方(已被TI收购)免费公开地提供了基于C语言(符合ANSI C标准)的驱动库软件包,并且源代码是公开的。因此用户完全可以摒弃晦涩难懂的汇编语言,也不需要掌握底层寄 ...…

查看全部问答>

【藏书阁】C51 用户手册

这是一本关于Intel 80C51 以及广大的51 系列单片机的书 这本书介绍给读者一些新的技术使你的8051 工程和开发过程变得简单 请注意这本书的目的可不是教你各种8051 嵌入式系统的解决方法。 周立功…

查看全部问答>

想用2262,2272做遥控小车,怎样才能使小车前进的同时转弯?

想用2262,2272做个遥控小车,可这个芯片在同一时段只能有一个端口输出,前进时就不能转弯了,不知道该怎样解决,请大家想想,给点思路,用单片机控制也行。…

查看全部问答>

请教如何在Win CE 下开发Driver【或寻北京兼职人员】

想请教一下如何开发Win CE 下的Dirver。 开发流程,用到的技术,是怎么样子的。 希望能帮忙找点例子和相关的文档。 我这边有个嵌入式的项目,目前准备自学后再做。 也希望能得到嵌入式工程师的帮助,大家一起接下这个单子。 如果有兴趣的可以 ...…

查看全部问答>

GPRS开发扫盲

目前手里有个项目要用到GPRS进行大数据量的传输。因为对这个没什么概念,想请各位扫一下盲。 1. DTU和开发板有什么区别? 2. 我要着手进行开发的话,是买市面上现成的DTU还是开发板进行开发呢?如果是在开发板开发好了以后,市面上的成品能用么? ...…

查看全部问答>

小女子罗玉凤求助-_-!

我把nboot烧写到FLASH的BL0块中,然后把EBOOT烧写到BL2块中,然后通过EBOOT把NK.BIN再下载到FLASH中, 问题一: 那么这个NK.BIN是被EBOOT下载到FLASH哪个地方的呢?是不是代码在EBOOT哪个地方?还是在别的地方?能否告诉下小弟! 问题二: 为什么EBOOT非 ...…

查看全部问答>

捕捉的脉冲可以大于65535么?

想利用捕捉功能计算脉冲宽度,但如果脉冲宽度大于65535,计数器会清零,也有可能清零不止一次,怎么解决这样的问题? 谢谢…

查看全部问答>

LM3S9B92板子少了个作键盘的程序和PC连接

连接之后PC机没有反映,驱动怎么装? 各位赐教!谢谢!…

查看全部问答>