20145221高其&20145326蔡馨熠《信息安全系统设计基础》实验二 固件设计
实验目的与要求
了解多线程程序设计的基本原理,学习 pthread 库函数的使用。
了解在 linux 环境下串行程序设计的基本方法。
掌握终端的主要属性及设置方法,熟悉终端I /O 函数的使用。学习使用多线程来完成串口的收发处理。
熟悉linux开发环境,学会基于S3C2410的linux开发环境的配置和使用。使用linux的armv4l-unknown-linux-gcc编译,使用基于NFS方式的下载调试,了解嵌入式开发的基本过程
实验过程
开发环境的配置
1、连接arm开发板
将arm开发板电源线接好,保持开发板开关处于闭合状态。再分别将串口线、并口线和网线与pc机连接好。
2、建立超级终端
运行windows XP系统下“开始”、“所有程序”、“附件”、“通讯”、“超级终端”。
新建一个通信终端,取名为arm。在属性对话框中,将波特率设为115200,数据位设为8,无奇偶校验,停止位为1,无数据流控制。
3、启动实验平台
打开超级终端,打开arm机电源开关。等待一分钟,arm机的信息会显示在超级终端的窗口中。
继续等待,输入ifconfig命令,记录下arm机的ip。
记录下 arm 机的 ip 为:192.168.0.121
4、修改xp系统与redhat虚拟机的ip,使得它们均与arm机的ip在同一网段。修改完IP,重启一下虚拟机,IP才能启作用。重启后在命令行中使用ifconfig确认修改正确
本次实验中将pc机的ip设为192.168.0.55
,redhat虚拟机ip为192.168.0.234.
5、安装arm编译器。在pc机中“开始”、“运行”,输入虚拟机的ip,输入用户名bc,密码123456然后确定 就可以访问虚拟机的文件了。然后把所需文件解压缩拷贝到共享文件夹bc中。
进入虚拟机,在命令行中输入./install.sh,安装脚本程序将会自动建立目录,配置编译环境。
6、配置环境变量在虚拟机中使用vi修改/root/.bashprofile文件中的PATH变量为PATH=$PATH:$HOME/bin:/opt/host/armv4l/bin/ (因为该文件为隐藏系统文件,所以使用ls命令不可见),存盘后执行:source/root/.bashprofile,则以后armv4l-unknown-linux-gcc 会自动搜索到,可以在终端上输入。
验证实验代码
1.将实验代码拷贝到共享文件夹bc中。
2、在虚拟机中编译代码。对于多线程相关的代码,编译时需要加-lpthread的库
下载调试在超级终端中运行可执行文件pthread! 运行可执行文件term!
遇到的问题及解决方法
- 问题1:在超级终端运行可执行文件
term
时出错,提示/dev/ttyS0: No such file or directory。
- 解决方法:老师给的实验指导书中说:这个问题是因为在Linux下串口文件位于
/dev
下,一般在老版本的内核中串口一为/dev/ttyS0
,串口二为/dev/ttyS1
, 在我们的开发板中串口设备位于/dev/tts/
下,因为开发板中没有ttyS0这个设备,所以我们要建立一个连接。解决方法就是按照实验指导书说的在超级终端中进入/dev
文件夹中,输入命令ln –sf /dev/tts/0 ttyS0
(注意空格与字母l、数字0。)
心得体会
实验二是在实验一的基础上进行的,只要实验一中把环境配好,实验二很轻松就能完成。我们就跟着娄老师给的教程一步一步走,也没有遇到什么大问题。要说收获的话,就是我们在本次实验学到了在命令中加入-lpthread的用法,因为本次实验的两个代码是与多线程相关的代码,所以编译时需要加-lpthread 的库。这次用到的两个代码明显比我们第一次实验的hello.c复杂很多,包含的知识点也很多,需要我们多花时间去理解和体会~