X
首页
技术
模拟电子
单片机
半导体
电源管理
嵌入式
传感器
最能打国产芯
应用
汽车电子
工业控制
家用电子
手机便携
安防电子
医疗电子
网络通信
测试测量
物联网
最能打国产芯
大学堂
首页
直播
专题
TI 培训
论坛
汽车电子
国产芯片
电机驱动控制
电源技术
单片机
模拟电子
PCB设计
电子竞赛
DIY/开源
嵌入式系统
医疗电子
颁奖专区
【厂商专区】
【电子技术】
【创意与实践】
【行业应用】
【休息一下】
最能打国产芯
活动中心
直播
发现活动
颁奖区
电子头条
参考设计
下载中心
分类资源
文集
排行榜
电路图
Datasheet
最能打国产芯
国产芯片交流
[MCU] 全志R128 SDK HAL 模块开发指南之 TRNG
aleksib
2024-4-24 09:43
楼主
# TRNG TRNG是真随机数发生器,随机源是8 路独立的环形振荡器,由模拟器件电源噪声产生频率抖动,用低频始终重采样,然后进行弹性抽取和熵提取处理,最终输出128bit真随机数。 ## 模块配置 其 menuconfig 的配置如下: ``` Kernel Setup ---> Drivers Setup ---> SoC HAL Drivers ---> TRNG devices ---> [*] enable trng driver [*] enbale trng hal APIs Test command ``` ## 源码结构 ``` drv_trng.c drv_trng.h hal_trng.c ``` ## 模块接口说明 头文件 ```c #include
``` ### 返回值枚举 ```c typedef enum { HAL_TRNG_STATUS_OK = 0, /* success */ HAL_TRNG_STATUS_ERROR = -1, /* general error */ HAL_TRNG_STATUS_BUSY = -2, /* device or resource busy */ HAL_TRNG_STATUS_TIMEOUT = -3, /* wait timeout */ HAL_TRNG_STATUS_INVALID = -4 /* invalid argument */ } HAL_TRNG_Status; ``` ### 获取随机数 函数原型 ```c HAL_TRNG_Status HAL_TRNG_Extract(uint8_t type, uint32_t random[4]); ``` 参数: - type:随机数生成熵提取模式(0:crc,1:xor) - random:存放生成的随机数 返回值: - 0:成功 - 负数:失败 ## 模块使用范例 ```c #include
#include
#include
#include
#include
static int cmd_test_trng(int argc, const char **argv) { int ret = 0; uint32_t random[4] = {0}; if (argc != 2) { printf("Parameter number Error!\n"); printf("Usage: hal_trng
\n"); return -1; } if (strcmp(argv[1], "crc") == 0) ret = HAL_TRNG_Extract(0, random); else if (strcmp(argv[1], "xor") == 0) ret = HAL_TRNG_Extract(1, random); else { printf("Parameter Error!\n"); printf("Usage: hal_trng
\n"); ret = -1; return ret; } if (ret) { printf("trng extract failed: %d\n", ret); return ret; } printf("trng result: 0x%08x 0x%08x 0x%08x 0x%08x\n", random[0], random[1], random[2], random[3]); return ret; } FINSH_FUNCTION_EXPORT_CMD(cmd_test_trng, hal_trng, trng hal APIs tests) ```
点赞
回复评论 (1)
沙发
lugl4313820
感谢分享!
点赞
2024-4-27 11:21
最新活动
免费申请 | 上百份MPS MIE模块,免费试用还有礼!
TI 有奖直播 | 使用基于 Arm 的 AM6xA 处理器设计智能化楼宇
Follow me第二季第3期来啦!与得捷一起解锁高性能开发板【EK-RA6M5】超能力!
报名直播赢【双肩包、京东卡、水杯】| 高可靠性IGBT的新选择——安世半导体650V IGBT
30套RV1106 Linux开发板(带摄像头),邀您动手挑战边缘AI~
安世半导体理想二极管与负载开关,保障物联网应用的稳健高效运行
随便看看
eboot 中的flash.c中的CFI_Write_Block在哪里定义的?
【明日下午2:00直播】英特尔FPGA可编程加速平台介绍,怕忘记观看的进微信群等待
各位高手帮帮我吧。。
我有个问题求助,你们怎么都不给我回答一下呢
拿到F5529的筒子们,液晶的背光是可以使能的
【MSP430 编译器使用经验】那些年使用过的下载器
为什么有些放大器带容性负载时振荡?
【LPC54100】+四通道pwm输出分享!
nk.bin
有没有擅长C5402的,求助啊
fpga快速系统原型设计权威指南--英文版
g2553 2线控制液晶128*64 怎么接线呢,包括每个引脚,谢谢
关于IAR __no_init关键词用法
CE 5.0 使用剩余NAND作FAT求助
抗阻追踪的好处
【视频】FPGA访问HPS内存实验
微分器误差
提问+2个MSP430之间的通信问题
电路板算价工器,值得收藏
LED灯为什么会取代节能灯
电子工程世界版权所有
京B2-20211791
京ICP备10001474号-1
京公网安备 11010802033920号
回复
写回复
收藏
回复