0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

全志R128应用开发案例—获取真随机数

冬至子 来源:丨budboool 作者:丨budboool 2023-10-24 17:49 次阅读

获取真随机数

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%08xn", 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%08xn", random[0], random[1], random[2], random[3]);

结果

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

image-20230804154607898.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 驱动器
    +关注

    关注

    52

    文章

    8226

    浏览量

    146249
  • 环形振荡器
    +关注

    关注

    1

    文章

    12

    浏览量

    8703
  • 电源噪声
    +关注

    关注

    3

    文章

    151

    浏览量

    17474
  • 随机数发生器

    关注

    0

    文章

    21

    浏览量

    11008
  • 全志科技
    +关注

    关注

    4

    文章

    104

    浏览量

    16094
  • R128
    +关注

    关注

    0

    文章

    41

    浏览量

    105
收藏 人收藏

    评论

    相关推荐

    R128 BLE最高吞吐量测试正确配置测试方法

    R128使用前我们需要了解BLE的最高吞吐量,以方便评估相关功能的开发
    的头像 发表于 10-27 17:17 1327次阅读
    <b class='flag-5'>全</b><b class='flag-5'>志</b><b class='flag-5'>R128</b> BLE最高吞吐量测试正确配置测试方法

    R128应用开发案例—适配SPI驱动ST7789V2.4寸LCD

    R128 平台提供了 SPI DBI 的 SPI TFT 接口,具有如下特点
    的头像 发表于 11-02 16:44 997次阅读
    <b class='flag-5'>全</b><b class='flag-5'>志</b><b class='flag-5'>R128</b>应用<b class='flag-5'>开发案</b>例—适配SPI驱动ST7789V2.4寸LCD

    R128内存泄漏调试案例分享

    硬件:R128 软件:FreeRTOS + rtplayer\_test(Cedarx)+ AudioSystem
    的头像 发表于 11-20 17:27 1013次阅读
    <b class='flag-5'>全</b><b class='flag-5'>志</b><b class='flag-5'>R128</b>内存泄漏调试案例分享

    R128点屏踩坑笔记

    本文所整理的R128点屏踩坑笔记均是在参考以下应用开发案例进行屏幕适配时遇到的实际开发问题,涵盖了屏幕花屏、屏幕白屏、LVGL显示颜色错误等常见问题的解决方法。
    的头像 发表于 12-03 10:17 1312次阅读
    <b class='flag-5'>R128</b>点屏踩坑笔记

    R128 Devkit开发板原理图模块介绍及使用说明

    :CH341SER.EXE 购买链接 百问科技淘宝店 - R128 DevKit 原理图模块介绍R128 模组R128 模组使用 SMT
    发表于 01-17 09:45

    R128 SDK HAL 模块开发指南之 TRNG

    TRNG TRNG是随机数发生器,随机源是8 路独立的环形振荡器,由模拟器件电源噪声产生频率抖动,用低频始终重采样,然后进行弹性抽取和熵提取处理,最终输出128bit
    发表于 04-24 09:42

    随机数的产生

    各位兄弟:小弟最近在做一个项目,需要用ATmega329产生-12.5~12.5的随机数,有人做过吗?方法越简单越好。敬候指点
    发表于 10-24 08:49

    关于STM32随机数算法的问题

    rand是伪随机数随机数配合定时器time()计算产生随机数,但是如果我想上电初始化的时候要产生一个随机数怎么做,单片机每次上电时间都是
    发表于 11-13 10:12

    想要在STM32每次上电初始化时产生随机数,该如何设置?

    rand是伪随机数随机数配合定时器time()计算产生随机数,但是如果我想上电初始化的时候要产生一个随机数怎么做,单片机每次上电时间都是
    发表于 11-28 15:24

    什么是随机数

    开发的工程师们应该或多或少都接触过随机数,可能认为它就是一个随机生成的数字嘛,使用时也很简单,只要调用开发语言提供的函数即可。但实际上随机数
    发表于 07-22 09:42

    R128芯片应用开发案例——按键输入

    ;); } } 结果 按下按键,串口会输出 Key Pressed! 原贴链接:https://bbs.aw-ol.com/topic/4358/ 资源获取、问题讨论可以到志在线开发者社区进行:https://www
    发表于 10-10 14:34

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

    获取随机数 本文案例代码 下载地址 获取随机数案例代码 https://www.aw-ol.
    发表于 10-24 17:05

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

    获取随机数 本文案例代码 下载地址 获取随机数案例代码 https://www.aw-ol.
    发表于 11-13 16:31

    DApp的随机数为什么会被黑客破解

    随机数可以分为随机数和伪随机数随机数需要同时满足随机
    发表于 10-18 10:59 2468次阅读

    DshanMCU-R128s2 R128 EVT 开发套件

    针对 R128 模组,百问科技推出了 R128 EVT 开发套件作为快速开发评估工具。
    的头像 发表于 12-22 15:16 776次阅读
    DshanMCU-<b class='flag-5'>R128</b>s2 <b class='flag-5'>R128</b> EVT <b class='flag-5'>开发</b>套件