进入bootloader的方式探讨

发布于 2012-11-02 09:17:43
目前ART采用的是芯片内部自带的bootloader——DFU,进入bootloader下载代码需要手动操作(即先按住DFU按键,再按一下reset按键),这样相对麻烦。
下面列举一些其他进入bootloader的方式:
1)Arduino Uno
Uno采用芯片ATmega328不带有USB接口,使用一块ATmega16u2实现USB-to-UART,USB-to-UART的DTR通过一个100nf电容连接到ATmega328复位引脚,以此实现软件复位。复位后先进入bootloader,有一段时间等待下载代码。
2)Arduino leonardo——
leonardo采用ATmega32u4,带有USB接口,bootloader和用户代码都通过USB CDC设备模拟串口。复位通过以1200波特率打开串口然后关闭串口触发,之后进入bootloader,有一段时间等待下载代码。另外,leonardo上电复位是不会运行bootloader的,直接跳到用户代码。
3)Maple——http://leaflabs.com/docs/bootloader.html
Maple采用STM32F103,bootloader将USB设为DFU设备,用户代码将USB设为CDC设备。用户代码运行时,在模拟串口的DTR产生一个下降沿(软件模拟的),随后发送“1EAF”,在这两个条件下Maple进行复位,先进入bootloader,有一段时间等待下载代码。

查看更多

关注者
0
被浏览
4.3k
4 个回答
bernard
bernard 2012-11-02
这个关键在文件系统上面,因为目前的文件系统是不可写、只读的,所以每次烧写App都是通过手动按键的方式。

大约是在下周我们会发布ART的IO EXT shield,其中包括了SD卡和WIFI网络,当配合使用IO EXT shield时,可以通过无线网络方式下载App而不再需要DFU。在这个完成后,我们将考虑把ART的USB Device做为一个usb以太网连到PC上,并把内部的ROMFS变成一个部分可写的文件系统,继续通过网络的形式把App更新到ART上。

这样,就只剩rtthread.bin(即bootloarder)需要采用DFU的方式烧写。
grissiom
grissiom 2012-11-02
嗯,还是这种有强大扩展能力的硬件/软件有强大的发展力……

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览