• 2019-2020-2-20175209 20175213 20175214-实验二固件程序设计


    实验二 固件程序设计

    本小组成员:

    • 20175209 王梓鸿
    • 20175213 吕正宏
    • 20175214 林郅聪

    实验二 固件程序设计-1-MDK

    实验内容:

    • 1.注意不经老师允许不准烧写自己修改的代码

    • 2.三人一组

    • 3.参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.1-1.5安装MDK,JLink驱动,注意,要用系统管理员身分运行uVision4,破解MDK(破解程序中target一定选ARM)

    • 4.提交破解程序中产生LIC的截图

    • 5.提交破解成功的截图

    实验步骤:

    • 找到exp2软件资料MDK4.74路径下的mdk474.exe文件,点击并安装。注意此过程中安装目标路径是自己创建的一个名为Keil 4的文件夹。

    • 安装Ulink驱动。

    • 在桌面上创建的快捷方式“Keil uVision4”上右键,选择“以管理员身份运行”。

    • 按照实验指导书上的操作进行软件安装,然后运行 uVision4,点 File>>License Management-->复制 CID-->运行keil-MDK注册机(在“Z32开发指南2.软件资料keil-MDK 注册机”双击“keil mdk474注册机”),最后粘贴 CID 并选择 ARM。

    • 将LIC复制并将其粘贴到keil4中的LIC输入框中,进行破解。

    实验二 固件程序设计-2-LED

    实验内容:

    • 0.注意不经老师允许不准烧写自己修改的代码

    • 1.参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图

    • 2.参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.9”完成LED实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图

    • 3.实验报告中分析代码

    实验步骤:

    • 添加SC000库:通过安装软件资料中的MDK-ARM_AddOn_SC000_Support.exe文件完成库的添加。

      • 打开 keil uVision4 MDK。

      • 新建工程选择 Project——>New uVision Project。

      • 在弹出的安装路径窗口选择安装路径文件夹,并为工程命名。

      • 在芯片库选择框选择库 Generic SC000 Device Database。

      • 点开 ARM 结构目录,选择 SC000,点击 OK,搭建完成。

    • LED灯闪烁实验
      • 打开exp2LED闪烁目录下的Z32.uvproj工程文件,然后编译,产生后缀名为.bin 的可执行代码。

    • 将实验箱接入电源,用USB公对公线将实验箱的USB接口连接到电脑的USB接口上,在电脑上找到“Z32开发指南2.软件资料32下载调试工具”目录打Z32 下载调试工具NZDownloadTool.exe。打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。

    • 当左边框出现“1设备已连接”,设备选择中显示芯片型号,此时就可以下载程序了。我们点击窗口右下方“确认下载”一栏的“浏览”,选择程序路径为“Z32开发指南实验 1-LED闪烁in32HUA.bin”)打开,最后点击下载。(在此步骤下,需要在最后重启一下试验箱)

    -此时核心板上L2灯开始闪烁。

    • 主函数代码分析

      • 系统初始化,中断设置,使能所有中断。

      • 判断按键,返回 boot 条件,确认是否进行程序下载。

      -设置 GPIO0 状态为上拉输出。

      -进入循环程序,LED 灯间隔 100ms 闪烁。

    实验二 固件程序设计-3-UART

    实验内容:

    • 0.注意不经老师允许不准烧写自己修改的代码

    • 1.参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图

    • 2.参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.0”完成UART发送与中断接收实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图

    • 3.实验报告中分析代码

    实验步骤:

    • 初始步骤同固件程序设计-2-LED实验中的步骤。

    • 使用串口调试工具来观察串口通信收发的数据。

    • 用九针串口线将Z32模块的串口与电脑USB接口连接。

    • 打开“Z32 开发指南实验8-SM1”目录的工程文件。编译工程,产生后缀名为.bin 的可执行代码。

    • 将实验箱接入电源,用USB公对公线将实验箱的USB接口连接到电脑的USB接口上,在电脑上找到“Z32开发指南2.软件资料32下载调试工具”目录打开 Z32 下载调试工具 NZDownloadTool.exe。打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32 即可被电脑识别,进行下载调试。(与-2-LED实验中的步骤类似)

    • 当左边框出现“1设备已连接”,设备选择中显示芯片型号,此时就可以下载程序了。我们点击窗口右下方“确认下载”一栏的“浏览”,选择程序路径为“Z32开发指南实验 8-SM1in32HUA.bin”并打开,最后点击下载。

    • 选择Z32对应的串口号,选择波特率为115200,选择校验位为Even,勾选“发送新行”,点击“打开串口”。

    • 关闭Z32电源开关,再打开,在串口调试助手的字符串输入框输入字符串“1234567890“,然后点击发送按钮。

    • 代码分析

      • 串口相关函数:包括串口中断服务、波特率设置、串口初始化、发送/接收单字节、发送字符串、发送单个十进制整数、发送单个十六进制整数、发送某一长度的字符串、接收多字节函数

      • void UART_IrqService(void)是串口中断服务函数,本实验中实现串口中断执行子程序,从PC端串口调试助手发送数据至Z32,Z32再经串口发送PC机

      • void UART_BrpSet(UINT16set)是波特率设置函数,串口实验波特率设置为 115200

      • void UART_Init(void)是串口初始化函数,实现配置串口时钟、使能中断

      • void UART_SendByte(UINT8 dat)是发送单字节函数,使用此函数一次发送一个字节数据

      • void UART_SendString(UINT8 *str)是发送字符串函数,使用此函数发送字符串数据

      • void uart_Send String(UINT8 buf[],UINT8length)是发送某一长度的字符串函数,实现发送一定长度的字符串数据

      • void UART_Send Num(INT32 num)是发送单个十进制整数函数,使用此函数发送一个十进制整数

      • void UART_Send Hex(UINT8 dat)是发送单个十六进制整数函数,使用此函数发送一个十六进制整数

      • UINT8 UART_Get Byte(UINT8 *data)是接收单字节函数,使用此函数接收单字节数据

      • void UART_Receive(UINT8 *receive, UINT8 len)是接收多字节函数,使用此函数接收多个字节数据

      • 主函数

        • 系统初始化,中断设置,使能所有中断

        • 判断按键,返回 boot 条件,确认是否进行程序下载

        • 初始化Uart,使能Uart接口,配置Uart中断并使能

        • 先发送单个字符“A”,换行,再发送字符串“Welcome to Z32HUA!”,换行,发送数字串“1234567890”,换行,再发送 16位数“0x AA”,换行

        • 进入while循环程序,等待串口中断到来并判断数据是否接收完毕,若中断到来,转入执行串口中断服务程序,待接收数据完毕,Z32将数据发回串口助手

    实验二 固件程序设计-4-国密算法

    实验内容:

    • 0.网上搜集国密算法标准SM1,SM2,SM3,SM4

    • 1.网上找一下相应的代码和标准测试代码,在Ubuntu中分别用gcc和gcc-arm编译

    • 2.四个算法的用途?

    • 3.《密码学》课程中分别有哪些对应的算法?

    • 4.提交2,3两个问题的答案

    • 5.提交在Ubuntu中运行国密算法测试程序的截图

    实验步骤:

    • SM1

      • 类型:SM1 算法是由国家密码管理局编制的一种商用密码分组标准对称算法。

      • 用途:采用该算法已经研制了系列芯片、智能 IC 卡、智能密码钥匙、加密卡、加 密 机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政 务 通、警务通等重要领域)。

      • 《密码学》课程对应算法:DES,AES。

      • 该算法不公开,所以无法获得源码。

    • SM2

      • 类型:SM2算法和RSA算法都是公钥密码算法,SM2算法是一种更先进安全的算法,在我们国家商用密码体系中被用来替换RSA算法;椭圆曲线公钥密码算法。

      • 用途:密钥管理,数字签名,电子商务,PKI,信息及身份认证等信息安全应用领域。

      • 《密码学》课程对应算法:ECC椭圆曲线算法。

      • Ubuntu中运行结果:未能在Ubuntu中运行出来,之后会继续研究。

    • SM3(国产哈希算法)

      • 类型:杂凑算法;SM3是中华人民共和国政府采用的一种密码散列函数标准。

      • 用途:SM3主要用于数字签名及验证、消息认证码生成及验证、随机数生成等,其算法公开。

      • 《密码学》课程对应算法::SHA系列算法,MD系列算法、MAC。

      • Ubuntu中运行结果:

    • SM4
      • 类型:无线局域网标准的分组数据算法,对称加密。

      • 用途:无线局域网产品, 用于实现数据的加密/解密运算,以保证数据和信息的机密性。

      • 密码学对应算法:DES,AES。

      • Ubuntu中运行结果:

    实验二 固件程序设计-5-SM1

    实验内容:

    • 0.注意不经老师允许不准烧写自己修改的代码

    • 1.参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图

    • 2.参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.16”完成SM1加密实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图

    • 3.实验报告中分析代码

    实验步骤:

    • 初始步骤同固件程序设计-3-UART步骤基本相同(将实验箱接入电源,用USB公对公线将实验箱的USB接口连接到电脑的USB接口上,在电脑上找到“Z32 开发指南2.软件资料32 下载调试工具”目录打开 Z32 下载调试工具 NZDownloadTool.exe。打开Z32的电源开关前,按住Reboot 按键不放,两次打开电源开关,Z32 即可被电脑识别,进行下载调试),显示屏显示。

    • 插入IC卡。

    • 按下矩阵键盘的A键,再次按下A键,屏幕会显示“按-A 键校验密码”,再次按下A键,显示校验成功。再按下A键。

    • 进入SM1加解密实验界面,按“1键”选择加密,屏幕显示观看串口调试助手,电脑上串口调试助手界面会显示初始数据以及加密密钥,确认加密后按A键可以存入IC卡,屏幕会重新回到加解密界面。

    • 按“2”键选择解密,首先按“A“键进入读取界面,成功后选择1、正确密钥还是2、错误密钥。按”1“键选择正确密钥,再按”A“键确认解密,串口会显示正确密钥信息,解密完成后串口会显示解密后的数据,屏幕会显示按A键返回。如果按”2“键选择错误密钥,串口显示 的解密后的数据与原数据不符,解密失败。

    实验二 固件程序设计-6-清理

    实验内容:

    • 1.提交你们小组使用的计算机的编号照片

    • 2.提交插好网线的照片

    • 3.提交盖好后盖的照片

    实验步骤:

    实验中遇到的问题

    • 问题1:在编译代码是发现了11个error,和老师给的参考书中相比较发现代码中的头文件都没有变色(没有成功导入)

    • 解决:原因是该项目的路径名存在的中文,我们首先尝试了更改文件夹的名称,发现没有效果,因为默认了是程序第一次生成的路径,因此我们更改了文件夹的名称并重新安装了软件,再次编译时即可解决该问题。

    • 问题2:在进行第二个任务时,发现代码编译通过并且设备连接无误情况下LED灯亮起但并无闪烁。

    • 解决:我们只重启LED灯这一部分的电源是没有效果的,在重启了整个实验箱的电源后LED等开始闪烁。

  • 相关阅读:
    技术部如何做复盘——“年终盘点一对一”之腾讯回来的同学
    技术部如何做复盘——“年终盘点一对一”想要进步的同学
    什么是项目管理,如何做好项目管理?
    技术部如何做复盘——“年终盘点一对一”之不称职的副班长
    500行代码了解Mecached缓存客户端驱动原理
    技术管理进阶——第三个五年,独立思考与落地实操
    《六顶思考帽》——产品脑暴会议也许可以这样玩
    《开拍吧》可以对我们的工作有什么启示?
    聊聊日报设计——日报怎么写,日报有何用?
    技术部如何做复盘——“年终盘点一对一”之一生之敌孙狗!
  • 原文地址:https://www.cnblogs.com/wangzihong0213/p/11878562.html
Copyright © 2020-2023  润新知