打印

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

[复制链接]
1469|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上的裸奔就是这样做的,这个做法有通用性。

使用特权

评论回复
5
zealane|  楼主 | 2008-1-8 12:03 | 只看该作者

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

谢谢所长

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

249

帖子

1

粉丝