二嵌入式LINUX系统的编程.doc
文本预览下载声明
二、嵌入式LINUX系统的编程
1、实验目的
熟悉UP-TECHPXA270-S下Linux的开发环境,了解GNU/make工具的工作原理。学会使用makefile管理项目,学会编写一个Makefile文件。熟悉arm-linux-gcc交叉编译的使用,了解嵌入式开发的基本过程。
2、实验内容
新建一个目录,编写几个源文件,使用makefile 管理项目。学习在linux 下的编程和编译过程,以及UP-TECHPXA270-S 开发板开发环境的设置。下载已经编译好的文件到UP-TECHPXA270-S 开发板中运行。
3、预备知识
C 语言的基础知识、程序调试的基础知识和方法,LINUX 的基本操作。
4、实验设备及工具(包括软件调试工具)
硬件:UP-TECHPXA270-S 嵌入式开发板、PC 机Pentumn500 以上, 硬盘10G 以上。
软件:PC 机操作系统REDHAT LINUX 9.0 +MINICOM + ARM-LINUX 开发环境
5、实验步骤
(1)、 建立工作目录
(2)、 编写程序源代码
(3)、 编写makefile 文件
(4)、 编译应用程序
(5)、 下载调试
(6)、 写一个简单的工程,并输出自己的姓名和学号,利用Makefile管理工程,并写出Makefile文件,进行调试。
5、实验报告要求
(1)、写清每步实验步骤的具体操作内容。
答:
①建立工作目录
mkdir 01_hello
cd 01_hello
②编写程序源代码
用vi编程在终端上打印出一个菱形.一个三角形(由*号构成)及打印一行字符 hello,my friends。
主函数文件为 start.c:
#include starfun.h
#include hello.h
#include stdio.h
int main() {
star1();
star2();
showhello();
return 0;
}
其中所包含的头文件为:hello.h,starfun.h,stdio.h
在 starfun.h 中定义了两个函数 star1(),star2()打印两个三角形:
#ifndef STARFUN_H
#define STARFUN_H
#define NUM 4
#define NUMBER 3
int star1() {
int i,j,k;
for(k=1;k=NUM;++k) {
for(i=1;i=(NUM-k);++i)
printf( );
for(j=1;j=(2*k-1);++j)
printf(*);
printf(\n);
}
return 0;
}
int star2() {
int i,j,k;
for(k=NUMBER;k=0;--k) {
for(i=1;i=(NUMBER-k+1);++i)
printf( );
for(j=1;j=(2*k-1);++j)
printf(*);
printf(\n);
}
return 0;
}
#endif
在 hello.h 中定义了一个函数 hello(),此函数中又调用了starfun()中的 star1()函数用来打印一个三角形.
#ifndef HELLO_H
#define HELLO_H
void hello() {
star1();
printf(hello,my friends\n);
}
#endif
在 hello.c 中对 hello 函数进行了调用.
void showhello() {
hello();
}
③编写 makefile 文件
makefile 命名为:amake。因为所编写的程序要在 pxa270 板上运行,因此指定了交叉编译器。
具体的编写如下:
#amake file
CC= arm-linux-gcc #指定编译器
EXEC=myprog #定义目标文件名
OBJS=star.o hello. o #为生成目标所使用的.o 文件
$(EXEC):$(OBJS) #目标与.o 文件的依赖关系
$(CC) -o $(EXE C) $(OBJS) #生成可
显示全部