导航:首页 > 操作系统 > 单片机bootload

单片机bootload

发布时间:2024-01-16 04:53:41

1. 如何烧录 arino 的 bootloader

为了恢复Arino的功能,必须得重新给ATMega328P单片机里烧写bootloader(其实Arino就是在AVR单片机中胡答预置了一个bootloader程序,这样再配合Arino开发环境就是所谓的Arino了,但Arino这个词本身只留给官方使用)。当然在淘宝上也能买到已经烧写好的AVR单片机,只是自己手上已经有了AVR单片机,就没必要去花那冤枉钱了。

于是马上打开万能的网络,输入关键字“Arino bootloader”果然,一大堆乱七八糟相关的问题就出来了,经过一轮的筛选,发现许多说的也并不是很清晰,不过让我明白了个大概:一个普通的AVR单片机确实能烧写bootloader之后作为Arino使用。那么问题来了,如何把bootloader烧录到AVR单片机中去了?这的确是个问题,反正对于不懂AVR开发的我来说是个问题。不过还好之前在淘宝上买了一个USBASP下载器,跟之前擦除bootloader一样,也要用到progisp软件(因为此时的ATMega328P只是一枯埋个普通的AVR单片机,用Arino开发软件是烧写不进去的)。

既然要烧没做蚂录bootloader,那么什么是bootloader呢?正如你所想,bootloader当然是一个程序,既然要烧录到单片机中去,应该是一个.HEX之类的文件。但是,bootloader文件从哪来呢?继续网络。。。找到了,在Arino软件安装目录中的hardwarearino中。此文件夹下的“boards.txt”文件很重要,是很重要,其他的或许都可以在网络上找到,但因为这个文件折腾了我大半个晚上,网络上也没有明确的说明。打开文件,找到自己对应的Arino版本,因为我的是“Arino Uno”,于是锁定“uno.name=Arino Uno”区域的说明,因为看上去很乱,一定要仔细去看。找到“uno.bootloader.low_fuses=0xff"指编程熔丝低位为FF,”uno.bootloader.high_fuses=0xde“指编程熔丝高位为DE,”uno.bootloader.extended_fuses=0x05“指扩展位为05。这三个值非常重要,是决定你烧录bootloader成功的关键。至于这三个值具体是什么意思,我也不是很不清楚,但AVR单片机的烧录时需要设置熔丝位,而且不能乱设置,这也是AVR跟51单片机的不同之处。

用progisp软件把这三个熔丝位的值写入到AVR单片机中,然后继续浏览”boards.txt“文件往下看,找到”uno.bootloade旦长测短爻的诧痊超花r.path=optiboot“这就是说要烧录的bootloader文件在bootloadersoption文件夹中,“uno.bootloader.file=optiboot_atmega328.hex”文件名就是optiboot_atmega328.hex,这就是接下来需要烧录到AVR单片机中的程序。用progisp软件调入此文件,然后直接写入到AVR单片机中就行了,一个支持Arino的AVR就做好了。。。

其实这个问题本身不难,但对于没接触过AVR的人来说,还是要花许多时间的,中间也会存在许许多多各种各样的问题。至于progisp的使用方法很简单,网络上的教程也很多,还有手上必须有一块可以烧录AVR单片机的下载器。我当时就是忽略了那三个熔丝位的值,所以反反复复也没有成功,网络上面也没有对”boards.txt“文件做详细的解释。没设置熔丝位程序是可以正常的烧录进去,但Arino是不能用的,所以必须要按照官网给出的说明操作。我当时大多数时间主要花在两个问题上,一个是.HEX文件具体位置,因为Arino有不同的版本,所以.HEX文件也不同,还有一个就是熔丝位上。

2. AVR单片机如何合并bootloader程序和Flash程序为一个HEX文件,我想同时烧写进单片机。用什么方法

把bootloader和Flash都转换为BIN文件格式,然后把Bootloader放在flash文件后面第120K开汪纤拦始的位置。然后困胡把这合并的文竖让件少写进单片机。

3. 单片机为什么能直接烧录程序

单片机能直接烧录程序是因为单片机中已经存在了一个烧写程序。

启动单片机时首先运行这程序,程序判断端口状态,如果符合“要烧写ROM”的状态存在,就从某个端口(串口、SPI等等)读取数据,然后写入到单片机的ROM中。如果没有“要烧写ROM”的状态,就转到用户的程序开始执行。

单击片烧录原理总结:

ICP:使用SWD接口进行烧录,如J-Link烧录器和J-Flash软件配合使用。

ISP:使用引导程序(Bootload)加上外围UART/USB等接口进行烧录。

IAP:软件自身实现在线电擦除和编程的方法,不使用任何工具。程序通常分成两块,分别为引导程序和应用程序。

4. AVR单片机MEGA328上的BOOTLOAD是用来干什么的有什么作用

可以理解为mega328内有两个存储区,一个是bootloader区,一个是你正常运行的程序区。 bootloader是用来监控或是下载用的,比如Arino UNO中的mega328就烧录了相应的bootloader,之后,可直接用相应的arino IDE 一体化的编译下载,很方便

阅读全文

与单片机bootload相关的资料

热点内容
加密的视频不小心删除怎么恢复 浏览:464
安卓游戏充钱充错帐号怎么办 浏览:203
有什么是绑定手机号的app 浏览:496
phpredis事务 浏览:935
阴阳师pad怎么登录安卓账号 浏览:734
bitlocker加密后读取不了 浏览:176
算法设计是指流程图吗 浏览:168
javaboot如何防止反编译 浏览:118
python复合数据结构视频 浏览:146
培训学校需要用什么云服务器 浏览:721
卫星锅加密卡那里收购 浏览:58
小米工具文件夹选项在哪里 浏览:55
md5磁盘加密 浏览:642
单片机x地址 浏览:208
回车键失灵运行命令如何使用 浏览:984
电脑一键解压缩的软件 浏览:171
怎么关闭手机通讯录对外app 浏览:370
我的世界如何强行进入一个满人的服务器 浏览:653
什么app可以查询会考成绩 浏览:389
程序员能创造的价值 浏览:261