您的当前位置:首页正文

ARM实验报告

来源:一二三四网
湖南科技学院ARM嵌入式设计实验报告 题目: 基于ARM嵌入式系统跑马灯的设计

专 业:电子信息工程 班 级:电信1102班 姓 名:段相辉 学 号:201106002232 指导教师:陈光辉

2014年11 月

I

目 录

摘 要 ............................................. 错误!未定义书签。 ABSTRACT .......................................... Ⅰ错误!未定义书签。 1 题目要求………………………………………………………………………………1 2 设计软件的安装………………………………………………………………………2 3 开发平台的搭建……………………………………………………………………22 4 项目设计……………………………………………………………………………23

4.1 设计思路概述……………………………………………………………………………………….2 4.1.1 设计层次介绍….………………………………………………………………………………2 4.1.2 设计模块介绍…………………..………………………………………………………………3

5总结………………………………………………………………………………………6 致 谢............................................................25 参考文献……………………………………………………………………………… 26 附录………………………………………………………………………………………27

I

引言

随着生活水平的提高和IT技术的进步,8位处理器的处理能力已经不能满足嵌入式系统的需要了;而16位处理器在性能和成本上都没有很大的突破。并且在8位机的开发中,大多使用汇编语言来编写用户程序。这使得程序的可维护性、易移植性等都受到了极大的挑战。正是基于此,ARM公司适时的推出了一系列的32位嵌入式微控制器。目前广泛使用的是ARM7和ARM9系列,ARM7TDMI内核的ARM7处理器广泛应用于工业控制、仪器仪表、汽车电子、通讯、消费电子等嵌入式设备。

II

1、题目要求

构建嵌入式Linux开发环境,熟悉linux的命令操作,并在嵌入式Linux开发环境中设计跑马灯。 2、设计软件的安装 2.1 VMware Player简介

(a) VMware Workstation是一个“虚拟机”软件.它使用户可以在一台机器上同时运行多个操作系统.

(b) VMware Player是VMware Workstation的精简版,最初只是虚拟机的“播放机”, 但最新版本的已经具有创建虚拟机的功能.具有体积小,使用灵活,免费等特点.

(c) 多个操作系统在主系统的平台上,可像Windows应用程序那样切换.而且每个操作系统都可以进行虚拟的分区、配置而不影响真实硬盘的数据.

(d) 利VMware Player创建虚拟机

1

2

3

2.4 linux系统的安装

本项目设计软件为ReHat Linux 9.0操作系统,实验开发平台为MagicARM270 具体关键安装步骤如下

4

5

3、开发平台的搭建 一、安装交叉编译器

将光盘提供的交叉编译器安装包arm-linux-3.4.1.tar.bz2复制到某个目录下,然后进行解压安装,指定安装路径为/usr/local/arm。 # tar xjvf arm-linux-3.4.1.tar.bz2 -C /usr/local/arm

注意:安装交叉编译器需要root权限,请使用root登录或者使用su命令增加root权限。

二、 设定交叉编译器路径

修改/etc/profile文件,在其中增加arm-linux-gcc的路径,然后重新登录:

# Path manipulation

6

if [ `id -u` = 0 ]; then pathmunge /sbin pathmunge /usr/sbin pathmunge /usr/local/sbin

pathmunge /usr/local/arm/3.4.1/bin 增加此行fi 三、设置宿主机网络

从RedHat Linux的Main Menu菜单,选择System SettingsNetwork,

打开网络配置界面。 三、 设置宿主机网络

双击eth0,在弹出的界面进行具体的网络设置,如IP地址、子网掩

码等信息 四、 关闭防火墙

从RedHat Linux的 Main Menu菜单,选择System SettingsSecurity

Level,打开RedHat Linux安全级别设置界面,将其安全级别设置为No Firewall。

五、 除防火墙规则

从RedHat Linux的Main Menu菜单,选择System SettingsServer

SettingsServices,在弹出的界面中,将ipchains、iptables和ip6tables前面的“√”去掉。 六、 设置NFS服务器

7

从Linux的Main Menu菜单,选择System SettingsServer Settings 

NFS Server。

七、 设置NFS服务器

点击Add按钮,弹出NFS添加界面。在相应栏分别填入共享目录以

及可以访问该共享目录的主机的IP。 八、 进行远程NFS挂载

启动MagicARM270,在串口终端界面输入命令进行NFS挂载。 [root@MagicARM270 ~]# mount –t nfs 192.168.0.94:/pxa270/nfs /mnt –o nolock

如果不出现错误,则进入/mnt目录,查看主机共享的目录和文件。 [root@MagicARM270 ~]# cd /mnt [root@MagicARM270 mnt]# ls

十、如果以上步骤都没有出现错误,能够得到正确结果,则主机交叉开发环境建立成功。如下图所示:

8

4、项目设计

4.1设计思路的概述

在开发平台上编写程序控制跑马灯的亮灭:首先是全不亮,接着

第1个灯亮,第2个灯亮,第3个灯亮,第4个灯亮,最后所有的灯一起亮,即按顺序亮,然后全亮,最后全灭,顺序循环。 4.1.1设计层次的介绍

首先利用命令mkdir建立一个文件夹,文件名paomadeng,接着建立一个目录led.c存放在paomadeng文件下,如下: Ledc.c

#define GPC0CON *((volatile unsigned long *)0xe0200060) #define GPC0DATA *((volatile unsigned long *)0xe0200064) void delay( int i) { int j;

for(i ;i > 0 ;i--)

for(j = 65536;j>0;j--);} int main(void)

{ GPC0CON |= (0x11<<12);

while(1)

{

9

GPC0DATA |= (0x01<<3); delay(10);

GPC0DATA |= (0x01<<4); delay(10);

GPC0DATA &= ~(0x01<<3); delay(10);

GPC0DATA &= ~(0x01<<4); delay(10);} return 0;}

建立一个目录为start.s存放在跑马灯文件下,如下:start.s .text

.global _start .equ NUM, 0x45 _start:

/* test asm code*/ @ test asm code mov r1, #0x34 mov r2, #0x45 add r3, r1, r2

10

ldr sp, =0x40800000 bl main

loop: b loop

建立一个目录为makefile存放在跑马灯文件下,如下: makefile

CROSS_COMPILE = arm-none-linux-gnueabi- CC = $(CROSS_COMPILE)gcc LD = $(CROSS_COMPILE)ld STRIP = $(CROSS_COMPILE)strip OBJCOPY = $(CROSS_COMPILE)objcopy OBJDUMP = $(CROSS_COMPILE)objdump TEXT_BASE = 0x40008000 TARGET = ledc OBJS = start.o ledc.o $(TARGET) : $(OBJS)

$(LD) -Ttext $(TEXT_BASE) $(OBJS) -o $(TARGET) $(OBJCOPY) -O binary $(TARGET) $(TARGET).bin $(OBJDUMP) -D $(TARGET) > $(TARGET).dis %.o : %.S

11

$(CC) -c $^ -o $@ %.o : %.c

$(CC) -c $^ -o $@ clean :

rm -rf $(OBJS) $(TARGET) *.bin *.dis *.swp *.tgz 4.1.2设计模块的介绍 如图所示:

根据可以看出本次设计有接口模块、控制模块、供电模块。

12

5、总结

通过这次设计了解ARM嵌入式的相关知识,掌握了虚拟机和Linux操作系统的安装过程,但对于初学者而言,学习嵌入式系统会碰到很多的问题,比如说对很多的专业名词不理解,对linux操作命令不熟悉,那对于本次设计会带来很多的麻烦,这些问题也反映我们的专业知识不够精,动手能力差等问题。本次设计是要求设计一个跑马灯,根据老师的分析思路和所给的资料,在linux终端用常用命令完成程序设计,直到验证结果出现。由于对操作平台不熟练,没能得到最后的设计结果,课后认真完成本次设计的实验报告。

6、参考文献

[1]周立功.ARM嵌入式系统基础教程[M]. 北京:北京航空航天大学出版社,2005.

[2]周立功.ARM微控制器基础教程与实践[M].北京:北京航空航天大学出版社,2005.

[3]杜春雷.ARM体系结构与编程[M]. 北京:北京清华大学出版社,2005. [4]马忠梅.ARM嵌入式处理器结构与应用基础[M].北京:北京航空航天大学出版社, 2003.

[5] ARM Incorporated. Embedded Software Development with ADS v1.2 [Z].2002.

[6] David Seal.ARM Architecture Reference Manual[M]. Second Edition.

[7] ARM Incorporated.ARM7TDMI Technical Reference Manual[Z].2004.

13

14

因篇幅问题不能全部显示,请点此查看更多更全内容

Top