问:如何对程序代码加密(或如何写FLASH程序存储器安全字节)?

答:程序存储器安全字节的地址:64K_0xFDFE和0xFDFF;32K_0x7DFE和0x7DFF;16K_0x3DFE和0x3DFF;8K_0x1DFE和0x1DFF。
您可在你原有的IDE工程里面追加一个汇编文件,一起编译连接下载;以8K Flash芯片为例,汇编文件内容如下:
org 1dfeh
nop
nop
end
或用更改hex格式文件的形式将0x1dfe和0x1dff写入00,此方法适用于批量生产,直接下载hex格式文件。以32K为例:在hex文件倒数第一行与倒数第二行之间插入一个记录: 027DFE00000083 *
注:为hex文件的记录开始符,
02 是要写入的字节数
7DFE 为写入地址的首地址
00 为写入的数据的类型(00为数据;01为hex文件结束标志)
0000 是写入的两个数据
83 是校验和(将它的值与记录中所有字节相加,其结果为0)
定时器

生成海报
点赞 0

创世纪

单片机学习,电子制作DIY学习与分享,各种新鲜的,有趣的,好玩的,一起来吧!机器人、无人机、树莓派/Raspberry Pi、arduino、极客、创客等

暂无评论

发表评论

相关推荐

有没有很好的办法来解决加密问题但是又不破坏MCU的方法?

答:单片机系统产品的加密和解密技术永远是一个矛盾的统一体,针对科研成果保护是每一个科研人员最关心的事情,目的不使自己的辛苦劳动付注东流。对其单片机加密方法一般有采用软体加密,硬体加密,软硬体综合加密,时间加密,错误引导加密,专利保护等措施。有矛就有盾,有盾就有矛,有矛、有盾,才促进矛、盾质量水平的提高。而加密只讲盾的运用,以下就简单叙述加密的方法: 硬体加密:使他人不能读你的程式。 ① 高电压或镭射烧断某条引脚,使其读不到内部程式,用高电压会造成一些器件损坏,即把单片机资料汇流排的特定I/O永久性地破坏,解密者即使擦除了加密位,也无法读出片内程式的正确代码。此外还有破坏EA引脚的方法。 ② 重要 RAM资料采用电池对RAM进行掉电资料保护。即先将一系列资料写入RAM并接上电池,然后将其余的晶片插上。这样,当单晶片微处理器系统运行后,CPU首先从RAM读出资料,这些资料可以是CPU执行程式的条件判别依据,也可以是CPU将要执行的程式。如果资料正确,整个系统正常运行。反之,系统不能运行。 ③ 汇流排乱置法。汇流排乱置法通常是将MCU和EPROM之间的资料线和位址线的顺序乱置。软体加密:其目的是不让人读懂你的程式,不能修改程式,可以在程序重要资料区先用DES混码存放,但使用时须配合外面输入Decode码(金钥匙)来解编。或者是在无程式的空单元也加上程式机器码,最好要加巧妙一点等。 用真真假假方法加密:①擦除晶片标识。②DIP封装改成 PLCC、TQFP、SOIC、BGA等封装。