通常AVR芯片包括flash,eeprom,fuse,lockbits,user signature等几个非易失的内容需要在编程时烧录到芯片中,其中fuse部分是只有外部的编程器可以进改写,应用程序本身是无法更改的。


在进行ISP烧录过程中,用户希望使用点一个按钮这样单一的动作来完成烧录,这就要求能把几个不同部分的擦出、烧写、比较的动作合成在一起来完成。可以使用ELF格式来完成这个目标,ELF格式的目标文件中可以包含不同的区域段,下载工具可以分别提取烧录到相应的位置。


1)使用Atmel Studio 6进行的软件开发


如果开发者使用是Atmel Studio 6(或者是AVR Studio 4/5,总之是GCC就行)来编写用户的源代码,avr glibc提供了一组方法来实现在源代码中指定这些不同区域的值。


如果希望生成的ELF文件中包含有芯片ID的段,用于ELF Production file下载之前进行比较,看是否是匹配当前设备的下载文件。这一步仅需要在源代码中加入头文件#include


  1. const unsigned char __signature[3] __attribute__((section (".signature"))) =  

  2.         { SIGNATURE_2, SIGNATURE_1, SIGNATURE_0 };  


2)使用IAR AVR进行的软件开发


由于IAR扩展语法中不能支持fuse,lockbits等位的定义,所以使用IAR仅能生产单一烧写FLASH的内容,通常我们生产HEX格式。


这时候就需要使用到AVR Studio 4中的ELF Production File  Fomart的功能:在选好flash与eeprom的HEX文件位置后,分别去fuse,lockbits的页面勾选好相应的配置后,回来设置好需要产生的ELF文件路径,点Save即可由AVR Studio 4生成一个包含各个段内容的ELF文件格式,直接点Program按钮或者使用命令行工具atprogram.exe都可以简单的烧录。



关键字:AVR  ELF文件  生成  烧录 引用地址:AVR ELF文件的生成与烧录

上一篇:ATmega16定时器1的时间设定
下一篇:AVR使用范例--使用Bootloader 升级芯片内程序详解

推荐阅读

一、盒仔机器人BOXZ,昵称盒仔,是一款开源的互动娱乐平台!百度一下,有很多盒仔的制作教程,基本都是用arduino制作完成的。假期没事,带着宝宝们用51制作了一个廉价的BOXZ。先上张图:从图上不难看出,为了宝宝们易于接受,我把盒仔的手机摇控改成了用线控的方法,做了一个简易的摇控器。二、材料准备以上原器件,某宝网上都有。另外,制作中需要用到壁...
在AI换脸软件ZAO和旷视校园人脸识别的风波后,17万人脸数据被公开挂在网上商城出售的消息“接踵而至”,人脸突然成了“危险品”。无处不在的人脸识别,当采集人脸数据的渠道越来越广,很多人会疑惑,我们的人脸数据最终都流向了哪里?在刷脸解锁手机,付款,进出入高铁站、机场的时代,你的脸可能在研究人员的数据集中,也可能在暗网的黑产交易中,也可能...
随着人工智能技术兴起以及边缘设备算力的提升,机器视觉的应用场景不断扩展,并催生了巨大的市场。根据美国领先的调查机构Grand View Research的分析,预计到2025年全球机器视觉市场规模将达到182.4亿美元,复合年增长率为7.7%。在智能制造的浪潮下,生产线对工业设备有了新的要求,对质量检验和生产的需求不断增加。而新一代机器视觉系统能够在短短...
机器人编程其实是一个很大的范围。 机器人编程涉及的学科很多,集成应用(机器人编程和生产工艺)、机器人研发、电气、、机械、、等等。 机器人编程要学的哪些? 1.工业机器人应用编程,就学对应厂家的,如ABB的RAD,,这个要平台动手实操。 2.机器人算法开发,就得学习/C++,或者; 3.机器人控制器开发,C/C++,RTX等,也有在 ROS下开发的,界面M...

史海拾趣

小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved