AVR ELF文件的生成与烧录
来源:互联网 发布:js的跨域 编辑:程序博客网 时间:2024/04/29 01:43
作者:hitzds
转自:http://blog.chinaunix.net/uid-28604207-id-3485030.html
通常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 <avr/signature.h>重新编译即可,此头文件会定义一个常量数组并放置到ELF的.signature段中。(如果增加了.user_signature的段,好像编译器会自动将这.signature这个段添加到ELF文件中TBD)
- const unsigned char __signature[3] __attribute__((section (".signature"))) =
- { 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文件的生成与烧录
- Linux下的MCU开发之AVR系列1-avr系列的编译烧录调试方法
- AVR单片机CRC校验码的查表与直接生成
- ABI和ELF的全称?如何从elf文件生成bin文件?
- u-boot ELF文件镜像的生成
- Linux下的avr系列的编译烧录调试方法
- IAR for AVR设置生成HEX文件
- ELF 文件的格式
- ELF文件的加载
- ELF与BIN文件区别
- ELF与BIN文件区别
- ELF文件中section与segment的区别
- 链接、装载与库:Linux下的ELF文件
- ELF文件中section与segment的区别
- IAR C中如何生成AVR的.hex,.eep和.dbg文件
- Linux下的avr系列的编译烧录调试方法 — 大工CSDN – EE01工作室【附件】
- ELF 文件的结构01
- ASIHttpRequest parses URL with spaces
- 原生js 事件代理方法
- NS2源码图示---数据链路层
- The problem of Memory Leak
- VC的CListCtrl控件
- AVR ELF文件的生成与烧录
- 编程中常见问题的经验总结
- 什么是接口?
- 设计模式学习笔记(1)--认识23种模式
- iwpriv工具通过ioctl动态获取相应无线网卡驱动的private_args所有扩展参数
- 接口有什么用?
- mvc问题
- ubuntu12.10 chkconfig安装
- UILineBreakMode的各种情况