2017-2018-1 20155308 20155316 实验二 固件程序设计

本文档详细记录了《信息安全系统设计基础》课程中的实验流程,包括安装Keil环境、破解MDK、添加芯片库等步骤,以及实验过程中遇到的问题与解决方法。涉及多个具体实验案例,如LED实验、UART实验等。

20155308&20155316 2017-2018-1 《信息安全系统设计基础》实验二

本实验报告由两人共同完成

实验前的准备(安装步骤说明)

1.安装keil环境

十万分注意!!!

安装keil的路径一定不要是中文名!一定不要是中文名!!!
否则用这个平台编译的时候会出现编译不成功的提示的!
1057540-20171030214549668-879693096.png
编译成功则不会出现上图提示:
1057540-20171030214652777-1403074655.png

安装包

1057540-20171030210842418-1925389434.png

主参考资料
遇到的问题
  • 问题1:选择安装路径后点击安装时出现了“this folder is not write-protected and ...”的错误提示
  • 解答1:在百度上搜索到一篇相类似错误的解说,上面对此的解说为:
    1057540-20171030200444215-1348621560.png
  • 大致意思是跟选择文件时创建的文件夹操作有误有关。在选择安装路径的时候,我是点开路径选择界面后,中途创建了文件夹,估计是这个地方出错了。于是我重新打开下载软件,在选择路径之前先把安装路径创建好,再选择,果然这次就成功安装了。

  • 问题2:注册时出现无法注册的情况
  • 1057540-20171030204148011-1648971107.png
  • 解答2:在百度上解决方案是:“在桌面KEIL的快捷方式图标上点击右键--以管理员权限运行
    重新填入注册码即可”
  • 操作后结果如下:
    1057540-20171030204201590-2063029968.png
  • 仍然没有注册成功,网上对此的解释见链接
  • 查看TOOL文件后发现,我们的安装中只有ARM这个编译器,没有C51编译器。
    1057540-20171030204220918-574058325.png
  • 这说明我们生成注册码时选择的应该是ARM选项而不是C51选项
  • 更改选项后填入注册码
    1057540-20171030204211511-665772534.png
  • 结果显示注册成功

2.打开文件

  • 问题1:怎么打开一个工程?
  • 解答1:选择project->open project即可,不是选file->open file,记得不要弄错了
  • 1057540-20171030205751840-2115360712.png
  • 问题2:实验说明.txt文件中说需要在打开的工程里的algorithm文件夹上添加Z32HUA_ALG.LIB,该怎么添加?
  • 1057540-20171030210325340-246529088.png
  • 解答2:在左边的栏里双击algorithm文件夹,在弹出的窗口里选择显示所有文件(All files(".")),找到如图所示的文件添加即可。
  • 1057540-20171030210333902-1427912001.png

接下来的步骤照实验说明走即可。

实验

实验1

实验内容
  1. 注意不经老师允许不准烧写自己修改的代码
  2. 两人(个别三人)一组
  3. 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.1-1.5安装MDK,JLink驱动,注意,要用系统管理员身分运行uVision4,破解MDK(破解程序中target一定选ARM)
  4. 提交破解程序中产生LIC的截图
  5. 提交破解成功的截图
截图

1057540-20171105184817263-1403263129.png

1057540-20171105184824310-1853989173.png

分析
  • 由于该实验部分是在上实验课前一天做的,所以摸索了一会,有关问题及解决方法见“实验前准备”部分(第一节)

实验2

实验内容
  1. 注意不经老师允许不准烧写自己修改的代码
  2. 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图
  3. 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.9”完成LED实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图
  4. 实验报告中分析代码
截图

1057540-20171105184839216-859841248.png

1057540-20171105184831951-781243960.png

问题与分析
  • 问题:在将代码从电脑下载到实验箱的时候,并没有显示连接成功
  • 解决方法:开关实验箱左上角部分的电源的时候,慢一点开、关,不要一下子完成,就可以连接成功了。如果还不成功,已知有三种解决方法:一是重启自己的电脑,二是连线方面可以重连一下,例如换一下在电脑上连接的端口,三是换一个电脑或者实验箱试试
  • 分析代码
  • 主函数代码的执行过程为:
  • 1) 系统初始化,中断设置,使能所有中断;
  • 2) 判断按键,返回 boot 条件,确认是否进行程序下载;
  • 3) 初始化 IC 卡插入检测端口 GPIO6;
  • 4) 串口初始化;
  • 5) LCD12864 初始化;
  • 6) 矩阵键盘初始化;
  • 7) 液晶屏第一行显示字符串。

实验3

实验内容

任务详情

  1. 注意不经老师允许不准烧写自己修改的代码
    1.参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图
  2. 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.0”完成UART发送与中断接收实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图
  3. 实验报告中分析代码
截图

1057540-20171105184856654-777555474.png

1057540-20171105184908935-1450942984.png

1057540-20171105184914623-1195063546.png

1057540-20171105184919763-1423344298.png

分析
  • 分析代码
  • 主函数代码的执行过程为:
  • 1) 系统初始化,中断设置,使能所有中断;
  • 2) 判断按键,返回 boot 条件,确认是否进行程序下载;
  • 3) 初始化 IC 卡插入检测端口 GPIO6;
  • 4) 串口初始化;
  • 5) LCD12864 初始化;
  • 6) 矩阵键盘初始化;
  • 7) 液晶屏第一行显示字符串。

实验4

实验内容
  1. 网上搜集国密算法标准SM1,SM2,SM3,SM4
  2. 网上找一下相应的代码和标准测试代码,在Ubuntu中分别用gcc和gcc-arm编译
  3. 四个算法的用途?
  4. 《密码学》课程中分别有哪些对应的算法?
  5. 提交2,3两个问题的答案
  6. 提交在Ubuntu中运行国密算法测试程序的截图
截图

1057540-20171105190148513-1670905452.png

1057540-20171105190011326-1302612630.png

1057540-20171105190021998-1284357906.png

分析
  • 问题:在网上找到了相关代码,但试运行后SM2运行不出来
  • 解决:打开程序,发现它include头文件如下:
  • 1057540-20171105190402060-1532638509.png
  • 但下载的代码里没有这些.h文件,openssl文件夹路径并没有添加至环境变量中去
  • 于是我在openssl官网上下载了这些头文件,并将include改为类似:#include "../opoenssl/ec.h"
  • 结果编译时提醒我“opensslconf.h.in”文件无法编译,查看代码发现代码有误
  • 于是我复制官网上的opensslconf.h的代码,粘贴至opensslconf.h.in中(官网上的和github上的该代码内容不同)
  • 继续编译,出现其他头文件找不到的编译错误提示,仔细查找,原来是如果要以#include "头文件地址"这种形式include头文件的话,则所有头文件都要这么写,上图所包含的头文件中也引用了其他的头文件,也就是说opennssl文件夹中所有头文件都得改成这种形式,这样太麻烦了,如果全修改的话,则可以调试出SM2的测试代码;另一种解决办法是将openssl文件夹路径添加至环境变量中(在linux环境下)

实验5

实验内容
  1. 注意不经老师允许不准烧写自己修改的代码
  2. 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图
  3. 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.16”完成SM1加密实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图
  4. 实验报告中分析代码
截图

1057540-20171105184935388-1453601610.png

分析
  • 分析代码
  • 主函数代码的执行过程为:
    1) 系统初始化,中断设置,使能所有中断;
    2) 判断按键,返回 boot 条件,确认是否进行程序下载;
    3) 初始化 IC 卡插入检测端口 GPIO6;
    4) 串口初始化;
    5) LCD12864 初始化;
    6) 矩阵键盘初始化;
    7) 液晶屏第一行显示字符串。

转载于:https://www.cnblogs.com/JIUSHA/p/7788541.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值