dhw5qq 发表于 2016-6-10 19:00:53

坛子里的朋友有搞过BOOTLOADER没?

最近有个案子需要用到bootloader实现远程烧录!请问各位有这方面传些资料给俺呗!

boboo 发表于 2016-6-10 19:48:54

目前也在做bootloader
我的想法是根据每个产品的产品序列号,AES加密,boot里自行解密。这样,外地需要的话,直接给app就行,反正每个产品的都不一样,不怕泄密

t3486784401 发表于 2016-6-10 21:50:38

bootloader用 AVR 写过,基本的流程在手册里都有示例代码,多加个通信口(例如USART)收发就有了。至于加密,简单的用随机序列表做个异或就有,复杂点的的确如LS所讲

qingyin2009 发表于 2016-6-10 22:49:47

一个是通信,一个是flash烧写,当然你还得对单片机内存映射懂。
你先实现本地的boot吧,远程的接个模块就OK了

Andrewz 发表于 2016-6-10 19:00:54

说说步骤,1,学会操作单片机的flash操作,包括擦除,写和读。2,理解单片机的启动顺序,bootloader实际上也就是单片机里的一段代码,不过通常设计成单片机上电后最先运行的代码,3,设置中断向量,这个和单片机结构有关系,就看如何重设中断向量就好。4,写bootloader主体,一般就是,初始化系统时钟和接收端口,然后接收一定数量的数据,然后检测flash是否要擦除,最后将程序写入flash,这样重复,直到写完,然后要改向量的改向量,要改映射的改映射,有的什么也不用做,最后延时超时或者解析到结束,跳转到应用程序。5,至于加密什么的,就是附加的东西了,什么牛逼的高科技,要藏着掖着。。6,再就是上位机那边的程序,要了解如何生成flash的 bin文件,如果加密的话,还是加密的文件,如何延时传输,以配合单片机写flash。7,大致就是那样子了,看看ARUDB,这款很实用的bootloader,或许能进一步提升对计算机的理解。

dhw5qq 发表于 2016-6-11 08:37:38

Andrewz 发表于 2016-6-11 08:03
说说步骤,1,学会操作单片机的flash操作,包括擦除,写和读。2,理解单片机的启动顺序,bootloader实际上 ...

谢谢,已了解!

bsz84 发表于 2016-6-11 08:47:57

Andrewz 发表于 2016-6-11 08:03
说说步骤,1,学会操作单片机的flash操作,包括擦除,写和读。2,理解单片机的启动顺序,bootloader实际上 ...

授之于渔

Andrewz 发表于 2016-6-11 18:40:20

dhw5qq 发表于 2016-6-11 08:37
谢谢,已了解!

{:lol:} {:victory:}                     

hy2515131 发表于 2016-6-11 21:53:34

Andrewz 发表于 2016-6-10 19:00
说说步骤,1,学会操作单片机的flash操作,包括擦除,写和读。2,理解单片机的启动顺序,bootloader实际上 ...

大神啊,以后用的到的话过来拿,厉害!!!

zhubamboo03 发表于 2016-6-19 10:56:43

t3486784401 发表于 2016-6-10 21:50
bootloader用 AVR 写过,基本的流程在手册里都有示例代码,多加个通信口(例如USART)收发就有了。至于加密 ...

请问在给AVR远程通讯的时候,修改Bootloader,除了RXD,TXD,RST,GND,控制信号,还要不要加上另一个控制信号,控制Bootloader区的程序进入到应用程序区?

zhubamboo03 发表于 2016-6-19 11:00:46

我也在搞这个,请问你的设计是通过什么远程控制的,是CAN,485,232,还是什么?

zhubamboo03 发表于 2016-6-19 11:06:28

Andrewz 发表于 2016-6-10 19:00
说说步骤,1,学会操作单片机的flash操作,包括擦除,写和读。2,理解单片机的启动顺序,bootloader实际上 ...

你好,请问,我如何控制Bootloader        的程序在出错时,不到应用程序区,要在硬件电路上添加一个控制信号吗?控制AVR的什么信号?又怎么控制,本来是直接改指针的,现在通过控制信号控制远程控制。

t3486784401 发表于 2016-6-19 15:12:17

zhubamboo03 发表于 2016-6-19 10:56
请问在给AVR远程通讯的时候,修改Bootloader,除了RXD,TXD,RST,GND,控制信号,还要不要加上另一个控制信 ...

这个控制可以加上,以明确程序的执行分支(Bootloader还是用户程序),防止意外进入Bootloader或者进不去

zhubamboo03 发表于 2016-6-20 16:10:02

t3486784401 发表于 2016-6-19 15:12
这个控制可以加上,以明确程序的执行分支(Bootloader还是用户程序),防止意外进入Bootloader或者进不去 ...

你好,那应该控制AVR的那个信号?是不是任意一个外部中断口?

t3486784401 发表于 2016-6-20 17:04:42

zhubamboo03 发表于 2016-6-20 16:10
你好,那应该控制AVR的那个信号?是不是任意一个外部中断口?

我没有写这部分功能,大致就是进入 Bootloader 时检测一个 IO 状态(不需要中断,我也没设计中断),
来确认执行 Bootloader 主功能,还是跳转用户区。

类似的功能在 STM32 上直接用 BOOT0/BOOT1 引脚硬件实现了

zhubamboo03 发表于 2016-6-20 17:25:45

t3486784401 发表于 2016-6-20 17:04
我没有写这部分功能,大致就是进入 Bootloader 时检测一个 IO 状态(不需要中断,我也没设计中断),
来 ...

好的,我知道了,谢谢你

zw_7627 发表于 2017-3-21 22:39:57

qingyin2009 发表于 2016-6-10 22:49
一个是通信,一个是flash烧写,当然你还得对单片机内存映射懂。
你先实现本地的boot吧,远程的接个模块就OK ...

远程的接个模块,是CDMA吗?

qingyin2009 发表于 2017-3-30 20:05:58

zw_7627 发表于 2017-3-21 22:39
远程的接个模块,是CDMA吗?

wifi网络什么的都可以

szxszx 发表于 2017-3-30 20:17:52

学习了,会用到

zw_7627 发表于 2017-4-2 22:29:42

qingyin2009 发表于 2017-3-30 20:05
wifi网络什么的都可以

移动网络实现的远程bootloader,有没有弄过?

qingyin2009 发表于 2017-4-3 16:31:05

zw_7627 发表于 2017-4-2 22:29
移动网络实现的远程bootloader,有没有弄过?

没有实现过,本地的搞过,远程的没啥区别

shiang 发表于 2017-7-4 10:56:01

boboo 发表于 2016-6-10 19:48
目前也在做bootloader
我的想法是根据每个产品的产品序列号,AES加密,boot里自行解密。这样,外地需要的 ...

也在搞这个,思路和你的差不多,可以讨论讨论吗

zibouv 发表于 2019-5-15 10:30:27

谢谢分享!
页: [1]
查看完整版本: 坛子里的朋友有搞过BOOTLOADER没?