zoujiang_zj 发表于 2010-8-6 09:31:50

请教: PMON启动后,从程序角度看,它提供哪些系统调用?

按照IBM PC 兼容电脑的推算,BIOS引导系统后,不管操作系统运行与否,BIOS都通过中断调用形式,提供各种功能的中断调用服务。咱们龙芯的PMON是否也一样?

如果提供,推测应该是用systemcall 来进行,请问哪儿有完整的调用功能说明?读PMON源代码来找,这工作量大了些。

另外,同样用类比的方法。在普通PC机上,在不同显示模式下,向显存写数据,要就能句在显示器上输出文字,要就能在显示器上绘点。我们龙芯电脑也应该是这样吧?

那龙芯的显示模式应该怎么设置,显存位置又在哪儿?(0X B3F0 0000)?

刘世伟 发表于 2010-8-6 17:24:33

mips没有软件中断的概念,只能传递参数,重新驱动硬件.

guobamantou 发表于 2010-8-6 17:57:45

pmon没有提供传统PC的bios中断功能。os接管后,就可以相当宇不存在了。

zoujiang_zj 发表于 2010-8-6 21:15:16

首先感谢 刘工 和 guobamantou 两位的帮忙。
发贴后,我又继续做程序测试。原理是:
   向 0 x 8100 0000 以上的空间写 0Xffffffff 。
   结果偶尔(我也搞不懂,电脑中也有偶然)会将屏幕写白。的确是把像素点亮!但单独用 PMON 下的 COPY 功能,把 0X8100 0000 以上的少数空间写 0X ffff ffff 也没有反应(屏幕没有写白块)。
   这些现象能表明福珑2F6004上也有显存,能向显存里写数据控制屏幕上的某个像素点吗?

zoujiang_zj 发表于 2010-8-8 21:24:37

后来,最终确定了显存(也许是)首址:0x b000 0000 ;
用COPY命令把其它地方数据复制去,屏幕上马上显示不规则的亮点;
并且,也编制程序测试了!
我的福珑 2F 6004一重新启动后,显示器分辨率被设成了640*480~~! 一个字(16位)对应着一个象素。可惜它不是以 RGB颜色模式设置的,所以目前对于颜色的规律还在查找资料和程序测试!

zoujiang_zj 发表于 2010-8-8 21:31:47

测试用的源程序(龙芯 RAYS GCC 编译)如下:
#define VGA_BASE_START        0Xb0000000
#define VGA_BASE_END                0Xb0040000
#define VGA_LINE_LEN                640       
int main()
{
       
        int h,l;
        short c,*id;
        c=0x00ff;
        for(h=0;h<=352;++h)       
        {
                c+=100;
                for(l=0;l<=640;++l)
                {
                       
                        id=VGA_BASE_START+h*VGA_LINE_LEN+2*l;
                        *id=c;
                }
        }
        return 1;
}

先将它编译成 test.o ,再用 我另一份帖子里的 LD 链接脚本进行链接
http://bbs.lemote.com/viewthread.php?tid=30888&extra=page%3D1

ld -T t.lds t.o

刘世伟 发表于 2010-8-8 23:28:33

使用fbdev的内核接口吧,可以屏蔽硬件细节.

zoujiang_zj 发表于 2010-8-9 09:04:25

回复 7# 刘世伟

谢谢刘工指点。
请问,对于键盘、硬盘读写访问等基本硬件,有没有类似的接口。

刘世伟 发表于 2010-8-9 19:29:18

都有的, 目录树就是硬盘访问接口.
键盘应该就是getc 之类的.
fopen ,fwrite ,fread,fclose,fseek

zoujiang_zj 发表于 2010-8-9 19:49:55

刘工,看来是我没把问题表明清楚~~~!
我上面说的写屏幕是:只在PMON启动,操作系统不运行时。
我问的关于键盘硬盘也问的只是在PMON支持下!
页: [1] 2 3
查看完整版本: 请教: PMON启动后,从程序角度看,它提供哪些系统调用?