请教内存中运行程序的方法

[复制链接]
 楼主| xing198200 发表于 2007-4-12 19:09 | 显示全部楼层 |阅读模式
比如说手机中的内存是有限,要加很多游戏进去时没有空间.想法是把游戏程序当文件存在flash中,当你选择某个游戏时着时才把程序拷到内存中,再运行的方法,这样就可以放入任意多个游戏.但是不知道把程序拷到内存中是怎么定位运行的,<br />有没有高手做过啊!这点一下
平常人 发表于 2007-4-12 22:03 | 显示全部楼层

PC机的软件不都是这么运行的吗?

  
zhiwei 发表于 2007-4-13 08:45 | 显示全部楼层

PC

  
zhiwei 发表于 2007-4-13 08:47 | 显示全部楼层

PC有MMU

能实现内存地址分页,没有MMU&nbsp;的处理器只能生成镜像,但是里面不能有绝对寻址的指令,否则不能运行啊。我也一直不知道怎么处理这个问题。
 楼主| xing198200 发表于 2007-4-13 10:23 | 显示全部楼层

不是pc机

不是pc机,比如说手机,当空间有限时不能当程序烧进去固化,而是放在SD卡或flash中象存放mp3一样,当需要运行时再加载进ram中运行
 楼主| xing198200 发表于 2007-4-13 10:54 | 显示全部楼层

放在数组中

定义个足够大的数组,把目标代码全部拷贝到数组中,再对数组进行处理^<br />想法是这样再怎么处理就不清楚了^^^
mybao 发表于 2007-4-13 11:08 | 显示全部楼层

建议xing198200研究一下带MMU的ARM

就什么都解决了。
zhiwei 发表于 2007-4-13 12:30 | 显示全部楼层

不知道不带MMU的

能否实现动态加载和运行。比如S3C44B0X上运行uCLinux。<br /><br />
computer00 发表于 2007-4-13 14:55 | 显示全部楼层

也晕.......

<a href="https://bbs.21ic.com/club/bbs/list.asp?boardid=35&page=1&t=2496814&tp=%u5F7B%u5E95%u5012%u584C%u4E86%7E%7E%7Ekeil%u7684CARM%u7F16%u8BD1%u5668%u597D%u8C61%u4E0D%u80FD%u8BBE%u7F6E%u751F%u6210%u76F8%u5BF9%u8DF3%u8F6C%u4EE3%u7801%uFF1F" target=_blank>https://bbs.21ic.com/club/bbs/list.asp?boardid=35&page=1&t=2496814&tp=%u5F7B%u5E95%u5012%u584C%u4E86%7E%7E%7Ekeil%u7684CARM%u7F16%u8BD1%u5668%u597D%u8C61%u4E0D%u80FD%u8BBE%u7F6E%u751F%u6210%u76F8%u5BF9%u8DF3%u8F6C%u4EE3%u7801%uFF1F</a>
djyos 发表于 2007-4-13 17:20 | 显示全部楼层

这样行不

如果你的cpu支持mmu且操作系统支持多进程,还有什么好说呢?<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;针对不使用mmu,或者不支持多进程的操作系统.在gcc环境下,可以用一下方法实现.其他开发环境,也许可以用类似的方法吧.<br />1.把操作系统和所有的5个游戏全部放在一个工程中编译.<br />2.为每个游戏建立独立的段,包括代码和数据.<br />3.每个段指定相同的运行地址,不同的加载地址,并把这个地址传递给加载程序.<br />4.当选中某游戏时,就把这个游戏的代码和数据copy到3.指定的地址中.<br />5.执行它,ok.<br /><br />以上2.3.可以修改连接脚本文件予以实现.
平常人 发表于 2007-4-13 18:21 | 显示全部楼层

最早的IBM PC使用的是不带MMU的Intel 8088,内存只有640KB

那时所有程序都是从软盘加载到RAM中,需要用到所谓Overlap的技术。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

1

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