uclinux-2008R1-RC8(bf561)到VDSP5的移植(17):.l1.text

时间:2020-12-01 06:34:53
 
  
经过前面的处理后,VDSP报告链接的一个警告:
[Warning li2060] The following input section(s) that contain program code
        and/or data have not been placed into the executable for processor 'p0'
        as there are no relevant commands specified in the LDF:
 
        corea.dlb[head.doj](.l1.text)
在vmlinux.lds.s中,.l1.text是放在SDRAM中的,然后用__stext_l1和__etext_l1做了标记,如下所示:
       .text_l1 L1_CODE_START : AT(LOADADDR(.init.ramfs) + SIZEOF(.init.ramfs))
       {
              . = ALIGN(4);
              __stext_l1 = .;
              LDS_L1_CODE
              . = ALIGN(4);
              __etext_l1 = .;
       }
在系统启动时,uclinux的初始化代码将把这一段区间内的代码复制到L1中运行,但是在我这里使用了模式1启动,跳过了这一步骤,因此直接在LDF文件中将.l1.text这个段放在了L1中,如下所示:
 
      L1_code
      {
         INPUT_SECTION_ALIGN(4)
               __stext_l1 = .;
         __CORE = 0;
         INPUT_SECTIONS($OBJECTS_CORE_A(L1_code) $LIBRARIES_CORE_A(L1_code))
        
        
         INPUT_SECTIONS($OBJECTS_CORE_A(VDK_ISR_code) $LIBRARIES_CORE_A(VDK_ISR_code))
         INPUT_SECTIONS($OBJECTS_CORE_A(cplb) $LIBRARIES_CORE_A(cplb))
         INPUT_SECTIONS($OBJECTS_CORE_A(cplb_code) $LIBRARIES_CORE_A(cplb_code))
         INPUT_SECTIONS($OBJECTS_CORE_A(noncache_code) $LIBRARIES_CORE_A(noncache_code))
         INPUT_SECTIONS($OBJS_LIBS_INTERNAL_CORE_A(program))
         INPUT_SECTIONS($OBJS_LIBS_NOT_EXTERNAL_CORE_A(program))
         INPUT_SECTIONS($OBJECTS_CORE_A(program) $LIBRARIES_CORE_A(program))
 
         INPUT_SECTIONS($LIBRARIES_CORE_A(.l1.text))
                 
         INPUT_SECTION_ALIGN(4)
               __etext_l1 = (. + 3) / 4 * 4;
        
      } > MEM_A_L1_CODE