汉语大全>嵌入式系统>如何使用AVR-GCC(一)

如何使用AVR-GCC(一)

详细内容

安装GNU C for AVR
一.执行安装程序
二.生成链接用的库文件
$(AVR)表示安装的根目录。(在本人系统里为f:avrg)
生成库文件关键是要运行位于$(AVR)下的RUN.BAT。原程序如下:
@echo off
if NOT %AVR%!==! goto install
rem set environment variables
set AVR=f:AVRG
set =avr-g
set PATH=.;f:AVRGbin;%path%
doskey
:install
if %1!==! GOTO end
rem install libc
cd f:AVRGlibavr-libc-20010701src
rem first win32_make_dirs will make some errors(I don't know why?)
make -f makefile-win32 win32_make_dirs
make -f makefile-win32
make -f makefile-win32 install
make -f makefile-win32 clean
:end
f:
cd f:AVRG
mode con: lines=43
要修改为:
@echo off
if NOT %AVR%!==! goto install
rem set environment variables
set AVR=f:AVRG
set =avr-g
rem set PATH=.;f:AVRGbin;%path%
doskey
:install
rem if %1!==! GOTO end
rem install libc
cd f:AVRGlibavr-libc-20010701src
rem first win32_make_dirs will make some errors(I don't know why?)
f:AVRGbinmake -f makefile-win32 win32_make_dirs
f:AVRGbinmake -f makefile-win32
f:AVRGbinmake -f makefile-win32 install
f:AVRGbinmake -f makefile-win32 clean
:end
f:
cd f:AVRG
mode con: lines=43
在以后的应用中,运行的是修改之前的RUN.BAT,但要去掉rem if %1!==! GOTO end 的"rem"。去掉"rem"之后,后续的语句将被跳过。因此MAKE部分的"f:AVRGbin"可加可不加。

编译和链接应用程序
首先在.avrfreaks.上下载测试程序集gtest.zip,然后安装。
1. 将GTESTINCLUDE下的MAKE1、MAKE2拷贝到$(AVR) INCLUDE
2. 将工作目录的MAKEFILE (每个工程都要有一个此文件,且可由自己进行修改以适合自己的应用。如果要利用原有文件,则注意只能有一个C文件)中的MCU、TRG、SRC、ASRC、INC、LIB等项填入合适的内容
3. 在工作目录运行位于$(AVR)BIN下的MAKE.EXE(注意:由于系统可能存在其他应用程序的MAKE,因此可能还需要加路径。也可以将其改名。)
4. 从MAKE1、MAKE2和MAKEFILE可以看出,用户可以修改诸如输出文件名等多种选项。
在C代码中嵌入汇编指令
一.G的ASM声明
首先看一个从PORTD读入数据的例子:
asm("in %0, %1" : "=r"(value) : "I"(PORTD) : );
由上可以看出嵌入汇编的4个部分:
1. 汇编指令本身,以字符串"in %0, %1"表示;
2. 由逗号分隔的输出操作数,本例为"=r"(value)
3. 由逗号分隔的输入操作数,本例为"I"(PORTD)
4. Clobber寄存器
嵌入汇编的通用格式为:
asm(code : output operand list : input operand list : clobber list);
例子中%0表示第一个操作数,%1表示第二个操作数。即: