自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 PMON(龙芯修改版)常用操作命令

pmon 是一个兼有BIOS和bootloader部分功能的开放源码软件,多用于嵌入式系统。与BIOS相比功能不足,与常见的bootloader 相比,功能要丰富的多。基于龙芯的系统采用 pmon 作为类 BIOS 兼 bootloader,并做了很多完善工作。其有如下主要特点:      ...

2008-01-10 21:30:00

阅读数 4673

评论数 0

原创 Linux 上下文切换分析笔记 (MIPS)

1. 内核栈切换 (MIPS)调度切换至一个进程时,根据 task_struct->thread_info 的值设置 *kernelsp(当前正在运行进程之内核栈栈底),其值为 thread_info + THREAD_SIZE - 32(MIPS 下,使用 set_saved_sp 宏)。...

2008-01-10 21:26:00

阅读数 2567

评论数 0

原创 Linux 存储管理分析札记

1. MIPS 与 X86 的 TLB 差别其在于对 TLB 不命中时的处理上:MIPS 会触发TLB Refill 异常,内核的 tlb_refill_handler 会以 pgd_current 为当前进程的 PGD 基址,索引获得转换失败的虚址对应的 PTE,并将其填入 TLB,完了CPU ...

2008-01-10 21:25:00

阅读数 943

评论数 0

原创 使用 graphviz 形象化有向图

将有向图数字化,可以用一个邻接矩阵表示。计算机对这个图进行一系列的处理后(比如求闭包),如果要看看处理后的图,可以借助于 graphviz 这个强大的开源工具。1. Graphviz 简介Graphviz 是 AT&T Labs-Research 开发的自动图形绘制工具, 可以很方便的可视...

2007-10-11 15:06:00

阅读数 1777

评论数 0

原创 16KB页,32bit 地址的划分有些问题

32 bit kernel, 16KB 页大小,龙芯2E平台tlb_refill_handler为:lui       k1, %hi(pgd_current)mfc0   k0, C0_BADVADDRlw       k1, %lo(pgd_current)(k1)srl     ...

2007-10-11 13:59:00

阅读数 1240

评论数 0

转载 linux下把共享库(SO)加载到指定的内存地址

作者:absurd   出处:http://blog.csdn.net/absurd一位朋友最近遇到一个棘手的问题,希望把共享库(SO)加载到指定的内存地址,目的可能是想通过prelink来加快应用程序的起动速度。他问我有没有什么方法。我知道Windows下是可以的,比如在VC6里设置/base的...

2007-09-12 10:32:00

阅读数 2619

评论数 1

转载 Linker script 链接器脚本

作者:firststp    出处:http://blog.csdn.net/firststp/每个链接都由链接脚本控制着,脚本由链接器命令语言组成。脚本的主要目的是描述如何把输入文件中的节(sections)映射到输出文件中,并控制输出文件的存储布局。大多数的链接脚本就是做这些事情的,但在有必要...

2007-09-12 10:17:00

阅读数 1285

评论数 0

原创 龙芯版 memcpy 的实现

当前版本: 0.1完成日期: 2007-6-15作者: Dajie Tan memcpy 是为最常用之函数,多媒体编解码过程中调用频繁,属调用密集型函数,对其性能优化很有意义。1. 概述memcpy 所做的操作是把内存中的一块数据复制到内存的另一个地方,也就是内存到内存的数据拷贝,这个过程需要CP...

2007-09-06 10:56:00

阅读数 1660

评论数 0

原创 oprofile for godson2e 移植手记

当前版本: 0.1完成日期: 2007-6-7作者: Dajie Tan 0. 概述oprofile 在Linux 上分两部分,一个是内核模块(oprofile.ko),一个为用户空间的守护进程(oprofiled)。前者负责访问性能计数器或者注册基于时间采样的函数(使用register_time...

2007-09-06 10:38:00

阅读数 1008

评论数 0

原创 使用oprofile分析性能瓶颈

当前版本: 0.1完成日期: 2007-5-25作者: Dajie Tan 1. 概述oprofile 是 Linux 平台上,类似 INTEL VTune 的一个功能强大的性能分析工具。其支持两种采样(sampling)方式:基于事件的采样(event based)和基于时间的采样(time b...

2007-09-06 10:31:00

阅读数 1376

评论数 0

原创 MIPS Linux 下添加系统调用

 添加一个系统调用有以下几个步骤: 1.  在 kernel 的系统调用表 sys_call_table 中添加你的系统调用入口 根据你用的内核位数(32/64bit) 选择需要修改的文件: arch/mips/kernel/scall32-o32.S  ------> 32bit ker...

2007-09-06 09:57:00

阅读数 2459

评论数 0

原创 福珑迷你PC之主板结构

其中 Local I/O 总线为: intel 风格的并行总线,8bit 数据, 19bit 地址,因此支持的最大存储空间是2^19 * 8/8 = 512KB存储PMON的flash memory(Am29LV040B)就通过 Local I/O 总线连接到北桥。

2007-09-04 16:18:00

阅读数 1195

评论数 1

原创 绕过 libc 直接使用系统调用

当前版本: 0.1完成日期: 2007-6-15作者: Dajie Tan 系统调用是用户态进程切入内核态的唯一入口,是内核为用户态进程提供服务的接口。Linux Kernel 提供了大约300个左右的系统调用,作为用户空间进程访问内核的 API。C 语言环境下,经常使用的(如getpid)是系统...

2007-08-28 13:18:00

阅读数 1661

评论数 0

原创 IEEE754 笔记

IEEE754 标准是 IEEE 对浮点数表示的规范,目的在于统一浮点数的编码,提高浮点运算程序的可移植性。IEEE754有3种浮点数格式:单精度、双精度、扩展双精度。每种格式皆由3部分组成: 符号位(s)、指数(e)和尾数(m)。single-precision :  | 31 | 30:23 ...

2007-08-24 16:34:00

阅读数 858

评论数 0

原创 Breaking Free

Troy(T):Were soaring, flyingTheres not a star in heavenThat we cant reachGabriella(G):If were tryingSo were breaking freeTroy: You know the world can...

2007-08-23 11:36:00

阅读数 617

评论数 0

转载 Chaos on Graphics About 数学库之一 SSE/SSE2

Chaos Chiao  毫无疑问,数学库是图形程序的基石,是图形程序运行效率的关键之一。一个优秀的数学库可以让图形程序运行得更流畅,甚至要快上几十倍上百倍。有时候替换一条除法运算会带来成倍的效率增长,比如用乘以 1/op 替换 vector 里的 operator /。当然,更高级的优化是使用 ...

2007-08-22 09:11:00

阅读数 1232

评论数 0

转载 Debian etch 基本系统 initial ram disk 的分析

         ilovestars 2007年5月3日于瀚海星云 Linux 版    自己最近花时间研究了一下 linux 的 initial ram disk,然后就写了这篇文章。 因为是要给别人看的,所以写的时候就比较小心,不能放过细节。这样就要搞清楚之前 不太在意的一些问题,对自己也是...

2007-08-17 11:59:00

阅读数 1439

评论数 0

原创 RISC 下非对齐访问的问题

1. 问题RISC 下使用访存指令读取或写入数据单元时,目标地址必须是所访问之数据单元字节数的整数倍,这个叫做地址对齐。比 如在 MIPS 平台上,lh 读取一个半字时,存储器的地址必须是 2 的整数倍; lw 读取一个字时,存储器的地址必须是 4的整数倍; sd 写入一个双字时,存储器的地址必须...

2007-07-31 14:37:00

阅读数 2371

评论数 1

转载 怎样规划你的毕业后的人生

   我今年39岁了, 25岁研究生毕业,工作14年,回头看看,应该说走了不少的弯路,有一些经验和教训。现在开一个小公司,赚的钱刚够养家糊口的。看看这些刚毕业的学生,对 前景也很迷茫,想抛砖引玉,谈谈自己的看法,局限于理工科的学生,我对文科的不懂,身边的朋友也没有这一类型的。  91年研究生毕业,...

2007-07-31 14:19:00

阅读数 985

评论数 1

原创 IA32 SSE3

1. 简介SSE3 系 Intel Streaming SIMD Extensions 的第3次扩展,相较于 SSE2,Intel 新加入了 13 条指令。其最早于 2004 年在 Pentium 4 Prescott 中引入,后续 IA32 的 CPU 都支持之。2. 支持 SSE3 的 CPU...

2007-06-19 16:31:00

阅读数 1179

评论数 0

原创 龙芯汇编语言编程(1)

当前版本: 0.1完成日期: 2007-3-22作者: Dajie Tan 1. Hello World从经典的Hello World开始:   .text                          #表示将后面的代码编译后置于目标文件的.text段   .globl...

2007-06-06 17:44:00

阅读数 2335

评论数 2

原创 关闭龙芯2E 之 cache

PMON 加载kernel 时,是加载到 kseg0 的(通过在 arch/mips/Makefile 中: load-$(CONFIG_GODSONEV2E) += 0x80100000 指定),该地址空间是 unmaped cached 的,当 PMON 将控制权交给内核后,内核启动过程中ca...

2007-06-06 17:04:00

阅读数 910

评论数 0

原创 mplayer 中收集视频播放数据

Mplayer 中有 -benchmark 参数可以收集视频播放的数据1. 常用命令mplayer -benchmark foreman.avi 如果不需要视频输出,可以这样:mplayer -benchmark -vo null foreman.avi一般情况下,我们测试某个视频解码器的效果,也...

2007-06-06 17:02:00

阅读数 853

评论数 0

原创 龙芯2E平台程序性能分析

当前版本: 0.1完成日期: 2007-3-27作者: Dajie Tan 1. 分析一段代码的性能,最常用的方法是测量这段代码的运行时间。假如我要分析下面这两段代码的性能差异,可以在代码前后插入2个变量,分别记录运行前后的时间,相减即可:代码一: int matrix[2047][7];int ...

2007-06-06 16:59:00

阅读数 1066

评论数 0

原创 32位模式下使用64位寄存器注意事项

1. 汇编环境龙芯2E平台32位OS模式下,要使用64位寄存器可以在汇编代码里直接 用,运算时使用d开头的指令(double-word, 64bit),作用于寄存器即可。如:dadd, dsub, dmult, dmultu, ddiv, dsll, dsrl, dsra 等等。访问存储器可以直接...

2007-06-06 16:49:00

阅读数 3053

评论数 1

原创 MIPS 平台下 I/O 端口的读写--以龙芯为例

MIPS 下,I/O 端口是直接映射到地址空间的,不像x86下有专用的 I/O 空间,使用专用的 in/out 指令访问之。故而 MIPS 上访问 I/O 端口直接使用访存指令访问对应的地址即可。但是各种控制器的寄存器映射到地址空间的何处,具体的平台就不一样了。下面以龙芯2E为例说明之。龙芯2E ...

2007-06-06 16:41:00

阅读数 2977

评论数 0

原创 酷睿微体系结构笔记

酷睿微体系结构,基于Pentium M的微体系结构,是片内多个核(cmp)的实现。设计的原则是平衡能耗的基础上尽可能的提高性能,即提高每瓦特性能(能效比)。相比前代的主要改进:宽位动态执行(Wide Dynamic Execution)宽位动态执行实际上就是提高IPC,从而提高性能。(Perf =...

2007-06-01 10:59:00

阅读数 835

评论数 0

转载 英国南海股票泡沫

3.1 传染到英吉利海峡对岸的泡沫当法国的股票市场在约翰·劳的鼓动下疯狂上扬,并且在1720年1月登峰造极的时候,海峡另一边的英国人再也按捺不住冲动,马上开始效仿。尽管英国和法国 在争夺欧洲霸主时明争暗斗,互不相让,但是在巨额国债方面两国政府是五十步笑一百步,相差无几。既然约翰·劳能够通过发行股票...

2007-05-30 16:16:00

阅读数 2066

评论数 0

原创 《数学的美与理》笔记

上帝数学化地设计了世界毕达哥拉斯(Pythagoras 约公元前580~500)企图通过揭示数的奥秘来探索宇宙的永恒真理。如果你想认识周围的世界,就必须找出事物中的数。一旦数的结构被抓住,你就能控制世界。数是人类思想的向导和主人,没有它的力量,万物就会处于昏暗与混乱之中。我们并不生活在一个真理的世...

2007-05-30 15:37:00

阅读数 1449

评论数 0

原创 《唐伯虎点秋香》中的超级对联

  一乡二里共三父子不识四书五经六义竟敢教七八九子十分大胆  十室九贫凑得八两七钱六分五毫四里尚且三心二意一等下流    注:上面的对的并不工整,网上有人给了个绝对工整的:      一乡二里共三父子不识四书五经六义 竟敢教七八九子十分大胆  十寺九庙凑八和尚深知七情六欲五戒 仍要娶四三二女一等下...

2007-05-28 10:28:00

阅读数 1337

评论数 0

原创 MIPS 汇编语言编程的艺术(龙芯适用)

分析系统调用的实现时看到这么一段代码,令人不禁拍案叫绝。 系统调用的参数传递,前4个参数通过a0~a3传,后面的参数要通过栈来传,目前内核 系统调用最长的参数个数为8。 用栈传递参数时,涉及到要将位于用户空间的参数先复制到内核空间(内核栈)。 因为系统调用的参数个数不定,因此就需要判断参数个数为5...

2007-05-09 13:13:00

阅读数 2688

评论数 0

原创 FFMPEG 笔记

1. encode yuv fileffmpeg -s cif -vcodec mpeg4 -i paris.yuv paris.avi-s 指定帧大小 cif 为 352x288,qcif 为 176x144,4cif 为 704x576-vcodec 指定采用的编码器-i 指定输入文件2. o...

2007-04-23 17:34:00

阅读数 3006

评论数 1

转载 活的知识-论大众文化研究

主持人:追求进步、学术倾听,世纪大讲堂问候您。在20世纪初年的时候,一些先进的中国人就发现,中国文化越 来越散发出腐朽的味道,换句话说就是它越来越脱离大众,越来越失去了活性,那今天这个问题得没得到解决,现在我给大家请来了北大中文系有名的教授戴锦华, 好,有请戴教授上场。好,请坐。我刚才跟戴教授握手...

2007-04-19 17:02:00

阅读数 1005

评论数 0

转载 "己所欲,勿施于人"

作者:周国平   选自:周国平自选集   出版社:海南出版社 中外圣哲都教导我们:"己所不欲,勿施于人。"这是要我们将心比心,不把自 己视为恶、痛苦、灾祸的东西强加于人。己所不欲却施于人,损人利己,把自己的快乐建立 在别人的痛苦之上,这种行径当然是对别人的严重侵犯。然而,这只是...

2007-04-17 13:53:00

阅读数 947

评论数 0

原创 Using Automake and Autoconf to manage large project

  <!-- @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } --> I. Hello world! a. 建立源码树 proj |----...

2007-04-11 10:50:00

阅读数 1231

评论数 0

原创 MIPS GCC 嵌入式汇编(龙芯适用)

当前版本: 0.1完成日期: 2007-4-9作者: Dajie Tan 1. GCC 内嵌汇编的基本格式asm("assembly code");如: asm("syscall"); //触发一个系统调用如果有多条指令,则需在指令尾部添加/t和/n,如:...

2007-04-09 18:15:00

阅读数 3863

评论数 0

原创 x86 下 strcpy 高效实现

0. 先看个通常的实现:为了分析方便不考虑 to/from 指针为NULL情况。char *strcpy(char *to, const char *from){     char *rev = to;     while(*to++ = *from++);     return re...

2007-04-09 18:09:00

阅读数 1424

评论数 0

原创 解析LINUX下输入法环境变量XMODIFIERS/GTK_IM_MODULE

我们配置输入法时,都是习惯性的在输入法启动前导出环境变量:export XMODIFIERS=@im=SCIMexport GTK_IM_MODULE=SCIM他们有何用意呢??我们常用的输入法有以下几种:1. XIM (X输入法, 所有 X 图形程序都是可用的)2. GTK immodule(G...

2007-04-06 15:18:00

阅读数 5551

评论数 0

原创 GNU/Linux下库机制笔记

1. 创建静态库:      gcc -c hello.c -o hello.o      ar rcs libhello.a hello.o2. 使用静态库:      gcc -o test test.c -static -L. -lhello3. 共享库版本: version.mino...

2007-04-04 13:09:00

阅读数 757

评论数 0

原创 USB 设备相关驱动模块(2.6内核)

A. 核心模块   usbcore                                 ------>对应内核配置参数 CONFIG_USBB. USB 主控制器驱动模块   ehci_hcd (EHCI)     USB 2.0 支持            ------&...

2007-04-04 13:01:00

阅读数 903

评论数 0

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