嵌入式系统开发基础.doc_第1页
嵌入式系统开发基础.doc_第2页
嵌入式系统开发基础.doc_第3页
嵌入式系统开发基础.doc_第4页
嵌入式系统开发基础.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

青岛理工大学琴岛学院计算机系实验教材 Linux嵌入式系统实验指导书青岛理工大学琴岛学院计算机科学系二0一0年四月2前 言随着后PC时代的到来,嵌入式系统技术已经成为了一个万众瞩目的焦点。目前已广泛应用于信息家电、数据网络、工业控制、医疗卫生、航空航天等众多领域。巨大的市场潜力,无穷的商机,吸引了各路英豪纷踵沓来。硬件方面,各大电子厂商相继推出了自己的专用嵌入式芯片,漫天而至的是mp3,PDA,无线上网装置,让人们充分感受到了这股强劲之势;软件方面,在Vxworks、pSOS、Neculeus和Windows CE等嵌入式操作系统引领下,也出现了空前繁荣的局面,但这些专用操作系统都是商业化产品,其高昂的价格使许多面向低端产品的小公司望而却步,并且其源代码的封闭性也大大限制了开发者的积极性。近两年在我国登陆并蓬勃发展的Linux,也已广泛应用于各类计算应用,不仅包括IBM的微型Linux腕表、手持设备(PDA和蜂窝电话)、因特网装置、客户机、防火墙、工业机器人和电话基础设施设备,甚至还包括了基于集群的超级计算机。Linux在高端服务器的优越表现及其天生具有的突出特点,就注定它必将在低端嵌入式系统中再次给人们以惊喜,而基于嵌入式Linux操作系统的应用,必定给我们未来的工作和生活带来翻天覆地的变化。Linux价格低廉、功能强大,可以运行在X86,Alpha,Sparc,MIPS,PPC,MOTOROLA,NEC,ARM等硬件平台上,而且开放源代码,可以定制。我们所介绍的硬件平台是基于ARM体系结构,由北京博创兴业科技有限公司开发的UP-CUP 3000 平台、UP-CUP 2410-S 平台系列以及UP-CUP P270A 平台系列实验仪器。UP-CUP 3000 平台的CPU为ARM7TDMI内核的三星S3C44B0X01芯片,由于没有MMU(内存管理单元)只能运行uClinux,UP-CUP 2410-S 平台系列的CPU为ARM920T内核的三星S3C2410芯片,由于有MMU可以运行标准的ARM-LINUX内核。UP-CUP P270 平台系列实验仪器为Intel XSCALE ARM10系列CPU。通过这些硬件平台,我们可以学习嵌入式LINUX中的针对有MMU和无MMU的不同开发过程。UP-CUP 3000 平台和UP-CUP P270 平台系列产品及其相关资料可以访问博创公司的网站获得。本书以S3C2410系列中的UP-CUP S2410 经典平台为例,详细介绍嵌入式 Linux的开发过程。指导书参考与引用了许多相关资料,在此一并致谢。本指导书仅供内部学生学习使用。由于时间仓促,编者水平有限,书中疏漏之处在所难免,欢迎读者批评指正,并提出宝贵意见和建议,以便不断改进。编 者 江艳飞二0一一年四月11目录第一章 嵌入式Linux开发平台简介3第二章 基础实验5实验一 实验系统熟悉与使用(一)5实验二 实验系统熟悉与使用(二)8第一章 嵌入式Linux开发平台简介1.1 UP-CUP S2410 经典平台介绍硬件配置 (本实验指导书是对S2410的说明)UP-CUP S2410 经典平台的硬件配置如表1.2.1所示,实物如图1.2.1所示:配置名称型号说明CPUARM920T结构芯片三星S3C2410X工作频率203MHzFLASHSAMSUNG K9F120864M NANDSDRAMHY57V561620ATH32M2=64MEtherNet网卡DM9000AE10/100M自适应LCDLQ080V3DG018寸16bit TFT触摸屏SX-080-W4R-FBFM7843驱动USB 接口4个HOST /1个DEVICE 由AT43301构成USB HUBUART/IrDA2个RS232,1个RS485,1个IrDA AD由S3C2410芯片引出3个电位器控制输入AUDIOIIS总线,UDA1341芯片 44.1KHz音频扩展卡插槽168Pin EXPORT总线直接扩展GPS_GPRS扩展板SIMCOM SIM300 GPRS模块,TrimbleS GPS 支持双道语音通信IDE/CF卡插座 笔记本硬盘,CF卡 PS2 PC键盘和鼠标 由ATMEGA8单片机控制IC卡座 AT24CXX系列 由ATMEGA8单片机控制LED8x8矩阵LED及2个LED数码管由总线控制VGAVga输出中断键1个ENT控制LED由3个IO口控制DC电机由PWM控制 闭环测速功能CAN BUS 由 MCP2510和TJA1050构成Double DA MAX504 一个10位DAC端口调试接口板载JTAG,直接支持下载与仿真25针表1.1.1 UP-CUP S2410 经典平台的硬件配置图1.1.1 UP-CUP S2410 经典平台第二章 基础实验实验一 实验系统熟悉与使用(一)一、实验目的熟悉Linux开发环境,学会基于嵌入式Linux开发环境的配置和使用。使用Linux的armv4l-unknown-linux-gcc编译,使用基于NFS方式的调试、运行。二、实验内容本次实验使用Redhat Linux 9.0操作系统环境,学习在Linux下的程序编译调试过程,以及ARM开发板的使用和开发环境的设置。下载已经编译好的文件到目标开发板上运行。三、预备知识C语言的基础知识、程序调试的基础知识和方法,Linux的基本操作。四、实验设备及工具(包括软件调试工具)硬件:UP-TECH S2410/P270 DVP嵌入式实验平台、PC机Pentium 500以上, 硬盘10G以上。软件:PC机操作系统REDHAT LINUX 9.0XshellARM-LINUX开发环境五、实验步骤1、进入例程工作目录rootBC root# cd /rootBC /# cd /arm2410cl/exp/basic/01_hellorootBC 01_hello# lsrootBC 01_hello# make cleanrootBC 01_hello# make 2、编译应用程序进入工作目录后,我们就可以在01_hello目录下运行“make”来编译我们的程序了。 rootBC hello# make如果进行了修改,重新编译则运行:rootBC hello# make clean注意:编译、修改程序都是在宿主机(linux虚拟机)上进行,不能在目标机(ARM开发板)下进行。3、下载调试在宿主PC计算机上启动NFS服务,并设置好共享的目录/01_hello,具体设置方法见附文。在建立好NFS共享目录以后,我们就可以建立Xshell与ARM开发板的通讯,通过Xshell对ARM开发板进行访问操作。进入Xshell arm窗口,启动ARM开发板,配置ARM开发部IP :3,使其与linux虚拟机IP:2在同一网段。通过mount命令挂载linux虚拟机01_hello文件。/mnt/yaffsifconfig eth0 3/mnt/yaffs mount -t nfs -o nolock 2:/arm2410cl/exp/basic/01_hello /host 注意: IP地址需要根据宿主机(linux虚拟机)的实际情况修改,成功挂接宿主机的/01_hello目录后,在开发板上进入/host目录便相应进入宿主机的/01_hello目录再进入/host目录运行刚刚编译好的hello程序,查看运行结果。/mnt/yaffs cd /host/hostlsMakefile hello hello.c hello.o/host ./hellohello world注意:开发板挂接宿主计算机目录只需要挂接一次便可,只要开发板没有重起,就可以一直保持连接。这样可以反复修改、编译、调试,不需要下载到开发板。附:NFS服务配置实现宿主机(linux虚拟机)与目标机(ARM开发板)之间的通信。将虚拟机中的文件共享给ARM开发板。1. 确保XP、linux虚拟机、ARM开发板三者的IP地址在同一网段,并且不冲突,能够互相ping通。2. 在虚拟机中配置NFS:“系统设置”“服务器设置”“NFS”,点击“添加”图标(1)目录:/home/uptech(注意:选择要共享给ARM开发板的目录)(2)目录主机:*(3)权限:读/写(4)常规选项中选中“允许来自高于1024的端口的连接”和“按要求同步写操作”(5)用户访问中选中“把远程根用户当作本地根用户”3. 在Linux虚拟机中输入命令“route del default”,取消虚拟机的默认路由。4. 在ARM开发板上操作如下:(1)ifconfig eth0 3(配置ARM开发板的IP地址)(2)mount o nolock,rsize=4096,wsize=4096 2:/home/uptech /mnt/nfs (将linux虚拟机 /home/uptech 目录挂载到ARM开发板的/mnt/nfs目录下)(3)cd /mnt/nfs(即可访问Linux共享的文件夹)说明:要保证nfs服务开启。六、思考题1Makefile是如何工作的?其中的宏定义分别是什么意思?实验二 实验系统熟悉与使用(二)一、实验目的熟悉Linux开发环境,学会基于嵌入式Linux开发环境的配置和使用。使用Linux的armv4l-unknown-linux-gcc编译,使用基于NFS方式的调试、运行,了解嵌入式开发的基本过程。二、实验内容本次实验使用Redhat Linux 9.0操作系统环境,创建一个新目录,并在其中使用vi编辑器编写hello.c和Makefile文件。下载已经编译好的文件到目标开发板上运行。三、预备知识C语言的基础知识、程序调试的基础知识和方法,Linux的基本操作。四、实验设备及工具(包括软件调试工具)硬件:UP-TECH S2410/P270 DVP嵌入式实验平台、PC机Pentium 500以上, 硬盘10G以上。软件:PC机操作系统REDHAT LINUX 9.0XshellARM-LINUX开发环境五、实验步骤1、建立工作目录rootBC root# cd /rootBC /# mkdir hellorootBC /# cd hellorootBC hello#2、编写程序源代码在Linux下的文本编辑器有许多,常用的是vim和Xwindow界面下的gedit等,我们在开发过程中推荐使用vim,用户需要学习vim的操作方法,请参考相关书籍中的关于vim的操作指南。实际的hello.c源代码较简单,如下:include main()printf(“hello world n”);我们可以是用下面的命令来编写hello.c的源代码,进入hello目录使用vi命令来编辑代码:rootBC hello# vi hello.c按“i”或者“a”进入编辑模式,将上面的代码录入进去,完成后按Esc键进入命令状态,再用命令“:wq”保存并退出。这样我们便在当前目录下建立了一个名为hello.c的文件。3、编写Makefile要使上面的hello.c程序能够运行,我们必须要编写一个Makefile文件,Makefile文件定义了一系列的规则,它指明了哪些文件需要编译,哪些文件需要先编译,哪些文件需要重新编译等等更为复杂的命令。使用它带来的好处就是自动编译,你只需要敲一个“make”命令整个工程就可以实现自动编译,当然我们本次实验只有一个文件,它还不能体现出使用Makefile的优越性,但当工程比较大文件比较多时,不使用Makefile几乎是不可能的。下面我们介绍本次实验用到的Makefile文件。CC= armv4l-unknown-linux-gccLDFLAGS += -staticEXTRA_LIBS +=EXP_INSTALL = install -m 755INSTALL_DIR = ./bin EXEC = $(INSTALL_DIR)/hello ./helloOBJS = hello.o all: $(EXEC)$(EXEC): $(OBJS) $(CC) $(LDFLAGS) -o $ $(OBJS) install: $(EXP_INSTALL) $(EXEC) $(INSTALL_DIR) clean: -rm -f $(EXEC) *.elf *.gdb *.o下面我们来简单介绍这个Makefile文件的几个主要部分:l CC 指明编译器l EXEC 表示编译后生成的执行文件名称l OBJS 目标文件列表l EXTRA_LIBS 编译参数l LDFLAGS 连接参数l all: 编译主入口l clean: 清除编译结果注意:“$(CC) $(LDFLAGS) -o $ $(OBJS)和$(EXP_INSTALL) $(EXEC) $(INSTALL_DIR)和-rm -f $(EXEC) *.elf *.gdb *.o”前空白由一个Tab制表符生成,不能单纯由空格来代替。与上面编写hello.c的过程类似,用vi来创建一个Makefile文件并将代码录入其中 rootBC hello# vi Makefile4、编译应用程序在上面的步骤完成后,我们就可以在hello目录下运行“make”来编译我们的程序了。 rootBC hello# make如果进行了修改,重新编译则运行:rootBC hello# make clean注意:编译、修改程序都是在宿主机(linux虚拟机)上进行,不能在目标机(ARM开发板)下进行。5、下载调试在宿主PC计算机上启动NFS服务,并设置好共享的目录/hello。在建立好NFS共享目录以后,我们就可以建立Xshell与ARM开发板的通讯,通过Xshell对ARM开发板进行访问操作。进入Xshell arm窗口,启动ARM开发板,配置ARM开发部IP :3,使其与linux虚拟机IP:2在同一网段。通过mount命令挂载linux虚拟机hello文件/mnt/yaffsifconfig eth0 3/mnt/yaffs

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论