ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • static int setup_mon_len(void)
    Boot Loader/U-BOOT 2019. 9. 25. 22:36

    /common/board_f.c

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    static int setup_mon_len(void)
    {
    #if defined(__ARM__) || defined(__MICROBLAZE__)
        gd->mon_len = (ulong)&__bss_end - (ulong)_start;
    #elif defined(CONFIG_SANDBOX) || defined(CONFIG_EFI_APP)
        gd->mon_len = (ulong)&_end - (ulong)_init;
    #elif defined(CONFIG_NIOS2) || defined(CONFIG_XTENSA)
        gd->mon_len = CONFIG_SYS_MONITOR_LEN;
    #elif defined(CONFIG_NDS32) || defined(CONFIG_SH)
        gd->mon_len = (ulong)(&__bss_end) - (ulong)(&_start);
    #elif defined(CONFIG_SYS_MONITOR_BASE)
        /* TODO: use (ulong)&__bss_end - (ulong)&__text_start; ? */
        gd->mon_len = (ulong)&__bss_end - CONFIG_SYS_MONITOR_BASE;
    #endif
        return 0;
    }
     

     

    __ARM__은 C 및 C++에서 ARM 컴파일러가 사전 정의하는 매크로다.

    그래서 실행되어야하는데

     

    CONFIG_SYS_MONITOR_BASE=0x00000000으로 정의되어있어서

    13번라인도 실행되어질수있으나

     

    if와 else if 우선순위가 3번라인이므로 4번라인이 실행되는것 같다.

    __bss_end-_start는 메모리 맵에서 스택과 힙영역을 제외한 크기다.

     

     

    'Boot Loader > U-BOOT' 카테고리의 다른 글

    int initf_malloc(void)  (0) 2019.09.26
    int fdtdec_setup(void)  (0) 2019.09.25
    _main  (0) 2019.09.25
    static const init_fnc_t init_sequence_f[]  (0) 2019.09.25
    int initcall_run_list(const init_fnc_t init_sequence[])  (0) 2019.09.25

    댓글

Designed by Tistory.