AVR 单片机与 GCC 编程
V 版
芯艺
2004-10-06
请到 http://bitfu. 下载最新版本和示例程序
问题反馈:
OICQ : 27796915
MSN : changfutong@
E-mail : changfutong@
感谢您的支持!
目录
第一章 AVR 单片机开发概述
一个简简单的例子
用 MAKEFILE 管理项目
开发环境的配置
第二章存储器操作
AVR 单片机存储器组织结构
I/O 寄存器操作
SRAM 内变量的使用
在程序中访问 FLASH 程序存储器
EEPROM 数据存储器操作
avr-gcc 段结构与再定位
第三章功能模块编程示例
中断服务程序
定时器/计数器应用
看门狗应用
UART 应用
PWM 功能编程
模拟比较器
A/D 转换模块编程
第四章使用 C 语言标准 I/O 流调试程序
avr-libc 标准 I/O 流描述
利用标准 I/0 流调试程序
第五章 AT89S52 下载编程器的制作
LuckyProg S52 概述
AT89S52 ISP 功能简介
程序设计
第六章硬件 TWI 端口编程
TWI 模块概述
主控模式操作实时时钟 DS1307
两个 Mega8 间的 TWI 通信
第七章 BootLoader 功能应用
BootLoader 功能介绍
avr-libc 对 BootLoader 的支持
BootLoader 应用实例
第八章汇编语言支持
C 代码中内联汇编程序
独立的汇编语言支持
C 与汇编混合编程
第九章 C++语言支持
结束语
附录 1 avr-gcc 选项
附录 2 ihex 格式描述
芯艺作品
第一章 AVR 单片机 GCC 程序设计
WINAVR 是一个 ATMEL AVR 系列单片机的开发工具集,它包含 GNU C 和 C++编译
器 GCC。
一个简单的例子
为了先有一个感性的认识,我们首先看一下如下一段程序和它的编译、链接过程。
文件 :
#include <avr/>
int main( void )
{
unsigned char i, j, k,led=0;
DDRB=0xff;
while (1)
{
if(led)
PORTB|=0X01;
else
PORTB&=0XFE;
led=!led;
//延时
for (i=0; i<255; i++)
for(j=0; j<255;j++)
k++;
}
}
这是一个使接在 PB0 口的 LED 发光管闪烁的程序。有了源程序文件 ,我们就
可以编译它了。通过点击菜单开始->运行在弹出的对话框中输入“ command ”,来打开控
制台窗口,并在命令行输入:
avr-gcc –mmcu=at90s2313 –c
如图 1-1 所示。
1
芯艺作品
必需告诉编译器程序的 MCU 类型,这是我们通过命令行选项-mmcu 来指定的,我们
指定的器件为 at90s2313。-c 选项告诉编译器编译完成后不链接。
图 1-1 控制台窗口
编译完成后在工作目录新生成了一个文件: ,它是我们的目标文件,我们再使
用链接器将它链接成可在器件上执行的二进制代码。
在命令行输入:
avr-gcc –mmcu=at90s2313 –O
之后我们会在工作目录看见链接器生成的 。gcc 的链接后生成的文件为 ELF 格
式, 指定其扩展名。ELF 格式文件除了包含不同存储器的二进制格
式内容外还包含一些调试信息,所以我们还要借助一个有用工具 avr-objcopy 来提取单片机
程序存储器内容。命令行输入:
AVR 单片机与 GCC 编程 来自淘豆网m.daumloan.com转载请标明出处.