zoukankan      html  css  js  c++  java
  • 信息安全系统设计基础-五次实验问题总结

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

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

    实验内容

    本次实验使用 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.2Crack目录下)
    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通到之后的实验中环境配置,基本设置得心应手,并且开始对实验代码提出自己的理解,我们的实践能力得到了很大的提高,对指令、代码理解分析也有了自己的见解,虽然我们可能只是跟着老师的教程一步步走下去,但是我们也获得了足够的知识储备继续学习。

  • 相关阅读:
    MySQL知识树 集合操作
    MySQL知识树 查询原理
    MySQL知识树 查询分类
    MySQL知识树 字符类型
    MySQL知识树 日期时间类型
    MySQL知识树 数值类型 位类型
    MySQL知识树 数值类型 浮点数和定点数
    mysql-7 数据检索(5)
    mysql-6 数据检索(4)
    python-1 python基础知识
  • 原文地址:https://www.cnblogs.com/20145229ss/p/6130184.html
Copyright © 2011-2022 走看看