网站公告列表

  没有公告

加入收藏
设为首页
联系本站
您现在的位置: Analog安诺电子网 >> 文章 >> 技术交流 >> 文章正文
  uclinux-2008R1-RC8(bf561)到VDSP5的移植(33):__ebss_l1           ★★★ 【字体:
uclinux-2008R1-RC8(bf561)到VDSP5的移植(33):__ebss_l1
作者:快乐虾    文章来源:http://blog.csdn.net/lights_joy    点击数:    更新时间:2008-5-15    
在setup_arch函数的末尾,有这样的语句:
 
     /* Copy atomic sequences to their fixed location, and sanity check that
        these locations are the ones that we advertise to userspace. */
     memcpy((void *)FIXED_CODE_START, &fixed_code_start,
            FIXED_CODE_END - FIXED_CODE_START);
     BUG_ON((char *)&sigreturn_stub - (char *)&fixed_code_start
            != SIGRETURN_STUB - FIXED_CODE_START);
     BUG_ON((char *)&atomic_xchg32 - (char *)&fixed_code_start
            != ATOMIC_XCHG32 - FIXED_CODE_START);
     BUG_ON((char *)&atomic_cas32 - (char *)&fixed_code_start
            != ATOMIC_CAS32 - FIXED_CODE_START);
     BUG_ON((char *)&atomic_add32 - (char *)&fixed_code_start
            != ATOMIC_ADD32 - FIXED_CODE_START);
     BUG_ON((char *)&atomic_sub32 - (char *)&fixed_code_start
            != ATOMIC_SUB32 - FIXED_CODE_START);
     BUG_ON((char *)&atomic_ior32 - (char *)&fixed_code_start
           != ATOMIC_IOR32 - FIXED_CODE_START);
     BUG_ON((char *)&atomic_and32 - (char *)&fixed_code_start
            != ATOMIC_AND32 - FIXED_CODE_START);
     BUG_ON((char *)&atomic_xor32 - (char *)&fixed_code_start
            != ATOMIC_XOR32 - FIXED_CODE_START);
     BUG_ON((char *)&safe_user_instruction - (char *)&fixed_code_start
         != SAFE_USER_INSTRUCTION - FIXED_CODE_START);
在这里,FIXED_CODE_START等几个定义都在include/asm/fixed_code.h中:
///* This file defines the fixed addresses where userspace programs can find
//   atomic code sequences. */
//
#define FIXED_CODE_START    0x400
//
#define SIGRETURN_STUB      0x400
//
#define ATOMIC_SEQS_START   0x410
//
#define ATOMIC_XCHG32       0x410
#define ATOMIC_CAS32        0x420
#define ATOMIC_ADD32        0x430
#define ATOMIC_SUB32        0x440
#define ATOMIC_IOR32        0x450
#define ATOMIC_AND32        0x460
#define ATOMIC_XOR32        0x470
//
#define ATOMIC_SEQS_END     0x480
//
#define SAFE_USER_INSTRUCTION   0x480
//
#define FIXED_CODE_END      0x490
//
fixed_code_start则是arch/ blackfin/ kernel/fixed_code.s中定义的一个符号。在fixed_code.s中有一段说明:
/*
 * This file contains sequences of code that will be copied to a
 * fixed location, defined in <asm/atomic_seq.h>. The interrupt
 * handlers ensure that these sequences appear to be atomic when
 * executed from userspace.
 * These are aligned to 16 bytes, so that we have some space to replace
 * these sequences with something else (e.g. kernel traps if we ever do
 * BF561 SMP).
 */
但是实在不明白为什么要将这些代码复制到这个固定的位置??
这段代码会引发一些符号链接错误,主要是__ebss_l1这样的符号,这些符号的定义在vmlinux.lds中,因此相应地在LDF文件中进行修改:
 
      L1_data_a
      {
         INPUT_SECTION_ALIGN(4)
         ___l1_data_cache_a = 0;
               __sdata_l1 = .;
         INPUT_SECTIONS($LIBRARIES_CORE_A(.l1.data))
               __edata_l1 = .;
 
         INPUT_SECTION_ALIGN(4)
               __sbss_l1 = .;
         INPUT_SECTIONS($LIBRARIES_CORE_A(.l1.bss))
 
         INPUT_SECTION_ALIGN(32)
         INPUT_SECTIONS($LIBRARIES_CORE_A(.data_l1.cacheline_aligned))
 
         INPUT_SECTION_ALIGN(4)
               __ebss_l1 = .;
                            
         INPUT_SECTIONS($OBJECTS_CORE_A(L1_data_a) $LIBRARIES_CORE_A(L1_data_a))
         
         RESERVE(heaps_and_stack_in_L1_data_a, heaps_and_stack_in_L1_data_a_length = 2K,4)
         INPUT_SECTIONS($OBJECTS_CORE_A{DualCoreMem("CoreA")}(cplb_data) $LIBRARIES_CORE_A{DualCoreMem("CoreA")}(cplb_data))
         INPUT_SECTIONS($OBJECTS_CORE_A(cplb_data) $LIBRARIES_CORE_A(cplb_data))
        
      } > MEM_A_L1_DATA_A
在这里仍然保留了VDSP向导对heap的定义,因为不知道要引用的VDSP库中是否要使用malloc这样的函数来分配内存。
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    基于DSP的数字式MEMS加速度传
    开放原始码热力延烧DSP支援u
    uclinux2.6(bf561)内核中的p
    uclinux2.6(bf561)内核中的c
    将LCD接到便携式多媒体应用上
    在恶劣环境中调理信号:关于
    单片机在机床刀具过载保护与
    嵌入式系统的发展趋势
    uclinux2.6(bf561)中的bootm
    uclinux2.6(bf561)中的bootm
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    版权所有:Analog安诺电子网 湘ICP备06016315号