2015520吴思其 基于《Arm试验箱的国密算法应用》课程设计个人报告

20155200吴思其 基于《Arm试验箱的国密算法应用》课程设计个人报告

课程设计中承担的任务

完成试验箱测试功能4,5,6以及SM3加密实验的实现

测试四 GPIO0按键中断实验

实验目的

  • 学习GPIO中断原理
  • 掌握Z32安全模块中断的工作原理

    实验过程及结果:

    1、打开“Z32开发指南\实验4-GPIO0按键中断”目录的工程文件。编译工程,产生后缀名为.bin的可执行代码。
    2、下载程序
    将实验箱接入电源,用USB公对公线将实验箱的USB接口连接到电脑的USB接口上,在电脑上找到“Z32开发指南\2.软件资料\Z32下载调试工具”目录打开Z32下载调试工具NZDownloadTool.exe。打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。

当左边框出现“1设备已连接”,设备选择中显示芯片型号,此时就可以下载程序了。

点击“下载”,左边状态提示框更新显示“程序下载成功!”实验4的程序就下载进Z32的实验板上了。
实验4的内容是按键中断,12864显示屏显示字符。
关闭Z32电源开关,再打开,程序自动运行,此时可以看到实验现象:12864屏幕第一行显示:“请按reboot按键:”
1072272-20180603211712209-1445817376.jpg

测试五 矩阵键盘实验

实验目的

  • 学习GPIO原理
  • 掌握Z32安全模块矩阵键盘的工作原理

    实验过程及结果:

    1、打开“Z32开发指南\实验5-矩阵键盘”目录的工程文件。编译工程,产生后缀名为.bin的可执行代码。

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

当左边框出现“1设备已连接”,设备选择中显示芯片型号,此时就可以下载程序了。

点击“下载”,左边状态提示框更新显示“程序下载成功!”实验5的程序就下载进Z32的实验板上了。
实验5的内容是读矩阵键盘键值并显示。
关闭Z32电源开关,再打开,程序自动运行,此时可以看到实验现象:12864屏幕第一行显示字符串

按下矩阵键盘上“A”键,屏幕第二行显示“A”。

1072272-20180603212327958-875340744.jpg

测试六 TIMER定时器实验

实验目的

  • 学习TIMER定时器原理
  • 掌握Z32安全模块定时器的工作原理

    实验过程及结果:

    1、打开“Z32开发指南\实验6-TIMER定时器”目录的工程文件。编译工程,产生后缀名为.bin的可执行代码。

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

当左边框出现“1设备已连接”,设备选择中显示芯片型号,此时就可以下载程序了。

点击“下载”,左边状态提示框更新显示“程序下载成功!”实验6的程序就下载进Z32的实验板上了。
实验6的内容是定时器溢出中断,控制LED灯以0.5Hz频率亮灭,并将0~9秒循环计数显示在12864显示屏上。
关闭Z32电源开关,再打开,程序自动运行,此时可以看到实验现象:Z32核心板上的灯L2以0.5Hz频率闪烁,12864屏幕上显示“定时器测试:”,第二行循环显示从0到9的秒计数值。
每隔1秒灯L2亮或灭一次,当计数值为偶数时,灯L2亮,计数值为奇数时,灯L2灭。

1072272-20180603212041487-1697428937.jpg

1072272-20180603212052413-1462241314.jpg

SM3加密实验

实验目的

  • 学习SM3加密算法原理,掌握SM3加密算法用法

实验过程及结果:

1、打开“Z32开发指南\实验10-SM3”目录的工程文件。编译工程,产生后缀名为.bin的可执行代码。
2、下载程序
将实验箱接入电源,用USB公对公线将实验箱的USB接口连接到电脑的USB接口上,在电脑上找到“Z32开发指南\2.软件资料\Z32下载调试工具”目录打开Z32下载调试工具NZDownloadTool.exe。打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。
当左边框出现“1设备已连接”,设备选择中显示芯片型号,此时就可以下载程序了。
点击“下载”,左边状态提示框更新显示“程序下载成功!”实验10的程序就下载进Z32的实验板上了。
实验9的内容是SM3数据加密实验。本实验使用Z32内置函数库实现加密算法。
我们用9针串口线将Z32模块的串口与电脑USB接口连接。
首先在电脑上打开串口助手,选择对应的串口号,设置波特率为115200,偶校验(Even),然后打开串口。
关闭Z32电源开关,再打开,程序自动运行,此时可以看到实验现象:液晶屏上显示“SM2实验!请看串口助手”。
串口助手上提示:“请输入需要杂凑的数据(64字节以内),并按A键确认”。
在字符串输入框输入数据“wsq”,点击发送。
按下“A”键后进行,加密,串口调试助手显示被杂凑加密后的数据。
1072272-20180603212732053-354997859.jpg

串口助手显示杂凑加密后数据

完成客户端与服务器通讯的代码

#include <stdio.h>  
    #include <sys/types.h>  
    #include <sys/socket.h>  
    #include <netinet/in.h>  
    #include <arpa/inet.h>  
      
    int main(int argc, char *argv[])  
    {  
        int server_sockfd;//服务器端套接字  
        int client_sockfd;//客户端套接字  
        int len;  
        struct sockaddr_in my_addr;   //服务器网络地址结构体  
        struct sockaddr_in remote_addr; //客户端网络地址结构体  
        int sin_size;  
        char buf[BUFSIZ];  //数据传送的缓冲区  
        memset(&my_addr,0,sizeof(my_addr)); //数据初始化--清零  
        my_addr.sin_family=AF_INET; //设置为IP通信  
        my_addr.sin_addr.s_addr=INADDR_ANY;//服务器IP地址--允许连接到所有本地地址上  
        my_addr.sin_port=htons(8000); //服务器端口号  
          
        /*创建服务器端套接字--IPv4协议,面向连接通信,TCP协议*/  
        if((server_sockfd=socket(PF_INET,SOCK_STREAM,0))<0)  
        {    
            perror("socket");  
            return 1;  
        }  
       
            /*将套接字绑定到服务器的网络地址上*/  
        if (bind(server_sockfd,(struct sockaddr *)&my_addr,sizeof(struct sockaddr))<0)  
        {  
            perror("bind");  
            return 1;  
        }  
          
        /*监听连接请求--监听队列长度为5*/  
        listen(server_sockfd,5);  
          
        sin_size=sizeof(struct sockaddr_in);  
          
        /*等待客户端连接请求到达*/  
        if((client_sockfd=accept(server_sockfd,(struct sockaddr *)&remote_addr,&sin_size))<0)  
        {  
            perror("accept");  
            return 1;  
        }  
        printf("accept client %s\n",inet_ntoa(remote_addr.sin_addr));  
        len=send(client_sockfd,"Welcome to my server\n 客户端IP127.0.0.3\n 服务器实现者学号20155206\n 当前时间2018.5.26\n",21,0);//发送欢迎信息  
          
        /*接收客户端的数据并将其发送给客户端--recv返回接收到的字节数,send返回发送的字节数*/  
        while((len=recv(client_sockfd,buf,BUFSIZ,0))>0) 
        {  
            buf[len]='\0';  
            printf("%s\n",buf);  
            if(send(client_sockfd,buf,len,0)<0)  
            {  
                perror("write");  
                return 1;  
            }  
        }  
        close(client_sockfd);  
        close(server_sockfd);  
            return 0;  
    } 

1072272-20180603213211343-600877245.jpg

实验中遇到的问题

   本次实验在小组三人的共同努力下完成,但是试验箱出现问题,两个实验模块不能同时使用,在同时打开使用时下载进去的代码总有几段是无法运行的;同时,今天小组内检查实验完成情况时,在用超级终端与试验箱连接时总会不停的自动断开,然后再次自动连接,经反复实验,发现是数据线的问题,有点接触不良造成的。

转载于:https://www.cnblogs.com/20155220wsq/p/9130615.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 JavaScript 编写的记忆游戏(附源代码)   项目:JavaScript 记忆游戏(附源代码) 记忆检查游戏是一个使用 HTML5、CSS 和 JavaScript 开发的简单项目。这个游戏是关于测试你的短期 记忆技能。玩这个游戏 时,一系列图像会出现在一个盒子形状的区域中 。玩家必须找到两个相同的图像并单击它们以使它们消失。 如何运行游戏? 记忆游戏项目仅包含 HTML、CSS 和 JavaScript。谈到此游戏的功能,用户必须单击两个相同的图像才能使它们消失。 点击卡片或按下键盘键,通过 2 乘 2 旋转来重建鸟儿对,并发现隐藏在下面的图像! 如果翻开的牌面相同(一对),您就赢了,并且该对牌将从游戏中消失! 否则,卡片会自动翻面朝下,您需要重新尝试! 该游戏包含大量的 javascript 以确保游戏正常运行。 如何运行该项目? 要运行此游戏,您不需要任何类型的本地服务器,但需要浏览器。我们建议您使用现代浏览器,如 Google Chrome 和 Mozilla Firefox, 以获得更好、更优化的游戏体验。要玩游戏,首先,通过单击 memorygame-index.html 文件在浏览器中打开游戏。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。
使用 JavaScript 编写的 Squareshooter 游戏及其源代码   项目:使用 JavaScript 编写的 Squareshooter 游戏(附源代码) 这款游戏是双人游戏。这是一款使用 JavaScript 编写的射击游戏,带有门户和强化道具。在这里,每个玩家都必须控制方形盒子(作为射手)。这款射击游戏的主要目标是射击对手玩家以求生存。当它射击对手时,它会获得一分。 游戏制作 该游戏仅使用 HTML 和 JavaScript 开发。该游戏的 PC 控制也很简单。 对于玩家 1: T:朝你上次动作的方向射击 A:向左移动 D:向右移动 W:向上移动 S:向下移动 对于玩家2: L:朝你上次移动的方向射击 左箭头:向左移动 右箭头:向右移动 向上箭头:向上移动 向下箭头:向下移动 游戏会一直进行,直到您成功射击对手或对手射击您为止。游戏得分显示在顶部。所有游戏功能均由 JavaScript 设置,而布局和其他次要功能则由 HTML 设置。 如何运行该项目? 要运行此项目,您不需要任何类型的本地服务器,但需要浏览器。我们建议您使用现代浏览器,如 Google Chrome 和 Mozilla Firefox。要运行此游戏,首先,通过单击 index.html 文件在浏览器中打开项目。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值