【发布时间】:2019-04-06 13:08:26
【问题描述】:
STM32 芯片(和许多其他芯片)具有硬件随机数生成器(RNG),它比 libc 提供的软件 RNG 更快、更可靠。编译器对硬件一无所知。
有没有办法重新定义rand()的实现?
还有其他硬件模块,即实时时钟(RTC),可以为time()提供数据。
【问题讨论】:
-
只要实现您自己的
rand()版本,如果您从.o 链接它,它应该覆盖stdlib 中的内容。如果您从 .a 链接它,如果 stdlib 版本的作者将其标记为 WEAK(他们应该有),它仍然应该采用该版本。 -
您不妨阅读链接器的 --wrap 选项,当您需要两种变体都可用时(用于比较等),该选项会派上用场
标签: gcc arm embedded stm32 libc