鉴于有些客户问我们芯片是否支持随机数的产生,以及接口函数是怎么调用的。现介绍如下: 1、头文件检查#include <stdlib.h> 2、真随机数种子生成函数:pmu_random_seed_fetch(上一个随机数); 2、随机数种子函数:srand(32位的整形数据); 3、随机数的产生:rand(); 使用举例: void rand_test(void) { uint32_t i, rand_seed_true, rand_seed_temp; uint32_t random_numbers[10]; //利用一个随机函数产生一个临时随机数 rand_seed_temp = rand(); //产生一个真随机数,用于当作种子 rand_seed_true = pmu_random_seed_fetch(rand_seed_temp); srand(rand_seed_true); //通过rand函数产生随机数 for (i = 0; i < 10; i++) { random_numbers[i] = rand(); } log_debug_array_ex("random_numbers data", random_numbers, sizeof(random_numbers)); } 备注:如果咱们想产生一个字节或半字的随机数,那么我们需要对获取的随机数,与上0xFF或者0xFFFF。 测试结果如下: 从测试结果看,每次上电产生的随机数是不一样的。 |