查看: 2013|回复: 0

ATmega328p Xplained Mini 使用AVR通用Bootloader

[复制链接]
  • TA的每日心情
    奋斗
    2019-12-1 10:07
  • 签到天数: 1617 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2015-1-6 14:00:29 | 显示全部楼层 |阅读模式
    分享到:
    Bootloader是AVR单片机上最有特色的功能之一。下面就在ATmega328P Xplained mini上开始Bootloader的测试了,当然是AVR通用Bootloader了。
    因为AS4中使用avrub已经很方便了,所以就不重复了,这里只介绍AS6中使用avrub的方法。先在AS6中创建新项目,然后将avrub中需要的三个文件复制到项目文件夹下,并删除原来的主程序文件。


    使用过avrub的人都知道,使用avrub主要就是要做好参数配置工作,基本不用修改程序的。先设置一下bootloader的地址,方法和AS4中一样,在项目属性的Memeory Setting中,在Flash segment下添加一行:
    .text=0x3C00这是为了将bootloader设置在0x3C00Word(0x7800Byte)处,也就是Boot区大小是1KW。其它参数就在bootcfg.h中修改了,主要是修改时钟频率、LED引脚、波特率等。


    设置完成后保存一下,然后可以编译了。为了验证Bootloader是否在我们需要的位置,可以用avrubd.exe查看一下编译后的HEX文件。下图显示它的确从0x7800Byte处开始的。


    下一步就是配置ATmega328P的熔丝位了。这里主要是设置BOOTRST和BOOTSZ两个,其它不用修改。在Device programming中设置好后记得还要program,这样才能设置到芯片中。使用AS自带的编程软件好处就在于如果不小心设置了一些错误而关键的熔丝位,它会提示你。


    下一步就是将上面编译好的bootloader程序下载到芯片。然后就是在上位机软件中设置参数和串口,最简单的方法就是直接在选项中导入刚才的bootcfg.h。设置串口时需要注意,必须将DTR选中,不然串口是无法通信的(这是mEDBG要求的)。


    最后在打开一个atmega328的例子下载,测试一下。只要没有设置错误,基本都是一次成功,用起来还是很方便的。


    因为ATmega328P Xplained mini开发板上没有复位按钮,所以我们还需要准备一个镊子,在需要复位时,将ISP插座的5 6两个脚(RESET和GND)短路一下。
    附件
    avrub_AS4.zip (32.03 KB, 下载次数: 0) avrub_AS6.zip (37.51 KB, 下载次数: 0)
    avrubd.zip (384.82 KB, 下载次数: 0)
    PC_src.ZIP (265.19 KB, 下载次数: 0)
    3rd_party_components_package.7z (2.11 MB, 下载次数: 0)
    demohex.zip (1.54 KB, 下载次数: 0)
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-12-19 03:45 , Processed in 0.119057 second(s), 16 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.