原创 AVR通用Bootloader的安全升级模式已经测试完成

2008-8-2 11:25 5755 7 18 分类: MCU/ 嵌入式

AVR通用Bootloader的安全升级模式已经测试完成,没有什么问题了。升级时,只有升级成功后,才会转入用户程序,否则将一直出于升级状态。如果升级失败也将仍然再次进入升级等待状态。这对于远程升级(如通过Modem拨号、网络升级等)比较有用,不会因为升级失败在某些情况下造成不能进入升级状态。


 


下面将考虑加入EEPROM数据升级的问题,找出一个合适的方式更新EEPROM的内容。

文章评论11条评论)

登录后参与讨论

用户23624 2011-8-23 16:51

大侠什么时间搞一个STM32的通用BOOTLOADER出来。

用户1482424 2008-8-11 10:11

找资料看到了,AVR231 范例使用的是RIJNDEAL AES CBC(Chiper Block Chaining)加解密模式,而此模式 相同明文 可以输出 不同密文,而SILABS 范例采用ECB 模式,还有一些其他的模式CFB,OFB,CTR 也有CBC 模式的效果

shaoziyang 2008-8-10 20:35

avrubd.exe中有一个选项是自动判断下载数据长度,会自动根据HEX文件大小,计算出所需要的最小文件大小。可能这个选项有干扰。

用户1482424 2008-8-8 17:30

我的意思是,如果加密过程中使用的密钥有一定的序列要求,解密的时候也是按一定的序列要求解密,从而得到如下的结果: 同样的 明文数据块 经过加密后出来不同的 密文数据块(而非 同样的 明文数据块 经过加密后出来相同的 密文数据块,这样就可以利用此特点,将MCU 中未使用数据空间的填充数据 或 相同数据块 加密出不一样的 密文数据块,从而达到隐蔽相同数据块的目的) 而这个特点在ATMEL 及SILABS 的MCU 端的AES 程序都验证出是你说的样子,但AVRUB.EXE 看到的结果不是这样,所以我再看看,是我哪里出错了? 我已经搭了Delphi7.0 的测试平台,看看是哪里我没有注意到。

shaoziyang 2008-8-7 20:53

我有些不太明白你的意思,在密钥、密文和算法一定的情况下,解密的结果应当就是一致的。在我博客的Delphi分类下,有一个我写的AES加密解密测试例子,你可以试试。avrubd的源程序我也公布了,在avrub项目中,博客的avr分类下也有。 shaoziyang@gmail.com

用户1482424 2008-8-7 18:20

博主,你好,我用AVRSTUDIO + WINAVR ,软件模拟运行了 M8 AES256, 发现 同样的 密文数据块 经过解密后出来相同的 明文数据块(SILABS 公司也有个很完整的AN324 关于AES 的范例,我开始是用它做的,但觉得AES 不会这样一个效果,所以就测试你的,结果也是一样), 但用AVRUB.EXE 运行看到的是 会不同的, 所以真不知怎么办了。因为很多网友都测试通过 你的软件,所以我相信AES 应该是我要的后面那种答案才对。 我现在想搭一个 AVRUB.EXE 的模拟环境,看看到底哪处了问题? 请问要配备什么环境?Delphi7 就可以了吗? 可否将你的AVRUB.EXE 的工程文件传给我? li2587@gmail.com

shaoziyang 2008-8-6 19:57

PC1加密算法是国外网友推荐使用的,比较简单,效果也还可以。不过相关的介绍的确很少。 增加了新功能的程序目前还没有整理出来,需要等几天了。

用户1482424 2008-8-6 14:05

谢谢,我再仔细看看

shaoziyang 2008-8-6 11:21

没有关系,今天好像速度很慢,可能是奥运的问题吧。 我现在设置标志位的思路是,如果标志位不清除,将一直处于升级状态,而不会执行用户程序,也就是不会从Bootloader中跳出去。使用多个位置来保证可靠性是一种好办法,但是会增加程序的大小,需要根据自己的实际情况确定了。 关于AES加密,当给定了明文和密钥后,产生的密文也是固定的。这里使用的AES算法是AVR231中提供的算法,使用16字节数据块。如果要求高,可以将AES算法变形,可以进一步增加解密的难度(当然需要同时修改加密和解密)。 我程序中PC1是另外一种加密算法,比AES简单,所以占用空间也小一些,虽然加密强度没有AES高,但是对于一般的应用可能也足够了。算法具体的介绍可以参考PC1.c中相关网址。两种加密算法是不能同时使用的。

用户1482424 2008-8-6 11:03

对不起,网页功能有些问题,导致重复发送了
相关推荐阅读
shaoziyang 2017-12-15 11:06
《micropython 入门指南》正式出版了
第一本专门介绍MicroPython的中文图书《MicroPython入门指南》由电子工业出版社正式出版了(各大书店和网络书店都有)。MicroPython是近年开源社区中最热门的项目之一,它功能强大...
shaoziyang 2017-11-01 15:30
《MicoPython入门指南》一书即将发行
《MicoPython入门指南》一书即将发行,这是第一本专业介绍MicroPython的中文书籍,请大家多关注和支持。​​...
shaoziyang 2017-07-13 19:50
micro:bit 专用电池扩展板
最近Microbit这么火,就想着要做点什么,于是就有了这个Microbit的专用电池扩展板。它完美配合原版的microbit,可以为microbit增加电池、蜂鸣器功能,功能上超过 MI:power...
shaoziyang 2017-06-13 09:09
用pyboard的dac播放音乐
官方的PyBoard带有DAC功能,使用DAC,我们可以播放简单的音乐。 先准备好两根铜丝,一个有源音箱,一个音频线。 然后从官方网站下载两个文件: http://micropython.org/...
shaoziyang 2017-06-13 09:03
microbit巡线小车 BoBBoT
BoBBoT 是一个使用 BBC micro:bit 控制的巡线小车套件,它很容易组装。 它特别为儿童设计,让孩子可以通过实践学习计算机科学概念。使用 BoBBoT 可以学习: 算法设计 (流程图和...
shaoziyang 2017-06-12 08:29
micropython升级到了 1.9.1
micropython升级到了 1.9.1,主要改进有: v1.9.1 修复了 stm32 的 USB 存储, lwIP 绑定和 VFS 问题 This release provides an imp...
我要评论
11
7
关闭 站长推荐上一条 /2 下一条