.

.

.

common/board_r.c

1    void board_init_r(gd_t *new_gd, ulong dest_addr)
2    {
3    #ifdef CONFIG_NEEDS_MANUAL_RELOC
4            int i;
5    #endif
6    
7    #ifdef CONFIG_AVR32
8            mmu_init_r(dest_addr);
9    #endif
10    
11    #if !defined(CONFIG_X86) && !defined(CONFIG_ARM) && !defined(CONFIG_ARM64)
12            gd = new_gd;
13    #endif
14    
15    #ifdef CONFIG_NEEDS_MANUAL_RELOC
16            for (i = 0; i < ARRAY_SIZE(init_sequence_r); i++)
17                    init_sequence_r[i] += gd->reloc_off;
18    #endif
19    
20            if (initcall_run_list(init_sequence_r))
21                    hang();
22    
23            /* NOTREACHED - run_main_loop() does not return */
24            hang();
25    }

모든 전처리문 검사가 거짓이기 때문에 board_init_r함수에서는 20번줄의 initcall_run_list에 의해 init_sequence_r 리스트에 있는 함수만 수행됩니다.

.

.

.

results matching ""

    No results matching ""