基于arm的嵌入式linux系统

上传人:xiao****1972 文档编号:116284275 上传时间:2019-11-16 格式:PDF 页数:42 大小:1.41MB
返回 下载 相关 举报
基于arm的嵌入式linux系统_第1页
第1页 / 共42页
基于arm的嵌入式linux系统_第2页
第2页 / 共42页
基于arm的嵌入式linux系统_第3页
第3页 / 共42页
基于arm的嵌入式linux系统_第4页
第4页 / 共42页
基于arm的嵌入式linux系统_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《基于arm的嵌入式linux系统》由会员分享,可在线阅读,更多相关《基于arm的嵌入式linux系统(42页珍藏版)》请在金锄头文库上搜索。

1、 基于基于 ARM 的嵌入式的嵌入式 Linux 系统系统 实实 验验 指指 导导 书书 王王 恒恒 编编 I 目目 录录 实验一实验一 嵌入式嵌入式Linux系统的开发环境与开发过程系统的开发环境与开发过程 .1 实验二实验二 嵌入式嵌入式Linux内核的配置、编译与烧写内核的配置、编译与烧写 .6 实验三实验三 MiniGUI程序设计基础程序设计基础20 实验四实验四 嵌入式嵌入式Linux综合实验综合实验27 - 1 - 实验一实验一 嵌入式嵌入式 Linux 系统的开发环境与开发过程系统的开发环境与开发过程 一、实验目的 熟悉uClinux 开发环境, 学会基于ARM7TDMI 的uC

2、linux 开发环境的配置和使用。 使用uClinux 的arm-uclibc-gcc 编译,使用基于NFS 方式的下载调试,了解嵌入式开发的基本过程。 二、实验内容 本次实验使用Redhat linux 9.0 操作系统环境安装uCLinux 的开发库及编译器。新建一个目录, 编写hello.c 和makefile 文件。学习在linux 下的编程和编译过程,以及ARM 开发板的使用和开发 环境的设置。下载已经编译好的文件到嵌入式控制器中运行。 三、预备知识 C 语言的基础知识、程序调试的基础知识和方法,LINUX 的基本操作。 四、实验设备及工具(包括软件调试工具) 硬件:ARM 嵌入式开

3、发板、PC 机Pentumn500 以上, 硬盘10G 以上。 软件:PC 机操作系统redhat linux 9.0 uclinux 开发环境 五、实验原理 在windows 平台下我们进行串口操作是通过超级终端,在Linux 平台下我们则通过minicom。 minicom是Linux 自带的一个串口通讯工具。 运行minicom之前我们要做相应配置。 其基本步骤如下。 1)在linux 平台的X Window 界面下建立一个终端(右键点击屏幕新建终端), 在终端的命令行提示符后键入minicom,回车,你就会看到minicom 的启动画面(见图1-1)。 若没有启动X Window 则在

4、命令行提示符后直接键入minicom。minicom 的配置文件是 /etc/minirc.df1 中。 如果键入minicom后出不来如图示配置画面, 可键入minicom s 直接进行minicom 配置。 图1-1 minicom 2)minicom 启动后,先按CtrlA 键,再按Z 键(注意不是连续按,Ctrl+A 松开后才按Z), 进入配置界面(见图1-2)。按”O”进入配置界面(见图1-3),按上下键选择Serial port setup,进入 端口设置界面,这里有几个重要选项改为如下值(见图1-4):(在Change which setting 后按哪个 字母就进入哪项的配置,

5、如按A 进行端口号配置。) ASerial Device :/dev/ttyS0 (端口号使用串口1) EBPS/par/bits :/115200 8N1 (波特率)F,E 硬件流,软件流都改为NO 若要使用PC 机的串口2 来接板子的串口1 做监控,改为:/dev/ttyS1 即可。 3)选好后按ESC 键退出到图1-3所示画面,选择Save setup as df1 保存退出,以后只要启动minicom 就是该配置,无需再做改动。 - 2 - 图1-2 图1-3 - 3 - 图1-4 minicom 配置好后目标板与宿主机之间就可进行通讯了,我们要做的只是连接好各种线路。其 无非就是电源

6、和串口线。根据我们对minicom 的配置,我们应把串口线连在COM1 上。如果不知道 目标板上哪个是COM1,可以分别插上试试哪个通哪个就是了。建立好连接后,此后超级终端显示 的信息就是目标板上的信息。在超级终端上的操作就是对目标板的操作。超级终端相当于目标板的 显示器。 五、实验步骤 1 建立工作目录 mkdir hello cd hello 2 编写程序源代码 在LINUX 下的文本编辑器有许多,常用的是vim, Xwindow 界面下的gedit 等,我们在开发过 程中推荐使用vim。关于vim 的操作指南。 Kdevelope、anjuta 软件的界面与vc6.0 类似,使用它对 于

7、熟悉windows 操作习惯的用户更容易。 实际的源代码较简单,如下: include main() printf(“hello world n”); - 4 - - 5 - 3 编写Makefile CC=arm-uclibc-gcc EXEC = hello OBJS = hello.o CFLAGS += LDFLAGS+=-elf2flt static all: $(EXEC) $(EXEC): $(OBJS) $(CC) $(LDFLAGS) -o $ $(OBJS) clean: -rm -f $(EXEC) *.elf *.gdb *.o 这个makefile 显示了几个主要的部

8、分: CC 指明编译器的宏。 EXEC 表示生成的执行文件名称的宏。 OBJS 目标文件列表宏。 CFLAGS 编译参数宏。 LDFLAGS 连接参数宏。 all: 编译主入口。 clean:清除编译结果节。 4 编译应用程序 在hello 目录下运行make ,如果进行了修改,重新编译则运行: make clean make 注意编译、修改程序都是在开发计算机上进行,不要在MINICOM 的终端方式下进行。 5 下载调试 在宿主PC 计算机上启动NFS 服务,并设置好共享的目录,之后在开发板上运行: mount -t nfs 192.168.0.121:/uclinux /host (实际I

9、P 地址要根据实际情况修改。) 挂接宿主机的根目录。成功之后在开发板上进入/host 目录便相应进入宿主机的/uclinux 目录, 再进入开发程序目录运行刚刚编译好的hello 程序,查看运行结果。 开发板挂接宿主计算机目录只需要挂接一次便可, 只要开发板没有重起, 就可以一直保持连接。 这样可以反复修改、编译、调试,不需要下载到开发板的过程。 六、思考题 1Makefile文件的主要规则有哪些? 2嵌入式系统的开发采用nfs方式有什么好处? - 6 - 实验二实验二 嵌入式嵌入式 Linux 内核的配置、编译与烧写内核的配置、编译与烧写 一、实验目的 1掌握嵌入式Linux内核的配置。 2

10、掌握嵌入式Linux内核的编译过程。 3掌握Linux 内核及根文件系统在开发板上的烧写过程。 二、实验内容 1配置嵌入式Linux内核。 2编译嵌入式Linux内核 3配置Linux 的minicom。 4烧写uCLinux 的内核映像文件。 5烧写uCLinux 根文件系统映像文件。 三、预备知识 1掌握在uCLinux 集成开发环境中编写和调试程序的基本过程。 2熟悉Linux 操作系统的基本使用方法。 四、实验设备及工具 硬件: NET-ARM3000 嵌入式实验仪, PC 机pentumn500 以上, 硬盘40G 以上,内存大于128M。 软件:PC 机操作系统redhat lin

11、ux 9.0 minicom+uClinux 开发环境 五、实验原理 (一) Linux内核配置说明 Linux 内核的裁剪与编译看上去是个挺简单的过程.只是对配置菜单的简单选择.但是内核配置 菜单本身结构庞大,内容复杂.具体如何选择却难住了不少人.因此熟悉与了解该菜单的各项具体含义 就显得比较重要.我们现在就对其作一些必要介绍: Linux 内核的编译菜单有如下几个版本: 1)make config:进入命令行,可以一行一行的配置,这不好使用所以我们不具体介绍. 2)make menuconfig:进入我们熟悉的menuconfig 菜单,相信很多人对此都不陌生. 3)make xconfi

12、g:在2.4.X 以及以前版本中xconfig 菜单是基于TCL/TK 的图形库的。 所有内核配置菜单都是通过Config.in 经由不同脚本解释器产生。 config.而目前刚刚推出的2.6.X 内核用QT 图形库,由KConfig 经由脚本解释器产生。这两版本差别比较大。这里以2.4.X 版本为 基础介绍相关裁剪内容。 图2-1 2.4.X 版本xconfig 配置菜单 图2-2 2.4.X 版本menuconfig 配置菜单 - 7 - - 8 - 在选择相应的配置时,有三种选择方式,它们分别代表的含义如下: Y-将该功能编译进内核 N-不将该功能编译进内核 M-将该功能编译成可以在需要

13、时动态插入到内核中的模块 如果使用的是make xconfig,那使用鼠标就可以选择对应的选项。这里使用的是 makemenuconfig,所以需要使用空格键进行选取。在每一个选项前都有一个括号, 有的是中括号有 的是尖括号,还有圆括号。用空格键选择时可以发现,中括号里要么是空,要么是“*“,而尖括号里 可以是空,“*“和“M“这表示前者对应的项要么不要,要么编译到内核里;后者则多一样选择,可以 编译成模块。而圆括号的内容是要你在所提供的几个选项中选择一项。 (注:其中有不少选项是目标板开发人员加的,对于陌生选项,自己不知道该选什么时建议使用默认值) 下面我们来看看具体配置菜单,进入内核所在目

14、录,键入make menuconfig 你就会看到配置菜单 具有如下一些项: 1、Code maturity level options 代码成熟度选项,它又有子项: 1.1、prompt for development and/or incomplete code/drivers 该选项是对那些还在测试阶段的代码,驱动模块等的支持.一般应该选这个选项,除非你只是想使用 LINUX 中已经完全稳定的东西.但这样有时对系统性能影响挺大. 1.2、prompt for obsolete code/drivers 该项用于对那些已经老旧的,被现有文件替代了的驱动,代码的支持,可以不选,除非你的机器配

15、置比 较旧.但那也会有不少问题.所以该项以基本不用,在新的版本中已被替换. 2、loadable module support 动态加载模块支持选项,其子项有: 2.1、 enable module support 支持模块加载功能,应该选上. 2.2 set version information on all module symbols 该项用来支持跨内核版本的模块支持.即为某个版本的内核编译的模块可以在另一个版本的内核下 使用,我们一般用不上。所以不选. 2.3 kernel module loader 如果你启用这个选项,你可以通过kerneld 程序的帮助在需要的时候自动载入或卸载

16、那些可载入式 的模块。我们一般会选上. 3、 system type 系统类型,主要是CPU 类型, 在UP-NETARM300/3000 平台上在该项上看到的是s3c44b0 的ARM 系列CPU. 其它选项是关于该芯片及平台的一些结构定义.其他版本内核遇到的不会是这种情况,但一般包含 processor family 选项,它让我们选择CPU 的类型,BIOS 可以自检到,留意一下你的系统的启动信 息。选上正确的CPU 类型就行. 4、General setup 4.1、support hot-plugable devieces 对可热拔插的设备的支持,看情况选择.若要对U 盘等USB 设备进行控制,建议选上. 下面分别是 4.2、Networking: support 网络支持,用到网络设备当然要选上. 4.3、System V IPC:支持systemV 的进程间通讯,选上吧. 4.4、sysctl support: 该项支持在不重启情况下直接改变内核的参数.启用该选项后内核大约会增大8K

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号