
linux
DBPF
软件工程师,做过linux driver,arm应用工程师。
展开
-
2021-06-01
Linux:通过echo写二进制文件(16进制)1.简单用法[推荐]echo 001122334455 | xxd -r -ps > test // 6 个字节xxd // xxd 命令用于用二进制或十六进制显示文件的内容-r // 把xxd的十六进制输出内容转换回原文件的二进制内容-ps // 以 postscript的连续十六进制转储输出,这也叫做纯十六进制转储2.朴素用法echo -e -n "\x11\x22" > test转载 2021-06-01 17:40:54 · 206 阅读 · 0 评论 -
sbull在新内核编译
《linux设备驱动程序》(ldd3)中的实例程序是在linux-2.6.10版本内核中开发的,我的linux内核版本是linux-2.6.32.16,许多函数和结构都相对2.6.10发生了变化,所以必须自己对源码进行修改。从oreilly官网download示例代码,进入sbul文件夹,开始第一次make:结果如下:root@ubuntu:/home/shevarey/ssdd/转载 2013-12-09 18:44:40 · 1979 阅读 · 0 评论 -
Kconfig,.config,Makefile之间的关系(转载)
当我们编写完一个驱动后,我们要把它以模块形式编译或者直接编译进内核时,需要修改相关文件,其中最重要的便是kconfig ,makefile。主要是分析一下三者之间的关系,然后就其语法简要的谈一下。 当我们在内核源码目录下执行make (或者make menuconfig等命令)命令时,实际上是根据makefile 来进行编译的。我在mini2440开发板上编写了一个按键控制led灯转载 2013-12-31 10:59:23 · 608 阅读 · 0 评论 -
__attribute__
1. __attribute__GNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)__attribute__前后都有两个下划线,并且后面会紧跟一对原括弧,括弧里面是相应的__attribu转载 2014-01-07 20:06:50 · 593 阅读 · 0 评论 -
Linux下diff,Patch的应用和制作方法介绍
Linux下Patch的应用和制作方法介绍学习资料的收集比较简单,方法一类似于这种初级问题网上资料非常丰富,google或者baidu搜索一下,然后选择有价值的资料,方法二是阅读man在线文档。完成收集工作,当然最终要在自己的Linux上作实验,比较总结,消化吸收为自己的东西。要除去这么一种错误思想:一定要学全。要知道,一次学全是不可能的,只能先学习最为常用的,在以后不断实践的过程中逐步的转载 2014-01-10 16:42:52 · 947 阅读 · 0 评论 -
C-Kermit在linux 下的安装和使用
1. 到http://www.columbia.edu/kermit/ckdaily.html下载ckermit源码x.tar.gz版本:0.9因为较低的版本不支持波特率9216002.编译ckermittar xzvf x.tar.gz -C ckermitcd ckermitmake linux编译成功后, 会产生可执行文件wermit3.描述|--转载 2014-01-13 22:18:04 · 968 阅读 · 1 评论 -
如何开启VMware串口
先前在玩GEC2410时,有个想法,就是在linux下进行调试,由于目标板上电或复位时会发送信息给PC机的串口,这已在windows下实现过,于是想在linux下看看效果,可是当时我在linux下设好串口后,发现一点反应都没有,当时以为是自己没有安装交叉编译环境,于是昨天晚上把嵌入式 linux下的交叉编译环境装好后,心想这下应该可以拉,没想到我上电目标板,linux下的串口一直没有反应,郁闷,怎转载 2014-01-13 22:17:12 · 892 阅读 · 0 评论 -
ubuntu官方源列表网站
http://wiki.ubuntu.org.cn/%E6%BA%90%E5%88%97%E8%A1%A8wiki.ubuntu.org.cn/源列表转载 2015-01-08 10:34:53 · 3531 阅读 · 0 评论 -
ubuntu GPG签名验证错误 NO_PUBKEY问题
正在读取软件包列表... 完成W: GPG签名验证错误: http://deb.opera.com unstable Release:由于没有公钥,下列签名无法进行验证: NO_PUBKEY 033431536A423791W: 您可能需要运行 apt-get update 来解决这些问题需要把上面两行命令中的“4F6C1E86”替换成“NO_PUBKEY”后面的字串的最后8位,也转载 2015-01-08 09:54:09 · 962 阅读 · 0 评论 -
cscope file does not exist 错误解决方法
转自:http://blog.youkuaiyun.com/david_xtd/article/details/7737653[plain] view plaincopyprint?find `pwd` -name "*.[ch]" -o -name "*.cpp" > cscope.files cscope -bR -i cscope.fil转载 2015-05-24 23:26:42 · 5913 阅读 · 0 评论 -
c语言运行shell脚本
system("脚本路径")来执行shell脚本 1、system(执行shell 命令)相关函数 fork,execve,waitpid,popen表头文件 #include定义函数 int system(const char * string);函数说明 system()会调用fork()产生子进程,由子进程来调用/bin/s转载 2013-11-11 13:14:34 · 1787 阅读 · 0 评论 -
tar.xz文件如何解压
XZ压缩最新压缩率之王xz这个压缩可能很多都很陌生,不过您可知道xz是绝大数linux默认就带的一个压缩工具。之前xz使用一直很少,所以几乎没有什么提起。我是在下载phpmyadmin的时候看到这种压缩格式的,phpmyadmin压缩包xz格式的居然比7z还要小,这引起我的兴趣。最新一段时间会经常听到xz被采用的声音,像是最新的archlinux某些东西就使用xz压转载 2013-11-08 12:49:32 · 687 阅读 · 0 评论 -
linux文件系统目录说明
/bin:存放着一百多个Linux下常用的命令、工具/dev:存放着Linux下所有的设备文件!/home:用户主目录,每建一个用户,就会在这里新建一个与用户同名的目录,给该用户一个自己的空间/lost+found:顾名思义,一些丢失的文件可能可以在这里找到/mnt:外部设备的挂接点,通常用cdrom与floppy两个子目录!它的存在简化了光盘与软盘的使用。你只需在塞入光盘后,转载 2013-07-23 08:34:26 · 591 阅读 · 0 评论 -
container_of 理解
问题:如何通过结构中的某个变量获取结构本身的指针???关于container_of见kernel.h中:/*** container_of - cast a member of a structure out to the containing structure* @ptr: the pointer to the member.* @type: the t转载 2013-07-24 18:51:36 · 481 阅读 · 0 评论 -
BUG_ON
调试的时候很有用的东西:dump_stack 使用前,先在内核配置中把kernel debug选上:make menuconfig:kernel hacking-->kernel debug 作用:一些内核调用可以用来方便标记bug,提供断言并输出信息。最常用的两个是BUG()和BUG_ON()。当被调用的时候,它们会引发oops,导致栈的回溯和错误信息转载 2013-07-29 09:49:28 · 628 阅读 · 0 评论 -
typeof
typeof关键字是C语言中的一个新扩展。typeof的参数可以是两种形式:表达式或类型。下面是使用表达式的的例子: typeof(x[0](1)这里假设x是一个函数指针数组,这样就可以得到这个函数返回值的类型了。如果将typeof用于表达式,则该表达式不会执行。只会得到该表达式的类型。以下示例声明了int类型的var变量,因为表达式foo()是int类型的。由于转载 2013-07-29 10:37:06 · 543 阅读 · 0 评论 -
__attribute__机制介绍 .
1. __attribute__ GNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)__attribute__前后都有两个下划线,并且后面会紧跟一对原括弧,括弧里面是相应的__attrib转载 2013-09-01 21:04:31 · 478 阅读 · 0 评论 -
linux inode
一、inode是什么?理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是转载 2013-09-09 15:05:02 · 686 阅读 · 0 评论 -
基于linux-2.6.38.8内核的wifi驱动分析
http://blog.youkuaiyun.com/libinqi86/article/details/7007685//参考给一些前辈们的文章1、sdio接口层解析SDIO总线 SDIO总线和USB总线类似,SDIO也有两端,其中一端是HOST端,另一端是device端。所有的通信都是由HOST端发送命令开始的,Device端只要能解析命令,就可以相互通信。 CL转载 2013-09-24 21:04:20 · 1002 阅读 · 0 评论 -
Linux下Liberats SDIO wifi驱动分析
http://blog.chinaunix.net/space.php?uid=11114210&do=blog&id=2908493当内核检测到SDIO设备,开始执行if_sdio_probe: 整体流程: 1.lbs_add_card的时候指定并打开线程priv->main_thread = kthread_run(lbs_thread, de转载 2013-09-24 21:07:08 · 1066 阅读 · 0 评论 -
Linux驱动开发之环境搭建----Ubuntu 12.4 编译内核
Linux驱动开发之环境搭建----Ubuntu 12.4 编译内核要想编写驱动,建立内核目录树是必须的.也即是在PC Linux上编译内核,加入到PC Linux中,以这个内核作为PC Linux的内核启动. 1. 我的系统是Ubuntu 12.4,先查看一下原先的内核版本:cody@cody-linux:/$ uname -aLinux cody-linu转载 2013-10-29 17:14:40 · 1669 阅读 · 0 评论 -
Linux设备驱动开发-交叉编译环境的建立
学习linux设备驱动,首先要在自己的PC机上安装linux系统,当然最好还要有一块属于自己的开发板等等,我这里用的是FriendlyARM公司的tiny6410开发板,采用的是S3C6410 ARM11处理器。这些准备工作就不再这里进行讲解了。那么下面我们就将进行设备驱动开发的第一步,建立交叉编译环境。 其实有了自己的开发板之后,开发板自带的资料都会有建立交叉编译环境大概方转载 2013-10-29 17:16:26 · 1531 阅读 · 0 评论 -
linux文件系统
文件系统是linux的一个十分基础的知识,同时也是学习linux的必备知识。 本文将站在一个较高的视图来了解linux的文件系统,主要包括了linux磁盘分区和目录、挂载基本原理、文件存储结构、软链接硬链接、和常见目录的介绍。相信有了这些知识对于深入的学习linux会有一定的帮助。文章例子主要是基于ubuntu发行版。 如有不对之处请大家多多指出。1.Linux磁盘分区和目转载 2013-07-16 19:36:52 · 618 阅读 · 0 评论