-
static int setup_mon_len(void)Boot Loader/U-BOOT 2019. 9. 25. 22:36
/common/board_f.c
12345678910111213141516static 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;#endifreturn 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