如何给Arduino芯片烧入bootloader

这里主要向大家介绍两种向Arduino的cpu芯片烧入bootload的方式,其实两种方式差别并不大,看完下面的内容你就知道了。

 

Reference:

  Bootload_百度百科

  http://baike.baidu.com/view/1223454.htm?fr=aladdin

  BIOS_鸟哥

  http://linux.vbird.org/linux_basic/0510osloader.php#startup_loader

  Arduino官网给块mini板烧bootloader

  http://arduino.cc/en/Hacking/MiniBootloader

 

一.什么是bootload?为何要烧?

BootLoader 百度百科:

在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。在一个基于ARM7TDMI core的嵌入式系统中,系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的BootLoader程序。

想象一下我们的计算机是怎么启动的,当我们让计算机通电后,计算机的BIOS会引导计算机到系统盘的一个叫MBR的区域去读取bootloader(开机管理程序),然后计算机开始执行bootloader,bootloader的功能在于想用户提供开机选项。如果你是多操作系统的话,要是你选择开启其他的操作系统,那计算机就会到相应系统的系统盘中的MBR读取并执行其他的bootloader程序;如果你选择进入当前系统盘的系统,那么bootloader就会引导计算机加载操作系统内核到内存,之后计算机开始执行操作系统,再之后就进入了操作系统主导的世界了,开机过程也就基本结束。

        所以bootloader的功能简而言之就是,加载操作系统,但是很多单片机是没有操作系统的,不过这些单片机上的ROM里可能会存在一些我们先前烧入的程序,然后bootloader就会引导机器加载并执行之。

        多数情况下,我们是可以不用鸟bootloader的,但是假如你要自己做板就可能遇到一些里面什么都没有的芯片或者你损坏了原本的bootloader,这时你就需要自己烧一下它的bootloader了。

 

二.怎么烧?

这里有两种烧写bootloader的方式

1.  用一块arduino板给另一块烧bootloader:

直接上接线图:

  

其接线方式就是:

Programmer                Being programmed

       Vcc           ------>        Vcc

       GND          ------>        GND

       Pin 10         ------>        pin 1 (RESET)

       Pin 11         ------>        pin 11(MOSI)

       Pin 12         ------>        pin 12(MISO)

       Pin 13         ------>        pin 13(SCK)

       接好线之后将作为Programmer的那块板连接电脑,然后打开Arduino的IDE(一般用1.0以上的版本就可以了):

(1). 打开Arduino的示例文件ArduinoISP将其上传到作为Programmer的那块板(假设你已经知道怎么上传了);

(2). 上传完毕后,选择工具 --> 程序员--> Arduino as ISP,因为用的是中文版,程序员选项就是工具栏中倒数第二个,最后点击工具栏中最后一个选项”烧录引导程序”,然后等待烧录完成就好了,如果顺利的话。

 

2. 直接用一个串口适配器来烧:

      这个方法是Aduino官网上提供的,接线就像这样:

      

      那个串口适配器的接口就是这样:

        

       连接好线路,之后的操作方法与方法一有点类似,不过这里不用这里不用上传ArduinoISP程序,直接选择好要烧录的板和芯片的类型,在工具栏里的程序员项中

       选择USBasp选项,之后点击烧录引导程序选项,等待烧录完毕。

 

3. 可能出现的问题及解决方法:

     要是出现烧录不成功的情况的话,先检查一下是不是板什么选错了,要是觉得板没错,就看看你的芯片,假如你在IDE中选择的芯片ATmega328,要是你实际使用的

芯片是ATmega328-PU,那么你可以这么办:

  1. 进入Arduino IDE的安装文件备份其中的avrdude.conf文件;
  2. 用记事本打开avrdude.conf文件;
  3. 找到其中的”0x1e 0x95 0x0F”这一行,将其替换为”0x1e 0x95 0x14”;
  4. 保存更改,重启IDE,再烧一次。 (这是原链接http://www.instructables.com/id/Bootload-an-ATmega328/?ALLSTEPS)
  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Arduino烧写bootloader是指将Arduino开发板的bootloader程序烧录到芯片中,以便在使用Arduino IDE进行编程时,可以通过串口将程序上传到开发板中。这个过程需要使用专门的烧录器和相关软件来完成。烧写bootloader可以使开发板具备更多的功能和扩展性,例如支持更多的通信协议和外设。 ### 回答2: Arduino开发板通常都会安装预装有Arduino引导程序(bootloader),使得我们可以通过USB端口上传程序。但是有时候由于各种原因,Arduino开发板中的引导程序可能会被错误地擦除或丢失,这就需要重新烧写bootloader。 首先需要准备一个Arduino ISP,可以将一个Arduino作为编程器,将引导程序烧写到需要更新的开发板中。确保Arduino作为编程器的引脚和需要烧写引导程序的开发板引脚正确相连,可以根据开发板的型号和引脚图调整连接方式。 在Arduino IDE中选择开发板型号,确定端口后,打开“Arduino as ISP”例程并上传到Arduino编程器板,现在就可以将引导程序烧写到目标开发板中。按下RESET键后,再按下上传按钮即可烧写bootloader。 在Arduino IDE中的菜单栏中选择“工具”,再选择“引导程序烧写”,此时就可以看到不同型号的引导程序可以选择。选择对应的引导程序后,按下烧写按钮开始进行烧写操作。烧写过程中请勿断电或停止操作,否则可能会导致开发板损坏。 当烧写完成后,可以重新用USB传输线将开发板与电脑连接,并在Arduino IDE中选择正确的开发板和端口。现在就可以利用Arduino开发板进行编程了。 ### 回答3: Arduino烧写bootloader是一个重要的任务,在该过程中,我们需要下载和安装适当的工具。这篇文章将为大家介绍Arduino烧写bootloader的过程。 首先,我们需要一个工具来烧写bootloader。在Arduino工具箱中,有一个名为“Arduino as ISP”的工具,可以帮助我们完成这一任务。 步骤1:下载和安装Arduino as ISP工具。这个工具可以从Arduino的官方网站上下载。下载完成后,我们可以使用USB转TTL的串口转接板将Arduino板连接到电脑上。 步骤2:准备一块空板子。我们需要将待烧写bootloaderArduino板作为ISP连接到电脑上。将输入(TX)、输出(RX)、电源和地线连接到与ATmega芯片电路板相应的引脚上。同时,我们还需要将Arduino Uno与要烧写的板子连接起来。 步骤3:在Arduino IDE中打开程序。我们需要打开Arduino IDE,并选择要烧写的bootloader程序。这个程序同样可以从Arduino的官方网站上下载。 步骤4:编译和上传程序。在Arduino IDE中,我们需要编译并上传bootloader程序。在上传过程中,Arduino IDE将会将程序上传到ISP中,并让ISP将程序烧写到我们的目标板子上。 步骤5:完成烧写过程。烧写后,我们可以通过Arduino IDE打开串口窗口来验证烧写的程序。同时,我们还可以通过检查程序是否与目标板子的芯片类型兼容来确认是否烧写成功。 Arduino烧写bootloader是一个比较简单的过程,但仍需要一些技术和经验。大家可以按照上述步骤,了解并掌握烧写bootloader的基本原理和过程,帮助自己更好地进行编辑和控制Arduino板子。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值