打印

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

[复制链接]
3097|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xing198200|  楼主 | 2007-4-12 19:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
平常人| | 2007-4-12 22:03 | 只看该作者

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

使用特权

评论回复
板凳
zhiwei| | 2007-4-13 08:45 | 只看该作者

PC

使用特权

评论回复
地板
zhiwei| | 2007-4-13 08:47 | 只看该作者

PC有MMU

能实现内存地址分页,没有MMU 的处理器只能生成镜像,但是里面不能有绝对寻址的指令,否则不能运行啊。我也一直不知道怎么处理这个问题。

使用特权

评论回复
5
xing198200|  楼主 | 2007-4-13 10:23 | 只看该作者

不是pc机

不是pc机,比如说手机,当空间有限时不能当程序烧进去固化,而是放在SD卡或flash中象存放mp3一样,当需要运行时再加载进ram中运行

使用特权

评论回复
6
xing198200|  楼主 | 2007-4-13 10:54 | 只看该作者

放在数组中

定义个足够大的数组,把目标代码全部拷贝到数组中,再对数组进行处理^
想法是这样再怎么处理就不清楚了^^^

使用特权

评论回复
7
mybao| | 2007-4-13 11:08 | 只看该作者

建议xing198200研究一下带MMU的ARM

就什么都解决了。

使用特权

评论回复
8
zhiwei| | 2007-4-13 12:30 | 只看该作者

不知道不带MMU的

能否实现动态加载和运行。比如S3C44B0X上运行uCLinux。

使用特权

评论回复
9
computer00| | 2007-4-13 14:55 | 只看该作者
10
djyos| | 2007-4-13 17:20 | 只看该作者

这样行不

如果你的cpu支持mmu且操作系统支持多进程,还有什么好说呢?

    针对不使用mmu,或者不支持多进程的操作系统.在gcc环境下,可以用一下方法实现.其他开发环境,也许可以用类似的方法吧.
1.把操作系统和所有的5个游戏全部放在一个工程中编译.
2.为每个游戏建立独立的段,包括代码和数据.
3.每个段指定相同的运行地址,不同的加载地址,并把这个地址传递给加载程序.
4.当选中某游戏时,就把这个游戏的代码和数据copy到3.指定的地址中.
5.执行它,ok.

以上2.3.可以修改连接脚本文件予以实现.

使用特权

评论回复
11
平常人| | 2007-4-13 18:21 | 只看该作者

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

那时所有程序都是从软盘加载到RAM中,需要用到所谓Overlap的技术。

使用特权

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

本版积分规则

1

主题

3

帖子

1

粉丝