阅读:1554回复:4
如何在指定地址的SDRAM中分配使用一块内存
比如SDRAM的地址0x50000;
如题,请大侠帮忙!! |
|
沙发#
发布于:2004-08-19 09:16
??
不就是指定地址,将数据写入就完了吗? MOV DPTR, #5000H MOVX @DPTR, XXX 你的地址是32位,硬件电路改一下,或用32位处理器(什么东西?). 不明白你的意思. |
|
|
板凳#
发布于:2004-08-19 11:04
对啊,直接指定地址不就完了?
例如你要往0x51000起始的地址里写数据,用c语言的话就定义个一个指针指向这个地址,然后往这个指针指向的地址里写数据就可以了,用汇编就像楼上所说的那样。 如果你想用malloc之类的函数做的话,就在配置memory的时候把malloc的区域定义在0x50000起始的空间里 |
|
地板#
发布于:2004-08-19 12:37
你用的是dsp吗?
如果是用下面的方法: #pragma DATA_SECTION(gMp3, "ERAM") int gMp3[200000]; 我想ERAM应该是你的cmd文件中定义的一块空间,例如这个空间从0x50000开始,长度为0x10000 用上述方法定义的gMp3就会分配在这块空间中。 如果不是dsp,则另当别论,就当我没说过,呵呵 |
|
地下室#
发布于:2004-08-19 12:44
回复metalwing ,jinghuiren
我是想在一块指定地址的SDRAM内分配一个大容量的数组,用C语言该如何实现呢? 比如,数组 __align(4) char Buffer[40000];分在0x50000起始地址 这个函数该怎样改呢?? void get_small(size_t sizeofobject) { return ((void *) &(Buffer[sizeofobject])); } |
|