zoukankan      html  css  js  c++  java
  • 20145219《信息安全系统设计基础》实验二 固件开发

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

    实验报告封面

    • 小组成员:201452114张宁、20145219宋歌

    实验内容与步骤

    1、配置开发环境(同实验一)

    • 连接arm开发板
    • 建立超级终端
    • 启动实验平台(redhat虚拟机)
    • 配置同网段IP
    • 安装arm编译器(bc共享文件夹)
    • 配置环境变量(redhat虚拟机中)

    2、导入实验代码

    • 将实验所需代码拷贝到bc共享文件夹中

      实验代码在老师提供的02_pthread03_tty文件夹中

    3、在虚拟机中编译代码

    • 对于多线程相关的代码,编译时需要加-lpthread 的库。
      • 编译pthread.c

      • 编译term.c

    4、下载调试

    • 在超级终端中运行可执行文件pthread

    • 在超级终端中运行可执行文件term

    实验过程中遇到的问题及解决过程

    • 问题1:在虚拟机中使用armv4l-unknown-linux-gcc pthread.c -o pthread -lpthread命令编译pthread.c文件时出错,提示bash:armv4l-unknown-linux-gcc:command not found

    • 解决方法:经过理解错误提示,发现是环境变量没有配置成功,进入/root/.bash_profile重新配置后即可编译成功(先开始hello.c也没编译通过,我们一时没有想到解决方法就继续向后做了,后来改正这个错误后都编译成功了)

    • 问题2:在超级终端运行可执行文件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。)

    实验过程的理解

    • pthread.c分析

      先设置一个整数的圆形缓冲区,并初始化缓冲区(初始化缓存指针信息(信号量)),再向缓冲区中写入一个整数,接着从缓冲区中读出一个整数(此步骤与写入类似),然后实现一个生产者程序:生产者线程不断顺序地将0到1000的数字写入共享的循环缓冲区,当生产-1时,程序终止;或者消费掉缓存中生产出来的数据:消费者线程不断地从共享的循环缓冲区读取数据,当消费-1时,程序终止。最后,等待生产者、消费者进程结束。

      这个代码是生产者-消费者问题模型的实现。

    • term.c分析

      先通过标准的文件打开函数打开串口,接着设置串口,包括:波特率设置、效验位和停止位设置(串口的设置主要是设置struct termios结构体的各成员值),然后把串口当作文件读写,最后关闭串口。

    实验体会

    本次实验是《实验二:固件开发》,从实验的操作流程上看,这次实验与实验一的步骤基本相同,唯一的不同就是编译.c文件时的命令加了参数-lpthread,这是因为本次实验的两个代码是与多线程相关的代码,编译时需要加-lpthread 的库。我觉得这次实验的重点应该是在实验一的基础上熟练掌握开发流程,并读懂实验示例代码。这两个代码明显比我们第一次实验的hello.c复杂了n倍,其中所包含的知识点也有很多,需要花时间去理解和体会。实验课堂上可能缺乏充足的时间和安静的环境让我们理解代码,因此,我们要利用课下的时间把这方面完成。

  • 相关阅读:
    Android 程序架构: MVC、MVP、MVVM、Unidirectional、Clean...
    asp.net发布到IIS中出现错误:处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
    反射中使用 BindingFlags.IgnoreCase
    JQuery判断数组中是否包含某个元素$.inArray("js", arr);
    Sql日期时间格式转换
    c#组元(Tuple)的使用
    逆向最大匹配分词算法C#
    [WEB API] CLIENT 指定请求及回应格式(XML/JSON)
    Jquery 将表单序列化为Json对象
    JS调试加断点
  • 原文地址:https://www.cnblogs.com/20145219songge/p/6057021.html
Copyright © 2011-2022 走看看