知識社群登入
位置: 艾鍗學院 Blog > 專業論壇 > 討論
[嵌入式Linux 實作問題]function pointer 實例??
1樓
 
 joseph,
 
 今天對於你提到 function pointer 不很熟,
 有sample 參考嗎?
 
 thank you
2樓
 
 /*把你要做的各種 initital 函式定義成一個table 的概念*/
 
init_fnc_t *init_sequence[] = {
    cpu_init,       /* basic cpu dependent setup */
    board_init,     /* basic board dependent setup */
    interrupt_init,     /* set up exceptions */
    env_init,       /* initialize environment */
    init_baudrate,      /* initialze baudrate settings */
    serial_init,        /* serial communications setup */
    console_init_f,     /* stage 1 init of console */
    display_banner,     /* say that we are here */
    dram_init,      /* configure available RAM banks */
    display_dram_config,
    NULL,
};
 
 /* 使用for loop 將talbe 內所有 initital 函式一一執行 
    優點: 程式簡潔清楚, 所有iniitial 的動作, 從table看一覽無遺,
    若想要改變 init 執行順序,只要改變  table 內的次序即可,  
*/

    for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) {
        if ((*init_fnc_ptr)() != 0) {
            hang ();
        }
    }
3樓
 
 joseph ,
 
   thank you~