uclinux-2008R1-RC8(bf561)到VDSP5的移植(18):.init.text和.init.data

 

经过前述处理,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[coreA.doj](.init.text)
在uclinux内核中.init.*段是放在数据段的后面的,这样在系统启动完成后,这一段内存空间将可以进行回收,如下所示:
       ___init_begin = .;
 
       .init.text :
       {
              . = ALIGN(PAGE_SIZE);
              __sinittext = .;
              *(.init.text)
              __einittext = .;
       }
       .init.data :
       {
              . = ALIGN(16);
              *(.init.data)
       }
在这里用了___init_begin来存储初始化段的起始地址,但在符号定义只能放在段的内部,因此在LDF文件中相应修改:
 
        .init
        {
               ___init_begin = .;
 
               //.init.text
               INPUT_SECTION_ALIGN(4096)
               . = (. + 4095) / 4096 * 4096;
               __sinittext = .;
               INPUT_SECTIONS($LIBRARIES_CORE_A(.init.text))
               __einittext = .;
               
               //.init.data
               INPUT_SECTION_ALIGN(16)
               INPUT_SECTIONS($LIBRARIES_CORE_A(.init.data))
             
        } > MEM_SDRAM
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lights_joy/article/details/2383489
文章标签: input 存储
个人分类: bf561-uclinux
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭