• 备忘录:将pqm4kyber768集成到chipwhisperersimpleserialbase项目中


    基本流程

    1. 新建一个simpleserial-base项目,如simpleserial-base-kyber768,将kyber768中的代码和simpleserial-base中的代码都拷贝到这一文件夹下

    2. 改造makefile, 首先添加SRC,将kyber768下的C文件添加上,可以使用

      csrc = $(shell find kyber768/ -name "*.c")
      SRC += csrc
      

      相应地,也要添加汇编代码进去

      asrc = $(shell find kyber768/ -name "*.S")
      ASRC += $(asrc)
      

      不过这里要做一些处理,因为cw地Makefile.Inc中在每次make后会将同C代码同名地汇编代码删除掉,但是kyber768中matacc的优化实现使用的是同名文件,所以可以给matacc.Smatacc.i加一个前缀,比如fastmatacc.S,记得改完文件名后修改*.S中include<*.i>的值。

      此外,像TARGET这个可以自己酌情命名

    3. 修改FPU的FLAG

      pqm4中使用opencm3中的脚本script/genlink.py通过开发板型号匹配devices.data中来决定使用的FPU,我们这里暂时固定为STM32F303,所以就直接锁死。查看cw中提供的HAL中的Makefile.stm32f3,可以看到

      image-20220308163837671

      选择都是soft,而通过devices.data我们能够看到pqm4中stm32f3

      image-20220308163946495

      我们将ASFLAGS 中的-mfloat-abi=soft改为-mfloat-abi=hard -mfpu=fpv4-sp-d16即可,否则会出现很多指令不支持。

    4. 在我们的设置下,.o文件会被生成到obj/kyber768/下,但是obj下尚未有kyber768/这一文件夹,可以偷偷懒动手创建一下,也可以加一行shell创建一个,这里就不再赘述。最后在simpleserial-base.c中添加

      #include "kyber768/api.h"
      

      即可

    Tips

    知道FPU的概念

    理解编译、链接的过程

    理解复杂的Makefile的写法、规则

    理解pqm4、chipwhisperer的项目结构

  • 相关阅读:
    lua 生成随机数
    lau--- and or运算
    一次Exchange邮箱接口的开发经历
    SQL Server分页查询进化史
    一次.NET项目反编译的实战经验(WinForm)
    点石成金-访客至上的网站设计秘笈 读书笔记
    Windows7使用无线网卡建立WiFi热点
    程序员的职业素养 读书笔记
    程序员的职业素养 读书笔记
    程序员的职业素养 读书笔记
  • 原文地址:https://www.cnblogs.com/chuaner/p/15981259.html
Copyright © 2020-2023  润新知