2019-2020-1 20175304 20175303 20175327 20175335 实验二 固件程序设计
实验目的
实验过程
实验二 固件程序设计-1-MDK
实验要求
0.注意不经老师允许不准烧写自己修改的代码
1.三人一组
2.参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.1-1.5安装MDK,JLink驱动,注意,要用系统管理员身分运行uVision4,破解MDK(破解程序中target一定选ARM)
3.提交破解程序中产生LIC的截图
4.提交破解成功的截图
实验步骤
安装MDK4.74
1.打开MDK安装包
2.同意协议
3.选择安装位置
4.填写信息
5.安装
6.安装完成
7.安装ULINK驱动
8.点击安装软件,ULINK安装完后自动退出
破解MDK4.74
1.打开uVision4,点File>>License Management
2.复制电脑ID
3.运行kell-MDK注册机,粘贴CID并选择ARM
4.点击generate生成LIC
5.将注册机生成的LIC复制到Keil4中的LIC输入框中,点击Add LIC,破解完成。
实验二 固件程序设计-2-LED
实验要求
0.注意不经老师允许不准烧写自己修改的代码
1.参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图
2.参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.9”完成LED实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被识别,进行下载调试。提交运行结果截图
3.实验报告中分析代码
实验步骤
选择SC000库
1.打开"软件资料"里的"SC000库支持",双击运行里面的exe文件
2.准备安装
3.同意协议
4.选择安装路径为MDK所在的安装目录,用户信息已有点击进行下一步
5.点击Finish结束安装
6.打开uVision4,点击Project>>New uVision Project
7.在弹出的安装路径窗口选择安装路径文件夹,并为工程命名为"Z32工程1"。
8.在芯片库选择框选择库 Generic SC000 Device Database,并点击OK。
9.选择具体的 CPU 型号,点开 ARM 结构目录,选择 SC000,点击 OK。
10.基础环境搭建完成。
LED闪烁实验
1.打开Z32>>LED闪烁>>Z32HUA.uvproj文件
- 在 user 组和 driver 组下分别双击 Main.c 和 Gpio.c,就可以看到程序的源代码。
3.将实验箱接入电源,用 USB 公对公线将实验箱的 USB 接口连接到电脑的 USB接口上,在电脑上找到“Z32>>软件资料>>Z32下载调试工具”目录打开 Z32下载调试工具 NZDownloadTool.exe。
4.打开 Z32 的电源开关前,按住 Reboot 按键不放,两次打开电源开关,Z32 即可被电脑识别,进行下载调试。当左边框出现“1 设备已连接”,设备选择中显示芯片型号,此时就可以下载程序了。
5.我们点击窗口右下方“确认下载”一栏的“浏览”,选择程序路径为“LED闪烁in32HUA.bin”并打开,最后点击下载。
6.点击“下载”,左边状态提示框更新显示“程序下载成功!”实验的程序就下载进 Z32 的实验板上了。
实验现象
实验二 固件程序设计-3-UART
实验要求
0.注意不经老师允许不准烧写自己修改的代码
1.参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图
2.参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.0”完成UART发送与中断接收实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图
3.实验报告中分析代码
实验步骤
选择SC000库
参考实验二 固件程序设计-2-LED
UART发送与中断接受实验
1.打开Z32>>UART发送与中断接受>>Z32HUA.uvproj文件
2.在 user 组和 driver 组下分别双击 Main.c 和 Uart.c,就可以看到程序的源代码。打开 Uart.c,编译。
3.将实验箱接入电源,用 USB 公对公线将实验箱的 USB 接口连接到电脑的 USB接口上,在电脑上找到“Z32>>软件资料>>Z32下载调试工具”目录打开 Z32下载调试工具 NZDownloadTool.exe。
4.打开 Z32 的电源开关前,按住 Reboot 按键不放,两次打开电源开关,Z32 即可被电脑识别,进行下载调试。当左边框出现“1 设备已连接”,设备选择中显示芯片型号,此时就可以下载程序了。
5.我们点击窗口右下方“确认下载”一栏的“浏览”,选择程序路径为“UART发送与中断接受in32HUA.bin”并打开,最后点击下载。
6.点击“下载”,左边状态提示框更新显示“程序下载成功!”实验的程序就下载进 Z32 的实验板上了。
实验现象
1.用 9 针串口线将 Z32 模块的串口与电脑 USB 接口连接。
2.首先在电脑上打开串口助手,选择对应的串口号,设置波特率为 115200,偶校验(Even),选中“发送新行”,然后打开串口。
3.关闭 Z32 电源开关,再打开,程序自动运行,如果可以在串口调试助手看到如下实验现象:显示“A Welcome to Z32HUA! 1234567890 0xAA”,证明 PC 机串口已经接收到 Z32 串口发送来的信息。很遗憾的是,只显示了一个“0 0xAA”
4.我们在串口调试助手的字符串输入框输入字符串“abcdefgh”,然后点击发送按钮,这时,可以看到串口调试助手接收到我们发送输入的字符串“abcdefgh”,并显示在串口助手上
实验二 固件程序设计-5-SM1
实验要求
0.注意不经老师允许不准烧写自己修改的代码
1.参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图
2.参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.16”完成SM1加密实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图
3.实验报告中分析代码
实验步骤
选择SC000库
参考实验二 固件程序设计-2-LED
SM1加密实验
1.打开Z32>>SM1>>Z32HUA.uvproj文件
2.在 user 组下分别双击 Main.c 和 SLE4428.c,就可以看到程序的源代码,编译。
3.将实验箱接入电源,用 USB 公对公线将实验箱的 USB 接口连接到电脑的 USB接口上,在电脑上找到“Z32>>软件资料>>Z32下载调试工具”目录打开 Z32下载调试工具 NZDownloadTool.exe。
4.打开 Z32 的电源开关前,按住 Reboot 按键不放,两次打开电源开关,Z32 即可被电脑识别,进行下载调试。当左边框出现“1 设备已连接”,设备选择中显示芯片型号,此时就可以下载程序了。
5.我们点击窗口右下方“确认下载”一栏的“浏览”,选择程序路径为“SM1in32HUA.bin”并打开,最后点击下载。
6.点击“下载”,左边状态提示框更新显示“程序下载成功!”实验的程序就下载进 Z32 的实验板上了。
实验现象
1.用 9 针串口线将 Z32 模块的串口与电脑 USB 接口连接。
2.首先在电脑上打开串口助手,选择对应的串口号,设置波特率为 115200,偶校验(Even),选中“发送新行”,然后打开串口。
3.关闭 Z32 电源开关,再打开,程序自动运行,此时可以看到实验现象:显示屏显示“SLE4428 实验!请插入 IC 卡...”。
4.插入 SLE4428 IC 卡,显示屏第三行显示:“用户代码为:”,第四行显示用户代码“D27600000400”。
5.若插入了正确的卡片,显示出用户代码,再按下矩阵键盘的“A”键,屏幕第一行显示提示“按-A 键校验密码”并在第二行显示两个字节的校验密码“校验 0xFF,0xFF”。
6.按下矩阵键盘的“A”键,屏幕第三行显示“校验成功”,第四行显示校验剩余机会“剩余机会:8 次”。
7.再按下矩阵键盘的“A”键,则屏幕第一行显示“加密解密实验”,第二、三行分别显示选项“1.加密”,“2.解密”。
8.首先进行加密实验。按“1”键选择加密,屏幕第一行显示“观看串口调试助手”,第二行显示“A 键确认加密”。此时,串口调试助手显示原始数据和加密密钥。
9.按下“A”键确认加密后,屏幕第三行显示“加密完成”,第四行显示提示“A 键存入 IC 卡”。串口调试助手显示加密后的数据
10.按“A”键,将加密数据存入 IC 卡,此时串口显示“已将数据写入 IC 卡”。屏幕回到加密解密实验选择菜单。
11.下面进行解密实验。按“2”键选择解密实验后屏幕显示“观看串口调试助手 A 键读取 IC 卡数据”。
12.按“A”键后,此时屏幕显示“读取成功 选择密钥解密:1.正确密钥 2.错误密钥”。串口显示“读取的数据:为:0x7E 0xDC 0xA3 0x7B 0xBA 0x53 0x84 0xAC 0x0B 0x75 0x50 0x45 0x2E 0xEC 0x4F 0x4F”。
13.按“1”键选择正确的密钥后,屏幕提示“A 键确认解密”,此时串口显示“将使用以下密钥进行解密:0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F”。
14.按“A” 键确认解密后,屏幕提示“解密完成 A 键返回”,此时串口显示“解密后的数据为:0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F”。
15.按“A”键返回加/解密选择菜单。
16.如果使用错误秘钥进行解密,解密后将不能得到原始数据,在加/解密选择菜单中按“2”进行解密实验,用错误的秘钥解密。屏幕提示“观看串口调试助手 A 键读取 IC 卡数据”。
17.按“A”键后,此时屏幕显示“读取成功 选择密钥解密:1.正确密钥 2.错误密钥”。串口显示“读取的数据:为:0x7E 0xDC 0xA3 0x7B 0xBA 0x53 0x84 0xAC 0x0B 0x75 0x50 0x45 0x2E 0xEC 0x4F 0x4F”。
18.按“2”键选择错误的密钥后,屏幕提示“A 键确认解密”,此时串口显示“将使用以下密钥进行解密:0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00”。
19.按“A” 键确认解密后,屏幕提示“解密完成 A 键返回”,此时串口显示“解密后的数据为:0xB9 0x8C 0xB6 0x40 0xA2 0xD2 0x83 0xD0 0x64 0x6E 0x54 0x26 0x86 0x6D 0x5A 0xF5”。而正确的原始数据为:“0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F”,所以解密失败。
实验中的问题及解决过程
问题1:从实验二-2需要实验箱开始,下载调试工具就不能识别实验箱
解决方法:换一个实验箱就好了
问题2:在做固件程序设计-3-UART时,实验现象本应是显示“A Welcome to Z32HUA! 1234567890 0xAA”,但是我们组做实验的时候只显示了一个“0 0xAA”
问题2解决方法:重新做这个实验,结果还是不行,也许市实验箱的问题。
问题3:实验二-4,找国密算法 SM1、SM2、SM3、SM4的算法与测试代码,找不着能用的
解决方法:希望老师能帮助我们给我们一点资源。
实验感受
这次的几个实验都很简单,只要跟着实验指导书做就没问题,有问题应该及时问老师。