打印

开一个世界前沿的话题讨论下:如何减小芯片BootLoader的size。

[复制链接]
3569|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pheavecn|  楼主 | 2008-10-23 13:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
NXP的lpc2000系列芯片BootLoader占用12KB的存储器空间。
ST的stm32f系列BootLoader占用2106字节的存储器空间。不过我看过其反汇编代码,真是很挤呀!!!isp的功能也马马虎虎。
NXP的lpc1000系列芯片规格出来了,BootLoader占用8KB的空间。
有没有办法用1k字节左右的存储器空间实现同样甚至更复杂完备的BootLoader!!!

如果可以,那省出来的存储器都是白花花的银子呀!!!

同样我们要实现IAP应用程序升级功能,IAP BootLoader也是占用空间越小越好。

强调一下目标:
  不仅仅是把目前的2k、12k、8k等BootLoader减小,而且要把复杂到几十k的BootLoader也大幅度减小。

相关帖子

沙发
lucidmask| | 2008-10-23 13:49 | 只看该作者

re

又要size小,又要功能强,都是你的了,要哪么强功能干什么,能load就行了

使用特权

评论回复
板凳
pheavecn|  楼主 | 2008-10-23 13:59 | 只看该作者

呵呵,这就叫挑战嘛!世界前沿的技术不就是一个一个的挑

举例来说,自动波特率、超强纠错、超强加解密,这些都是好处大大的东东。

在某些IAP应用场合,甚至会用到RSA、ECC等算法。

刚看了atmel的at91sam7系列,BootLoader占16KB,太浪费了!!!

欢迎各位踊跃讨论,2个月后我公开我的做法!!!

如超过100楼,提前公开!!!

使用特权

评论回复
地板
农民讲习所| | 2008-10-23 14:02 | 只看该作者

俺在S3C2410自己做的BOOTLOADER大小4K

C写的,4KBOOTRAM正好放下,不需要第二个BOOT。
初始化。
调用NANDFLASH图片显示**。
串口ISP下载。

原先以为能做到2K,估计错了。

使用特权

评论回复
5
black_wolf| | 2008-10-23 14:06 | 只看该作者

别关心Size了

我觉得能用的上Bootloader的芯片对几K的大小基本都不太关心了,还是讨论一下什么功能最重要,怎么实现,什么样的结构最合理吧!?

使用特权

评论回复
6
pheavecn|  楼主 | 2008-10-23 14:08 | 只看该作者

呵呵,我做到1K多呢。

优化一下可以控制在1KB。

使用特权

评论回复
7
农民讲习所| | 2008-10-23 14:09 | 只看该作者

自动波特率没什么大作用,固定115200就好了。

lpc,stc都采用自动波特率,有时候会出现连接不上,很麻烦的。

使用特权

评论回复
8
aweyfan| | 2008-10-23 14:12 | 只看该作者

我做的avr的bootloader,220字节,带简单加密

主要工作由上位机完成

使用特权

评论回复
9
pheavecn|  楼主 | 2008-10-23 14:23 | 只看该作者

在设备芯片里烧一个BootLoader。

只有原始制造商提供的代码才能升级。
而原始制造商提供的代码只有指定的设备才能升级。

这种功能不知道有没有意义?

使用特权

评论回复
10
pheavecn|  楼主 | 2008-10-23 14:26 | 只看该作者

aweyfan老兄的简单加密,恐怕没有很大意义。

在密码学体制里属于古典密码体制,即安全性能依赖于加密算法的保密性。

现在密码体制,分为对称密钥体制和非对称密钥体制。都是依靠密钥来实现安全性,而算法是充分公开的。

使用特权

评论回复
11
yewuyi| | 2008-10-23 14:33 | 只看该作者

嘿嘿,做成固件最省空间,一个字节都不要。。。

使用特权

评论回复
12
农民讲习所| | 2008-10-23 14:41 | 只看该作者

pheavecn可以先把要求提出来

MCU型号?功能?

使用特权

评论回复
13
aweyfan| | 2008-10-23 15:11 | 只看该作者

复杂可以搞aes或des,起码要2k空间了

加密这东西,只是一张纸,你搞的再复杂,别人花几百块直接解密了

使用特权

评论回复
14
pheavecn|  楼主 | 2008-10-23 17:25 | 只看该作者

arm7和cortex-m3

正常版本:
自动波特率(stm32f的),uu编码纠错(lpc2000的)。
支持aes加密,这样串口的数据不会被窃听。

高级IAP版本支持数字签名,diff-hellman密码协商。

总之最终目的要保证可靠、方便、安全、排他的进行ISP/IAP。

比如烧录数量控制、烧录版本控制、试用版本烧录等、软件防篡改,都是现实中会遇到的问题。
我的目标是提供合法、可靠的手段去实现这些目的。

暂时可不考虑AVR这些低端mcu,真做不出什么花样来。

使用特权

评论回复
15
平常人| | 2008-10-23 18:42 | 只看该作者

与上百KB的Flash空间相比,在Bootloader上省出1KB,有意义吗?

意义有多大?

在2K、4K、8K中省出1KB甚至所有8K空间,相对于上百KB的Flash空间,简直是九牛一毛,而且从100K、200K、500K的程序中挤出10K、8K的空间比在Bootloader中花功夫容易得多。

使用特权

评论回复
16
mohanwei| | 2008-10-23 19:37 | 只看该作者

我做的一个uPSD3254A/uPSD3354D的Bootloader就是实现9楼的功能

有用的塞上,没有用的也不停塞,终于填满了32K的空间。

使用特权

评论回复
17
hotpower| | 2008-10-23 20:54 | 只看该作者

支持一下~~~

使用特权

评论回复
18
zoudem500| | 2008-10-24 09:14 | 只看该作者

菜菜的问下

看到各位大侠在这讨论这个bootloader,在次问下。那些地方学要做这个bootloader,意义何在啊?我公司有些程序都是有bootloader的,在我感觉他们做这个bootloader就是定义了一些底层定义和引脚的分配。具体意义不清楚?大侠给讲解下,菜鸟询问!谢谢!

使用特权

评论回复
19
99st| | 2008-10-24 15:26 | 只看该作者

各位不能说没用。

当BootLoader定下来的时候,是没办法。
很多芯片不就多点RAM,FLASH,但价钱就贵了点吗?
这些单位可是几KB。

支持一下~

使用特权

评论回复
20
pheavecn|  楼主 | 2008-10-25 09:28 | 只看该作者

谢谢楼上兄弟的支持。

楼上的楼上,单片机的BootLoader一般指把程序烧录到FLASH里面去的一段程序。
而在linuxwince等操作系统中,BootLoader是跟电脑的BIOS差不多的一个角色。

单片机的BootLoader,改称BootBurner比较合适。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

88

主题

918

帖子

0

粉丝