学了所长的通用模块处理思想。但是移植出现问题。

[复制链接]
2139|4
 楼主| zealane 发表于 2008-1-8 09:37 | 显示全部楼层 |阅读模式
所用环境是DSP F2812 ,外存地址从0x00130000到0x00140000,在做内存分配时,申请10个地址空间,虽然在Memory_Malloc 得到的内存地址为0x0012FFF5,但是传递到主函数时,这个地址变成了0xFFFFFFF5,使得地址分配出错。不知道是何种原因。

所长的内存分配这一块,感觉在dsp中很难无缝移植啊。。。。。
农民讲习所 发表于 2008-1-8 10:12 | 显示全部楼层

这是S3C2410上的内存分配

extern unsigned char Image$$ZI$$Limit[];

//-------------------------------------------------------------------------
//内存初始化
//内存初试指针总是指向RAM最后
//Image$$RW$$Limit是变量区最后结束地址,后面紧跟4*256的栈区SVC_Stack、IRQ_Stack、FIQ_Stack、保留
//-------------------------------------------------------------------------
void Memory_Init(void)
{
    this.pRamHeap = (unsigned char *)(Image$$ZI$$Limit+256*4+1024);
}


51上比较特殊。
农民讲习所 发表于 2008-1-8 10:14 | 显示全部楼层

大部分是用内部变量:

extern unsigned char __bss_end;                            //&__bss_end为系统HEAP区开始
农民讲习所 发表于 2008-1-8 10:34 | 显示全部楼层

最简单方法

先申请块最大的数组,然后分配的指针指向数组开始。俺在WINDOW上的裸奔就是这样做的,这个做法有通用性。
 楼主| zealane 发表于 2008-1-8 12:03 | 显示全部楼层

先申请块最大的数组,然后分配的指针指向数组开始

谢谢所长
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

249

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部