大坡3D软件开发

因我而不同--用软件来改变世界

试验开发第三代操作系统

随着计算机技术的发展,技术越来越先进了,具有强劲3D运算的显示卡和大容量低价内存的到来,要进入第三代操作系统开发了。 以DOS和unix命令行的操作系统为代表的第一代操作系统,以Windows和X Windows等为代表的第二代2D图形操作系统。那么第三代操作系统,就是以3D界面为主的操作系统就快...

2007-01-29 13:03:00

阅读数:10285

评论数:29

龙芯软件开发(30)-- 自动加载操作系统

龙芯BIOS的最终目的,还是需要加载一个更好的操作系统。当你在启动时不按下任何按键,pmon就会自动地加载缺省设置的操作系统。它的实现代码如下:#ifdef AUTOLOAD    s = getenv ("al");    autoload (s);#else    s = ...

2007-01-26 22:21:00

阅读数:4570

评论数:0

龙芯软件开发(29)-- 键盘初始化

如果你的记性好,也许看到前面有一些键盘初始化了,但那里的初始化是设置南桥接收键盘数据输入和输出而已,只是一个接口,或者是一个代理。在这里才是开始真正初始化键盘,让键盘工作在合适的方式。在电脑里,显示卡输出信息给人看,而键盘扮演着另一个角色,就是让人们可以输入东西,控制电脑做各种各样的事情。虽然电脑...

2007-01-25 23:42:00

阅读数:4662

评论数:0

龙芯软件开发(28)-- 显示卡初始化

在上一次里,已经说到初始化网络,在那里提到调用一个函数tgt_devconfig来初始化其它重要的设备。这其中就有一个重要的设备要初始化的,它就是显示卡。下面就来仔细地阅读这个函数的代码,如下:voidtgt_devconfig(){#if NMOD_VGACON > 0    int rc...

2007-01-24 21:47:00

阅读数:6219

评论数:2

龙芯软件开发(27)-- 网络初始化

现在的世界,都是网络的世界了。没有网络是不可想像的,失去太多激动人心的时刻。没有网络,就不可能方便地交流数据,BLOG也不可发达到目前这种程度。就是在PMON的调试里,使用网络也是非常方便的。比如想开发PMON运行的程序,就可以使用网络加载,比如TFTP加载程序。这样就不用每次去写硬盘,或者写到其...

2007-01-23 22:15:00

阅读数:4229

评论数:0

龙芯软件开发(26)-- PCI设备初始化4

继续来分析PCI设备的搜索过程,下面就是通过调用搜索程序来实现的。for(i = 0, pb = _pci_head; i pci_roots; i++, pb = pb->next) {           _pci_scan_dev(pb, i, 0, init);       } 接着...

2007-01-19 23:18:00

阅读数:4687

评论数:0

龙芯软件开发(25)-- PCI设备初始化3

上面继续初始化南桥之后,再接着下来,就要初始化PCI总线上其它的设备了。看下面的代码: CPU_ConfigCache();上面重新配置龙芯2E的缓存。     _pci_businit(1); /* PCI bus initialization */上面继续初始化PCI总线上的设备,这个函数里要...

2007-01-16 00:37:00

阅读数:4486

评论数:3

龙芯软件开发(24)-- PCI设备初始化2

在汇编的代码里,已经进行了串口初始化,在这里更进一步初始化串口,它是通过调用下面的代码实现的:#define SUPERIO_CFG_REG 0x85上面定义南桥里串口寄存器地址。 static void initSerial(void){    pcitag_t tag;    char con...

2007-01-14 23:44:00

阅读数:4967

评论数:0

我与龙芯电脑的第一次亲密接触

在深圳,今年的冬天来得特别迟,比往年都显得异常暖和,但前几天一股寒冷的北风吹来,猛烈地狂扫华南,好像在提醒人们冬天来了,深圳电视台也特别地播放气象台发布的寒冷警告。忙忙忙碌碌的深圳,快节奏的生活,人们好像不在意这些变化。       这么寒冷的天气里,我还在热情地盼望着我的龙芯电脑到来。“来了,来...

2007-01-11 14:16:00

阅读数:21660

评论数:83

龙芯软件开发(23)-- PCI设备初始化

目前在个人电脑里,主板上使用局部总线技术把不同的设备连接在一起,这样就可以随时添加设备到总线上。比如主板上一般都有很多PCI插槽,可以插入显示卡、声卡、网卡以及符合PCI总线标准的其它设备。当然,还有很多低速的外围设备不能直接跟PCI局部总线相连接的,比如IDE硬盘、软盘、USB、键盘、鼠标等等,...

2007-01-11 00:05:00

阅读数:5106

评论数:0

龙芯软件开发(22)-- 初始化环境参数

由于不同的主板,芯片配置的不一样,因此参数也不一样,那么就要保存一些参数在Flash里面,以便配置硬件。现在就看关于这方面的代码,如下:voidenvinit (){    int i;     SBD_DISPLAY ("MAPV", CHKPNT_MAPV);     /*...

2007-01-08 21:55:00

阅读数:4729

评论数:0

龙芯软件开发(21)-- 调试与功能选择

继续分析原来的代码,现在已经进入一个比较重要的函数dbginit(),因此这个函数相当复杂的功能调用。 /*     * Init PMON and debug     */    cpuinfotab[0] = &DBGREG;    dbginit(NULL);第一行代码cpuinfo...

2007-01-07 19:44:00

阅读数:4422

评论数:0

龙芯软件开发(20)-- 频率和初始化实时时钟

 前面已经介绍进入C语言世界,就会实现更多的功能,支持更多的应用。现在就来仔细地分析源程序,并且理解各部份功能实现。首先来看看下面的函数:/* *   Returns the external clock frequency, usually the bus clock */inttgt_cpuf...

2007-01-06 23:43:00

阅读数:4208

评论数:0

龙芯软件开发(19)-- C函数入口

经历了漫长的汇编之路,最终走到光明的C世界了,进入高级语言环境,会让开发更方便,写更少的语句就可以实现更多的功能。从这里开始,就初始化PCI局部线所有设备,初始化南桥所有的功能,初始化IDE硬盘,初始化网络,初始化显示卡,并进入响应命令阶段。下面就来分析C函数部份功能,当然它还有时需要调用汇编子函...

2007-01-05 23:25:00

阅读数:4985

评论数:0

龙芯软件开发(18)-- 乾坤大挪移,从ROM到RAM

前面已经初始化内存和龙芯的缓存,那么现在已经差不多把新房子已经建立好了,要进入新房居住了。在SDRAM里的存取速度比ROM里快很多,并且可以随时修改数据,而在ROM是不能修改的,就算可以修改,也是非常慢的。从上面初始化缓存回来后,就运行到下面的程序:#####xuhua########open c...

2007-01-04 22:36:00

阅读数:7063

评论数:1

首批"福珑"电脑集体亮相 1月2号开始发货

PConline北京1月1日[文/操刚] 在PConline新闻组刚刚和中科龙梦科技取得联系之后,该公司对外媒体负责人吴少刚博士表示元旦前后会将产品做出并寄给用户。就在今天,龙梦科技技术支持论坛发出消息,首批基于龙芯2E处理器的电脑将从2007年1月2日起开始寄发给预订用户。  基于国产龙芯处理器...

2007-01-04 09:59:00

阅读数:2646

评论数:0

龙芯软件开发(17)-- 初始化龙芯2E缓存

自从RISC类型的CPU开发出来以后,拥有缓存的CPU已经越来越普遍了,从嵌入式的CPU到桌面通用的CPU,或者大型机群的CPU,都具有大量的缓存。由于很多程序都具有局部循环特性,使用缓存就可以大大地提高CPU效率。比如像下面的程序: int nSum = 0;for(int i = 0; i {...

2007-01-03 22:13:00

阅读数:6011

评论数:0

龙芯软件开发(16)-- 内存参数读取

前面已经介绍通过读取内存条上的EEPROM来获取内存配置参数的,现在来仔细地分析这段代码是怎么样实现的。li a1, 0x01:    li a0,0xa1     bal i2cread    nop 上面这段代码,把0设置给a1,然后把0xa1设置给a0,然后就调用I2C的子函数来读取数据。下...

2007-01-02 12:37:00

阅读数:5564

评论数:0

龙芯软件开发(15)-- 搬家前的准备

龙芯软件开发(15)-- 搬家前的准备 任何人在搬家前,都需要把新房子修建好,然后再经过装修才能住到新房子里,然而这里的启动程序也不例外,需要把自己的房子先修好,并且通过装修才会住进里面。当然,程序所需要的房子,不是普通的房子,而是内存空间。由于在ROM运行的速度都是比较慢,并且空间有限,不能随时...

2007-01-01 01:04:00

阅读数:4953

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭