獲取真隨機(jī)數(shù)
R128 內(nèi)置了TRNG,一個(gè)真隨機(jī)數(shù)發(fā)生器,隨機(jī)源是 8 路獨(dú)立的環(huán)形振蕩器,由模擬器件電源噪聲產(chǎn)生頻率抖動(dòng),用低頻始終重采樣,然后進(jìn)行彈性抽取和熵提取處理,最終輸出128bit真隨機(jī)數(shù)。
載入方案
我們使用的開(kāi)發(fā)板是 R128-Devkit,需要開(kāi)發(fā) C906 核心的應(yīng)用程序,所以載入方案選擇r128s2_module_c906
$ source envsetup.sh
$ lunch_rtos 1
設(shè)置 TRNG驅(qū)動(dòng)
運(yùn)行 mrtos_menuconfig
進(jìn)入配置頁(yè)面。前往下列地址找到 TRNG Devices
Drivers Options --- >
soc related device drivers --- >
TRNG Devices --- >
-*- enable trng driver
編寫程序
打開(kāi)你喜歡的編輯器,修改文件:lichee/rtos/projects/r128s2/module_c906/src/main.c
引入頭文件
#include < sunxi_hal_trng.h >
初始化 TRNG 讀取數(shù)據(jù)模塊
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]);
結(jié)果
編譯固件后燒錄,可以看到隨機(jī)數(shù)輸出。
-
驅(qū)動(dòng)器
+關(guān)注
關(guān)注
54文章
8460瀏覽量
148340 -
環(huán)形振蕩器
+關(guān)注
關(guān)注
1文章
12瀏覽量
8776 -
電源噪聲
+關(guān)注
關(guān)注
3文章
153瀏覽量
17666 -
隨機(jī)數(shù)發(fā)生器
+關(guān)注
關(guān)注
0文章
21瀏覽量
11106 -
全志科技
+關(guān)注
關(guān)注
4文章
114瀏覽量
16488 -
R128
+關(guān)注
關(guān)注
0文章
41瀏覽量
211
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
全志R128應(yīng)用開(kāi)發(fā)案例—適配SPI驅(qū)動(dòng)ST7789V2.4寸LCD

R128點(diǎn)屏踩坑筆記

全志R128 Devkit開(kāi)發(fā)板原理圖模塊介紹及使用說(shuō)明
全志R128 SDK HAL 模塊開(kāi)發(fā)指南之 TRNG
真隨機(jī)數(shù)的產(chǎn)生
關(guān)于STM32真隨機(jī)數(shù)算法的問(wèn)題
想要在STM32每次上電初始化時(shí)產(chǎn)生真隨機(jī)數(shù),該如何設(shè)置?
什么是隨機(jī)數(shù)
全志R128芯片應(yīng)用開(kāi)發(fā)案例——按鍵輸入
全志R128應(yīng)用開(kāi)發(fā)案例——獲取真隨機(jī)數(shù)
全志R128應(yīng)用開(kāi)發(fā)案例——獲取真隨機(jī)數(shù)
DApp的隨機(jī)數(shù)為什么會(huì)被黑客破解
DshanMCU-R128s2 R128 EVT 開(kāi)發(fā)套件

評(píng)論