自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (2)
  • 收藏
  • 关注

转载 u-boot FIT image介绍_转自“蜗窝科技”

转自:http://www.wowotech.net/u-boot/fit_image_overview.html1. 前言Linux kernel在ARM架构中引入设备树device tree(全称是flattened device tree,后续将会以FDT代称)的时候[1],其实怀揣了一个Unify Kernel的梦想----同一个Image,可以支持多个不同的平台。随着新的ARM64架构将FDT列为必选项,并将和体系结构有关的代码剥离之后,这个梦想已经接近实现:在编译linux ker

2022-03-03 17:02:27 329

转载 pkg-config工具, ld.so.conf文件, PKG_CONFIG_PATH环境变量

原文地址:www.91linux.com/html/article/program/cpp/20071207/8934.html 一、编译和连接         一般来说,如果库的头文件不在 /usr/include 目录中,那么在编译的时候需要用 -I 参数指定其路径。由于同一个库在不同系统上可能位于不同的目录下,用户安装库的时候也可以将库安装在不同的目录下,所以即使使用同一

2012-12-12 17:55:23 680

转载 Android ,在争议中逃离 Linux 内核的 GPL 约束

转于:http://www.ifanr.com/92261 2012-5-28, 07:29 | shallon 为这个题材起名,我思考了许久,GPL 是著名的开放源代码许可协议,Linux 内核开源项目正是在 GPL 的庇佑之下,十多年来在服务器、PC 端以及各种嵌入式设备上成绩斐然,是当之无愧的当代计算机软件的基石,说 GPL 代表着 Linux 的开源精神,毫不为过。

2012-12-05 15:29:46 658

原创 x86虚拟机设计之动态翻译块

翻译块的结束条件:1、跳转指令2、软件中断指令3、实模式和保护模式切换的指令4、保护模式下段selector改变的时候 优化:1、消除条件3      如果指令在保护模式和实模式下有不同的操作,这些不同的区分需要放到tb内处理,而不是tb外。2、消除条件4      需要将cs32、ss32的处理放到tb内,而不是tb外。

2012-11-02 14:54:18 497

原创 x86虚拟机设计之条件码生成

x86的指令集中有很多指令是自动生成条件码的,它们保存在EFLAGS寄存器中。完全的模拟这些条件码是十分费时的,还好我们并不常用到它们,所以可以采用惰性计算。 一、惰性计算       惰性计算就是在遇到产生条件码的指令时并不计算生成这些条件码,只保存生成条件码所必需的条件,在遇到需要使用条件码的指令时才会生成条件码。       1、需要保存的记录             o

2012-10-30 11:39:35 715

原创 x86虚拟机设计之自引用和自修改代码

一、关于自修改代码基本思路:1、将源代码区域加上写保护,当出现自修改代码时,就会触发一个异常。软件截获此异常,并清空全部cache或清空出现异常位置的cache。 2、截获所有的写内存的地方,查看是否写了保存了的tb,如果写了,就释放掉这个tb。问题:1、如何在源代码区域加上写保护?      我们面对的是物理地址,而平时虚拟机操作的却是虚拟地址。2、如何在引起

2012-10-19 13:49:20 702

原创 x86虚拟机设计之CISC指令解析

一、指令分类CISC指令集的长度不是固定的,可以按照指令的复杂度对代码进行分类。 针对x86指令集,有些短指令的翻译十分简单(比如不需要解析Ev等字段),可以在解析之后迅速翻译,可以按照以下规则进行分类:1、有没有前缀字节。2、单字节指令。3、简单的操作码,比如仅仅是寄存器操作。4、复杂的指令,多操作码可以对相似的操作进行归类。 我觉得switch case是比

2012-10-15 15:11:57 969

转载 用qemu-system-arm搭建arm11环境

http://darkofday.wikispaces.com/%E5%B5%8C%E5%85%A5%E5%BC%8F用qemu-system-arm搭建arm11环境以下方法将在ubuntu 10.04主机上,利用qemu-system-arm安装一个arm11的操作系统。系统采用nfs方式挂载文件系统,可以用来模拟arm11的运行环境,学习arm11汇编。安装qemu-sy

2012-09-20 15:19:30 5385

转载 [转]C标准库中的setjmp与longjmp

在C标准库中有一对非常有趣的函数setjmp()函数与longjmp()函数,用来实现代替goto实现一些非常重要的功能,如异常处理。C语言中,标准库函数setjmp和longjmp形成了结构化异常工具的基础。简单的说即setjmp实例化异常处理程序,而longjmp产生异常。先介绍setjmpint setjmp(jmp_buf envbuf)宏函数setjmp()在缓冲区envbu

2012-09-06 08:05:49 1107

原创 CFS进程调度

一、概述linux 2.6.23中采用了一个全新的调度策略CFS(Completely Fair Scheduler)来处理非实时进程。二、主要数据结构1.为了和原先的实时策略更好的融合,linux在实现CFS之余,还将内核的调度策略模块化,添加了新的结构体sched_class用于管理不同的调度器。2.CFS没有用传统的调度器中时间片的概念,而是使用了新的结构体sched_entit

2011-12-02 10:14:35 6124

原创 为什么per_cpu_ptr写那么变态on UP

add sanity check for percpu accessors on UP.This removes lots of sparse warnings.Signed-off-by: Namhyung Kim --- include/asm-generic/percpu.h |   12 +++++++++--- include/linux/percpu.h

2011-11-24 19:29:41 3755

原创 利用ddd和qemu调试arm-linux

1.arm-linux内核在编译的时候需要添加: Kernel hacking->Compile the kernel with debug info2.qemu-system-arm -M versatilepb -kernel arch/arm/boot/zImage -s -S3.ddd --debugger arm-none-linux-gnueabi-gdb4.gdb>f

2011-11-23 12:30:42 1743

原创 gfp_zone函数

函数很简单根据参数flags返回gfp_zone的类型。static inline enum zone_type gfp_zone(gfp_t flags){#ifdef CONFIG_ZONE_DMA if (flags & __GFP_DMA)  return ZONE_DMA;#endif#ifdef CONFIG_ZONE_DMA32 if (flags &

2011-11-04 17:24:02 2881

转载 x86实模式Memory Map和Port Address Assignments

<br />转自:http://hi.baidu.com/xshaonan/blog/item/443c8b091ff8bbc53bc763b7.html<br /> <br />General x86 Real Mode Memory Map: 0x00000000 - 0x000003FF - Real Mode Interrupt Vector Table 0x00000400 - 0x000004FF - BIOS Data Area 0x00000500 - 0x00007BFF -

2011-04-18 09:17:00 1270

转载 自由软件许可证GPL

<br />作者: 阮一峰<br />日期: 2004年6月20日<br />自从版权制度问世,大多数人就形成了一种观念:只要是正版软件,就一定会收费。<br />如果一种正版软件可以无限制的免费使用,甚至还允许你复制和出售,不少人就会产生怀疑:难道世界上真的有免费的午餐?如果不收费,程序员靠什么活着呢?<br />没错,世界上就是有免费的午餐,那就是自由软件。<br />所谓"自由软件",就是让你可以免费使用的正版软件,更严格地说,就是使用以GPL为代表的开源许可证的软件。只要一个软件的作者为自己的作品,

2011-03-19 19:07:00 942

转载 为什么GPL是更好的开源许可证?

作者: 阮一峰日期: 2010年2月27日1.让我从一件新闻讲起。2009年,计算机业界发生了一件大事:甲骨文公司以74亿美元收购SUN公司。消息宣布后,有一个人坚决反对这笔交易。他叫Michael Widenius,是数据库软件MySQL的主要创始人。他为什么要反对呢?因为MySQL现在归SUN公司所有,一旦收购成功,就将属于甲骨文公司所有。但是,后者的主要产品是Oracle数据库,与MySQL是竞争关系。所以,甲骨文公司不可能扶持MySQL的后继开发,甚至有可能杀死MySQL。Michael W

2011-03-19 17:26:00 787

原创 x86硬件编程资料

1.vga     http://www.osdever.net./FreeVGA/vga/vga.htm     http://www.mcamafia.de/pdf/ibm_vgaxga_trm2.pdf 2.ide     http://en.wikipedia.org/wiki/Parallel_ATA     http://eecs.wsu.edu/~cs46

2011-03-13 14:37:00 1038

原创 ubuntu下使用qemu-arm-static进入chroot编译环境

转载请注明出处:http://blog.csdn.net/arriod/archive/2010/08/25/5837286.aspx目的是在arm下建立一套完整的编译环境,安装完编译环境后,如果一直使用qemu来模拟整个arm系统的话,速度会很慢。由于qemu还可以模拟ar

2010-08-25 13:52:00 12374 1

原创 搭建基于busybox和qemu的arm-linux系统

转载请注明出处:http://writeblog.csdn.net/PostEdit.aspx?entryId=5826373 一、系统版本选择    交叉编译器版本4.4.0    内核版本2.6.30.8    busybox版本1.16.2二、内核编译    修改Makefile, ARCH=arm, CROSS_COMPILE=arm-eabi-。

2010-08-20 13:44:00 4895

原创 switch_to

<br /> <!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } --><br />理论部分请参考《深入理解Linux内核》第三章。<br />1.switch_to宏:<br />#defineswitch_to(prev,next,last) /<br />do{ /<br /> last= __switch_to(prev,tas

2010-08-20 12:45:00 3296

原创 利用qemu模拟arm系统(root采用NFS方式挂载)

目的:调试arm应用程序。方案:由于没有实际开发板,所以采用qemu模拟arm系统。NFS方式便于调试。参考文章:How To: Running Fedora-ARM under QEMU 步骤:1、准备一个内核镜像,http://ftp.linux.org.uk/pub/linux/arm/fedora/qemu/zImage-versatile-2.6.24-rc7.arm

2010-01-26 15:53:00 7235

转载 BIOS启动原理BIOS启动原理

Intel的IBM PC上i386芯片是遵循Intel与IBM共同制定的Boot协议的1. PC机的复位线和系统中的所有部件相连,包括CPU的RESET引脚//2.系统上电开机时,主板电源系统发送低电平的"PowerGood"信号,该信号送到复位接口电路的#RES端,产生时钟同步的复位正脉冲信号RESET,该脉冲发送到上面提及的复位线上,经由CPU的RESET引脚被CPU采集到,当正脉

2008-10-08 13:52:00 1177

转载 Fedora 7 硬盘安装全程

第一:首先先下载两个软件:  fedora 7  grub for dos  把fedora core 7下载到fat32格式的分区(因为grub for dos不能识别ntfs)。把fedora core 7 DVD镜像里的isolinux文件夹解压到fat32分区的根目录里。再把grub for dos解压到fat32主分区里(一般就是C盘),如出现已有BOOT文件夹的提示,选择确定覆盖。  

2008-09-18 11:22:00 1024

转载 connect函数超时设置

在Linux平台下,可以通过在connect之前设置SO_SNDTIMO来达到控制连接超时的目的。简单的写了份测试代码:#include #include #include #include #include #include int main(int argc, char *argv[]){        int fd;        struct sockaddr_in addr;      

2008-09-16 14:02:00 1768

原创 ARM使用术语清除(flush)和清理(clean)表示对cache的两种基本操作

    清除cache的意思是清除cache中存储的全部数据。对处理器而言,清除操作只要清零相应cache行的有效位即可。当存储器配置上有变化时,整体或部分cache可能需要进行清除操作。有时也用术语作废(invalidate)来代替术语“清除”。然而,对于采用写回策略的D-cache,就需要使用清理(clean)操作。    清理cache的意思是把脏的(即被改写过的)cache行强制写到主存,

2008-08-25 13:37:00 26562 2

原创 arm-linux head.S 源代码分析

这是ARM-Linux运行的第一个文件,这些代码是一个比较独立的代码包裹器。其作用就是解压Linux内核,并将PC指针跳到内核(vmlinux)的第一条指令。Bootloader中传入到Linux中的参数总共有三个,Linux中用到的是第二个和第三个。第二个参数是architecture id,第三个是taglist的地址。Architecture id的arm芯片在Linux中一定要唯一。T

2008-08-21 20:18:00 4534

原创 ARMLinux的C嵌入汇编语法

 1.  要用asm关键字加圆括号,最后要有分号。asm(assembly language tmplate: output operands: input operands: list of clobbered registers);//被破坏的寄存器列表 2. 

2008-08-19 11:12:00 1200

转载 Backing Storage for the File-backed Storage Gadget

The File-backed Storage Gadget (FSG) provides support for the USB Mass Storage class. It can appear to a host as a set of up to 8 SCSI disk drives (called Logical UNits or LUNs), although most of the

2008-08-19 11:08:00 1232

原创 ATI hd3600显卡安装和刷新率的设置

1、从ATI的官方网站上现在安装文件:ati-driver-installer-8-7-x86.x6_64.run。2、在该目录下运行该脚本:sh ati-driver-installer-8-7-x86.x6_64.run。3、运行aticonfig --initial。OK!但是我的屏幕刷新率始终只能设为1024768-60Hz,屏幕看起来很闪。参考网上spy2000的一个帖子

2008-08-03 09:54:00 1981

转载 FC7安装笔记

1、安装:下载DVD版,然后安装全部的软件包,否则在以后安装其他软件是总是保缺少相应的支持软件。现在的硬盘这么大,全部安装也就5G不到;AFMLinux联盟2、替换字体:安装之后第一件事就是赶快替换字库——安装微软雅黑来美化外观啦,到网上下载解压,然后鼠标点击:系统-->首选项-->观感-->字体-->细节-->转到字体文件夹,此时把刚才解压的雅黑字体拷贝粘贴进来即可(安装字体就这么简单,

2008-07-31 19:50:00 745

原创 linux 2.6.10下添加yaffs2文件系统

         1、去掉一些警告信息。如参数个数不同、结构体成员名称不同。        2、到http://www.aleph1.co.uk/cgi-bin/viewcvs.cgi/yaffs2/patches/下载yaffs_mtdif2.c文件,覆盖本地文件。修改nBytesPerChunk为nDataBytesPerChunk。

2008-07-31 12:40:00 1020

原创 使u-boot支持yaffs2烧写

        修改u-boot,使其能正确烧写oob区。  diff --git a/common/cmd_nand.c b/common/cmd_nand.cindex a90fcab..69e82fd 100755--- a/common/cmd_nand.c+++ b/common/cmd_nand.c@@ -10,7 +10,7 @@  #include  -+#define C

2008-07-31 08:51:00 6040

转载 Comparison between YAFFS (YAFFS2) and JFFS2

On Friday 02 March 2007 10:59, Charles F Johnson wrote:"Im trying to understand the relative merits of JFFS2 vs YAFFS2. The response on the YAFFS mailing list is quite positive as far as leading

2008-07-28 09:55:00 857

Advanced Linux Programming

Advanced Linux Programming是linux应用程序编程的一本经典教材。

2010-02-09

空空如也

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

TA关注的人

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