zoukankan      html  css  js  c++  java
  • 2019-2020 20175207- 20175235 实验二 固件程序设计

    20175207-20175235 实验二 固件程序设计

    20175207冷南
    20175235泽仁拉措

    目录:

    1-MDK

    2-LED

    3-UART

    4-国密算法

    5-SM1

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

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

    返回目录

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

    实验步骤

    1.首先先在 KEIL-MDK 中添加 Z32 SC-000 芯片库,操作过程为:

    • 打开 keil uVision4 MDK。
    • 新建工程选择 Project——>New uVision Project。
    • 在弹出的安装路径窗口选择安装路径文件夹,并为工程命名。
    • 在芯片库选择框选择库 Generic SC000 Device Database。
    • 点开 ARM 结构目录,选择 SC000,点击 OK,搭建完成。

    2.完成LED实验

    • 在 user 组和 driver组下分别双击Main.c和Gpio.c,就可以看到程序的源代码。打开 Main.c
    int main(void)
    {
    /*********************此段代码勿动***********************/
    //系统中断向量设置,使能所有中断
      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++) ;
      }
    }
    

    3.实验结果:


    返回目录

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

    实验步骤

    • 按照信息安全系统实验箱指导书.pdf “第一章,1.4” 的步骤在KEIL-MDK 中添加 Z32 SC-000 芯片库。
    • 按照信息安全系统实验箱指导书.pdf “第一章,1.0”完成UART发送与中断接收实验

    代码分析:

    • 一、串口相关函数:
      1.void UART_IrqService(void)是一个串口中断服务函数,在本实验中可以实现串口中
      断执行子程序,从 PC 端串口调试助手发送数据至 Z32,Z32 再经串口发送至 PC 机;

      2.void UART_BrpSet(UINT16 set)波特率设置函数,默认波特率 115200,需根据时钟源和分频计算出 set = 时钟(hz)/波特率,无返回值。

      3.void UART_Init(void)初始化串口,实现配置串口时钟、使能中断,无返回值。

      4.void UART_SendByte(UINT8 dat)Uart发送单字节函数,dat为要发送的字节,使用此函数一次发送一个字节数据,无返回值。

      5.void UART_SendString(UINT8 * str)Uart发送一个字符串,使用此函数发送
      字符串数据,str为要发送的字符串,无返回值。

      6.void uart_SendString(UINT8 buf[],UINT8 length)Uart 发送某一长度的字符串,实现发送一定长度的字符串数据
      ,buf: 要发送的字符串,length: 要发送的长度,无返回值。

      7.void UART_SendNum(INT32 num)使用此
      函数发送一个十进制整数;Uart 发送一个十进制整数,num: 要发送的整数,无返回值。

      8.void UART_SendHex(UINT8 dat)是发送单个十六进制整数函数,使用此
      函数发送一个十六进制整数,dat为要发送的 16 进制数,无返回值。

      9.UINT8 UART_GetByte(UINT8 *data)是接收单字节函数,使用此函数接
      收单字节数据,返回flag。

      10.void UART_Receive(UINT8 *receive, UINT8 len)Uart 是接收多字节函数,使
      用此函数接收多个字节数据,len:长度。

      • 二、主函数
        系统初始化,中断设置,使能所有中断
        判断按键,返回 boot 条件,确认是否进行程序下载
        初始化Uart,使能Uart接口,配置Uart中断并使能


    返回目录

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

    实验步骤:

    • 1.SM1: 为对称加密。其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。
      2.《密码学》对应算法:SHA-1
      3.用途:智能 IC 卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政 务通、警务通等重要领域)。

    • 1.SM2:为非对称加密,基于ECC。该算法已公开。由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度快于RSA。
      2.《密码学》对应算法:ECC
      3.用途:SM2在PBOC认证中签名和验签的使用。

    • 1.SM3 消息摘要。可以用MD5作为对比理解。该算法已公开。校验结果为256位。
      2.《密码学》对应算法:MD5
      3.用途:被广泛应用在数字签名,消息认证,数据完整性检测等领域。

    • 1.SM4 无线局域网标准的分组数据算法。对称加密,密钥长度和分组长度均为128位。
      2.《密码学》对应算法:DES
      3.用途:此算法用于无线局域网产品。

    实验4详情见组员博客

    返回目录

    5-SM1

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

    实验结果


    返回目录

  • 相关阅读:
    约瑟夫环问题拓展 C/C++
    C/C++之STL简介
    详解约瑟夫环问题 C/C++
    HC-SR04超声波传感器
    TCRT5000 红外传感器
    win10的docker无法运行mysql的image,Public Key Retrieval is not allowed
    如何将docker默认的安装位置从C盘改为D盘?
    免费PDF阅读器
    A1B2B3
    动态代理
  • 原文地址:https://www.cnblogs.com/Zrlc/p/11856212.html
Copyright © 2011-2022 走看看