南 京 理 工 大 学
嵌入式系统实验报告
指导老师:
姓名: 学院(系): 班级:
学 号:
实验日期: 2016年1月
实验一:熟悉Linux 开发环境
一、实验目的
熟悉Linux开发环境,学会基于S3C2410的Linux开发环境的配置和使用。使用Linux的armv4l-unknown-linux-gcc编译,使用基于NFS方式的下载调试,了解嵌入式开发的基本过程。
二、实验仪器
硬件:UP-NETARM2410-S嵌入式实验平台、PC机。
软件:PC机操作系统REDHAT LINUX 9.0+MINICOM+ARM-LINUX开发环境
三、实验内容
本次实验使用Redhat Linux 9.0操作系统环境,安装ARM-Linux的开发库及编译器。创建一个新目录,并在其中编写hello文件。学习在Linux下的编程和编译过程,以及ARM开发板的使用和开发环境的设置。下载已经编译好的文件到目标开发板上运行。
四、实验步骤
1、建立工作目录
[root@zxt smile]# mkdir hello [root@zxt smile]# cd hello
2、编写程序源代码
实际的hello.c源代码较简单,如下:
#include
printf(“hello world \\n”); }
用下面的命令来编写“hello.c”的源代码,进入hello目录使用vi命令来编辑代码:[root@zxt
hello]# vi hello.c
按“i”或者“a”进入编辑模式,录入上面的代码,完成后按Esc键进入命令状态,再用命令“:wq ”,保存并退出。这样在当前目录下建立了一个名为“hello.c”的文件。 3、编译链接
要使上面的“hello.c”程序能够运行,将其经过编译和连接,生成可执行文件。输入 gcc hello.c -o hello 进行编译,再输入 ./hello 运行程序,观察结果1。
4、在之前的基础上,进入hello文件,输入armv4l-unknown-linux-gcc hello.c -o hello 和 cp hello /arm2410s 进行交叉编译,输入 ifconfig eth0 192.168.0.121设置IP;输入telnet 192.168.0.115登入开发板,输入root开始进行挂载:mount -o nolock 192.168.0.121:/arm2410s /mnt ;再通过cd mnt找到hello文件,最后输入./hello 运行程序,观察结果2。
五、实验结果
观察实验结果1,屏幕上显示hello world 截图如图1所示:
图 1 运行程序观察结果的输出
六、思考题
1.请简述Makefile的作用,分析其工作机理与流程?
makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。
makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率
2. 试简述如何编写和编译可以在目标板上运行的可执行程序?
嵌入式开发是在windows下装虚拟机,虚拟机里装Linux,然后再与板子连,可以利用SMB在linux下创建文件,在windows下编辑,然后再在虚拟机里用交叉编译器编译代码生成可执行文件,可执行文件可以通过NFS方式运行,也可以做文件系统烧到板子上
实验二:多线程应用程序设计
一、实验目的
了解多线程程序设计的基本原理以及学习pthread库函数的使用。
二、实验仪器
硬件:UP-NETARM2410-S 嵌入式实验平台,PC机。
软件:PC机操作系统REDHAT LINUX 9.0+MINICOM+ARM-LINUX开发环境。
三、实验内容
熟悉几个重要的PTHREAD库函数的使用,掌握共享锁和信号量的使用方法。
进入/arm2410s/exp/basic/02_pthread目录,运行make产生pthread程序,使用NFS方式连接开发主机进行运行实验。
四、实验步骤
1、编写并编译简单的多线程示例程序 2、阅读源代及编译应用程序
进入exp/basic/02_pthread目录,使用vi编辑器或其他编辑器阅读理解源代码。运行make产生pthread 可执行文件。 3、下载和调试
切换到minicom终端窗口,使用NFS mount 开发主机的/arm2410s 到/host 目录。 进入/host/exp/basic/pthread目录,运行pthread,观察运行结果的正确性。
五、实验结果
实验结果如图2.1所示
3