我被要求增强单片机的固件安装程序(特别是飞思卡尔MC9S12E64 -尽管我不知道这是否重要)。
增强安装的目的是限制可以安装固件的次数。似乎最好的方法是在固件安装过程中唯一地识别正在使用的特定MCU,以便在中央数据库中保持跟踪。
如果MCU有MAC地址,这似乎是可行的。不幸的是,这些MCU没有网络接口,因此没有MAC地址。查看上面提到的MCU的手册,我找不到MCU的唯一标识符的指示。
我的问题是:MCU是否通常有与其关联的唯一标识符-类似于MAC地址-当固件烧录到这些设备中时,可以通过软件获得这些标识符?
发布于 2013-03-12 01:35:21
有些人这样做,有些人不这样做,这并不是所有制造商的所有设备都有的。
一种解决方案是将您自己的唯一标识符编程到制造时可用的任何非易失性存储中。另一种方法是包括诸如Ramtron's F-RAM serial memory之类的设备,该设备提供唯一的序列号以及非易失性存储器。许多(可能更便宜的)串行EEPROM设备也包括唯一ID或MAC (example)
发布于 2013-03-12 18:35:13
这样做的人不多,因为制造商这样做是一种痛苦-尽管正如评论中指出的那样,它在基于Cortex的新部件中变得越来越受欢迎-痛苦肯定是值得的!
您可以添加一个外部设备,例如Dallas/Maxim Onewire序列号芯片。当然,没有什么可以阻止你的用户修改面板,让他们都报告相同的ID,这样他们就可以多次安装它……
或者在制造设备时将自己的ID编程到闪存中,并锁定设备,使其不能(轻松)通过调试界面进行更改。
发布于 2013-03-12 23:53:25
HCS12没有内置这样的功能。但是请注意,它有一个寄存器PARTID,用于“我是哪个S12派生的,是哪个硅掩模的?”
你必须要做的就是编写你自己的闪存编程算法来跟踪内部的写入次数,尽管在这种情况下你必须修改程序。不幸的是,您使用的是E64,它不仅缺少合适的片上EEPROM,而且只有一个闪存库。这意味着写下这个“内部序列号”的代码必须从RAM执行。在飞思卡尔的网站上有一个关于这一点的应用笔记。
https://stackoverflow.com/questions/15344369
复制相似问题