
linux c
yuzeze
这个作者很懒,什么都没留下…
展开
-
C语言函数指针
一、函数指针的定义顾名思义,函数指针就是函数的指针。它是一个指针,指向一个函数。看例子:A) char * (*fun1)(char * p1,char *p2);B) char **fun2(char * p1,char * p2);C) char *fun3(char * p1,char * p2);看看上面三个表达式分别是什么意思?转载 2016-04-18 13:43:05 · 266 阅读 · 0 评论 -
对Socket CAN的理解(5)——【Socket CAN控制器的初始化过程】
对于一般的CAN模块,进行初始化时,最关键的是以下两步: 1、 配置CAN的位时序; 2、 配置CAN的消息报文; 下面,我们来详细分析上面提到的关键两步。 一、初始化步骤: 1、 第一步,进入初始化模式,在CAN控制寄存器中,将Init转载 2016-07-28 19:16:00 · 994 阅读 · 0 评论 -
ping: sendto: Network is unreachable
在我的板子上ping路由上的IP的时候可以ping通,但是ping外网的IP的时候提示“ping: sendto: Network is unreachable”后来使用route命令看了一下# routeKernel IP routing tableDestination Gateway Genmask Flags Metric Ref转载 2016-07-22 10:27:17 · 818 阅读 · 0 评论 -
Linux中find常见用法示例
·find path -option [ -print ] [ -exec -ok command ] {} \;find命令的参数;pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。-print: find命令将匹配的文件输出到标准输出。-exec: find命令对匹配的文件执行该参数所给出转载 2016-06-12 13:11:52 · 225 阅读 · 0 评论 -
Linux下利用backtrace追踪函数调用堆栈以及定位段错误
一般察看函数运行时堆栈的方法是使用GDB(bt命令)之类的外部调试器,但是,有些时候为了分析程序的BUG,(主要针对长时间运行程序的分析),在程序出错时打印出函数的调用堆栈是非常有用的。在glibc头文件"execinfo.h"中声明了三个函数用于获取当前线程的函数调用堆栈。int backtrace(void **buffer,int size) 该函数用于转载 2016-08-12 09:52:33 · 909 阅读 · 0 评论 -
Linux 内存检测工具 memwatch的使用
1. 官网下载memwatch的源码 推荐使用地址http://www.linkdata.se/sourcecode/memwatch/ 2. linux环境下压缩包解压 使用命令:tar -xzvf memwatch-2.71.tar.gz 查看memwatch目录结构:转载 2016-08-12 10:06:09 · 1229 阅读 · 0 评论 -
Linux C 内存泄漏检测工具
所有使用动态内存分配(dynamic memory allocation)的程序都有机会遇上内存泄露(memory leakage)问题,在Linux里有三种常用工具来检测内存泄露的情況,包括:mtracedmallocmemwatch1. mtracefrom:mtrace是三款工具之中是最简单易用的,mtrace是一个C函數,在里声明及定义,函数原型转载 2016-08-12 10:08:11 · 337 阅读 · 0 评论 -
linux 内存检测工具之memleak
概述MemLeak 是一个C语言内存泄漏检测工具。 原理是利用 C 语言的宏调用来替代原有的函数调用, memleak 维护了一个链表,在这个链表中保存着程序中对内存函数调用的记录,这些函数包括:malloc、calloc、realloc、free。接口声明(对外)memleak.h代码如下:[cpp] view plain copy转载 2016-08-12 10:10:04 · 6918 阅读 · 1 评论 -
移植Qt_for_ARM出错小结
移植Qt_for_ARM2012年10月27日21:03[root@localhost qtARM]# ./configure -prefix /usr/local/qtARM/ -embedded arm -xplatform qws/linux-arm-g++ -qt-libtiff -qt-libmng -qt-mouse-tslib -I/usr/local/tsl转载 2016-09-26 09:51:55 · 5228 阅读 · 0 评论 -
linux 段错误调试方法
1.如果崩溃在程序中,例如 SMH kernel: process_name[32183]: segfault at 24 ip 0000000000412b13 sp 00007fffaab744e0 error 6 in process_name[400000+6e000] 1> 可以通过 addr2line -e process_name 0x412b13 -f 具体定位到源转载 2016-11-12 22:57:47 · 803 阅读 · 0 评论 -
对Socket CAN的理解(4)——【Socket CAN接收数据流程】
现在我们来分析一下CAN总线的接收数据流程,对于网络设备,数据接收大体上采用中断+NAPI机制进行数据的接收。同样,我们现在的CAN模块也是采用同样的方式进行数据的接收。由于我们只针对CAN总线接收数据这条主线进行分析。因些,会忽略一些针对CAN协议的设置及初始化等相关代码。 在初始化CAN设备时,我们需要给CAN设备分配NAPI功能。我们通过netif_napi_add(转载 2016-07-28 19:14:47 · 2479 阅读 · 0 评论 -
对Socket CAN的理解(3)——【Socket CAN发送数据流程】
转载请注明出处:http://blog.youkuaiyun.com/Righthek 谢谢! 对于本文,我们将从用户层使用Socket CAN进行数据发送时,数据从用户空间到底层驱动的整个通信流程,用户层使用Socket CAN可参考上一篇文章《对Socket CAN的理解(2)——【Socket的原理及使用】》。 当我们在用户层通过socket进行CAN数据的发送时,需要进转载 2016-07-28 19:14:00 · 1595 阅读 · 0 评论 -
如何查看gtk版本 pkg使用
pkg-config 详解查看模块版本修改pkg-config 详解一、编译和连接一般来说,如果库的头文件不在 /usr/include 目录中,那么在编译的时候需要用 -I 参数指定其路径。由于同一个库在不同系统上可能位于不同的目录下,用户安装库的时候也可以将库安装在不同的目录下,所以即使使用同一个库,由于库的路径的不同,造成了用 -I 参数指定的头文件的路径也可能不转载 2016-05-13 11:39:18 · 4160 阅读 · 0 评论 -
yaffs2文件系统的制作
内核版本 Linux—2.6.31交叉编译器 ARM-Linux-gcc 4.1.2开发板 TX2440ABusybox-1.15.1.tar.bz2(在Linux中被称为瑞士军刀)mkyaffs2image工具 首先创建一个名字为root_2.6.31的文件夹,在其中创建如下文件夹etc bin var dev home lib mnt转载 2016-05-05 15:06:27 · 473 阅读 · 0 评论 -
Linux下实现U盘、SD卡自动挂载功能
在 Linux中我们经常用到U盘、SD卡的挂载问题,每次都手动挂载或卸载非常麻烦,我们可以采取以下方法实现自动挂载或卸载U盘、SD卡1、首先在/etc/init.d/rsC中加入以下语句echo /sbin/mdev > /proc/sys/kernel/hotplug2、在/etc/下简历medv.conf的文件,包含以下内容sd[a-z][0-9转载 2016-06-29 10:34:29 · 469 阅读 · 0 评论 -
《深入浅出嵌入式底层软件开发》
++++++++++++++++++++++++++++++++++++++++++本文系本站原创,欢迎转载! 转载请注明出处:http://blog.youkuaiyun.com/mr_raptor/article/details/6744480++++++++++++++++++++++++++++++++++++++++++ + 硬件-宝剑,软件-剑法,体转载 2016-07-01 16:43:35 · 1828 阅读 · 0 评论 -
值得重温的 10 篇 C/C++ 热文
本文精选了 CPP开发者 5月份的10篇热门文章。其中有技术分享、技术资源和经典测试题。注:以下文章,点击标题即可阅读《最短的崩溃程序(C语言版)》想写个崩溃的C语言小程序,看起来是个奇怪的主意,不过在我曾经教过的一门实验课上,这是作业之一!实际上,这是一件非常有教学意义的事情。《超经典:小明趣解什么叫网关转载 2016-06-17 08:54:48 · 437 阅读 · 0 评论 -
linux中字符串转换函数 simple_strtoul
Linux内核中提供的一些字符串转换函数:lib/vsprintf.c[html] view plain copy print? 1. unsigned long long simple_strtoull(const char *cp, char **endp, unsigned int base) 2. unsign转载 2016-07-06 14:00:58 · 721 阅读 · 0 评论 -
Linux下使用I2C总线读写 EEPROM(读写i2c从设备通用程序)
1,本文给出了linux 下使用IIC总线读写i2c从设备的实现程序。2, 本文给出了在编程中遇到的几种非常隐蔽的错误的解决方法。3,本文的读写程序非常通用:i2c -d /dev/i2c-1 -s 0x51 0x05 18 -----Write 18 to the register: 0x05 of the i2c-slave address: 0x51i2c -d /dev转载 2016-07-07 17:27:17 · 3053 阅读 · 0 评论 -
对Socket CAN的理解(1)——【CAN总线原理】
转载请注明出处:http://blog.youkuaiyun.com/Righthek 谢谢!由于Socket CAN涉及到CAN总线协议、套接字、Linux网络设备驱动等。因此,为了能够全面地了解Socket CAN的原理。我们需要了解以下几个方面的知识点:(1)CAN总线协议;(2)Socket原理;(3)Linux网络设备驱动;当熟悉以下三个方面的转载 2016-07-28 19:12:24 · 3548 阅读 · 1 评论 -
对Socket CAN的理解(2)——【Socket的原理及使用】
转载请注明出处:http://blog.youkuaiyun.com/Righthek 谢谢! 为了能够对Socket CAN的深入理解,我们需要了解Socket的机制。 Socket的中文翻译为“插座”,在计算机世界里称为套接字。Socket最初是作为网络上不同主机之间进程的通信接口,后来应用越来越广,在同一主机上的不同进程之间通信也可以用Socket。简转载 2016-07-28 19:13:16 · 3575 阅读 · 0 评论 -
Linux环境下段错误的产生原因及调试方法小结
http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多、花费时间最长的问题就是著名的“段错误”(Segmentation Fault)。借此机会系统学习了一下,这里对Linux环境下的转载 2016-11-12 22:58:52 · 30320 阅读 · 0 评论