Nuttx board_app_initialize(arg)的調用

當在menuconfig配置Application Configuration --->NSH Library --->[*] Have architecture-specific initialization時,在apps\nshlib目錄下的Kconfig有如下內容

從圖中可以看到 select LIB_BOARDCTL,在nuttx\.config中有一下生成

說明CONFIG_LIB_BOARDCTL被定義了,在nuttx\configs\boardctl.c文件的boardctl()函數調用了board_app_initialize(arg)這個函數,所以stm32f407\src\stm32_boot.c文件中的 

board_app_initialize(arg)函數纔會被執行。在apps\system\nsh\nsh_main.c中有

nuttx\configs\boardctl.c中的boardctl()函數的執行如下

依然沒看見board_app_initialize(arg)被執行。但是在apps\system\nsh\nsh_main.c中有

nsh_initialize()中有

可以看到boardctl()的傳入參數爲BOARDIOC_INIT因此board_app_initialize(arg)可以被執行了,但是在其定義區域是不活動的(?)。但是在nuttx\include\nuttx\config.h中定義了CONFIG_NSH_ARCHINIT,並且在nuttx\.config也有如下定義

因此board_app_initialize(arg)被執行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章