QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1354|回复: 9

怎么能把下段DOS代码改成LINUX的啊?

[复制链接]
发表于 2005-11-15 12:39:25 | 显示全部楼层 |阅读模式
struct sc                               
{
        unsigned int  sc1;                         
              unsigned int  sc2;                       
              unsigned int  sc3;               
              unsigned int  sc4;                 
              unsigned int  sc5;
} ;
struct sc far  *pi=MK_FP(0XC800,0x00);
            
 楼主| 发表于 2005-11-15 18:27:18 | 显示全部楼层
不是吧!不就是让指针pi指向地址0xC800吗?怎么就没有人帮忙啊?
回复

使用道具 举报

发表于 2005-11-15 21:51:34 | 显示全部楼层
linux不让用户程序直接访问物理地址
回复

使用道具 举报

 楼主| 发表于 2005-11-15 22:12:27 | 显示全部楼层
不会吧!那还做什么嵌入式系统啊!晕!
回复

使用道具 举报

 楼主| 发表于 2005-11-16 11:55:19 | 显示全部楼层
难道非得自己写个函数吗?
回复

使用道具 举报

发表于 2005-11-16 12:01:19 | 显示全部楼层
用户程序不能,但内核里可以。
回复

使用道具 举报

 楼主| 发表于 2005-11-17 19:08:07 | 显示全部楼层
哭!
回复

使用道具 举报

发表于 2005-11-20 21:30:03 | 显示全部楼层
-_-||
有的时候我挺为mozilla感到难过的,同时也为sjinny退出这个岗位感到庆幸……总之~在这个位置上要解释和面对的东西都是那么复杂而又那么简单……那么困难而又那么单调……
总之……一句话~当编程版斑竹挺苦的……
回复

使用道具 举报

发表于 2005-11-20 23:19:24 | 显示全部楼层
说实话,不是没有办法,但是,与改程序相比,那个方法实在
是件痛苦的事情。

就是改ld的缺省脚本,把0XC800分配成静态段。

btw,会改ld脚本的家伙全是会写内核的家伙。
回复

使用道具 举报

 楼主| 发表于 2005-11-27 00:57:02 | 显示全部楼层
由于上段代码的物理地址是0XC8000,属于640K到1M的地址空间,故可以用内存映射的方法将该内存映射到虚拟内存中就可以了,然后用read 或memcpy就可以了,三天前搞定!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-3 02:26 , Processed in 0.041000 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表