linux系统小灯项目报告,嵌入式实验报告流水灯.doc

LED流水灯

一、【实验目的】

1、掌握基本的ARM中C语言编程方法. 深入理解ARM开发环境的体系结构。

2、演示程序的效果,并对程序结果进行分析。

3、熟悉并掌握windows平台下的嵌入式开发的基本步骤和原理,并对嵌入式系统有更深入的了解。

二、【实验步骤】

一、打开Virtual Machine虚拟机软件,在打开的软件中打开存在的虚拟机或分组,并在E盘中找到ubuntu系统打开。

二、安装交叉编译器

1、将cross-4.2.2-eabi.tar.bz2文件拷贝到Ubuntu的/forlinux目录下。在Uuntu中新建一个终 端,输入下面的命令安装交叉编译器:

#cd /forlinux (进入/forlinux目录)

#mkfir /usr/local/arm (创建目录,若目录存在会提示错误,跳过即可)

#tar jxvf cross-4.2.2-eabi.tar.bz2 -C /usr/local/arm (编译器解压到/usr/local/arm)

2、完成解压后将在/usr/local/arm目录下生成“4.2.2-eabi”目录。

三、挂载NFS文件系统目录

1、启动nfs服务之前,必须在Ubuntu上准备好NFS共享目录。

例如我们采用Ubuntu的“/forlinux/root”作为NFS共享目录,就需要将“FORLINX_6410_yaffs2_v1.0.tgz”压缩文件拷贝到这个目录下,然后解压缩,得到根文件系统所需要的目录。

2、在Ubuntu上打开一个终端,输入以下命令:#mkdir /forlinux/root

3、将FORLINX_6410_yaffs2_v1.0.tgz文件拷贝到该目录下,

4、解压命令:#tar -zxf FORLINX_6410_yaffs2_v1.0.tgz

四、启动超级终端

1、启动开始—附件—通讯—超级终端。

2、在超级终端弹出的连接描述中输入111作为名称,接着选择第一个电话图案,接着点击确定。

3、在弹出的COM1属性窗口中选择每秒位数为115200,数据位为8,奇偶校验为无,,停止位为1,数据流控制为无,然后点击确定。如下图所示

4、完成配置后,用串口线连接开发板的COM1,接着在打开开发板的电源时立刻不断敲键盘的空格键。这时,超级终端里面完成一些配置后停住,我们在 SMDK6410 #setenv bootargs "root=/dev/nfs nfsroot=172.43.24.140:/forlinux/root ip=172.43.24.141:172.43.24.140:172.43.24.0:255.255.255.0::eth0: console=ttySAC0,

115200".

5、保存 SMDK6410 # saveenv

6、重新启动开发板,Linux内核启动后会自动挂载NFS文件系统。

LED驱动

1、编写LED驱动程序myled.c

2、编写Makefile

3、编写应用程序myled_app.c

4、在Ubuntu的forlinux目录下新建一个led目录把上面编写的3个文件拷贝到led目录下,在led目录下输入make编译myled.c生成myled.ko。

5、用交叉编译工具链编译应用程序myled_app.c,在nfs的共享目录/forlinux/root新建myled目录,并把myled_app,myled.ko拷贝到led目录下

6、开发板上电,进入myled目录,加载myled模块使用insmod,最后输入./app number 运行程序,观察led的变化。

三、【Makefile文件分析】

obj-m := myled.o //目标文件:myled.o

KDIR := /linux2.6.28 //内核路径

all:

make -C $(KDIR) M=$(PWD) modules //在内核路径KDIR := /linux2.6.28下生成myled.o

clean:

rm -f *.ko *.o *.mod.o *.mod.c *.symvers *.order//删除这些后缀的文件

四、【驱动程序分析】

1、

static int __init Led_init(void)

{

int ret;

/* 实现地址映射*/

Clock_Address=ioremap(SEG_LED, 1);

Led_Address=ioremap(LED_DATE, 1);

Gpkcon_Address=ioremap(GPKCON0, 1

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值