#author("2019-11-04T11:05:12+08:00","default:Admin","Admin") RT-Thread 自动初始化机制是指初始化函数不需要被显式调用,只需要在函数定义处通过宏定义的方式进行申明,就会在系统启动过程中被执行。 例如在串口驱动中调用一个宏定义告知系统初始化需要调用的函数,代码如下: &ref(): File not found: "RTT_example1.png" at page "+RTT+自动初始化机制"; 示例代码最后的 INIT_BOARD_EXPORT(rt_hw_usart_init)表示使用自动初始化功能,按照这种方式,rt_hw_usart_init()函数就会被系统自动调用,那么它是在哪里被调用的呢? 流程框图中有两个函数:rt_components_board_init()与 rt_components_init(),其后的带底色方框内部的函数表示被自动初始化的函数,其中: rt_components_board_init()函数执行的比较早,主要初始化相关硬件环境,执行这个函数时将会遍历通过 INIT_BOARD_EXPORT(fn) 申明的初始化函数表,并调用各个函数。 rt_components_init()函数会在操作系统运行起来之后创建的 main 线程里被调用执行,这个时候硬件环境和操作系统已经初始化完成,可以执行应用相关代码。 rt_components_init()函数会遍历通过剩下的其他几个宏申明的初始化函数表。
&ref(): File not found: "RTT_初始化顺序.png" at page "+RTT+自动初始化机制"; 超多機能のアクセス解析が永久無料! コメント: |