首页 > 其他分享 >全志R128应用开发案例——获取真随机数

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

时间:2023-11-13 17:03:29浏览次数:35  
标签:08x R128 random 全志 TRNG 随机数 trng 0x%

获取真随机数

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

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

载入方案

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

$ source envsetup.sh 
$ lunch_rtos 1

在这里插入图片描述

设置 TRNG驱动

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

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

在这里插入图片描述

编写程序

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

在这里插入图片描述

引入头文件

#include <sunxi_hal_trng.h>

在这里插入图片描述

初始化 TRNG 读取数据模块

在这里插入图片描述

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]);

结果

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

在这里插入图片描述

标签:08x,R128,random,全志,TRNG,随机数,trng,0x%
From: https://blog.51cto.com/u_15380233/8346268

相关文章

  • 30.随机数
    随机数在程序开发过程中,经常会使用到随机数,Python中,可以使用 random 模块中的 randint() 函数获取随机数。格式: randint(start,stop)start 为随机数获取初始范围stop 为随机数获取结束范围,包含该值。使用该函数前需要导入, fromrandomimportrandintfromrand......
  • 获取随机数工具类
    1.通过Random获取随机数由System.Random中提供,它生成的数字被称为伪随机数,它是以相同的概率从一组有限的数字中选取的,所选的数字并不具有完全的随机性,但就实用而言,其随机程度已经足够了。实现思路:Randomr1=newRandom();inta1=r1.Next(1,100); 2.使用Guid生成随机......
  • 全志T507-H技术帖 | 去掉IO扩展芯片后保留扩展引脚功能的实现方法
    飞凌嵌入式推出的OKT507-C作为一款广受欢迎的开发板拥有丰富的功能接口,而实际上OKT507-C开发板的CPU引脚资源是比较紧缺的,那么它究竟是如何提供如此丰富的接口资源的呢?答案就是IO扩展芯片——TCA6424A。这是一个24位I2C和系统管理总线(SMBus),输入输出(I/O)扩展器有中断输出......
  • 珠海全志关于DDR3的Power-aware的信号完整性仿真研究
    CadenceSigrityPower-awareSI工具包介绍Power-awareSI工具包是Cadence公司针对源同步并行总线如DDR3、DDR4等所提供的完整的仿真解决方案。基于行业领先的Sigrity专利技术,Power-awareSI工具包可以快速、精确提取封装和PCB的信号布线和电源分布系统的网络参数,然后......
  • app直播源码,uniapp随机数生成签名
    app直播源码,uniapp随机数生成签名1、首先,需要引入node.js内置模块crypto,它提供了一些加密相关的函数和方法。可以在项目的common文件夹下新建一个js文件,例如utils.js,并在其中定义一个生成随机串的方法,例如: //引入node.js内置模块cryptoconstcrypto=require('cr......
  • SecureRandom随机数引起的故障
    故障现象:接口大面积超时(数十秒到十多分钟不等)、接口大面积报错(比如连接池报错);常见监控如JVM、数据库连接、SQL查询、网络、请求量都没有异常。问题分析:问题开始于修复Sonar问题publicclassMathUtils{/***根据长度,生成指定位数的随机数*/publi......
  • java如何生成一个随机数,并写出生成原理和执行过程
     在Java中,生成随机数通常可以通过以下几种方式:使用 Math.random() 方法使用 Random 类使用 SecureRandom 类(更安全的随机数)1.使用 Math.random() 方法Math.random() 方法返回一个 double 类型的值,范围在0.0(含)至1.0(不含)之间的随机数。这个方法实际上是 java.u......
  • java随机数
    在Java中生成随机数可以使用java.util.Random类或者java.lang.Math类的静态方法,也可以使用Java8引入的java.util.concurrent.ThreadLocalRandom类。参考文章:java怎么产生随机数使用java.util.Random类:importjava.util.Random;publicclassMain{publicstaticvoid......
  • 全志R128应用开发案例——SPI驱动ST7789V1.3寸LCD
    SPI驱动ST7789V1.3寸LCDR128平台提供了SPIDBI的SPITFT接口,具有如下特点:SupportsDBITypeC3Line/4LineInterfaceModeSupports2DataLaneInterfaceModeSupportsdatasourcefromCPUorDMASupportsRGB111/444/565/666/888videoformatMaximumresolutio......
  • 随机数算法
    $rand()$范围:0-32767不是真正的随机,只是因为周期很长,看起来像如果不进行初始化,每次输出的结果是相同的#include<bits/stdc++.h>usingnamespacestd;signedmain(){ freopen("1.out","w",stdout); for(inti=1;i<=10;i++){ cout<<rand()&l......