• 20145310《信息安全系统设计基础》实验二 固件设计


    《信息安全系统设计基础》实验二 固件设计

    课程:信息安全系统设计基础
    班级:1453
    姓名:刘宇飞、赵一、何志威
    学号:20145310、20145318、20145322
    指导教师:娄嘉鹏
    实验日期:2016.11.10
    实验时间:10:00—12:00
    仪器组次:
    必修/选修:必修
    实验序号:2
    实验名称:固件设计

    实验目的与要求

    了解多线程程序设计的基本原理,学习 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为:192.168.0.121

    4、修改xp系统与redhat虚拟机的ip,使得它们均与arm机的ip在同一网段。在pc机中的xp系统中,设置步骤如图7-9,redhat虚拟机中设置步骤如图10-14。本次实验中将pc机的ip设为192.168.0.55,redhat虚拟机ip为192.168.0.234。
    修改完IP,重启一下虚拟机,IP才能启作用。重启后在命令行中使用ifconfig确认修改正确
    5、安装arm编译器。
    在pc机中“开始”、“运行”,输入虚拟机的ip。192.168.0.234,输入用户名bc,密码123456然后确定
    就可以访问虚拟机的文件了。然后把所需文件解压缩拷贝到共享文件夹bc中。
    进入虚拟机,在命令行中输入./install.sh,安装脚本程序将会自动建立目录,配置编译环境。
     
    6、配置环境变量
    在虚拟机中使用vi修改/root/.bash_profile文件中的PATH变量为PATH=$PATH:$HOME/bin:/opt/host/armv4l/bin/ (因为该文件为隐藏系统文件,所以使用ls命令不可见),存盘后执行:source/root/.bash_profile,则以后armv4l-unknown-linux-gcc 会自动搜索到,可以在终端上输入。
     
    保存退出后,重启虚拟机。

    验证实验代码

    1.将实验代码拷贝到共享文件夹中。
    2、在虚拟机中编译代码。
    对于多线程相关的代码,编译时需要加-lpthread的库
    3、下载调试
    在超级终端中运行可执行文件pthread,可得实验结果如图所示。

    运行可执行文件term。
    注意:如果在执行./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” 注意空格与字母l、数字0。

    遇到的问题及解决方法

    出现了/dev/ttyS0: No such file or directory错误,按照指导书上的方法成功解决。

    心得体会

    这次的实验很简单,是和实验一一起做的,主要麻烦的地方还是在arm试验箱配置,剩下和实验一大同小异。代码是关于多线程的,读懂就可以,以后还要深入学习。

  • 相关阅读:
    get和post的区别?
    JSP中动态include和静态include的区别?
    怎么防止重复提交
    如何解决表单提交的中文乱码问题
    http的响应码200,404,302,500表示的含义分别是?
    JSP三大指令是什么?
    session 和 cookie 有什么区别?
    Servlet API中forward()与redirect()的区别?
    Servlet的生命周期
    爬虫之Xpath的使用
  • 原文地址:https://www.cnblogs.com/pigeondandelion/p/6138030.html
Copyright © 2020-2023  润新知