本帖最后由 hotpower 于 2011-8-16 01:51 编辑
LDROM大小为4K,为它写程序时稍不注意,代码就超过4K.
要在其中实现ISP,可谓难上加难。
周末在家琢磨,不是还有RAM,不拿来用可惜了。
考虑这样一个方案,将ISP分为基本的和扩展的两部分
1. 写在LDROM里的,是个“基本的部分”。
它负责从USB获得“扩展部分”程序,将程序放到RAM里。
2. 实际的ISP烧写动作,由“扩展部分”完成。
可以载入一个“扩展部分”,完成APROM的烧写,
再载入新的“扩展部分”,完成外接SPI Flash的烧写,
再载入新新的“扩展部分”,完成加密解密的算法。
。。。
很多的“扩展部分”,存放在Windows的上位机程序里,
于是ISP固件,就可以有无尽的可能了,不再受限制于4K.
还有一个问题,可以随意载入“扩展部分”,安全性如何保证?
载入一个“偷固件”的程序,可不可以?
所以,就有第3个考虑:
3. 固定写在LDROM中的ISP程序,作为“基本的部分”,
只接受它“认可”的“扩展部分”。
新写入到RAM中的“扩展部分”生效前,必须通过md5或sha验证。
不是随便哪个“扩展部分”都可以运行的。
已经初步试验出结果,效果不错。
xhawk基本不懂密码学,还好天下程序有的抄,md5和sha算hash值,都GPL来了,
经过优化也不大,LDROM足够放下。
但是现在有个担心,md5或sha的hash值,被假冒的可能性多大? |