Linux Kernel
文章平均质量分 87
gqb666
专注于嵌入式驱动开发u-boot Vxworks Linux kernel
展开
-
Android/Linux内核驱动相关经典书籍大合集(Linux驱动工程师必备)
原创作品,转载时请务必以超链接形式标明文章原始出处:http://blog.csdn.net/gqb666/article/details/8790680,作者:gqb666 博主从事嵌入式Linux内核驱动开发工作,在工作学习中收集了一些Linux内核驱动开发相关的经典书籍,最近将这些经典书籍陆续以资源的形式传到了CSDN上,希望能给同行以帮助,但因为博主下载积分级别关系,还有些经典书原创 2013-04-12 09:04:25 · 8386 阅读 · 14 评论 -
调试器工作原理之二——实现断点
英文原文:Eli Bendersky 翻译:伯乐在线— 陈舸本文是关于调试器工作原理探究系列的第二篇。在开始阅读本文前,请先确保你已经读过本系列的第一篇(基础篇)。本文的主要内容 这里我将说明调试器中的断点机制是如何实现的。断点机制是调试器的两大主要支柱之一 ——另一个是在被调试进程的内存空间中查看变量的值。我们已经在第一篇文章中稍微涉及到了一些监视被调试进程转载 2013-10-31 23:57:35 · 4322 阅读 · 0 评论 -
ARM Linux内核驱动异常定位调试--反汇编arm-linux-objdump
ARM Linux内核驱动异常定位方法分析--反汇编方式原文链接:http://blog.csdn.net/hunhunzi/article/details/7052032最近在搞Atmel 的SAM9x25平台,Linux系统,用于工业设备。这也是我首次参与工业设备的研发。在调试Atmel SAM9x25的Linux串口设备的时候,发现无论是读还是写,都会产生异常。相关的异常信息如下转载 2013-12-31 18:27:24 · 9196 阅读 · 0 评论 -
Linux内核启动及根文件系统加载过程
检测机器码类型是在汇编子函数__lookup_machine_type (同样在文件head-common.S实现) 中完成的。与__lookup_processor_type类似,通过代码:“bl __lookup_machine_type”来实现对它的调 用。该函数返回时,会将返回结构保存放在r5、r6 和r7三个寄存器中。其中r5寄存器返回一个用来描述机器(也就是开发板)的结构体地址原创 2014-05-25 14:12:13 · 29275 阅读 · 2 评论 -
TI-Davinci开发系列之六CCS5.2调试Linux内核
使用CCS5.2远程调试内核时,只需导入Linux内核源码,而不需要编译内核,也就不会用到交叉编译链,同时不需要使用gdbserver,但需要仿真器XDS560V2,所以Windows和Linux都可以完成,但考虑Windows CCS5.2软件成熟,bug较少,且Windows易于操作,故本文推荐并主要介绍Windows版CCS5.2调试内核的方法。在介绍远程调试Linux之前,务必保证仿真器X原创 2014-01-13 23:37:35 · 6379 阅读 · 1 评论 -
Linux Kbuild工作原理分析(以DVSDK生成PowerVR显卡内核模块为例)
Linux内核是一种单体内核,但是通过动态加载模块的方式,使它的开发非常灵活方便。那么,它是如何编译内核的呢?我们可以通过分析它的Makefile入手。以下是一个简单的hello内核模块的Makefile.ifneq ($(KERNELRELEASE),)obj-m:=hello.oelseKERNELDIR:=/lib/modules/$(shell uname原创 2013-07-09 13:46:37 · 5662 阅读 · 0 评论 -
Linux内核文档翻译之Squashfs文件系统
对于使用openwrt的嵌入式系统来说,因为硬件绝大多数采用Flash,因此一般使用squashfs文件系统和jffs2文件系统。前者是只读的,后者是可写的。我们一般会把jffs2 mount到某个目录下。这样就存在某些目录如/bin是只读的(squashfs),某些目录是可读写的(jffs2),这样对文件的操作会依赖于文件系统的属性和文件的路径。 openwrt使用了mini翻译 2013-10-27 22:37:31 · 12679 阅读 · 0 评论 -
调试器工作原理之三——调试信息
英文原文:Eli Bendersky 编译:伯乐在线— 陈舸本文是调试器工作原理探究系列的第三篇,在阅读前请先确保已经读过本系列的第一和第二篇。本篇主要内容在本文中我将向大家解释关于调试器是如何在机器码中寻找C函数以及变量的,以及调试器使用了何种数据能够在C源代码的行号和机器码中来回映射。调试信息现代的编译器在转换高级语言程序代码上做得十分出色,能够将源代转载 2013-10-31 23:50:39 · 3223 阅读 · 0 评论 -
Linux内核驱动开发之KGDB单步调试内核(kgdboc方式)
如何单步调试Linux内核一直困扰着linux驱动开发人员,内核有其代码量大、逻辑复杂、与硬件交互的特性。因此,有着不同于应用程序的调试方法,据统计Linux内核开发者使用最普遍的调试方法是printk方法,而其他的方法大多是在特殊情况下才会使用。本文介绍的Kgdb调试方法是一种源码级的Linux内核调试器。使用Kgdb调试内核时,需要结合gdb一起使用,使用他们可以对内核进行单步调试,设置断点,原创 2013-06-18 18:27:00 · 17674 阅读 · 1 评论 -
Linux驱动开发之主设备号找驱动,次设备号找设备
原创作品,转载时请务必以超链接形式标明文章原始出处:http://blog.csdn.net/gqb666/article/details/8805179,作者:gqb666一、引言 最近成都地震令大家心神不宁,可能过了今天就没明天了,导致早打算写的东西现在才发出来。不禁感叹:在自然灾害面前,人是那么渺小,人面对自然灾害就好像脚下的蚂蚁面对人,人不经意间就能踩死一片蚂蚁,自然原创 2013-04-26 11:13:12 · 7146 阅读 · 11 评论 -
Linux Framebuffer驱动框架之二软件架构(未完待续)
/**********************************************************************************************************************************/ 原创作品,转载时请务必以超链接形式标明文章原始出处:http://blog.csdn.net/gqb666/article/d原创 2013-10-21 21:32:01 · 9219 阅读 · 4 评论 -
关于CONFIG_LOCALVERSION_AUTO设置去掉内核版本号SVN后缀
原创作品,转载时请务必以超链接形式标明文章原始出处:http://blog.csdn.net/gqb666/article/details/8444528,作者:gqb666最近在TI 的DVSDK下写驱动模块时老受linux内核svn版本号问题的困扰,如"2.6.37-svn41"、"2.6.37-svn51"等等,svn版本变一次,从上面取下的代码内核版本就要变一次,这样造成原来驱动模原创 2012-12-27 17:06:40 · 8057 阅读 · 0 评论 -
LinuxI2C子系统之一实例化IC2设备(Client)的四种方法(一、二)
原创作品,转载时请务必以超链接形式标明文章原始出处:http://blog.csdn.net/gqb666/article/details/8668670,作者:gqb666 最近的项目工作中需要调试维护I2C控制的视频采集设备驱动代码,于是花了些时间来研究I2C驱动框架,发现其复杂度不亚于ALSA-ASOC驱动框架(仅个人感觉,勿怪)!并打算将自己的研究心得记录下来,一是自己想看时翻译 2013-03-20 11:38:15 · 3693 阅读 · 1 评论 -
Linux内核驱动开发之KGDB原理介绍及kgdboe方式配置
接博文《Linux内核驱动开发之KGDB单步调试内核(kgdboc方式)》。上篇博文中,仅简单介绍使用串口的Kgbd的流程(kgdboc方式),本文将重点介绍KGDB调试Linux内核的原理。内核版本在2.6.26以前的Linux,kgdb是通过补丁安装的,过程非常复杂,而且问题比较多.Linux内核从 2.6.26开始已经在内部集成kgdb,只需要配置kgdb并重新编译2.6.26(或更高)原创 2013-06-20 23:49:13 · 10660 阅读 · 2 评论 -
LinuxI2C子系统之一实例化IC2设备(Client)的四种方法(三、四)
原创作品,转载时请务必以超链接形式标明文章原始出处:http://blog.csdn.net/gqb666/article/details/8698856,作者:gqb666终于翻译完了,有不准确的地方,还请大家多多指教。上接博文:LinuxI2C子系统之一实例化IC2设备(Client)的四种方法(一、二) 原文件位置:linux源码目录\Documentation\i2c\翻译 2013-03-22 14:00:19 · 4073 阅读 · 0 评论 -
Linux虚拟总线platform驱动框架之地址对齐省内存
原创作品,转载时请务必以超链接形式标明文章原始出处:http://blog.csdn.net/gqb666/article/details/8351080,作者:gqb666 最近在学习Linux虚拟总线platform驱动框架,对其中为一字符串申请内存使用strlen时未加1有点疑惑,于是通过写几个demo把研究发现的心得,记录了下来,分享给大家,有理解不够准确的地方还请大家多原创 2012-12-20 18:52:35 · 2861 阅读 · 3 评论 -
Android/Linux驱动开发之使用dev_dbg调试设备驱动
原创作品,转载时请务必以超链接形式标明文章原始出处:http://blog.csdn.net/gqb666/article/details/8789807,作者:gqb6661、最近在写I2C下EEPROM的驱动程序,但发现使用i2c_new_probed_device函数无法枚举到设备,于是想调试该函数(位于driver/i2c/i2c-core.c内),看到其中有些调试信息如下:原创 2013-04-12 08:57:36 · 7059 阅读 · 1 评论 -
调试器工作原理之一——基础篇
英文原文:Eli Bendersky 编译:伯乐在线— 陈舸本文是一系列探究调试器工作原理的文章的第一篇。我还不确定这个系列需要包括多少篇文章以及它们所涵盖的主题,但我打算从基础知识开始说起。关于本文我打算在这篇文章中介绍关于Linux下的调试器实现的主要组成部分——ptrace系统调用。本文中出现的代码都在32位的Ubuntu系统上开发。请注意,这里出现的代码是同平台紧转载 2013-10-31 23:43:28 · 2153 阅读 · 0 评论