自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 关于de2-70的一些知识

注意的是Avalon Master和Avalon Tristate Slave不能直接连接,需要经过Tristate Bridge。

2011-03-15 23:15:00 1222

原创 xv6对硬盘的操作

<br />硬盘IDE(integrate device electronics)的读取方式一chs (柱面,磁头,扇区)二:LBA(logicblockaddress)它是为了适应硬盘容量的快速生成出现的;<br />下面介绍在LBA的模式下的PIO(program IO)来实现对磁盘的读取操作;<br />主板有两个iDE通道,每个通道可挂载两个硬盘:访问第一个通道的第一个硬盘的扇区使用IO地址寄存器(0x1f0,0x1f1,0x1f2,0x1f3,0x1f4,0x1f5,0x1f6,0x1f7);访问

2011-03-12 18:30:00 1334

转载 gcc的命令大全

<br />  ·ChinaUnix首页 ·论坛 ·博客    Linux首页 | Linux新闻 | Linux论坛 | Linux文档 | Linux下载 | Linux博客 | Linux搜索 | 开源项目孵化平台 | 《开源时代》新手入门 | 安装启动 | 管理员指南 | 开发手册 | 桌面应用 | 程序开发 | 数据库 | 网络技术| CentOS | Fedora | MySQL |Apache | Ubuntu | Gentoo| OSCON08   Linux时代 >> 技术文档 >> 程序

2011-03-02 01:09:00 1010

原创 gcc的命令之-E

<br />运行 $gcc -E test.c,gcc对test.c进行编译预处理,并立马显示结果. (不执行编译) 2, 运行 $gcc -c<br />-save-temps test.c,不光产生test.o,还产生test.i, test.s,前者是编译预处理结果, 后者是汇编结果.<br />利用Emacs查看编译预处理结果 <br />针对含有编译预处理命令的代码,可以利用emacs方便地查看预处理结果,而不需执行编译,更为方便的是,可以只选取一段代码,而非整个文件<br /><br />

2011-03-02 01:06:00 613

原创 pic可编程中断器

<br />static ushort irqmask =0xFFFF&~(1<<IRQ_SLAVE);<br />static void <br />pic_setmask(ushort  mask)<br />{<br />irqmask=mask;<br />outb(IO_PIC1+1);<br />outb(IO_PIC2+1,mask >>8);<br />}<br /> <br />void <br />pic_enable(int irq)<br />{<br />pic_setmask(i

2011-03-02 01:01:00 517

原创 xv6的中断分析

<br />在xv6中cpu根据中断号乘以8作为IDT(Interrupt Descriptor Table中断描述符表)的索引,IDT可以是内存中的任意位置,cpu通过寄存器(IDTR中断描述符表寄存器,共6字节高4字节是IDT的起始地址,低2字节是IDT的长度)的内容寻址IDT的起始地址,指令LIDT 和SIDT来<br />操作IDTR ,LIDT (load IDT Register)包含线性地址基址和界限的内存操作数来加载IDT ,操作系统创建IDT需要执行

2011-01-29 00:48:00 2368

原创 xv6的interrupt实验 trapasm.S源代码分析

<br />.text<br />.set  SEG_KDATA_SEL ,0x10  #selector for SEG_KDATA<br />#vector.S  send all trap here<br />.globl alltraps<br />alltraps:       // <!-- @page { margin: 0.79in } P { margin-bottom: 0.08in } --><br />alltraps的主要任务是设置

2011-01-28 21:50:00 1194

原创 xv6的lab1中的proj1的bootmain.c

<br />//boot loader <br />//Part of the boot sector ,along with bootasm.S which calls bootmain(),<br />//bootasm.S has put the processor into protected 32 -bits mode.<br />//bootmain() loads an ELF kernel image from the disk starting at <br />//sector 1 an

2011-01-25 15:20:00 1178

原创 并口编程

   在计算机中,端口编程主要应用在两个方面:器件的控制和通信。我们能对计算机的并口编写程序为这两方面;并行端口主要还是为链接打印机的 计算机;此外, 我们能编程对端口在许多其他的应用方面;     并口编程比串口容易,但劣势是需要更多的传输线,因此并口不用在长距离的通信;让我们知道并口与串口的工作方式的不同点:1.在串口有两根数据线,传输线和接收线,它一位接着一位的传输数据像开始位,结束位,和效验位来检查错误。但在并口所有的一字节8位数据一次传输给端口。并口包含一些数据线,握手线,控制线在并口,下面的图示

2011-01-25 10:59:00 1263

原创 xv6的bootloader之bootmain.c

xv6 系统中的bootloader 程序的组成之一是bootmain.c部分的功能:加载硬盘的kernel部分到内存中;#include"type.h"#incude"xv6.h"#include"elf.h"#define SECTSIZE 512void readseg(uint ,uint,uint); void bootmain(void){struct elfhdr *elf, proghdr *ph,*eph;int elf ,i;void (*entry)(void);//Back in b

2011-01-24 14:52:00 3099

原创 C bootstrap的英文阅读

<br />The  C part of the boot sector ,bootmain.c,load a kernel from an IDE disk into memory and then starts executing it;<br />2:The kernel  is an ELF format binary,define elf.h;an ELF binary is an ELf file header ,struct elfhdr,followed by a sequence of p

2011-01-23 14:15:00 528

原创 automake的使用方法

<br />使用automake生成 makefile 文件的:<br />1:使用autoscanf 工具生成configure.scan<br />2:  把configure.scan的内容复制到configure.in中,(注意添加AM_INIT_AUTOMAKE)<br />3:使用aclocal命令生成configure.h.in文件<br />4:使用autoconf命令生成configure文件<br />5:创建makefile.am文件<br />6:内容里写入<br />AUTOMAK

2011-01-23 13:54:00 396

原创 xv6的main.c源代码

<br />#include "types.h"<br />#include "defs.h"<br />#include "param.h"<br />#include "x86.h"<br />#include "mmu.h"<br />#include "proc.h"<br />#include "pmap.h"<br /><br />static void mpmain(void) __attribute__ ((noreturn));<br /><br />str

2011-01-14 16:40:00 1388

原创 xv6中的pmap.c源代码

<br />#include"param.h"<br />#include"pmap.h"<br />#include"phymem_manager.h"<br />#include"spinlock.h"<br />#include"assert.h"<br />uint npages;                 //number of avaiable pages//内存以页(4k大小)的形式的数量,这里的得到的是总的页数<br />char *start;                  //

2011-01-14 15:54:00 2392

原创 xv6的buddy系统的源代码

<br />#include"buddy.h"<br />#include"defs.h"<br />free_area_t  free_area[MAX_ORDER];//定义free_area_t类型的free_area数组<br />struct Page*mem_map;<br />const int FreeAreaSize[MAX_ORDER]={1,2,4,8,16,32,64,128,256,512,1024};//定义数组FreeAreaSize<br />void test_buddy(

2011-01-14 02:41:00 945

原创 xv6的buddy(伙伴)系统源代码之buddy.h

<br />#ifndef _BUDDY_H_<br />#define _BUDDY_H_<br />#include"pmap.h"<br />#include"phymem_manager.h"<br />extern const struct phymem_manager_class pmmc_buddy;<br />#define MAX_ORDER 11<br />//定义一个内存空闲结构体<br />typedef  struct free_area{<br />page_list_head_

2011-01-13 23:05:00 1151

原创 makefile分析

<br />xv6.img 的生成过程如下:<br />1:# build the own boot sector disk image<br />    obj/xv6.img: obj/bootblock<br />    dd if=/dev/zero of=obj/xv6.img count=10000 //  使用空白字符填充 xv6.img,即初始化 xv6.img<br /><br />    dd if=obj/bootblock of=obj/xv6.img conv=notr

2011-01-12 21:19:00 1053

原创 xv6的main.c

//Bootloader////Part of the boot sector ,along with  bootasm.s which calls bootmain()//bootasm.S has put the processor into  processor into protected 32-bit mode//bootmain() loads an ELF kernel image from the disk  starting at //sector 1 and then jumps to

2011-01-11 16:29:00 2105

原创 xv6的bootloader之一bootasm.s

bootasm.S是bootloader(bootasm.S和bootmain.c)其中之一:start:.code16set  PRO    0x001set  PRO    0x002set  cli   //interruptted 禁止中断cldmovb//A20is booted; this is compablited x86//wait for not busyseta20.1inb   $0x64,%altestb  $0x2,%al jnz   seta20.1//0xd1==>port

2011-01-11 11:29:00 2070

原创 12_23学习linux命令的总结

1:.代表当前目录;..代表上一级目录;2:启动应用程序时:./xx;3:删除文件的命令:rm -tf xx ;4:创建目录的命令:mkdir  xx;5 : 创建别名的命令:ln -s &{dest}/bin gcc gcc346 : 更新源的命令: sudo apt-get update7:手工编译安装程序的步骤:(1)解压:tar -vxzf xx.tar.gz(2)配置:./configure --prefix="";(3)make (4)make install8:关于gcc-3.4版本的一个编译

2010-12-24 01:23:00 376

空空如也

空空如也

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

TA关注的人

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