rilyyu
驱动小牛
驱动小牛
  • 注册日期2006-11-17
  • 最后登录2010-08-17
  • 粉丝0
  • 关注0
  • 积分512分
  • 威望130点
  • 贡献值0点
  • 好评度127点
  • 原创分0分
  • 专家分0分
阅读:1277回复:3

如何在bootloader中分配大内存

楼主#
更多 发布于:2007-03-05 10:31
  请问各位大侠,如何在bootloader中分配一块大的内存,可以用malloc,free吗?如果用应该链接什么库?还是只能静态分配,亦或尽量避免分配大内存。大家多多指教。
microsun
论坛版主
论坛版主
  • 注册日期2002-11-11
  • 最后登录2014-07-18
  • 粉丝0
  • 关注0
  • 积分1052分
  • 威望1159点
  • 贡献值0点
  • 好评度848点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-03-10 21:14
BOOTLOADER中没有这两个函数.
可以用静态分配,或者直接访问物理内存,因为在这个阶段我们的代码可以访问所有资源.
学海无涯
rilyyu
驱动小牛
驱动小牛
  • 注册日期2006-11-17
  • 最后登录2010-08-17
  • 粉丝0
  • 关注0
  • 积分512分
  • 威望130点
  • 贡献值0点
  • 好评度127点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-03-10 21:41
谢谢版主,因为我发现分配过大的静态内存比如BYTE a[512*512]会导致eboot无法正确执行,不知道是编译器不支持还是内存使用发生冲突.而且直接指定地址访问就更不知道如何避免访问到不该访问的内存了.不过主贴的问题到是已经解决,因为我的程序不必要一定使用那么大的内存.
microsun
论坛版主
论坛版主
  • 注册日期2002-11-11
  • 最后登录2014-07-18
  • 粉丝0
  • 关注0
  • 积分1052分
  • 威望1159点
  • 贡献值0点
  • 好评度848点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-03-10 22:55
EBOOT中也有像CONFIG.BIB文件中那样的配置,用来指定EBOOT把哪段地址当作RAM,
你可以在那指定RAM的范围以及大小.
其它的位置就可以随便访问了.
学海无涯
游客

返回顶部