信息安全系统设计基础-五次实验问题总结

信息安全系统设计基础-五次实验问题总结

第一次实验-开发环境的熟悉

实验内容

本次实验使用 Redhat Linux 9.0 操作系统环境,安装 ARM-Linux 的开发库及编译器。创建一个新目录,并在其中编写 hello.c 和 Makefile 文件。学习在 Linux 下的编程和编译过程,以及 ARM 开发板的使用和开发环境的设置。下载已经编译好的文件到目标开发板上运行

实验步骤

1.连接 arm 开发板
2.建立超级终端
3.启动实验平台
4.输入ifconfig命令,并修改xp系统与redhat虚拟机的ip,使得它们均与arm机的ip在同一网段,本次实验中将pc机的ip设为192.168.0.55,redhat虚拟机ip为192.168.0.234
5.在pc机中“开始”、“运行”,输入虚拟机的 ip:\192.168.0.234,输入用户名bc,密码123456,进入bc后将所需的文件拷入
6.进入虚拟机,在命令行中输入./install.sh,配置编译环境
7.配置环境变量
8.建立 hello.c 文件并编译(可修改代码使其体现姓名学号)
9.下载调试

问题汇总

(1)超级终端连接问题(5201)

  • 问题:实验进行中,将所用的线接好后,打开超级终端,超级终端的窗口中没有显示任何信息。
  • 解决:串口线接错了位置。应该接至口1,重新连接后超级终端显示正常。

(2)IP无法ping通(5201)

  • 问题:进行到后面发现arm显示不能接通。
  • 解决:首先考虑的是检查三者是否连通。使用ping命令检查。再次查看arm实验箱的IP地址

(3)环境变量配置问题及解决方案

  • 问题:用arm编译器编译的时候出现问题(5202)
  • 解决:找到问题来源,是在设置环境变量时出现错误,修改PATH变量时路径输入有误,导致后来使用编译命令时找不到这条命令,重新设置PATH变量后就可以进行编译了

(4)arm终端无法成功建立(5203)

  • 问题:arm通信终端始终无法成功建立。显示该拨号正在被使用,请稍后尝试。
  • 解决:在建立arm通信终端时关闭虚拟机,进行尝试,最终成功建立连接。

(5)命令丢失(5205)

  • 问题:在修改/root/.bash_profile中的bin时,将armv-41误打成4l,导致后面编译时显示该条命令未安装不能进行编译;
  • 解决:重新用vi命令打开相关文件夹进行修改,在之后的输入中尽量使用Tab键自动补全命令减少出错

(6)编译文件无法执行

  • 问题:编译hello.c文件后无法在超级终端中执行(5221)
  • 解决:通过阅读错误提示:bash: ./hello: can not execute binary file,可知无法执行hello这个二进制可执行文件。打开redhat的资源管理器,果然没有在bc文件夹下发现hello文件,再看编译指令,明显是将编译后的文件挂载到bc目录下的host文件夹下。解决方法:途径一:cd到host目录下,再执行命令:./hello;途径二:直接执行命令:./host/hello即可

(7)IP地址修改失败(5214)

  • 问题:修改pc机与redhat虚拟机的ip后无法进行下一步,并且显示虚拟机的ip地址尚未修改
  • 解决:修改ip地址后需要重启之后才会修改成功

(8)登陆权限不够(5239)

  • 问题:在利用./install.sh命令安装arm编译器时,已经使用了root权限登陆,但是权限还是不够
  • 解决:使用命令chmod。这是Linux系统管理员最常用到的命令之一,它用于改变文件或目录的访问权限。

(9)网线连接问题(5305)

  • 问题:在进行最初的启动实验平台的过程中,发现Arm开发板的信息始终无法与超级终端连通
  • 解决:网线连接错误,应将实验箱中的网线把实验箱与主机相连,而不是主机的网线与实验箱相连

第二次试验-固件设计

实验内容

本次实验建立在掌握嵌入式开发平台使用方法和配置方法的基础上,要求使用windows xp,linux(red hat),arm三个系统(即NFS方式);在linux系统中安装arm系统,然后利用arm平台完成linux系统中C语言源文件的编译,并在windows系统中执行生成的可执行文件。此外,本次实验要求掌握多线程编译方法;读懂pthread.c源代码,并且熟悉几个重要的PTHREAD库函数的使用。

实验步骤

1.配置环境
2.拷贝文件
3.在虚拟机中编译代码
4.下载调试

问题汇总

(1)编译问题(5306)

  • 问题:关于编译pthread.c的时候输入命令回车之后总是提示“not found”的问题
  • 解决:经过与实验指导书的对比,实验指导书中的路径和实际执行时的路径是有差别的(比如,pthread文件在虚拟机中的绝对路径就是 /bc/02pthread,而不是指导书中的exp/basic/02pthread),自己需要修改命令

(2)执行错误(5205)

  • 问题:执行./term 时出现下面的错误/dev/ttyS0: No such file or directory
  • 解决:在 Linux 下串口文件位于/dev 下,一般在老版本的内核中串口一为/dev/ttyS0 ,串口为 /dev/ttyS1, 在我们的开发板中串口设备位于/dev/tts/下,因为开发板中没有ttyS0这个设备,所以我们要建立一个连接。首先在超级终端中进入/dev文件夹中。输入命令“ln –sf /dev/tts/0 /dev/ttyS0”

(3)环境配置(5219)

  • 问题:在虚拟机中使用armv4l-unknown-linux-gcc pthread.c -o pthread -lpthread命令编译pthread.c文件时出错,提示bash:armv4l-unknown-linux-gcc:command not found
  • 解决:经过理解错误提示,发现是环境变量没有配置成功,进入/root/.bash_profile重新配置后即可编译成功

(4)命令报错(5324)

  • 问题:在输入包含文件名为“armv4l-tools”的命令时总是报错
  • 解决:因为没仔细辨认“l”与“1”的区别,导致无法找到文件,使用tab键不全命令即可

实验三-实时系统的移植

实验内容

1.安装ADS(安装文件在00-ads1.2目录下,破解方法00-ads1.2\Crack目录下)
2.安装GIVEIO驱动(安装文件在01-GIVEIO目录下)
3.把整个GIVEIO目录拷贝到C:\WINDOWS下,并把该目录下的giveio.sys文件拷贝c:/windows/system32/drivers下。
4.安装驱动

实验步骤

1.配置基本开发环境
2.安装ADS
3.安装GIVEIO驱动
4.安装JTAG驱动
5.运行 ADS1.2 集成开发环境
6.单击 File->Open 选项
7.选择工程文件我们以光盘中的/ucos v6.0/Exp11 绘图的 API 函数为例选择 Exp11.mcp 后点击打开。
8.编译链接
9.点击 Debug 按钮进行仿真调试
10.点击 Options->Configure Target> Configure>设置
11.选择 ADP 点击确定,出现加载界面
12.点击 run按钮运行代码

问题汇总

(1)设置问题(5231)

  • 问题:点击run之后无法在屏幕上显示出图形
  • 解决:安装好Jtag.exe文件并按照使用说明中的步骤将其安装,但没有对其进行初始化设置,即不能对其进行仿真调试。在按照步骤处理后成功解决,再次编译运行代码与指导书界面一样。最终发现是在设置之后将Uarmjtag中的处理器型号改变了,改回ARM9即运行成功。

(2)make错误(5204)

  • 问题:在make时,出现错误。
  • 解决:检查确认路径之中无中文之后,安装提示删除了位于04-test文件夹中的Exp11_Data文件夹。之后链接成功。

(3)相关软件以及驱动的安装问题(5208)

  • 问题:软件安装失败
  • 解决:我们使用的电脑上已经安装了ADS和JTAG,这导致我们第一次试图安装ADS的时候提示是失败的,所以ADS需要先卸载再进行安装才可以使用;为了以防万一,所有的驱动重新安装一次最后。

(4)JTAG驱动(5208)

  • 问题:JATC驱动安装任无法正确编译
  • 解决:JTAG已经安装了,甚至已经安装了两个或以上,依然不能正确编译。解决办法是,将所有JTAG都卸载了重新安装,这是因为在安装过程中少拷贝了一些东西或者出现差错,重新正确安装后可以解决。

(5)Uarmjtag配置(5216)

  • 问题:不知道如何在Uarmjtag中进行初始化配置,双击图标后它弹出来对话框要求我们进行初始化配置,找不到页面
  • 解决:找到配置页面在电脑屏幕右下角形成了一个小图标,点击它就可以进行配置

(6)超级终端连接(5329)

  • 问题:超级终端无法连接
  • 解决:插回计算机原来的网线,重启计算机,再次打开超级终端,进入到命令行界面后再打开实验箱的开关,开机时,按任意键让超级终端停在VIVI

(7)ADS驱动(5218)

  • 问题:安装ADS的时候,并未出现license wazird对话框。而安装的程序也无法使用。
  • 解决:需要先清除旧的ADS版本。因而我们重新安装了ADS;在选择安装方式是“Install”,"Repair"还是"Remove"的选项卡中,选择remove选项;就可以安装破解方法了。

实验四-驱动程序设计

实验内容

在PC机上编写简单的虚拟硬件驱动程序并进行调试,实验驱动的各个接口函数的实现, 分析并理解驱动与应用程序的交互过程。

实验步骤

1、阅读和理解源代码
2、编译驱动模块及测试程序
3、测试驱动程序
4、编译成功

问题汇总

(1)头文件错误(5305)

  • 问题:使用Makefile文件编译未能成功,提示头文件中的函数出错。
  • 解决:根据错误解释,应该是在Makefile路径未找到头文件中的库函数,于是在Redhat系统中找到存放内核头文件的路径,将其替换掉原先在Makefile文件中的路径,在执行make命令编译,成功。

(2)gcc编译

  • 问题:在编译测试文件test_demo.c时,使用gcc编译不成功
  • 使用armv4l-unknown-linux-gcc编译也不成功。在使用gcc编译时未建立设备节点,建立结点后编译成功。

(3)修改makefile(5206)

  • 问题:需要修改makefile:
    KERNELDIR = /arm2410cl/ kernel/linux-2.4.18-2410cl/
    CROSS_COMPILE= armv4l-unknown-linux-
    由于makefile文件中KERNEL_PATH设置和真实环境有点不同,修改makefile文件中的路径就好了。
  • 解决:修改后:
    KERNELDIR = /usr/src/linux
    KERNELDIR = /arm2410cl/ kernel/linux-2.4.18-2410cl/
    INCLUDEDIR = $(KERNELDIR)/include
    CROSS_COMPILE=armv41-unknown-linux-

(4)交叉编译器输入(5330)

  • 问题:交叉编译器进行编译第一次输入命令出现错误
  • 解决:

(5)error127(5335)

  • 问题:出现问题error127
  • 解决:make后出现错误提示error127,后来经过百度查询资料问题在于环境变量的配置出现问题,重新配置后则显示正常

实验五-简单嵌入式WEB服务器实验

实验内容

学习使用 socket 进行通讯编程的过程,了解一个实际的网络通讯应用程序整体设计, 阅读 HTTP 协议的相关内容,学习几个重要的网络函数的使用方法。 读懂 HTTPD.C 源代码。在此基础上增加一些其他功能。在 PC 计算机上使用浏览器测试 嵌入式 WEB 服务器的功能。

实验步骤

1.继续使用exp1中的实验环境
2.将实验代码拷贝到共享文件夹
3.编译应用程序
4.下载调试
5.本机测试

问题汇总

(1)makefile失败(5236)

  • 问题:虽然将07_httpd文件中全部拷贝进了bc中,文件夹中拥有Makefile文件,但是还是无法通过make得到该文件夹中copy和httpd的可执行文件
  • 解决:使用gcc对其单步进行编译:
    armv4l-unknow-linux-gcc –E copy.c –o copy.i
    armv4l-unknow-linux-gcc –S copy.i –o copy.s
    armv4l-unknow-linux-gcc –c copy.s –o copy.o

(2)error127(5236)

  • 问题:2.make时出现error127
  • 解决:环境变量配置出现问题,拷代码时没有将一个Rules.mak的MAK类型文件一起拷过来,导致make命令不能使用,重新配置后则正常make。

(3)arm挂载问题(5236)

  • 问题:3.在将httpd服务下载到开发板上这一步骤中,挂载超级终端与共享文件建立通讯时,输mount -t nfs -o nolock 192.168.0.234:/root/bc /hos时,提No such file or director错误提示。
  • 解决:再次查看共享文件目录,确定我们并不存在/root/home/bc这一目录,将命令行修改mount -t nfs -o nolock 192.168.0.234:/home/bc /hos即可解决所提示错误

(4)无法生成httpd文件
-问题:在运行make命令产生可执行文件httpd时,我们运行make命令结束后,进入07_httpd文件夹内查看,发现并没有生成httpd这一文件

  • 解决:再次运行make命令后得到提示can’t open output file ../bin/httpd,可知,在我们当前所在的07_httpd文件夹的上级目录ws中并不存在bin这个文件夹,所以导致命令运行时无法进入ws/bin/httpd这一路径。使用mkdir这个创建指定名称目录的命令,返回到当前目录的上一级目录中,使用mkdir bin在ws文档中创建了bin目录,于是可顺利运行make命令产生httpd文件

(5)下载开发板出错

  • 问题:使用实验指导书中的命令mount -t nfs -o nolock 192.168.0.56:/arm2410cl /host将 httpd 下载到开发板上时出错。
  • 解决:分析命令后发现,我们和实验指导书的IP、文件夹位置什么的并不是完全相同的,这条命令需要更改IP地址192.168.0.56为Redhat虚拟机的IP地址192.16.0.234,并把arm2410cl文件夹更改为共享文件夹home/bc,运行命令mount -t nfs -o nolock 192.168.0.234:/home/bc /host即可顺利执行

总结体会

本次总结五次实验中参考了2个班同学所有的问题,发现大家的动手能力与思维能力在一步步提高,从最开始的串口线连错,指令找不到,IP无法ping通到之后的实验中环境配置,基本设置得心应手,并且开始对实验代码提出自己的理解,我们的实践能力得到了很大的提高,对指令、代码理解分析也有了自己的见解,虽然我们可能只是跟着老师的教程一步步走下去,但是我们也获得了足够的知识储备继续学习。

posted on 2016-12-04 03:20  sssssqyk  阅读(384)  评论(0编辑  收藏  举报

导航