- 博客(28)
- 资源 (6)
- 收藏
- 关注
原创 编译乱序和执行乱序
编译乱序和执行乱序理解Linux内核的锁机制, 还需要理解编译器和处理器的特点。 比如下面一段代码, 写端申请一个新的struct foo结构体并初始化其中的a、 b、 c, 之后把结构体地址赋值给全局gp指针:struct foo {int a;int b;int c;};struct foo *gp = NULL;/* . . . */p = kmalloc(sizeof(*p), GFP_K...
2018-04-24 18:47:53
2101
原创 GNU C在ANSI C上扩展了哪些
GNU C与ANSI CLinux上可用的C编译器是GNU C编译器, 它建立在自由软件基金会的编程许可证的基础上, 因此可以自由发布。 GNU C对标准C进行一系列扩展, 以增强标准C的功能。1.零长度和变量长度数组GNU C允许使用零长度数组, 在定义变长对象的头结构时, 这个特性非常有用。 例如:struct var_data {int len;char data[0];};char dat
2018-04-18 14:13:58
426
原创 linux 2.6 总线、设备、驱动模型
在Linux 2.6以后的内核中, 总线、 设备、 驱动三者之间因为一定的联系性而实现对设备的控制。 总线是三者联系起来的基础, 通过一种总线类型, 将设备和驱动联系起来。 总线类型中的match() 函数用来匹配设备和驱动, 当匹配操作完成之后就会执行驱动程序中的probe() 函数。 ...
2018-03-22 10:34:53
256
原创 SVN版本回滚方法
SVN版本回滚方法:下面以版本号2011回滚到2010为例,svn co http://my.repository.com/my/project/trunk(先将SVN需要回退的目录下载到本地)在命令行输入:svn merge --dry-run -r 2011:2010 http://my.repository.com/my/project/trunksvn merge -r 2011:20...
2018-03-09 15:43:18
375
原创 修改配置文件中的某一个字段
sed -i -e 's|ssid=Automatic_AP|ssid=Automatic_AP000|' /data/etc/hostapd_mtk.conf
2017-11-30 11:30:35
934
原创 拷贝指定文件之外的所有文件到指定目录
ls ${S}tonly_etc | grep -v "^dnsmasq.conf" "^hostapd_mtk.conf" | xargs -i cp -rf ${S}tonly_etc/{} ${D}/etc
2017-11-29 15:14:54
788
原创 linux交叉编译工程中,单独编译某个文件的方法
有时候我们只修改了一个文件,想看一下有没有编译问题,但如果全工程的编译的话又很慢,所以这个时候可以单独编译。例如下面时我编译工程中的一个节选:aarch64-poky-linux-g++ -mcpu=cortex-a72.cortex-a53+crypto -mtune=cortex-a72.cortex-a53 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-n
2017-11-15 15:49:38
2853
原创 在makefile中递归引用变量
makefile中的变量类似于c代码中的变量,用export声明的变量可以在子目录中的makefile中生效,不用export声明的变量,只能在当前文件中生效。例如: 在上级目录中的makefile中定义 TEMPLATECONF = AAA,在子目录中引用时,TEMPLATECONF 的值为空 在上级目录中的makefile中定义 export TEMPLAT
2017-11-14 14:55:43
1006
转载 在用户空间编写设备驱动程序的优缺点
转自:Linux设备驱动程序(中文版第三版)一个第一次涉及内核问题的 Unix 程序员, 可能会紧张写一个模块. 编写一个用户程序来直接读写设备端口可能容易些.确实, 有几个论据倾向于用户空间编程, 有时编写一个所谓的用户空间设备驱动对比钻研内核是一个明智的选择. 在本节, 我们讨论几个理由, 为什么你可能在用户空间编写驱动.本书是关于内核空间驱动的, 但是, 所以我们
2017-10-24 15:54:18
573
转载 中断处理 快速参考
转自:Linux设备驱动程序(中文版第三版) 本章中介绍了这些关于中断管理的符号:#include int request_irq(unsigned int irq, irqreturn_t (*handler)( ), unsigned long flags, constchar *dev_name, void *dev_id);void free_irq(unsig
2017-10-20 17:42:36
380
转载 /proc/interrupts 和 /proc/stat 查看中断的情况
转自:http://blog.youkuaiyun.com/richardysteven/article/details/6064717在/proc文件系统下,又两个文件提供了中断的信息。 /proc/interrupts 文件中列出当前系统使用的中断的情况,所以某个中断处理没有安装,是不会显示的。哪怕之前安装过,被卸载了。从左到右分别是, irq的序号, 在各自c
2017-10-20 11:38:41
760
转载 字符驱动 快速参考
转自:Linux设备驱动程序(中文版第三版)本章介绍了下面符号和头文件. struct file_operations 和 struct file 中的成员的列表这里不重复了.#include dev_tdev_t 是用来在内核里代表设备号的类型.int MAJOR(dev_t dev);int MINOR(dev_t dev);从设备编号中抽取主次编号的宏
2017-10-19 17:48:48
166
转载 kernel struct file结构中的private_data
转自:http://blog.youkuaiyun.com/bush2582/article/details/7731220struct file是字符设备驱动相关重要结构。struct file代表一个打开的文件描述符,它不是专门给驱动程序使用的,系统中每一个打开的文件在内核中都有一个关联的 struct file。 它由内核在 open时创建,并传递给在文件上操作的任何函数,知道最后关闭。
2017-10-19 16:14:59
2211
转载 GATT Profile 简介
转载自:https://race604.com/gatt-profile-intro/GATT Profile 简介 15 July 2015 on Android, Bluetooth 网上关于讲解 BLE 的内容比较少,看到这
2017-10-16 16:53:48
428
转载 Systemd 入门教程:命令篇
转自:http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html
2017-07-20 17:44:37
230
转载 tar分包压缩与合并
转自:http://blog.youkuaiyun.com/xiongmc/article/details/17721533目标-(标准)如何将文件打包、压缩并分割成制定大小?日期: August 28 日, Saturday@ 01:37:03主题 Shell 编程和工具 (如何在Linux下实现Windows中winrar和winzip等压缩软件所提供的打包压缩分割功能)将
2017-06-14 16:56:27
670
原创 yocto工程软件包编译依赖关系
最近在搞一个yocto上的编译问题,问题是这样的,我们有两个模块A和B,编译的时候先编译的A模块再编译B模块,B模块的编译依赖A模块的A.so文件,理论上讲,先编译的A模块,那么A模块编译完后生成了A.so,然后B模块去连接A模块的A.so是没有问题的,但是在编译的时候出现了A.so找不到的问题,起始以为自己路径写错了,但看了下,指定的路径里面A.so是存在的,但就是在连接的时候找不到A.so,从
2017-05-20 10:10:11
3321
原创 用systemd管理进程时,修改复位超时等待时间
用systemd管理进程时,系统复位默认等待时间为90s,如果一个进程不能正常结束,则需要倒计时90秒,系统才能复位,立马感到很烦。来先看看这个90S是在哪里定义的吧,不难发现,这个参数是在下面文件中:# This file is part of systemd.## systemd is free software; you can redistribute it and/o
2017-05-19 11:46:43
6384
1
原创 systemd 进程服务文件参数解析
1.服务权限systemd有系统和用户区分;系统(/user/lib/systemd/system/)、用户(/etc/lib/systemd/user/).一般系统管理员手工创建的单元文件建议存放在/etc/systemd/system/目录下面。2.创建服务文件[Unit]Description=nginx - high perf
2017-05-17 10:28:53
2647
转载 git简介
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
2017-05-10 19:04:41
286
转载 linux 里的ldd命令
转载自:http://blog.youkuaiyun.com/qq_26819733/article/details/50610129ldd本身不是一个程序,而仅是一个shell脚本:ldd可以列出一个程序所需要得动态链接库(so)我们可以用which命令找到ldd的位置:$ which ldd/usr/bin/ldd在制作自己的发行版时经常需要判断某条命令需要
2017-05-04 16:05:19
2053
原创 gcc 编译relocation相关的一个问题
最近使用MTK的cpu开发板开发一个产品,平台是MTK的sdk,需要把我们自己的app移植上去,mkt自己的sdk里面有一个初始化进程,里面也定义了很多函数,我们的app需要引用里面的一些函数,所以我把sdk里面的这个进程的所有代码直接编译成一个动态库,以便我自己的进程编译的时候连接。编译时使用了-share参数,单编译时报错crtbegin.o: relocation R_ARM_MOVW_
2017-04-21 16:32:33
1614
转载 select函数的用法
转载自:http://blog.youkuaiyun.com/piaojun_pj/article/details/5991968/Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必
2017-03-30 15:34:58
274
原创 centos linux环境dbus arm交叉编译
1、安装交叉编译环境, 可参考: http://blog.youkuaiyun.com/Kevin_Mr/article/details/508153852、提前准备已经经过交叉编译的expat库,并放到合适的位置,由于涉及信息安全,expat库不能上传3、dbus-1.10.6源码:http://download.youkuaiyun.com/detail/huashibuliao/97887614、d
2017-03-27 16:57:53
2906
原创 D-BUS编译
0、D-BUS是干啥的?请百度1、 D-BUS 编译依赖expat, expat干啥的,请百度2、我的环境:centOS6.83、expat版本expat-2.2.0 d-bus版本dbus-1.10.164、expat:http://download.youkuaiyun.com/detail/huashibuliao/97887655、d-bus:http://download.csd
2017-03-21 16:54:09
693
转载 linux中yum和apt-get的用法及区别
-------转载自:http://www.2cto.com/os/201306/221649.htmlLinux中yum和apt-get用法及区别 一般来说著名的linux系统基本上分两大类: 1.RedHat系列:Redhat、Centos、Fedora等 2.Debian系列:Debian、Ubuntu等 R
2017-03-21 16:37:04
840
linux高级程序设计
2017-05-18
IPC_share_memory
2014-06-26
花生壳DDNS源码
2014-06-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人