导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    【R128】应用开发案例——获取真随机数

    A Series
    r128开发指南
    1
    1
    934
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • livpo
      livpo LV 6 最后由 q1215200171 编辑

      基于R128-S2设计的全套开发板已上线淘宝百问网韦东山老师个人店进行售卖,包含黑色的DshanMCU-R128s2-R16N16模组和全套的DshanMCU-R128s2-DEVKIT。

      • DshanMCU-R128s2-R16N16模组:39.9元
      • DshanMCU-R128s2-DEVKIT开发板:59.9元

      R128开发板购买链接:https://item.taobao.com/item.htm?spm=a21n57.1.0.0.46b0523cMfarLo&id=736154682975&ns=1&abbucket=5#detail

      “主图_01”为智能对象-1.jpg

      获取真随机数

      本文案例代码 下载地址
      获取真随机数案例代码 https://www.aw-ol.com/downloads?cat=24

      R128 内置了TRNG,一个真随机数发生器,随机源是 8 路独立的环形振荡器,由模拟器件电源噪声产生频率抖动,用低频始终重采样,然后进行弹性抽取和熵提取处理,最终输出128bit真随机数。

      载入方案

      我们使用的开发板是 R128-Devkit,需要开发 C906 核心的应用程序,所以载入方案选择r128s2_module_c906

      $ source envsetup.sh 
      $ lunch_rtos 1
      

      image-20230802110150203 (5).png

      设置 TRNG驱动

      运行 mrtos_menuconfig 进入配置页面。前往下列地址找到 TRNG Devices

      Drivers Options  --->
          soc related device drivers  --->
              	TRNG Devices --->
              	-*- enable trng driver
      

      image-20230804153240015.png

      编写程序

      打开你喜欢的编辑器,修改文件:lichee/rtos/projects/r128s2/module_c906/src/main.c

      image-20230803112142315 (2).png

      引入头文件

      #include <sunxi_hal_trng.h>
      

      image-20230804153100526.png

      初始化 TRNG 读取数据模块

      image-20230804153618920.png

      uint32_t random[4] = {0};
      
      HAL_TRNG_Extract(0, random); // 读取 CRC 模式
      printf("trng CRC result: 0x%08x 0x%08x 0x%08x 0x%08x\n", random[0], random[1], random[2], random[3]);
      
      HAL_TRNG_Extract(1, random); // 读取 XOR 模式
      printf("trng XOR result: 0x%08x 0x%08x 0x%08x 0x%08x\n", random[0], random[1], random[2], random[3]);
      

      结果

      编译固件后烧录,可以看到随机数输出。

      image-20230804154607898.png

      1 条回复 最后回复 回复 引用 分享 0
      • 1 / 1
      • First post
        Last post

      Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

      行为准则 | 用户协议 | 隐私权政策