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

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

    关注

    51

    文章

    7308

    浏览量

    142942
  • 环形振荡器
    +关注

    关注

    1

    文章

    11

    浏览量

    8650
  • 电源噪声
    +关注

    关注

    3

    文章

    140

    浏览量

    17345
  • 随机数发生器

    关注

    0

    文章

    20

    浏览量

    10944
  • 全志科技
    +关注

    关注

    4

    文章

    90

    浏览量

    15858
  • R128
    +关注

    关注

    0

    文章

    41

    浏览量

    28
收藏 人收藏

    评论

    相关推荐

    R128 DSP开发工具安装教程

    下的 dsp_raw.bin 拷贝到 R128 根SDK 下的 board/r128s/xxx/bin/ 下,并重命名为rtos_dsp_sun20iw2p1.fex。 R128 SDK 下重新打包烧录,即可
    发表于 12-28 17:21

    R128硬件设计指南①

    硬件系统框图R128是一颗专为“音视频解码”而打造的全新高集成度 SoC,主要应用于智能物联和专用语音交互处理解决方案。 单片集成 MCU+RISCV+DSP+CODEC+WIFI/BT+PMU
    发表于 01-04 09:23

    R128 SDK架构与目录结构

    R128 S2 是提供的一款 M33(ARM)+C906(RISCV-64)+HIFI5(Xtensa) 三核异构 SoC,同时芯片内部 SIP 有 1M SRAM、8M LSPSRAM、8M
    发表于 01-05 10:05

    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

    【LinkIt 7687试用体验】8.加密算法中随机数的产生方法

    的事情。Linkit自带随机数的产生方法,该方法是通过硬件层面进行的随机数产生,而不像是使用软件进行运算,这样得到的随机数更具有不确定性,我们给每一个加密的数据用不一样的序列解密,更
    发表于 12-17 11:11

    关于STM32随机数算法的问题

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

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

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

    什么是随机数

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

    Arm随机数发生器(TRNG)表征应用说明

    本章概述ARM®随机数生成器(TRNG)及其特性。 ARM®随机数生成器(TRNG)从物理熵源收集熵,物理熵源是能够生成不可预测或随机
    发表于 08-29 07:19

    R128芯片应用开发案例——驱动 WS2812 流水灯

    灯 原贴链接:https://bbs.aw-ol.com/topic/4368/ 资源获取、问题讨论可以到志在线开发者社区进行:https://www.aw-ol.com
    发表于 10-10 14:08

    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