学而实习之 不亦乐乎

Linux 下 AVR 开发环境的搭建

2023-11-29 22:05:46

本文将简单描述在Debian Linux下搭建AVR8位单片机开发环境的过程,采用CDK4VAR(AVR Cross Development Kit)免费开发工具。我们可以从http://cdk4avr.sourceforge.net/上得到所有关于CDK4AVR的资料。因为我的系统是Debian,所以,我下载的所有安装包均是.deb的安装包格式;安装命令类似于:dpkg -i XXXX.deb。在整个安装过程中cdk4avr会安装在/opt/cdk4avr/路径下。

一、安装

1、cdk-avr-base

在安装cdk-avr-base的过程中,会自动运行脚本来设置cdk4avr的环境变量;在我的电脑上并没有生效,我们可以手动设置也很简单,设置方法如下:在~/.bashrc文件中加入

. /opt/cdk4avr/etc/profile.d/cdk4avr.sh重启系统后,就会自动设置环境变量。

2、cdk-avr-binutils

cdk-avr-binutils中包含的工具常用来操作二进制目标文件。该包中最重要的两个工具就是GNU汇编器as和连接器ld。

3、cdk-avr-gcc

GNU编译器工具集,包括C和C++的编译器。

4、cdk-avr-libc

cdk-avr-libc是AVR 8-bits单片机的C语言标准库。

5、cdk-avr-gdb

GNU Debugger 调试工具。

6、cdk-avr-simulavr

AVR 8-bits单片机模拟器。

7、cdk-avr-avrdude

AVR 8-bits单片机片上memory下载/读取软件。可以用于Flash和eeprom的编程,也可以用于设定fuse和lock位。

8、cdk-avr-uisp

功能和cdk-avr-avrdude软件一样。

9、cdk-avr-avarice

cdk-avr-avarice是JTAG和GDB的连接软件,可用于JTAG仿真AVR单片机。

到此,我们整个AVR单片机的开发环境差不多都搭建好了,我们可以编译一个简单的AVR程序了。

二、编译程序

/*
 **********************************************************************************
 * 这是一个简单完整的示例
 * 功能:发光二极管闪烁
 * ledAVR.c
 *********************************************************************************/

#include <avr/io.h>

int main(void){
    unsigned char i, j, k, led=0;
    DDRB = 0x01;

    while (1) {
        if (led)
            PORTB |= 0x01;
        else
            PORTB |= 0xFE;

        led = !led;

        for (i=0; i<255; i++)
         {
            for (j=0; j<255; j++)
                k++;
         }
    }
}

# avr-gcc -mmcu atmega8 ledAVR.c -o ledAVR.o

可以正常生成ledAVR.o文件了。