IMX8 UBOOT源码分析(九)setup_mon_len函数分析

这篇博客主要分析 init_sequence_f 函数指针数组中的setup_mon_len函数:

       static const init_fnc_t init_sequence_f[] = {
                setup_mon_len,

                static int setup_mon_len(void)
                {
                  #if defined(__ARM__) || defined(__MICROBLAZE__)                         //编译时传入定义__ARM__
                      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) || defined(CONFIG_RISCV)
                      gd->mon_len = (ulong)(&__bss_end) - (ulong)(&_start);
                  #elif defined(CONFIG_SYS_MONITOR_BASE)
                      gd->mon_len = (ulong)&__bss_end - CONFIG_SYS_MONITOR_BASE;
                  #endif

                  return 0;
                }
               

               //setup_mon_len功能是根据链接文件中的__bss_end 和_start标签计算uboot的大小,并初始化给gd->mon_len

              这个函数功能比较简单,后面继续分析init_sequence_f 中的其他函数

猜你喜欢

转载自blog.csdn.net/yanggx0929/article/details/88785141