代码改变世界

随笔分类 -  linux相关

[转]JFFS2源代码情景分析Beta2

2011-04-13 16:58 by htc开发, 610 阅读, 收藏,
摘要: 声明你可以自由地随意修改本文档的任何文字内容及图表,但是如果你在自己的文档中以任何形式直接引用了本文档的任何原有文字或图表并希望发布你的文档,那么你也得保证让所有得到你的文档的人同时享有你曾经享有过的权利。JFFS2源代码情景分析(Beta2)作者在www.linuxforum.net上的ID为shrek2欢迎补充,欢迎批评指正!前言(new) 4第1章 jffs2的数据实体及其内核描述符(improved) 5数据实体的内核描述符jffs2_raw_node_ref 6文件的内核描述符jffs2_inode_cache 6jffs2_raw_dirent数据实体及其上层数据结构 7jffs2 阅读全文

守护进程的单实例实现

2010-04-22 18:14 by htc开发, 208 阅读, 收藏,
摘要: 为了正常工作,守护进程应该实现为单实例的,也就是在任一时刻只运行该守护进程的一个副本,因为这个守护进程要排它的访问一个设备。这里需要用到文件锁的机制,如果守护进程创建一个文件,并且在整个文件上加上一把锁,那就只允许创建一把这样的写锁,在此之后如果试图再创建一把这样的写锁就将失败,以此向续守护进程副本指明已经有一个副本正在运行。而这个锁文件通常都放在/var/run目录中,锁文件的名字通常是name.pid,其中name是此守护进程的名字。注意,守护进程可能需要有root权限才能在此目录下创建文件。代码实现及分析:#include#include#include#include#include# 阅读全文

转载一篇 EMI整改经验

2009-08-27 09:42 by htc开发, 219 阅读, 收藏,
摘要: PowerAnts发表于 2009-7-22 13:31 | 只看该作者 回复 引用 报告 返回版面 TOP5楼:介绍俺的EMI整改经验关于晶体部份:1、晶体到MCU的两条线不要太细,尽量短直,且这两条线与两个负载电容所包围的面积要越小越好,电容地端,最好单独用较宽的走线单独引至MCU振荡地,不要与大面积地铜箔相连;2、晶体背面最好是整片的地铜箔,不要走其它线,也不要在晶体正面上方走别的线;3、有的MCU与不适合的晶体配合,振幅过高,产生截顶失真,便会产生较强的基波及强烈的谐波辐射,这种情况需在Xout上造近MCU一端串几十至几百欧电阻,让振幅峰峰值降至VCC的1/2~2/3为宜;高速线,一般 阅读全文

Makefile与Shell的问题

2009-06-28 15:43 by htc开发, 172 阅读, 收藏,
摘要: 大概只要知道Makefile的人,都知道Makefile可以调用Shell脚本。但是在实际使用时,并不那么简单,一些模棱两可的地方可能会让你抓狂。你若不信,可以先看几个例子,想象一下这些这些例子会打印什么内容,记下你想象的结果,然后在计算机上运行这些例子,对照看一下。示例一:if [ "$(BUILD)" = "debug" ]; then echo "build debug"; else echo "build release"; fiall: echo "done"示例二:all: @CC= 阅读全文

FONTDIR的简介

2009-05-29 13:21 by htc开发, 243 阅读, 收藏,
摘要: 一个典型的FONTDIR文件的内容如下所示:fixed fixed_120_50.qpf QPF n 50 120helvetica helvetica_80_50.qpf QPF n 50 80helvetica helvetica_120_50.qpf QPF n 50 120 uhelvetica helvetica_120_75.qpf QPF n 75 120 uhelvetica helvetica_140_75.qpf QPF n 75 140helvetica helvetica_180_75.qpf QPF n 75 180 文件中每行都标识一个特定的字库,每个段的含义是:第 阅读全文

信号(signals)和槽(slots)

2009-05-26 12:15 by htc开发, 482 阅读, 收藏,
摘要: 信号(signals)和槽(slots)信号和信号槽被用于对象(object)之间的通信。信号和槽机制是QT的重要特征并且也许是QT与其他框架最不相同的部分。前言在GUI程序设计中,通常我们希望当对一个窗口部件(widget)进行改变时能告知另一个对此改变感兴趣的窗口部件。更一般的,我们希望任何一类的对象(object)都能和其他对象进行通信。例如,如果用户单击一个关闭按钮,我们可能就希望窗口的 close() 函数被调用。早期的工具包用回调(backcalls)的方式实现上面所提到的对象间的通信。回调是指一个函数的指针,因此如果你希望一个处理函数通知你一些事情,你可以传递另一个函数(回调函数 阅读全文

怎样写 Linux LCD 驱动程序

2009-04-22 16:04 by htc开发, 244 阅读, 收藏,
摘要: 怎样写 Linux LCD 驱动程序 作者: 刘鹏 日期: 2008-12-27 本文分析了frame buffer 设备驱动的主要数据结构,在此基础上介绍了LCD驱动程序的开发。 基本原理通过 framebuffer ,应用程序用 mmap 把显存映射到应用程序虚拟地址空间,将要显示的数据写入这个内存空间就可以在屏幕上显示出来; 驱动程序分配系统内存作为显存;实现 file_operations 结构中的接口,为应用程序服务;实现 fb_ops 结构中的接口,控制和操作 LDC 控制器; 驱动程序将显存的起始地址和长度传给 LCD 控制器的寄存器 (一般由 fb_set_var 完成) , 阅读全文

准备移植xynth到arm板上了。

2009-04-11 19:54 by htc开发, 228 阅读, 收藏,
摘要: xynth是一个轻量级的开源GUI,有很炫的效果。详细如下:Xynth Windowing System Whatis?Xynth is a portable embedded windowing system, client/server interface between display hardware (mouse, keyboard, video displays) and the desktop environment that works on many hardware, including embedded devices (handhelds, set-top boxes, 阅读全文

嵌入式linux GUI--DirectFB + GTK至尊秘笈

2009-02-02 16:10 by htc开发, 388 阅读, 收藏,
摘要: www.directfb.com.cn kendych@sina.com.cn版权申明: 本文档一切权利归本人(kendych@sina.com.cn)所有,用于商业用途徐征得本人同意,如无法联系到本人,须征得www.directfb.com.cn所有者同意;用于非商业用途的,无需任何许可,但请尊重本人的署名权,并注明出处www.directfb.com.cn及附加本申明。关键词: 嵌入式 GUI arm linux DirectFB GTK tslib1 前言 数年前,曾经开发过一个嵌入式的产品,如今市场依然存在,... 阅读全文

libtool相关的问题

2009-02-02 10:18 by htc开发, 237 阅读, 收藏,
摘要: 1 libtool的工作原理libtool 是一个通用库支持脚本,将使用动态库的复杂性隐藏在统一、可移植的接口中;使用libtool的标准方法,可以在不同平台上创建并调用动态库。可以认为libtool是gcc的一个抽象,其包装了gcc(或者其他的编译器),用户无需知道细节,只要告诉libtool需要编译哪些库即可,libtool将处理库的依赖等细节。libtool只与后缀名为lo、la为的libtool文件打交道。(lo是目标文件,la是库文件)libtool主要的一个作用是在编译大型软件的过程中解决了库的依赖问题;将繁重的库依赖关系的维护工作承担下来,从而释放了程序员的人力资源。libtoo 阅读全文

移植MiniGUI到S3C2410目标板

2008-09-04 16:24 by htc开发, 294 阅读, 收藏,
摘要: 网上看到的大多数是1.3版本的,1.6.10的基于FC系统的几乎没有。写下这篇文章,帮助那些刚接触minigui的同仁们。环境宿主机:FC6目标板:arm 9,s3c2410, linux 2.6.24.4MiniGUI版本:1.6.10 (http://www.minigui.org/res.shtml)简介 MiniGUI是北京飞漫公司的产品,号称遵循GPL条款。有关MiniGui的官方消息看http://www.minigui.org (英文网站) 和 http://www.minigui.cm(中文网站)。目前开源的最新版本是MiniGUI 1.6.10。但是它的未开源的增值版已经到. 阅读全文

yaffs2源代码情景分析

2008-08-21 12:05 by htc开发, 349 阅读, 收藏,
摘要: 作者: 斑点 Email: byeyear@hotmail.com 1.前言 略。 2.yaffs文件系统简介 按理说这里应该出现一些诸如“yaffs是一种适合于NAND Flash的文件系统XXXXX”之类的字眼,不过考虑到网络上关于yaffs/yaffs2的介绍已经多如牛毛,所以同上,略。 3.本文内容组织 本文将模仿《linux内核源代码情景分析》一书,以情景分析的方式对yaffs2文件系统的源代码进行分析。首先将分析几组底层函数,如存储空间的分配和释放等;其次分析文件逻辑地址映射;然后是垃圾收集机制;接下来……Sorry,本人还没想好。:-) 4.说明 因为yaffs2貌似还在持续更新 阅读全文

Linux下patch的制作和应用

2008-08-20 12:24 by htc开发, 150 阅读, 收藏,
摘要: http://blog.chinaunix.net/u/21948/index.html因为在u-boot移植过程中,有几处通用文件要修改,如果每次都要手动修改就太麻烦了。制作补丁可以解决这个问题。学习资料的收集比较简单,方法一类似于这种初级问题网上资料非常丰富,google或者baidu搜索一下,然后选择有价值的资料,方法二是阅读man在线文档。完成收集工作,当然最终要在自己的Linux上作实验,比较总结,消化吸收为自己的东西。要除去这么一种错误思想:一定要学全。要知道,一次学全是不可能的,只能先学习最为常用的,在以后不断实践的过程中逐步的丰富,最终达到比较高的水平。把握的原则是:日有所学, 阅读全文

正式开始homeR的计划

2008-07-16 22:53 by htc开发, 131 阅读, 收藏,
摘要: 脑里一直有个想法,却一直无法付诸行动。当然,项目也很紧张,资源也不够。所以,一直只是个想法。 最近,项目可以说完成了80%了,所以会有很多时间来充实自己。已经拟定了计划。在未来的时间里,只要有时间,必将将这个计划执行下去。 这个计划是个人提升的一个途径。通过这个计划,必须让自己的实力更上一个台阶。从bootloader开始,完整的体现一个项目的过程。几个大的方向,有驱动开发,网络应用,miniGUI,UML等。 忧患,生。 安乐,死。 阅读全文

RM9200中flash文件系统的移植

2008-05-30 10:28 by htc开发, 267 阅读, 收藏,
摘要: flash文件系统在嵌入式linux系统中是必须的,无论是作为只读的根文件系统还是作为可写的用户文件系统。目前在linux-2.6.14内核上 移植flash文件系统。下载相应内核,打好at91rm9200的补丁后,却发现先前移植nand文件系统的方法在flash文件系统中完全不行。只好从头开始了。 星光AT91RM9200开发板的flash芯片是SST39VF3201,16 位 ,4M 。按目前计划,准备分区为三个区,分别为uboot(0x40000), kernel(0x1c0000), rootfs(0x200000), 应该可以将linux的最小系统跑起来的。 首先,添加MTD分区.. 阅读全文

linux编译器 GCC 4.3.0已经发布

2008-03-15 11:33 by htc开发, 204 阅读, 收藏,
摘要: GCC:由GNU之父Stallman所开发的linux下的编译器,全称为GNU Compiler Collection, 目前可以编译的语言包括:C, C++, Objective-C, Fortran, Java以及Ada。 GCC 4.3.0是一个大的版本,包含了大量GCC 4.2.x以及之前的GCC版本所不具备的功能。下载页面: http://www.gnu.org/order/ftp.html发布程序的程序在 gcc/gcc-4.3.0/ 子目录下具体的变更信息可以查看:http://gcc.gnu.org/gcc-4.3/changes.html 阅读全文

使用ELDK4.1构建交叉编译环境及AT91RM9200EK的引导攻略

2007-07-10 15:22 by htc开发, 247 阅读, 收藏,
摘要: 前言今年1月份到2月份在自己博客上发表了几篇关于AT91RM9200引导程序的文章,分别是 建立交叉编译工具链 TFTP和NFS服务的设置 U-Boot1.1.4在AT91RM9200上的移植时间过的很快,工作也很忙,一晃就过了半年多。再回头看,已经发现很多都落伍了。新版本出了一波又一波。linux已经到了2.6.20。federo也已经到了FC7。如果不对本人以前的文章更新的话,势必会误导初学者。所以针对目前比较新的环境,重新写下整个过程。不过,由于实在挺忙的,所以比第一次写的要简洁许多,大家如果有不明白的地方,可以参考以前的文章。大多数内容都大同小异,只不过一些细节需要注意。由于比较匆忙, 阅读全文

Windows下Linux开发环境设置(二)--安装Cygwin及交叉编译工具链

2007-03-14 14:31 by htc开发, 655 阅读, 收藏,
摘要: 在Windows下进行Linux开发,当然要用到Cygwin了。它就是提供了在Windows下开发Linux程序的环境。1. 从http://cygwin.com/安装Cygwin。运行安装程序,进入Select Packages,Base,Devel, Libs下安装包全选,其他安装包酌情选择。选择安装目录如C:/Cygwin2. 下载脚本文件http://buildroot.uclibc.org/downloads/snapshots/buildroot-snapshot.tar.bz23. 将buildroot-snapshot.tar.bz2复制到C:/cygwin/usr/src下4 阅读全文

不容易的编译内核过程

2006-02-14 15:12 by htc开发, 218 阅读, 收藏,
摘要: 为了编译内核,前前后后断断续续共花了4,5天。总算老天开眼,昨天让我编译成功了。我的linux版本是FC4-i386的,在vmware虚拟机环境下编译,原内核是:2.6.11-1,升级后内核为2.6.15.4因为版本的不同,编译内核的过程也不同,特别是从内核2.4到2.6。有很大不同。照着下面的步骤依样花葫芦,我把自己遇到的问题写下来了。一、备份重要文件备份以下这些文件可以在系统发生错误或崩溃时,能较快速的恢复系统原来的状态。1、备份内核和启动文件# cd /# tar cvzf boot.tar.gz boot2、备份系统函数头文件# cd /usr/include# tar cvzf li 阅读全文