控制器

什么是bootloader?新手必看

字号+ 作者:duino123.com 来源:未知 2016-05-18 15:14 我要评论( )

什么是bootloader?新手必看

PLCLIVE.COM注:



什么是bootloader?

在买了一块ATMEGA的裸芯片之后,并且用面包板或者焊接搭建了一个自己的最小系统后,你就不可不考虑这个问题了。

在arduino的板子上,作为核心的avr单片机往往都会烧录一个bootloader,这个叫做bootloader的东东其实是arduino研发团队针对arduino板子开发的一小段代码,借助于这段代码,我们可以在不用外部烧录工具的情况下来把我们自己的代码下载到AVR单片机中。为了使一些朋友更容易理解,不妨打个比方,bootloader类似于我们电脑中的windows操作系统,而我们的代码则类似于运行于windows上的各种程序。
一般而言,arduino板的卖家都会把每块板的bootloader都烧好后再出售,这样买家直接收到板后就能够把自己在arduino IDE中编写的程序借助PC的USB口来下载到arduino单片机内。当然,下载bootloader是需要借助于外部下载器的,可支持的下载器不少,基中比较具有性价比的是usbtinyisp。对于一般用户,因为在下载自己代码的时候偶尔会出现破坏bootloader的情况,就像PC的windows系统突然之间崩溃了一样。这时候,就会需要用外部下载器来恢复这个bootloader,就相当于PC重装系统。
在arduino IDE的菜单中有一项是Burn bootloader,专门是用来烧bootloader用的,在连接好下载器和arduino板的ISP接口后,选择"Burn bootloader",
以目前主流的uno板为例,这时程序会按
以下步骤自动操作:
  1. 1.确认采用stk500的通讯协议。bootloader.atmega328P-<BOARD>.programmer (default value: stk500) is the protocal used by the bootloader.  
  2. 2.允许对相应内存地址空间操作。bootloader.atmega328P-<BOARD>.unlock_bits (default value: 0x3F) is the value to write to the ATmega328 lock byte to unlock the bootloader section.
  3. 3.写熔丝位的扩展位。bootloader.atmega328P-<BOARD>.extended_fuses (default value: 0x05) is the value to write to the extended byte of the ATmega168 fuses. 
  4. 4.写熔丝位的高位。bootloader.atmega328P-<BOARD>.high_fuses (default value: 0xde) is the value to write to the high byte of the ATmega328 fuses.
  5. 5.写熔丝位的低位。bootloader.atmega328P-<BOARD>.low_fuses (default value: 0xff) is the value to write to the low byte of the ATmega328 fuses.
  6. 6.给出bootloader文件的路径。bootloader.atmega328P-<BOARD>.path (default value: optiboot) is the path (relative to the Arduino application directory) containing the precompiled bootloader.
  7. 7.给出bootloader文件名。bootloader.atmega328P-<BOARD>.file (default value:optiboot_atmega328.hex) is the name of the file containing the precompiled bootloader code (in bootloader.path).
  8. 8.锁定,禁止再修改相应内存空间。bootloader.atmega328P-<BOARD>.lock_bits (default value: 0x0F) is the value to write to the ATmega328 lock byte to lock the bootloader section (so it doesn't get accidently overwritten when you upload a sketch).
通常,arduino板在下载好了bootloader但还没有upload任何用户代码的时候,会定义一个led(pin13)一闪一闪的,以作指示。

如需更详细资料,如有好资源分享,请加入QQ交流群:214461008

欢迎阅读,欢迎转载,不用注明出处!本站只提供入门和进阶资料,做您学习的小伙伴!

老司机也欢迎光临指导!有好内容请加群:214461008 不要看声明了,看内容吧!

相关文章
网友点评
Arduino