avr单片机gcc程序设计

上传人:xzh****18 文档编号:46620813 上传时间:2018-06-27 格式:PDF 页数:171 大小:742.77KB
返回 下载 相关 举报
avr单片机gcc程序设计_第1页
第1页 / 共171页
avr单片机gcc程序设计_第2页
第2页 / 共171页
avr单片机gcc程序设计_第3页
第3页 / 共171页
avr单片机gcc程序设计_第4页
第4页 / 共171页
avr单片机gcc程序设计_第5页
第5页 / 共171页
点击查看更多>>
资源描述

《avr单片机gcc程序设计》由会员分享,可在线阅读,更多相关《avr单片机gcc程序设计(171页珍藏版)》请在金锄头文库上搜索。

1、芯芯 艺艺 作作 品品 AVR 单片机 GCC 程序设计 AVR 单片机 GCC 程序设计 芯 艺 2005-01-01 芯 艺 2005-01-01 芯芯 艺艺 作作 品品 目目 录录 前言前言 第一章 概述 1.1 AVR 单片机 GCC 开发概述 1.2 一个简单的例子 1.3 用 MAKEFILE 管理项目 1.4 开发环境的配置 1.5 实验板 CA-M8 第二章 存储器操作编程 2.1 AVR 单片机存储器组织结构 2.2 I/O 寄存器操作 2.3 SRAM 内变量的使用 2.4 在程序中访问 FLASH 程序存储器 2.5 EEPROM 数据存储器操作 2.6 avr-gcc

2、段结构与再定位 2.7 外部 RAM 存储器操作 2.8 堆应用 第三章 GCC C 编译器的使用 3.1 编译基础 3.2 生成静态连接库 第四章 AVR 功能模块应用实验 4.1 中断服务程序 4.2 定时器/计数器应用 4.3 看门狗应用 4.4 UART 应用 4.5 PWM 功能编程 4.6 模拟比较器 4.7 A/D 转换模块编程 4.8 数码管显示程序设计 4.9 键盘程序设计 4.10 蜂鸣器控制 第五章 使用 C 语言标准 I/O 流调试程序 5.1 avr-libc 标准 I/O 流描述 5.2 利用标准 I/0 流调试程序 5.3 最小化的格式化的打印函数 第六章 CA-

3、M8 上实现 AT89S52 编程器的实现 第一章 概述 1.1 AVR 单片机 GCC 开发概述 1.2 一个简单的例子 1.3 用 MAKEFILE 管理项目 1.4 开发环境的配置 1.5 实验板 CA-M8 第二章 存储器操作编程 2.1 AVR 单片机存储器组织结构 2.2 I/O 寄存器操作 2.3 SRAM 内变量的使用 2.4 在程序中访问 FLASH 程序存储器 2.5 EEPROM 数据存储器操作 2.6 avr-gcc 段结构与再定位 2.7 外部 RAM 存储器操作 2.8 堆应用 第三章 GCC C 编译器的使用 3.1 编译基础 3.2 生成静态连接库 第四章 AV

4、R 功能模块应用实验 4.1 中断服务程序 4.2 定时器/计数器应用 4.3 看门狗应用 4.4 UART 应用 4.5 PWM 功能编程 4.6 模拟比较器 4.7 A/D 转换模块编程 4.8 数码管显示程序设计 4.9 键盘程序设计 4.10 蜂鸣器控制 第五章 使用 C 语言标准 I/O 流调试程序 5.1 avr-libc 标准 I/O 流描述 5.2 利用标准 I/0 流调试程序 5.3 最小化的格式化的打印函数 第六章 CA-M8 上实现 AT89S52 编程器的实现 芯芯 艺艺 作作 品品 6.1 编程原理 6.2 LuckyProg2004 概述 6.3 AT989S52

5、isp 功能简介 6.4 下位机程序设计 第七章 硬件 TWI 端口编程 7.1 TWI 模块概述 7.2 主控模式操作实时时钟 DS1307 7.3 两个 Mega8 间的 TWI 通信 第八章 BootLoader 功能应用 8.1 BootLoader 功能介绍 8.2 avr-libc 对 BootLoader 的支持 8.3 BootLoader 应用实例 8.4 基于 LuckyProg2004 的 BootLoader 程序 第九章 汇编语言支持 9.1 C 代码中内联汇编程序 9.2 独立的汇编语言支持 9.3 C 与汇编混合编程 第十章 C+语言支持 附录 1 avr-gcc

6、 选项 附录 2 Intel HEX 文件格式描述 6.1 编程原理 6.2 LuckyProg2004 概述 6.3 AT989S52 isp 功能简介 6.4 下位机程序设计 第七章 硬件 TWI 端口编程 7.1 TWI 模块概述 7.2 主控模式操作实时时钟 DS1307 7.3 两个 Mega8 间的 TWI 通信 第八章 BootLoader 功能应用 8.1 BootLoader 功能介绍 8.2 avr-libc 对 BootLoader 的支持 8.3 BootLoader 应用实例 8.4 基于 LuckyProg2004 的 BootLoader 程序 第九章 汇编语言支

7、持 9.1 C 代码中内联汇编程序 9.2 独立的汇编语言支持 9.3 C 与汇编混合编程 第十章 C+语言支持 附录 1 avr-gcc 选项 附录 2 Intel HEX 文件格式描述 芯芯 艺艺 作作 品品 前前 言言 2000 年在学校我第一次接触 Linux,那时在班里学习做网页的气氛较浓,我也是为了学习 PHP 才认识 Linux 的。PHP 解析器的安装过程让我多多少少对 GCC 有了些认识,不过当时我并没有意识到它还可以用于嵌入式系统编程上, 至于 Linux 、 认为用处只在于架构一个免费的 WEB 站点。 2002 年在公司我第一次接触了 AVR, 当时公司只有一个 ICC

8、 序列号,导致我和一个同事经常抢用一台机器,不过这种状况没有持续多久,我在浏览双龙的数据光盘时发现一个叫“如何使用 AVR-GCC”的 PDF 文档,上面没有署名,我想我应该感谢该文的作者。我发现这个免费的编译软件远比 ICC 好用。 今天,我把使用 AVR-GCC 两年来的体会写在这里,愿更多的人了解和使用 GCC 及自由软件。 水平有限,错误和缺陷在所难免,请广大读者批评指正。 作者:芯 艺 2004-12-13 于内蒙古包头 芯芯 艺艺 作作 品品 声明:声明: 1.内容中所有的示例均在硬件上调试通过 2.请不要编辑内容和示例程序,发现错误 和作者联系 3.所有的引用请注明出处 4.对使

9、用本软件后的一切后果,本人不负 任何责任 芯芯 艺艺 作作 品品 第一章第一章 概概 述述 1.1 AVR 单片机 GCC 开发概述 AVR 单片机 GCC 开发概述 一一 AVR 单片机介绍单片机介绍 诞生:诞生: 1997 年 ATMEL 公司挪威设计中心的 A 先生和 V 先生出于市场需求的考虑推出了全新 配置的 8 位精减指令集微处理器(RISC-Reduced Instrction Sot CPU) 。起名为。 系列和主流系列和主流: 是一种指令内核的统称,它内部又分ATtiny、AT90S和ATmega三大系列,分别对 应的低、中、高档产品。Attiny系列中常用的有Attiny1

10、5、Attiny2313等产品,AT90S 系列中常用的有AT90S2313、AT90S8535、AT90S8515等。AT90S2313引脚兼容AT89C2051, 而AT90S8515的引脚则兼容51单片机, 在设计中很容易的替代51单片机。 但是到目前, AT90S 系列的绝大部分已停产,当某一个AT90S系列芯片停产时ATMEL通常会在ATMega或ATtiny 系列中推出一个新的替代产品,替代产品往往在引脚兼容的基础上内部资源和性能得到加 强。例如Attiny2313作为AT90s2313的替代产品在AT90S2313的基础上增加了片内标定振荡 器、增强型上电复位、可编程的掉电检测等

11、等多种功能。类似的ATMega8515和ATMega8535 分别作为AT90S8515和AT90S8535的替代产品继承了很多Mega系列的特性。 ATMega48/88/168、ATMega8、ATMega16、ATMega32、ATMega64 和 ATMega128 是 ATMega 系列的主流产品。值得关注的是 ATMega8 这一款单片机,它以丰富的片内资源、 低廉的价格深受广大设计人员的喜爱,并在国内得到了较好的推广。然而 ATMega48/88/168 作为它的兼容产品,为用户提供更多功能的选择。 ATMega16 也是个用量较多的器件, 它的引脚兼容 AT90S8535, 可

12、以取代产品中的 8535 芯片。相对 ATMega8 它除了 I/O 引脚多之外内部集成了 ATMega8 两倍(16K)的 FLASH 程序存储器。 随着国内 AVR 用户的增多, ATMEL 也开始了主流器件数据手册的中文翻译工作。 从网 络上可以找到 Attiny2313、 ATMega48/88/168、 ATMega8、 ATMega16、 ATMega32、 ATMega64 等器件的官方翻译中文数据手册。这对学习和使用 AVR 器件提供了很大的帮助。 硬件结构:硬件结构: 有关 AVR 硬件结构,各功能模块的描述请参考数据手册或相关的书籍。 开发工具:开发工具: 更适合采用高级语

13、言开发是 AVR 单片机最初设计时的目的之一。 目前 AVR 单片机高级 语言发发工具主要有 IAR C、WINAVR、ICCAVR、CodeVision、BASCOM-AVR(BASIC 语 言) 。 IAR 是与 AVR 内核协同开发的, 很多对 AVR 更适合 C 语言开发方面的改进是根据 IAR 开发过程的,它也是 ATMEL 公司推荐的 C 语言编译器,但它的价格几呼让人难以接受,达 到上万元人民币。ICCAVR 是国内 AVR 主要推广单位双龙公司代理的 C 编译器,它价格低 廉,性能也 XX,友好的界面把很多烦琐的项目管理和编译设置隐藏了起来,为此它受部分 开发人员的欢迎。Cod

14、eVision 也是个很不错的 C 编译器,目前在国内也有一定数量的用户。 Winavr 是个免费的 AVR 开发程序集,它以著名的自由软件 GCC 为 C/C+编译器。下面所芯芯 艺艺 作作 品品 有章节我都会介绍如何使用 WINAVR 开发 AVR 单片机。 学习 GCC 的意义绝不仅仅是为了 开发 AVR 程序,正如 21ICBBS 上一位网友所说: “如果其它编译器是一棵树,那么 GCC 就 是个树林” ,GCC 支持多种处理器,包括 ARM、DSP、X86 等 32 位 CPU。它的历史足以说 明它是个成熟的编译器。 如果不是个业余的程序开发人员,我不会建议你使用 BASIC 编写

15、AVR 程序,因为我们 在编写与硬件密切相关的单片机程序时通常需要想象编译器是如何将这些代码翻译成汇编 程序的,而 C 更适合我们去这样做。 二二 GCC 编译器编译器 UNIX 上最原始的 C 编译器叫 CC(C Compiler C 编译器) ,源于此 GNU 的 C 编译器 叫作 GCC(GNU C Compiler) ,然而,随着 GCC 支持语言的增加 GCC 这个缩写的意义已演 变成了 GNU 编译器集合(GNU Compiler Collection),它是 GNU 项目的一个产品,是个开 放源代码软件。 GCC 可编译多种语言,目前支持的语言有 C、C+、Objective-C、Fortran、java 和 Ada。 这些高级语言程序通过编译程序前端(front-end)后产生解析树,之后与器件相关的后 端(back-end)程序将它们解释成实际的可执行指令集。前端与后端是完全分开的,解析树 是它们中间的产物。GCC 这样的设计使得任何一种语言只要通过合适的语法解析器产生符 合格式的解析树, 就可以产生 GCC 后端程序所支持的所有器件上的可执行指令集。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号