linux驱动程序调试常用方法(printk,oop,strace,hacking,ioctl,/proc,kgdb)-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 6397799
  • 博文数量: 579
  • 博客积分: 1548
  • 博客等级: 上尉
  • 技术积分: 16635
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-12 15:29
个人简介

http://www.csdn.net/ http://www.arm.com/zh/ https://www.kernel.org/ http://www.linuxpk.com/ http://www.51develop.net/ http://linux.chinaitlab.com/ http://www.embeddedlinux.org.cn http://bbs.pediy.com/

文章分类

全部博文(579)

文章存档

2018年(18)

2015年(91)

2014年(159)

2013年(231)

2012年(80)

发布时间:2015-09-01 17:00:38

驱动程序开发的一个重大难点就是不易调试。本文目的就是介绍驱动开发中常用的几种直接和间接的调试手段,它们是:......

阅读(6163) | 评论(0) | 转发(1)

发布时间:2015-08-13 16:42:51

前言:
    嵌入式开发中,很多时候,需要多个程序配合运行,对于实时性要求不高的需求,可以使用system函数来调用。

一,测试代码
    1,hello.c
点击(......

阅读(2352) | 评论(0) | 转发(0)

发布时间:2015-08-12 15:58:19

一.用途:
主要用于程序异常退出时寻找错误原因
二.功能:
回溯堆栈,简单的说就是可以列出当前函数调用关系
三.原理:
1. 通过对当前堆栈的分析,找到其上层函数在栈中的帧地址,再分析上层函数的堆栈,再找再上层的.........

阅读(4511) | 评论(0) | 转发(0)

发布时间:2015-08-09 22:21:03

mkfs.jffs2  -d  custom_fs -o  custom.imgmkfs.jffs2用目录和文件创建jffs2文件系统映像文件描述:-r选项指定输入的文件和目录路径,不指定则为当前路径放到映像中的文件会被指定的压缩模式压缩,文件系统的endianness和主机相同,除非用-b或-l选项指定。jffs2需要和mtd驱动一起使用选项:选项.........

阅读(4237) | 评论(0) | 转发(0)

发布时间:2015-08-05 15:23:39

这两天在看pthread 资料的时候,无意中看到这样一句话(man pthread_detach):either ......

阅读(3198) | 评论(0) | 转发(0)

发布时间:2015-08-04 17:38:09

source insight里输入中文,字间距相当的大,这篇文章将帮助你解决这个问题。具体设置如下:......

阅读(2649) | 评论(0) | 转发(0)

发布时间:2015-08-04 17:06:56

1,源码下载地址:http://sourceforge.net/projects/strace/

2,配置,编译
    a)./configure arch=arm cross_compile=arm-hisiv100nptl-linux- --host=arm-linux cc=arm-hisiv100nptl-linux-gcc ld=arm-hisiv100nptl-linux-ld
    b)make
.........

阅读(4920) | 评论(1) | 转发(0)

发布时间:2015-07-21 16:45:04

常用: 复制为ctrl-shift-c 粘贴为ctrl-shift-v tab=补全 ctrl a=开始位置 ctrl e=最后位置 ctrl k=删除此处至末尾所有内容 ctrl u= 删除此处至开始所有内容 .........

阅读(2324) | 评论(0) | 转发(0)

发布时间:2015-07-01 15:01:48

慢系统调用(slow system call):此术语适用于那些可能永远阻塞的系统调用。永远阻塞的系统调用是指调用有可能永远无法返回,多数网络支持函数都属于这一类。如:若没有客户连接到服务器上,那么服务器的acc.........

阅读(1752) | 评论(0) | 转发(0)

发布时间:2015-06-30 16:31:44

  1. 显示环境变量home


  $ echo $home


  /home/redbooks


  2. 设置一个新的环境变量hello


  $ export hello="hello!"


  $ echo $hello


  hello!


  3. 使.........

阅读(5440) | 评论(0) | 转发(0)

发布时间:2015-06-18 09:50:58

1,types.h

点击(此处)折叠或打开

  1. 【阅读全文】
    阅读(2709) | 评论(0) | 转发(0)

发布时间:2015-06-16 15:34:47

一、 路由套接字1.概述在路由器接口中支持三种类型的操作1). 进程能通过写路由套接口向内核发消息。2). 进程能在路由套接口上从内核读消息,这是核心通知进程已收到一个icmp重定向消息并进行了处理的方式。3). 进程可以用sysctl函数得到路由表或列出所有已配置的接口。 2.数据链路.........

阅读(5588) | 评论(0) | 转发(0)

发布时间:2015-06-08 17:19:25

1. __attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是gcc特有的语法。这个功能是跟操作系统没关系,跟编译器有关,gcc编译器不是紧凑模式的,我在windows下,用vc的编译器也不是紧凑的,用tc的编译器就是紧凑的。例如:在tc下:struct my{ ch.........

阅读(2026) | 评论(0) | 转发(1)

发布时间:2015-05-18 14:53:42

编号为1 ~ 31的信号为传统unix支持的信号,是不可靠信号(非实时的),编号为32 ~ 63的信号是后来扩充的,称做可靠信号(实时信号)。不可靠信号和可靠信号的区别在于前者不支持排队,可能会造成信号丢失,而后者不会。下面我们对编号小于sigrtmin的信号进行讨论。1) sighup 本信号在用户终端连接(正常或非正常)结束时发出, .........

阅读(8673) | 评论(0) | 转发(1)

发布时间:2015-05-14 14:57:16

: standard integer typesexact-width integer typesinteger types having exactly the specified widthtypedef signed char int8_t .........

阅读(4091) | 评论(0) | 转发(0)

发布时间:2015-05-11 16:03:35

原文标题:anatomy of a program in memory原文地址:http://duartes.org/gustavo/blog/ [注:本人水平有限,只好挑一些国外高手的精彩文章翻译一下。一来自己复习,二来与大家分享。]     内存管理模块是操作系统的心脏;它对应用程序和系统管理非常重要。今后的几篇文章.........

阅读(5870) | 评论(0) | 转发(8)

发布时间:2015-05-05 18:16:47

struct ifreq这个结构定义在include/net/if.h,用来配置ip地址,激活接口,配置mtu等接口信息的struct ifconf通常是用来保存所有接口信息的应用想要获取当前网口网线插入状态,需要用到ifreq结构体,获取网卡的信息,然后socket结合网卡驱动的ioctl,就可以得到与网线插入状态相关的数据。.........

阅读(3947) | 评论(0) | 转发(2)

发布时间:2015-05-02 20:10:26

#define eperm           1 /* operation not permitted */  #define enoent          2 /* no such file or direct.........

阅读(3136) | 评论(0) | 转发(2)

发布时间:2015-04-27 16:32:16

有时候,写udp socket程序的时候,在调用sendto或者recvfrom的时候,会发现有connection refused错误返回,错误码是econnrefused。对于懂得socket接口但是不很很懂网络的人,可能这根本就不是个问题,他会根据错误码知道远端没有这个服务端口,正如socket api的man手册中描述的那样:econnrefused    .........

阅读(36272) | 评论(0) | 转发(0)

发布时间:2015-02-03 20:26:44

前言:    在嵌入式linux开发中,基本上厂家都已经搭建好了开发环境,但很多时候,都是被裁减过的,有很多我们需要的功能可能是没有的或是不完整的。    例如:为了方便调试知道哪些线程的cpu占用率高,常用到top命令(执行 top 命令后,按下:shift h),这样就可以查看进程中的各个线程的cpu占用率.........

阅读(9379) | 评论(0) | 转发(3)

发布时间:2015-01-26 16:05:09

点击(此处)折叠或打开#define _gnu_source#include #include #include #include #include #include #include ......

阅读(2877) | 评论(0) | 转发(0)

发布时间:2015-01-26 16:04:06

点击(此处)折叠或打开#include #include #include #include #include #include #include #include ......

阅读(1957) | 评论(0) | 转发(0)

发布时间:2014-12-27 14:30:33

在使用到一下 math.h 文件中的函数时,如 log10 等。调用方法:1,#include2,编译时加上 -lm......

阅读(2508) | 评论(0) | 转发(1)

发布时间:2014-12-23 14:22:00

前言    一个嵌入式设备,远端访问的时候基本上不可以直接访问到其下的系统,更多的是功能相关的app。网络通信非常普及,基本上绝大部分的设备都支持网络相关操作,那么此时对该设备中的相关网络参数的获取和设置就显得有必要。一,重要结构体点击(此处)折叠或打开//ifconf通常.........

阅读(5403) | 评论(0) | 转发(1)

发布时间:2014-11-13 10:05:02

前言:    一个大型系统,有很多不同线程的业务,如何确保某些业务全部都被执行,这个时候就需要用到实时线程。一,实现源码点击(此处)折叠或打开pthread_attr_t attr; struct sched_param param; int newprio = 50;  .........

阅读(8526) | 评论(0) | 转发(1)
给主人留下些什么吧!~~

dafanzi2016-12-05 18:21

我找到代码了 不用了 谢谢

  |  

dafanzi2016-12-05 17:20

大佬,在你这篇讲解内存池的博文(http://blog.chinaunix.net/uid-28458801-id-4254501.html)中,list.h源文件没有提供啊。你能提供这个博文的完整代码我学习学习吗?能的话发给我邮箱可以吗?brottfan@163.com谢谢啦

  |  
留言热议
请登录后留言。
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图