自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

linux内核探索

永远的,引人入胜的linux内核

  • 博客(15)
  • 资源 (4)
  • 收藏
  • 关注

原创 C语言的分层设计的一个小例子

自己花了一段时间写的一个小程序,主要是反映的是C语言的分层设计思想,只在最底层做一些代码更改,不用更改上层的东西。例子以patch形式提交。可以先建一个空目录,然后把patch直接打到空目录里即可。里面自带一个手写的Makefile以下是代码:commit f7b930e691afd02aeb8e5842d1806bcd7b500b10Author: Yucheng.Wang Date: Wed Jun 30 15:08:41 2010 +0800 The delamination o

2010-06-30 15:20:00 2044 4

原创 GDB调试器用法

gdb调试器用法wiki页:http://code.google.com/p/ldd6410/wiki/GDBDebugGDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具,GDB主要可帮助工程师完成下面4个方面的功能:    * 启动程序,可以按照工程师自定义的要求随心所欲的运行程序。    * 让被调试的程序在工程师指定的断点处停住,断点可以是条件表达式。    * 当程序被停住时,可以检查此时程序中所发生的事,并追索上文。    * 动态地改变程序的执行环境。 不管是调试Linux内核空间的

2010-06-30 09:22:00 1769

原创 Linux设备驱动的分层设计思想

1.1 设备驱动核心层和例化 在面向对象的程序设计中,可以为某一类相似的事物定义一个基类,而具体的事物可以继承这个基类中的函数。如果对于继承的这个事物而言,其某函数的实 现与基类一致,那它就可以直接继承基类的函数;相反,它可以重载之。这种面向对象的设计思想极大地提高了代码的可重用能力,是对现实世界事物间关系的一种 良好呈现。 Linux内核完全由C语言和汇编语言写成,但是却频繁用到了面向对象的设计思想。在设备驱动方面,往往为同类的设备设计了一个框架,而框架中的核 心层则实现了该设备通用的一些功能。同样的,如

2010-06-30 09:13:00 962

原创 模块化编程的分层设计经验

模块化编程的分层设计经验 操作要点:1、每一层直接对下一层操作,尽量避免交叉调用或越级调用2、某些器件会把硬件驱动层合并成一个文件时,则归于较高的层3、相同功能的外部函数尽量一致,尽量保证通用性4、对于初次编程的模块,要严格保证中间各层的正确性 好处:1、对于后期维护扩展,只需修改应用层和物理层,根据需要扩展功能层2、一个新项目只需把要用到的文件加入工程,简单修改调试就出来了3、随着模块的不断积累,新的项目将越来越容易完成,后期的维护扩展也变得非常简单了4、对于C语言编程,只需简单修改物理层就可完成不同

2010-06-30 09:10:00 1157

转载 C程序的内存分布 &程序运行时,在内存中的分布

原文地址:http://hi.baidu.com/adokaixin/blog/item/21c3b019d859e976dab4bd85.html C程序一般分为 1.程序段:程序段为程序代码在内存中的映射.一个程序可以在内存中多有个副本. 2.初始化过的数据:在程序运行值初已经对变量进行初始化的 3.未初始化过的数据:在程序运行初未对变量进行初始化的数据 4.堆(stack):存储局部,临时变量,在程序块开始时自动分配内存,结束时自动释放内存.存储函数的返回指针. 5.栈(heap):存储动态内存分配,

2010-06-29 16:22:00 1025

转载 sizeof 解析

原地址:http://blog.sina.com.cn/s/blog_624ca8080100fxuo.htmlsizeof不是函数,而是一种单目操作符,在编译时求值的,而且这个值在程序中被当作一个常量来处理。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。   网上查了半天也没有人知道C库中是如何实现的,下面是使用宏实现的: // type为基本类型,var 为变量 #define  sizeof_v(var) ( / 

2010-06-29 12:20:00 1078

转载 [精华] GDB基本用法

链接:http://www.chinaunix.net/jh/23/24098.html相关网站 http://www.jimmy-lam.com/studyarea/goldencat/debug.htm http://phi.sinica.edu.tw/~tyuan/pcfarm.old/manuals/gnu/gdb_basic.html GDB的使用     当程序出错并产生core 时     快速定位出错函数的办法     gdb 程序名 core文件名(一般是core,也可能是core.xxx

2010-06-25 11:20:00 783

原创 w3m的的使用

w3m是linux下的文本网页浏览器。我用的ubuntu的操作系统,用apt-get装完之后。就可使用了。w3m是一个支持html格式的济览器,暂不支持ccs,所以排版有点混乱,但它对中文支持相当好。比如$w3m http://www.sohu.com光标上下左右移动的的快捷键和VI一样。可以用manpages看更多参数。要查帮助的话,在界面中+H即可,如果是返回上一个浏影览页面,用命令+B即可。由这两条命令,可以知道常用的所有命令。还是期待着elinks支持中文的GBK和UTF-8吧。

2010-06-24 10:18:00 1475

原创 【转】objcopy命令介绍

objcopy把一种目标文件中的内容复制到另一种类型的目标文件中. (1)将图像编译到可执行文件内 Q: 如何将一个二进制文件,比如图片,词典一类的东西做为.o文件,直接链接到可执行文件内部呢? A: $ objcopy -I binary -O elf32-i386 -B i386 14_95_13.jpg image.o $ gcc image.o tt.o -o tt $ nm tt | grep 14_95 0805d6c7 D _binary_14_95_13_jpg_end 00014213 A

2010-06-23 11:40:00 831

原创 [转载]GNU binutils使用小结

链接:http://www.xxlinux.com/linux/e/DoPrint/?classid=13&id=13352GNU binutils是一组二进制工具集。包括:addr2line   ar   gprof   nm   objcopy   objdump   ranlib   size   strings   strip. 本文归纳他们的常用法。ar     ar用于建立、修改、提取档案文件(archive)。archive是一个包含多个被包含文件的单一文件(也称之为库文件),其结构保证了可以

2010-06-23 11:22:00 583

原创 [转载]objcopy的使用

链接:http://blog.csdn.net/crystony/archive/2010/06/13/5669830.aspxobjcopy用于将object的部分获全部内容拷贝到另一个object,从而可以实现格式的变 换。 objcopy可用用于将文件转换成S-record格式或者raw二进制格式。 例如,          xxxx-elf-objcopy –O srec test.o test.s19 则将test.o转换成s-record文件中。通常涉及到text段。          xxxx

2010-06-23 11:12:00 822

原创 [转载]目标文件格式分析工具: ar,nm,objdump,objcopy,readelf

转载自:http://hi.baidu.com/wgcno7/blog/item/342ce019e87666d9ad6e75a7.htmlar基本用法ar命令可以用来创建、修改库,也可以从库中提出单个模块。库是一单独的文件,里面包含了按照特定的结构组织起来的其它的一些文件(称做此库文件的member)。原始文件的内容、模式、时间戳、属主、组等属性都保留在库文件中。下面是ar命令的格式:ar [-]{dmpqrtx}[abcfilNoPsSuvV] [membername] [count] archive

2010-06-23 11:06:00 1125

原创 linux调试C语言时加颜色引起注意

调试时经常用printf语句输出,但是怎么使调试信息更引人注意,可以在printf中加入颜色相关的标记。printf("/033[32mdebug/033[00m /033[1m%s/033[22m:/033[32m%d/033[00m/n", __func__, __LINE__);/033[32mdebug/033[00m表示以绿色的文字显示debu字符/033[1m%s/033[22m表示以粗体显示__func__的值/033[32m%d/033[00m表示绿色的文字显示__LINE__然后在命令行的

2010-06-13 13:17:00 1513

原创 gdb的一些常规使用

1.  cmake支持gdb的实现,首先在CMakeLists.txt下加入SET(CMAKE_BUILD_TYPE "Debug") 在下面加入:SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")原因是CMake 中有一个变量 CMAKE_BUILD_TYPE ,可以的取值是 Debug Release RelWithDeb

2010-06-09 17:27:00 3311 2

原创 ubuntu下的快捷键设置

     突然心血来潮,想把ubuntu下的默认终端设成快捷键,我用的是gnome的桌面,于是上网搜资料,终于找到了解决办法。        1.打开一个终端,然后键入命令$gconf-editor       打开的是gnome下的一个配置管理器,然后找到      apps->metacit->global_keybindings->run_command_1      在这里面run_command_1到run_command_12为自己可以定义的,总共12个快捷键。      我设置run_comm

2010-06-01 09:22:00 2201

最牛的linux的shell命令集合

了解了一些比较牛的shell命令,将会结你的shell编程产生具大影响,例如column, sshfs, ssh-copy-id,如何直接开辟一段内存空间做为硬盘,用wget直接递归下载网站, !! 代表什么, - 代表什么。都有解答。 如果喜欢就尽快下载吧。确实是不可多得的总结。

2010-09-27

linux下的pdf文件分割脚本

为linux下的pdf分割脚本,方便于那些在移动设备上读取PDF文件的技术人员。 下载之后只需要加可执行权限即可。 如果有任何问题请留言

2010-08-12

基于CCS的嵌入式软件开发与调试

对CCS的调试做了介绍,碰到常见问题就有办法了。

2008-11-28

mega32的中文说明书

AVR的学习资料。由mega32的英文原版翻译过来,对于不想看大量E文的人比较省事儿。

2008-11-25

空空如也

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

TA关注的人

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