1#defineINIT_BOARD_EXPORT(fn) INIT_EXPORT(fn, "1")23/*pre/device/component/env/app init routines will be called in init_thread*/4/*components pre-initialization (pure software initilization)*/5#defineINIT_PREV_EXPORT(fn) INIT_EXPORT(fn, "2")6/*device initialization*/7#defineINIT_DEVICE...
/*board init routines will be called in board_init() function*/#defineINIT_BOARD_EXPORT(fn) INIT_EXPORT(fn, "1")/*pre/device/component/env/app init routines will be called in init_thread*//*components pre-initialization (pure software initilization)*/#defineINIT_PREV_EXPORT(fn) INIT_EXPO...
初始化函数主动通过这些宏接口进行申明,如INIT_BOARD_EXPORT(rt_hw_usart_init),链接器会自动收集所有被申明的初始化函数,放到RTI符号段中,该符号段位于内存分布的RO段中,该RTI 符号段中的所有函数在系统初始化时会被自动调用。 原理: 在rtdef.h中,使用SECTION(x)定义: #define SECTION(x)attribute((section(x...
rt_hw_board_init 板级硬件初始化函数 rt_system_timer_init 初始化系统系统定时器 rt_system_scheduler_init 启动系统调度器 rt_system_signal_init 系统信号量初始化 rt_application_init 创建用户线程,由此创建一个用户main()线程,而 main()函数是RT-Thread的用户代码入口, 用户可以在main()函数里添加自己的应...
void rt_hw_board_init() { // rtthread tick configuration // 2. Configure rtos tick and interrupt //SysTick_Config(SystemCoreClock / RT_TICK_PER_SECOND); SysTick_Config(SystemCoreClock / RT_TICK_PER_SECOND); /* Call components board initial (use INIT_BOARD_EXPORT()) */ ...
// INIT_APP_EXPORT(zephyr_polling_init); MSH_CMD_EXPORT(zephyr, "zephyr_polling start"); 运行时串口打印如下: initialize rti_board_start:0 done initialize drv_pm_hw_init:0 done initialize rt_hw_spi_init:0 done | / RT - Thread Operating System ...
spi_configure通过stm_spi_ops结构体被rt_spi_bus_register调用-》又被rt_hw_spi_bus_init(void)-》又被rt_hw_spi_init(void)调用-》通过INIT_BOARD_EXPORT(rt_hw_spi_init)调用进行初始化。 2 关于SPI配置,当设定最大速率后最终发现时钟频率降低2倍的原因,是因为RTT获取时钟源函数stm32_spi_init下的 SPI...
spi_configure通过stm_spi_ops结构体被rt_spi_bus_register调⽤-》⼜被rt_hw_spi_bus_init(void)-》⼜被rt_hw_spi_init(void)调⽤-》通过INIT_BOARD_EXPORT(rt_hw_spi_init)调⽤进⾏初始化。2 关于SPI配置,当设定最⼤速率后最终发现时钟频率降低2倍的原因,是因为RTT获取时钟源函数stm32_spi...
INIT_COMPONENT_EXPORT(RTT_init);#endif 使用如下代码来对接RT-Thread Nano的输入输出函数(LL库):vo...
INIT_DEVICE_EXPORT(rt_hw_i2c_init);-#endif /* defined(BSP_USING_I2C1) || defined(BSP_USING_I2C2) */+#endif /* RT_USING_I2C */ 4.1 修改I2C和ssd1306软件包配置 首先,打开RT-Thread Settings的详细配置,切换到硬件标签页,关闭“Enable Software I2C Bus”配置项,如下图所示: ...