zoukankan      html  css  js  c++  java
  • 关于Arduino MEGA2560 看门狗对bootloader的依赖

    bootloader在Arduino中起着至关重要的位置,arduino-1.5.6-r2版本中的bootloader对看门狗(watchdog)的bug进行了修复;mega2560其实就是使用的AVR单片机系列Atmega2560芯片,作为arduino中的一员使用了arduino的开源库,及其开源的外围硬件;单独使用Atmega2560芯片并自己设计电路,又想使用arduino提供的强大的开源库,及其比较方便的开发环境Arduino
     IDE时,会产生很多问题。下面我就来阐述一下自己设计的电路使用Atmega2560芯片,外部8MHz晶振,使用JTAG ICE MKII ICSP烧写程序,注意事项:
    1.在保证电源正常供电的情况先,让电路工作,开始下载程序时,注意熔丝位的设置,CKDIV8熔丝位编程会让系统时钟工作在8分频的情况;
    2.BOOTRST熔丝位编程会影响系统复位后从boot区重新启动;
    3.由于arduino环境默认没有mega2560 8MHz的平台,所以在arduino-1.5.6-r2-windowsArduinohardwarearduinooards.txt中进行新平台的添加,这样在arduino Ide中就会有新的平台加入;例如:
    mega2560_8M.name=Arduino Mega2560_8M
    mega2560_8M.upload.protocol=wiring
    mega2560_8M.upload.maximum_size=258048
    mega2560_8M.upload.speed=115200
    mega2560_8M.bootloader.low_fuses=0xFF
    mega2560_8M.bootloader.high_fuses=0xD8
    mega2560_8M.bootloader.extended_fuses=0xFD
    mega2560_8M.bootloader.path=atmeg2560_8M
    mega2560_8M.bootloader.file=stk500boot_v2_mega2560.hex
    mega2560_8M.bootloader.unlock_bits=0x3F
    mega2560_8M.bootloader.lock_bits=0x0F
    mega2560_8M.build.mcu=atmega2560
    mega2560_8M.build.f_cpu=8000000L
    mega2560_8M.build.core=arduino
    mega2560_8M.build.variant=mega
    Mega2560_8M是我新命名的平台,在bootloader中新建Mega2560_8M文件夹,同时把同级目录stk500v2下的所有文件考入Mega2560_8M,我是在ubuntu下进行编译的,当然要使用avr-gcc编译器,make
     clean删除已有的可执行程序,在Makefile中找到maga2560:处,更改F_CPU=16000000为F_CPU=8000000,然后执行make mega2560生成新的可执行程序stk500boot_v2_mega2560.hex;
    注意:这其中主要是修改了F_CPU为8M;其他没有修改,可以尝试在windows下编译
    4.这样在Arduno IDE中,tool->board中就有了新的平台Mega2560_8M,编译程序是需要指定这个版本类型;
    5.程序写好后,需要下载程序到芯片中;步骤如下:
    (1)芯片引出的ISP管脚连接JTAG ICE MKII
    (2)擦除Flash
    (3)下载 Mega2560_8M文件中的bootloader程序stk500boot_v2_mega2560.hex到芯片中
    (4)下载程序到芯片中,在此之前不要擦除芯片程序,否则会把bootloader擦掉;
    (5)编程BOOTRST熔丝位,让系统复位从boot区执行
    这样下来看门狗就可使用了。注意一定要保留bootloader才可以修复一些bug;
    --------------------- 
    来源:CSDN
    原文:https://blog.csdn.net/wzdvs2005/article/details/41349413

  • 相关阅读:
    django计数器: form collections import Counter
    issubclass使用
    Python rpartition() 方法
    try...except...else高级用法
    FBV及CBV区别
    类属性及对象属性
    判断类或对象方法
    django md5
    @cached_property
    js Array 中的 map, filter 和 reduce
  • 原文地址:https://www.cnblogs.com/anandexuechengzhangzhilu/p/10719822.html
Copyright © 2011-2022 走看看