自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 资源 (4)
  • 收藏
  • 关注

原创 实现自己的操作系统 第三部分

3-12006-1-9 23:43实现了和C函数的整合。ld -Ttext org之后的obj的顺序似乎有讲究。call 命令对堆栈的影响: 16位的实模式中,会将cs和ip压栈,因此栈会减少4。 32位的保护模式中,如果是段内调用,只会将eip压栈;如果是段间调用,会将eip和cs入栈,不过目前还没遇到过这种情况。C函数调用约定 参数从右向左入栈,在汇编中等调用完后,要手动将

2008-03-31 12:59:00 906

原创 实现自己的操作系统 第二部分

2-1实现了内存的检测。下一步:读kernel.bin到内存。目前内存信息放在8000:f000开始的4k空间中。以后此空间会被拷贝到“0页”,即0x00104000处。Linux中关于内存检测的参数在e820.h中。内存检测结果如下:00 00 00 00 00 00 00 00  00 FC 09 00 00 00 00 00 01 00 00 0000 FC 09 00 00 0

2008-03-28 13:23:00 998

原创 实现自己的操作系统 第一部分

1-1实现了一个简单的函数调用。重点是里面对栈的应用。call返回时调用ret,后面有一个数字,代表调用时有多少字节数据入栈。 1-2实现了代码的自我搬移。include不能放在文件开头,因为程序执行时是从第一行开始。(可能能够重定位,目前未知)搬移后标记的内存地址都需要重新调整。当使用短跳转或短call调用的时候,标号不需要调整,因为这里的操作数的间接地址,即两个

2008-03-27 16:29:00 810

原创 实现自己的操作系统--序

最近整理电脑,找到自己2年以前写的一个操作系统,放到网上共享一下。当时的代码有的地方看起来还比较幼稚。系统开始时的bootloader部分是参考《自己动手写操作系统》做的,那本书里面如何搭建环境写得很详细,另外还有一些PC的基本概念写的也不错,推荐大家看一下;从分段分页开始我参考了Linux2.4的风格,没有按照那本书上的走。调试环境是Virtual PC和Bochs。以下为当时写的总结:

2008-03-27 15:48:00 909

原创 使用CArchive实现对象的串行化保存

注意: 下面示例中的obj1、obj2等均需要DECLARE_SERIAL和IMPLEMENT_SERIAL的操作。或者可以是基本Windows类型,以及CString等。读文件        CFile file;        CFileException fe;        //以读方式打开文件        if(!file.Open(filename,CFile::modeRead,&

2008-03-26 13:28:00 1092

原创 WCDMA相关术语整理

UMTS由UE(用户设备)、UTRAN(陆地无线接入网)和CN(核心网)三部分组成。UE包括ME和USIM。UTRAN包括NodeB(无线收发信机,基站)和RNC(无线网络控制器)。CN为核心网络,分为电路域和分组域两大部分。CS域 电路交换域,走语音业务PS域 分组(包)交换域,走数据业务,使用IP3G下,接入网(RAN)同时连接CS和PS,即核心网(CN)分成CS和PS两部分,打电

2008-03-13 16:39:00 1621

原创 从网上整理的一些电信词汇

PSTN    公共交换电话网络  指所有电路交换式电话网络的集合,即固定电话网络,提供英特网相当一部分长距离基础设施。PSDN  公共交换数字网络。ISDN    一般指N-ISDN,即整合服务数字网络,能提供128Kbps的上网速率。它能使用户同时打电话和上网,一般电话线是模拟的,而ISDN是数字的,它提供两个信道,称为B信道,每个信道提供64Kbps的速率。同时上网和电话时,两个信道

2008-03-13 16:10:00 1393

原创 Linux USB驱动中URB的使用

 usb_alloc_urbusb_free_urb分配和释放urb的填充:    写明urb的类型,可以是ctrl、bulk、int和iso。    填入回调函数。usb_submit_urbusb_unlink_urb将urb结构填充或从usb体系中注销。当urb的类型是iso或int时,一个urb的回调函数可能会被多次调用。bulk时,可以提交read或write的urb,回调函数用来通知一

2008-03-09 23:34:00 2189

原创 Linux设备驱动中的异步操作

首先,打开目标设备。第二,设置好目标设备的SIGIO信号处理程序。第三,需要通过fcntl系统调用,使当前进程变成文件的主人。(这样才能使文件中的信号发到当前进程)第四,通过ioctl系统调用,将目标通道设置成异步操作模式。在驱动程序的fops中,有一个函数    int (*fasync)(int fd, struct file * file, int on);在系统调用sys_ioctl的时候

2008-03-09 23:31:00 1695

原创 Linux的poll和select

 Linux中的字符设备驱动中有一个函数unsigned int (*poll)(struct file * fp, struct poll_table_struct * table)此函数在系统调用select内部被使用,作用是把当前的文件指针挂到设备内部定义的等待队列中。这里的参数table可以不考虑,是在select函数实现过程中的一个内部变量。函数具体实现时:    wait_queue_

2008-03-09 23:27:00 1557

关于ELF文件格式的官方文档

关于Linux中常用的ELF文件格式的官方文档

2011-02-10

OS 1-x

详见本人blog,自己写的操作系统的第一阶段

2008-03-27

ucgui移植到windml

ucgui移植到windml的代码

2008-01-29

vxworks BSP的移植源码(lpc2210)

vxworks BSP的移植源码(lpc2210)

2007-12-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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