uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(70):保留VDSP的heap

快乐虾

http://blog.csdn.net/lights_joy/

lights@hb165.com

 

本文适用于

ADI bf561 DSP

优视BF561EVB开发板

uclinux-2008r1.5-rc3(smp patch)

Visual DSP++ 5.0(update 5)

 

欢迎转载,但请保留作者信息

本文讨论链接:http://www.bfin-tools.org/bbs/viewthread.php?tid=22&extra=

 

出于对VDSP运行库的需要,需要为vdsp库保留一段空间做为heap

Vdsp库留了两个符号供用户进行heap的大小,在默认生成的uclinux_heaptab.c中,它是这样定义的:

extern "asm" int ldf_heap_space;

extern "asm" int ldf_heap_length;

 

 

struct heap_table_t

{

  void          *base;

  unsigned long  length;

  long int       userid;

};

 

#pragma file_attr("libData=HeapTable")

#pragma section("constdata")

struct heap_table_t heap_table[2] =

{

  { &ldf_heap_space, (int) &ldf_heap_length, 0 },

  { 0, 0, 0 }

};

ldf_heap_spaceldf_heap_length的定义则是在ldf文件中完成的,默认先从L1分配,如果空间不够再从SDRAM分配。

      L1_data_b_stack_heap

      {

         INPUT_SECTION_ALIGN(4)

         RESERVE_EXPAND(heaps_and_stack_in_L1_data_b, heaps_and_stack_in_L1_data_b_length, 0, 4)

         ldf_stack_space = heaps_and_stack_in_L1_data_b;

         ldf_stack_end = (ldf_stack_space + (((heaps_and_stack_in_L1_data_b_length * 2K) / 2K) - 4)) & 0xfffffffc;

      } > MEM_B_L1_DATA_B

我们必须将之限制在一块指定的区域之内,那就简单得多了,在ldf中添加这样一个段:

      L1_data_a_stack_heap

      {

         INPUT_SECTION_ALIGN(4)

         ldf_heap_space = .;

         ldf_heap_end = MEM_VDSP_HEAP_END;

         ldf_heap_length = ldf_heap_end - ldf_heap_space;

      } > MEM_VDSP_HEAP

直接给它一个固定值。

1       参考资料

uclinux-2008R1.5-RC3(bf561)VDSP5的移植(66)_ebss_l1(2009-02-13)

uclinux-2008R1.5-RC3(bf561)VDSP5的移植(67)li1240(2009-2-14)

uclinux-2008R1.5-RC3(bf561)VDSP5的移植(68)PLL配置(2009-02-16)

uclinux-2008R1.5-RC3(bf561)VDSP5的移植(69)SHARED_MEMORY(2009-02-17)

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌云阁主

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值