实验二 20145237 20155226 2015234 实验报告 固件程序设计
1-MDK
- 实验要求
注意不经老师允许不准烧写自己修改的代码
两人(个别三人)一组
参考云班课资源中“信息安全系统实验箱指导
书.pdf “第一章,1.1-1.5安装MDK,JLink驱动,注意,要用系统管理员身分运行uVision4,破解MDK(破解程序中target一定选ARM)
提交破解程序中产生LIC的截图
提交破解成功的截图
- 实验过程
按照实验指导书上的操作进行软件安装-->运行 uVision4,点 File>>License Management-->复制 CID-->运行keil-MDK注册机(在“Z32开发指南2.软件资料keil-MDK 注册机”双击“keil mdk474注册机”)-->粘贴 CID 并选择 ARM。
破解成功截图:
2-LED
- 实验要求
注意不经老师允许不准烧写自己修改的代码
参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图
参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.9”完成LED实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图
实验报告中分析代码
- 实验过程
首先先在 KEIL-MDK 中添加 Z32 SC-000 芯片库,操作过程为:
打开 keil uVision4 MDK。
新建工程选择 Project——>New uVision Project。
在弹出的安装路径窗口选择安装路径文件夹,并为工程命名。
在芯片库选择框选择库 Generic SC000 Device Database。
点开 ARM 结构目录,选择 SC000,点击 OK,搭建完成。
然后完成让LED灯闪烁实验:
在 user 组和 driver组下分别双击Main.c和Gpio.c,就可以看到程序的源代码。打开 Main.c,代码如下:
{
/*********************此段代码勿动***********************/
//系统中断向量设置,使能所有中断
SystemInit ();
// 返回 boot 条件
if(0 == GPIO_GetVal(0))
{
BtApiBack(0x55555555, 0xAAAAAAAA);
}
/*********************此段代码勿动***********************/
GPIO_PuPdSel(0,0); //设置 GPIO0 为上拉
GPIO_InOutSet(0,0); //设置 GPIO0 为输出
while(1)
{
delay(100);
GPIO_SetVal(0,0); //输出低电平,点亮 LED
delay(100);
GPIO_SetVal(0,1); //输出高电平,熄灭 LED
}
}
//延时函数,当系统时钟为内部 OSC 时钟时,延时 1ms
void delay(int ms)
{
int i;
while(ms--)
{
for(i=0;i<950;i++) ;
}
}```
打开“Z32 开发指南实验1-LED闪烁”目录的工程文件。编译工程,产生后缀名为.bin 的可执行代码。
将实验箱接入电源,用USB公对公线将实验箱的USB接口连接到电脑的USB接口上,在电脑上找到“Z32开发指南2.软件资料32下载调试工具”目录打Z32 下载调试工具NZDownloadTool.exe。打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。
当左边框出现“1设备已连接”,设备选择中显示芯片型号,此时就可以下载程序了。我们点击窗口右下方“确认下载”一栏的“浏览”,选择程序路径为“Z32开发指南实验 1-LED闪烁in32HUA.bin”)打开,最后点击下载。
- 结果截图:
![](http://images2017.cnblogs.com/blog/1072275/201711/1072275-20171105210901466-533695009.jpg)
![](http://images2017.cnblogs.com/blog/1072275/201711/1072275-20171105210826451-549559279.jpg)
##3-UART
- 实验要求
注意不经老师允许不准烧写自己修改的代码
参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图
参考云班课资源中“信息安全系统实验箱指导书.pdf“第一章,1.0”完成UART发送与中断接收实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图
实验报告中分析代码
- 实验过程
首先和实验二中一样在 KEIL-MDK 中添加 Z32 SC-000 芯片库
然后完成UART发送与中断接收实验:
打开“Z32 开发指南实验8-SM1”目录的工程文件。编译工程,产生后缀名为.bin 的可执行代码。
将实验箱接入电源,用USB公对公线将实验箱的USB接口连接到电脑的USB接口上,在电脑上找到“Z32开发指南2.软件资料32下载调试工具”目录打开 Z32 下载调试工具 NZDownloadTool.exe。打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32 即可被电脑识别,进行下载调试。
当左边框出现“1设备已连接”,设备选择中显示芯片型号,此时就可以下载程序了。我们点击窗口右下方“确认下载”一栏的“浏览”,选择程序路径为“Z32开发指南实验 8-SM1in32HUA.bin”并打开,最后点击下载。
- 结果截图:
![](http://images2017.cnblogs.com/blog/1072275/201711/1072275-20171105212026013-1643411860.jpg)
##4-国密算法
- 实验要求
网上搜集国密算法标准SM1,SM2,SM3,SM4
网上找一下相应的代码和标准测试代码,在Ubuntu中分别用gcc和gcc-arm编译
四个算法的用途?
《密码学》课程中分别有哪些对应的算法?
提交2,3两个问题的答案
提交在Ubuntu中运行国密算法测试程序的截图
- 实验过程
SM1
密码学课程对应算法:DES,AES
该算法不公开,所以无法获得源码
- SM2
密码学对应算法:ECC椭圆曲线算法
- 运行结果截图:
![](http://images2017.cnblogs.com/blog/1072275/201711/1072275-20171105211003638-1745047652.png)
- SM3
密码学对应算法::SHA系列算法,MD系列算法
运行结果截图:
![](http://images2017.cnblogs.com/blog/1072275/201711/1072275-20171105211010216-264998944.png)
SM4
密码学对应算法:DES,AES
- 运行结果截图:
![](http://images2017.cnblogs.com/blog/1072275/201711/1072275-20171105211020185-687031872.png)
##5-固件程序设计-5-SM1
1.注意不经老师允许不准烧写自己修改的代码
2.参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图
3.参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.16”完成SM1加密实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图
4.实验报告中分析代码
- 运行结果截图:
![](http://images2017.cnblogs.com/blog/1072275/201711/1072275-20171105211445138-534843207.jpg)
![](http://images2017.cnblogs.com/blog/1072275/201711/1072275-20171105211447935-2039326613.jpg)
![](http://images2017.cnblogs.com/blog/1072275/201711/1072275-20171105211955888-1083280271.jpg)
##6-清理
实验结束后,把实验室原来的网线插回,否则以后做实验的同学无法开机
只有用实验室机器的小组做
提交你们小组使用的计算机的编号照片
提交插好网线的照片
提交盖好后盖的照片:
![](http://images2017.cnblogs.com/blog/1072275/201711/1072275-20171105211851748-123411078.jpg)
![](http://images2017.cnblogs.com/blog/1072275/201711/1072275-20171105211855326-1219365208.jpg)