引用: 引用 6 楼 so927 的回复:
g_oalAddressTable
? ? ; mDDR 128 MB
? ? ? ? ;DCD? ? 0x80000000, 0x50000000,? 64? ? ; 64 MB DRAM
? ? ? ? DCD? ? 0x80000000, 0x50000000,? 128? ? ; 128 MB DRAM
? ? ? ?DCD 0x88000000, 0x58000000,? 128? ? ? ; 128 MB Ext
红色部分是我在oemaddrtab_cfg.inc中添加的一句,然后在OAL\oal\init.c中添加了一个函数如下:
C/C++ codeBOOL OEMGetExtensionDRAM (LPDWORD pMemoryStart, LPDWORD pMemoryLength)
{*pMemoryStart=0x88000000;*pMemoryLength=0x08000000;
OALMSG(TRUE, (L"[OAL] OEMGetExtensionDRAM(LPDWORD pMemoryStart, LPDWORD pMemoryLength)\r\n"));return TRUE;
}
系统启动的时候我看了一下调试信息,这个函数已经被调用了,但是进入系统后,我查看了一下内存,还是那么大,并没有增加呢
谢谢
引用: 引用 6 楼 so927 的回复:
g_oalAddressTable
? ? ; mDDR 128 MB
? ? ? ? ;DCD? ? 0x80000000, 0x50000000,? 64? ? ; 64 MB DRAM
? ? ? ? DCD? ? 0x80000000, 0x50000000,? 128? ? ; 128 MB DRAM
DCD 0x88000000, 0x58000000,? 128? ? ? ; 128 MB Ext
红色部分是我在oemaddrtab_cfg.inc中添加的一句,然后在OAL\oal\init.c中添加了一个函数如下:
C/C++ codeBOOL OEMGetExtensionDRAM (LPDWORD pMemoryStart, LPDWORD pMemoryLength)
{*pMemoryStart=0x88000000;*pMemoryLength=0x08000000;
OALMSG(TRUE, (L"[OAL] OEMGetExtensionDRAM(LPDWORD pMemoryStart, LPDWORD pMemoryLength)\r\n"));return TRUE;
}
系统启动的时候我看了一下调试信息,这个函数已经被调用了,但是进入系统后,我查看了一下内存,还是那么大,并没有增加呢
谢谢
引用: 引用 7 楼 so927 的回复:
我刚刚看了一下,wince6的BSP中包含了三个start.s文件,一个是steploader中的,一个是eboot中的,还有一个是wince中OAL的,
bootloader中有一句mov? ? ? ? ? r3, #128? ? ? ? ? ? ? ? ? ? ; 128MB DRAM
不知道是不更改这句呢,
BSP中还需要更改那些呢,config.bib需要修改吗,有人说可以不用修改,利用OEMGetExtensionDRAM 来扩展内存。还有一个imag_cfg.h文件中有一些宏定义,是否也需要修改呢!
太多了,晕了
引用: 引用 11 楼 guopeixin 的回复:
引用 6 楼 so927 的回复:
g_oalAddressTable
? ? ; mDDR 128 MB
? ? ? ? ;DCD? ?? 0x80000000, 0x50000000,? 64? ?? ; 64 MB DRAM
? ? ? ? DCD? ?? 0x80000000, 0x50000000,? 128? ?? ; 128 MB DRAM
DCD 0x88000000, 0x58000000,? 128? ? ? ; 128 MB Ext
红色部分是我在oemaddrtab_cfg.inc中添加的一句,然后在OAL\oal\init.c中添加了一个函数如下:
C/C++ codeBOOL OEMGetExtensionDRAM (LPDWORD pMemoryStart, LPDWORD pMemoryLength)
{*pMemoryStart=0x88000000;*pMemoryLength=0x08000000;
? ? OALMSG(TRUE, (L"[OAL] OEMGetExtensionDRAM(LPDWORD pMemoryStart, LPDWORD pMemoryLength)\r\n"));return TRUE;
}
系统启动的时候我看了一下调试信息,这个函数已经被调用了,但是进入系统后,我查看了一下内存,还是那么大,并没有增加呢
谢谢
不连续的内存是要通过你这种方式进行回报给os
但是你的OEMGetExtensionDRAM (LPDWORD pMemoryStart, LPDWORD pMemoryLength)实现时有问题的,之前我这边用过
引用: 引用 10 楼 gooogleman 的回复:
引用 6 楼 so927 的回复:
g_oalAddressTable
? ? ; mDDR 128 MB
? ? ? ? ;DCD? ? 0x80000000, 0x50000000,? 64? ? ; 64 MB DRAM
? ? ? ? DCD? ? 0x80000000, 0x50000000,? 128? ? ; 128 MB DRAM
? ? ? ?DCD 0x88000000, 0x58000000,? 128? ? ? ; 128 MB Ext
红色部分是我在oemaddrtab_cfg.inc中添加的一句,然后在OAL\oal\init.c中添加了一个函数如下:
C/C++ codeBOOL OEMGetExtensionDRAM (LPDWORD pMemoryStart, LPDWORD pMemoryLength)
{*pMemoryStart=0x88000000;*pMemoryLength=0x08000000;
? ? OALMSG(TRUE, (L"[OAL] OEMGetExtensionDRAM(LPDWORD pMemoryStart, LPDWORD pMemoryLength)\r\n"));return TRUE;
}
系统启动的时候我看了一下调试信息,这个函数已经被调用了,但是进入系统后,我查看了一下内存,还是那么大,并没有增加呢
谢谢
不是在这里添加的。这里都没有链接这里,在platform Common的目录里