北京电子科技学院(BESTI)
实 验 报 告
课程:信息安全系统设计基础
班级:1352
学号:20135224陈实 20135226黄坤
指导教师:娄嘉鹏
实验日期:2015.11.18 实验时间:15:30-18:00 必修/选修:必修 实验序号:二
实验名称:串行端口程序设计
实验目的与要求:
1.了解在linux环境下串行程序设计的基本方法;
2.掌握终端的主要属性及设置方法,熟悉终端I/O函数的使用;
3.学习使用多线程来完成串口的收发处理
一、实验内容
读懂程序源代码,学习终端I/O函数的使用方法,学习将多线程编程应用到串口的接收和发送程序设计。
二、实验步骤
1.试验箱连接。
2.建立超级终端,所有程序→附件→通讯→超级终端。新建一个超级终端:波特率115200,数据位8,无奇偶校验,停止位1,无数据流控制。(若先打开虚拟机,虚关闭;试验箱电源先关闭);
3.打开虚拟机,先file→open→redhat.vmx打开,然后打开电源,用户名root,密码123456;
4.打开试验箱电源,超级终端会显示启动信息到“Press Return to start the LINUX now, any other key for vivi”,输入“boot”,回车;
5.配置虚拟机、本机IP地址同嵌入平台的IP地址处于同一网段,实验箱和虚拟机的IP地址可通过ifconfig命令查看,本机IP地址可通过ipconfig命令查看;修改本机,网上邻居→本地连接;虚拟机,从这里开始→系统设置→网络;(虚拟机虚重启sudo reboot,本机无需重启)
6.运行窗口输入\192.168.0.234(对应虚拟机ip)访问虚拟机共享文件夹,将交叉环境包armv4l-tools解压复制到该文件夹;
7.进入虚拟机,安装编译器。在终端输入cd /home/bc,进入后通过ls查看目录下文件,cd armv4l-tools,然后ls,最下面一行install.sh,执行命令./install.sh;
8. 安装完成后查看/opt/host/armv4l/bin,会看到主编译器armv4l-unknown-linux-gcc,
vi /root/.bash_profile,修改PATH 变量为PATH=$PATH:$HOME/bin: /opt/host/armv4l/bin,存盘后执行:source /root/.bash_profile;
9.把代码拷入共享文件夹,分别进入02_pthread、03_tty,执行编译命令armv4l-unknown-linux-gcc *.c –lpthread,将生成的两个*.out可执行文件拷贝到/home/bc文件夹下;
10. 下载调试:在超级终端中敲入命令行mount -t nfs -o nolock 192.168.0.234:/home/bc /host,使得虚拟机与嵌入式平台相联系,即可将虚拟机中已经形成的可执行文件拷贝到嵌入式平台可以访问的共享文件夹中;
11. 最后,在超级终端中利用cd /host进入host文件夹,执行./可执行文件名即可调试出可执行文件的结果。
实验截图:
三、遇到的问题
在最后一步执行./****命令时,出现如下错误:
/dev/ttyS0:No such file or directory
解决方法:
cd /dev
ln -sf /dev/tts/0 ttyS0
四、实验总结
这次实验是多线程应用程序设计与串行端口程序设计,首先搭建实验平台,这个基本功我们在之前的实验里都做过的,相对比较熟悉了。搭建好实验平台之后,我们要将实验代码输入文本文档中,并将代码导入程序中。在本次实验的过程中遇到的计算机硬件的问题:解压文件时和最后配置到97%都遇到死机,导致编译环境无法配置成功。所以我们在课后认真分析及研究了串端口设计的程序代码,理解了代码的含义及其所能实现的功能。
这次实验主要是弄懂了多线程程序设计的基本原理、pthread 库函数的使用、在 Linux 环境下串行程序设计的基本方法,学习了终端I/O 函数的使用方法,学习了如何将多线程编程应用到串口的接收和发送程序设计中。
虽然这是我们第二次实验了,经总结,我觉得信息安全系统设计基础实验中有些地方仍是需要我们特别注意的,比如,开pc机时必须插网线,连接pc机与试验箱时先给试验箱断电,实验有些主机无法正常连接实验箱,这时就需要及时更换主机或者试验箱,串口连接时的是实验箱的0串口。设置IP为同一网段后,要确保两者可以ping通,否则无法进行后续试验。
实践出真知,多实验就增加了我们的动手能力。谢谢老师!