- 博客(57)
- 资源 (7)
- 问答 (1)
- 收藏
- 关注
原创 Source Insight 添加 文件格式化命令
1. 下载Astyle.exe文件http://d.119g.com/f/FB635F8C19491D1D.html 如,解压后位置为:"E:\installer\AStyle_2.03_windows\AStyle\bin\AStyle.exe"2. 打开sourceinsight3. options->custom commands -> add 加一个新
2015-09-20 17:03:31
735
原创 linux shell截取字符串
shell中截取字符串的方法有很多,${expression}一共有9种使用方法。 ${parameter:-word} ${parameter:=word} ${parameter:?word} ${parameter:+word} 上面4种可以用来进行缺省值的替换。 ${#parameter}上面这种可以获得字符串的长度。 ${paramet
2015-01-12 15:54:54
756
转载 activity属性设置大全
activity属性设置大全android:allowTaskReparenting=["true" | "false"] 是否允许activity更换从属的任务,比如从短信息任务 切换到浏览器任务。android:alwaysRetainTaskState=["true" | "false"] 是否保留状态不变, 比如切换回home, 再从新打开,
2014-11-18 10:53:52
530
转载 ARM Linux 3.x的设备树(Device Tree)
目录(?)[-]ARM Device Tree起源Device Tree组成和结构DTS device tree sourceDTC device tree compilerDevice Tree Blob dtbBindingBootloaderDevice Tree引发的BSP和驱动变更常用OF API总结1. ARM Device Tree起源Lin
2014-05-12 23:55:45
487
原创 __devexit_p的功能
__devexit_p的功能在看驱动的时候,时常会有如下代码:.remove = __devexit_p(XX_exit),这里的__devexit_p有什么作用呢?我在include/linux/init.h中找到了它的定义:/* Functions marked as __devexit may be discarded at kernel link time, d
2014-05-08 16:59:01
1343
转载 i2c驱动之设备模型建立
一:设备模型建立流程图 二:重要函数分析(1)新适配器加入内核: int i2c_add_numbered_adapter(struct i2c_adapter *adap){ int id; int status; if (adap->nr & ~MAX_ID_MASK) return -EINVAL;retry://为i2c_adapter
2014-05-07 11:45:27
803
转载 lock_kernel
谈到lock_kernel,首先应该参看源码(此处所讲的是2.6.11版本的内核)中的include/linux/smp_lock.h文件。具体请参见该文件,在此处就不列出源码了下面就开始分析了#ifdef CONFIG_LOCK_KERNEL首先就是判断我们是否配置内核支持内核锁。当然分两种情况了,要么配置了,要么就没有要这种功能先来看配置了内核锁之后的代码部
2014-05-07 11:23:49
1172
转载 class_create & class_device_create
//主要是在/sys/class/ 下创建一个 “name”的文件夹 ! 从linux内核2.6的某个版本之后,devfs不复存在,udev成为devfs的替代。相比devfs,udev有很多优势,在此就不罗嗦了,提醒一点,udev是应用层的东东,不要试图在内核的配置选项里找到它;加入对udev的支持很简单,以作者所写的一个字符设备驱动为例,在驱动初始化的代码里调用class_create
2014-05-06 21:25:39
684
转载 register_chrdev()与unregister_chrdev()
Linux下的设备驱动程序被组织为一组完成不同任务的函数的集合,通过这些函数使得Windows的设备操作犹如文件一般。在应用程序看来,硬件设备只 是一个设备文件,应用程序可以象操作普通文件一样对硬件设备进行操作,如open ()、close ()、read ()、write () 等。Linux主要将设备分为二类:字符设备和块设备。字符设备是指设备发送和接收数据以字符的形式进行;而块设备则以整
2014-05-06 16:26:33
1510
转载 浅析linux内核中的idr机制
原文:http://blogold.chinaunix.net/u3/93926/showart_1874142.html idr在linux内核中指的就是整数ID管理机制,从本质上来说,这就是一种将整数ID号和特定指针关联在一起的机制。这个机制最早是在2003年2月加入内核的,当时是作为POSIX定时器的一个补丁。现在,在内核的很多地方都可以找到idr的身影。idr机制适用在那
2014-05-05 11:05:36
515
转载 i2c_client,i2c_adapter和I2C-core的简介
I2C的主要有两大数据结构,struct i2c_client 和 struct i2c_adapter。 2.1 i2c_client struct i2c_client { unsigned short flags; unsigned short addr; char name[I2C_NAME_SIZE]
2014-05-04 20:20:50
935
转载 OpenFlow安全:OpenFlow能否保护SDN
OpenFlow如何实现和保护软件定义网络?OpenFlow是实现软件定义网络(SDN)的协议。概括地说,SDN是一种新兴的企业网络方法, 它将控制平面从网络硬件中解耦出来,由控制器软件来管理网络设备的行为。很多人希望SDN能够实现网络硬件供应商之间更高水平的互操作性。在本质上,OpenFlow是一种语言,它允许控制器和设备相互“交谈”。当OpenFlow交换机被放置在网络中时,控制器将配合它
2014-04-16 17:16:59
1168
转载 select poll区别
多路复用的方式是真正实用的服务器程序,非多路复用的网络程序只能作为学习或着陪测的角色。本文说下个人接触过的多路复用函数:select/poll/epoll/port。kqueue的*nix系统没接触过,估计熟悉了上面四种,kqueue也只是需要熟悉一下而已。一、select模型select原型:int select(int n, fd_set *readfds, fd_set *w
2013-09-29 11:20:33
831
转载 LINUX文件系统详解
LINUX文件系统详解 在LINUX系统中有一个重要的概念:一切都是文件。其实这是UNIX哲学的一个体现,而Linux是重写UNIX而来,所以这个概念也就传承了下来。在UNIX系统中,把一切资源都看作是文件,包括硬件设备。UNIX系统把每个硬件都看成是一个文件,通常称为设备文件,这样用户就可以用读写文件的方式实现对硬件的访问。这样带来优势也是显而易见的:l 实现了设备无
2013-09-28 23:41:14
676
原创 Linux 分辨率
1. 查询分辨率参数通过命令cvt可以来做这个事情,比如:我需要添加1920x1080, cvt 1112 1000 ===>> Modeline "1112x1000_60.00" 92.00 1112 1184 1296 1480 1000 1003 1013 1038 -hsync +vsync 2. 在xorg.conf添加分辨率1> 将上述输出的结
2013-08-27 11:40:58
939
1
转载 linux shell if 参数
shell 编程中使用到得if语句内判断参数 –b 当file存在并且是块文件时返回真 -c 当file存在并且是字符文件时返回真 -d 当pathname存在并且是一个目录时返回真 -e 当pathname指定的文件或目录存在时返回真 -f 当file存在并且是正规文件时返回真 -g 当由pathname指定的文件或目录存在并且设置了S
2013-08-16 10:25:49
576
转载 CFI --- Common Flash Interface
1.CFI简介 CFI(Common Flash Interface)的作用是把 NOR Flash 的信息通过统一的方法读出来。 不同公司产的NOR Flash在 erase,program,lock,unlock等操作上有差别,即command set不一样。 本来产品中用这种NOR Flash,后来升级又换了其他牌子的了,command set不一样,就要改代
2013-08-16 00:02:05
2737
转载 NAND FLASH扇区管理及初始化
(1)首先需要了解NAND FLASH的结构。如图: 以镁光MT29F4G08BxB Nand Flash为例,这款Flash(如上图)以4个扇区(sector)组成1个页(page),64个页(page)组成1个块(block),4096个块(block)构成整个Flash存储器;由于每个扇区的容量是512 字节(bytes),整个Flash容量为4224
2013-08-12 16:26:22
878
转载 任务门,调用门,中断门,陷阱门
每个任务有一个任务状态段TSS,用于保存任务的有关信息,在任务内变换特权级和任务切换时,要用到这些信息。为了控制任务内发生特权级变换的转移,为了控制任务切换,一般要通过控制门进行这些转移。本文将介绍任务状态段和控制门。系统段描述符系统段是为了实现存储管理机制所使用的一种特别的段。在80386中,有两种系统段:任务状态段TSS和局部描述符表LDT段。用于描述系统段的描述符称为系统段描
2013-08-09 16:22:10
1043
转载 lowlevel_init.S 分析
在我迷迷糊学看了lowlevel_init.S中的代码之后,有一个感觉就是,要想读懂其中的代码首先得看一下你所用的芯片手册,因为里面有比较详细的存储器控制(MemoryController)描述。我用的是s3c2440手册里写得十分清楚,总共有8个块(Banks)(Bank0~Bank7),每个块对应着不同的控制与地址线,其实这些Bank很大一部分是对应着的控制寄存器的地址,这个要看实际的芯片与板
2013-08-09 10:22:01
913
转载 uboot的lowlevel_init.s解析
uboot版本为201103rc1.看了一下lowlevel_init.s里面的代码,发现最难懂的地方当属这里了:ldr r0, =SMRDATAldr r1, _TEXT_BASEsub r0, r0, r1ldr r1, =BWSCON /* Bus Width Status Controller */add r2, r0, #13*4
2013-08-09 10:10:46
778
原创 uboot中gd全局变量
在uboot源码中,按照uboot代码流程,进入第二阶段的入口函数,start_armboot, 慕名奇妙的来了一个变量gd, 初始化如下:gd = (gd_t*)(_armboot_start - CFG_MALLOC_LEN - sizeof(gd_t));还是真不好找到这个变量定义的地方,只有认真的阅读代码才知道。以下给出这个变量的定义。DECLARE_GLOBAL_
2013-08-08 16:05:07
5596
转载 __asm__ __volatile__("": : :"memory")
__asm__ __volatile__("": : :"memory");内存屏障(memory barrier) #define set_mb(var, value) do { var = value; mb(); } while (0) #define mb() __asm__ __volatile__ ("" : : : "memory") 1)set_mb(),mb(),
2013-08-08 15:21:59
2955
转载 多寄存器寻址指令ldmia/ldmib和ARM存储器访问指令——多寄存器存取
多寄存器和堆栈寻址的用法:多寄存器寻址:LDMIA,LDMIB,STMIA,STMIB,LDMDA,LDMDB,STMDA,STMDB;堆栈寻址:LDMFA,LDMFD,STMFA,STMFD,LDMEA,LDMED,STMEA,STMED;弄清堆栈寻址的SP的变化:LDMFA,LDMFD,STMFA,STMFD,LDMEA,LDMED,STMEA,STMED;IA:
2013-08-08 12:07:03
1449
1
转载 mov和ldr/str的区别
ARM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令。比如想把数据从内存中某处读取到寄存器中,只能使用ldr比如:ldr r0, 0x12345678就是把0x12345678这个地址中的值存放到r0中。而mov不能干这个活,mov只能在寄存器之间移动数据,或者把立即数移动到寄存器中,这个和x86这种CISC架构的芯片区别最大的地
2013-08-08 11:48:12
908
转载 makefile 替换规则
对于一个已经定义的变量,可以使用“替换引用”将其值中的后缀字符(串)使用指定的字符(字符串)替换。格式为“$(VAR:A=B)”(或者“${VAR:A=B}”),意思是,替换变量“VAR”中所有“A”字符结尾的字为“B”结尾的字。“结尾”的含义是空格之前(变量值多个字之间使用空格分开)。而对于变量其它部分的“A”字符不进行替换。例如:foo := a.o b.o c.oba
2013-08-07 15:45:55
4892
原创 makefile --- sinclude
include : 如果程序找不到include的文件,make就会停止。-include和sinclude作用一样,就是找不到你所包含的文件时不停止执行,忽略该错误
2013-08-06 17:47:57
4696
转载 linux shell中的管道执行
linux shell中管道发挥的作用是文件描述符重定向,例如 prog1 | prog2 | prog3,管道会将prog1的标准输出重定向为prog2的标准输入,将prog2的标准输出重定向为prog3的标准输入,prog1的标准输入和 prog3的标准输出并没有改变。比如命令"ps -ef | grep -w "nginx""将ps命令的标准输出内容作为grep的输入,两个命令的组合的只输出
2013-08-06 16:58:15
1623
转载 ARM的AREA指令的使用
AREA指令指示汇编程序汇编新的代码节或数据节。节是不可分的已命名独立代码或数据块,它们由链接器处理。有关详细信息,请参阅ELF节和AREA指令。语法 AREA sectionname{,ATtr}{,ATtr}...其中: sectionname是将要指定的节名。可以为节选择任何名称。但是,以数字开始的名称必须包含在竖杠内,否则会产生一个缺
2013-07-26 11:37:17
2698
转载 windows 开始-运行-命令大全
开始-运行-命令大全 1. gpedit.msc-----组策略 3. Nslookup-------IP地址侦测器 4. explorer-------打开资源管理器 5. logoff---------注销命令 6. tsshutdn-------60秒倒计时关机命令 7. lusrmgr.msc----本机用户和组 8. services.msc--- 9. oobe/msoobe /a--
2013-06-01 11:49:46
549
原创 core dump
什么叫Core Dump ?--------------------------- 当一个进程要异常终止时,可以选择把进程的用户空间内存数据全部保存到磁盘上,文件名通常是core,这叫做Core Dump。进程异常终止通常是因为有Bug,比如非法内存访问导致段错误,事后可以用调试器检查core文件以查清错误原因,这叫做Post-mortemDebug。 一个进程允许产生多大的cor
2013-06-01 11:48:49
740
原创 linux --- 信号 --- 信号的产生
1. 通过终端按键产生信号以SIGINT为例,这个信号的默认动作是终止进程, SIGQUIT的默认处理动作是终止进程并且CoreDump。 详细见:http://blog.sina.com.cn/s/blog_67c294ca01014a4v.html 关于core dump 的说明 2. 调用系统函数向进程发信号#include int main(void)
2013-06-01 11:48:14
891
原创 QML ---- Keyboard Focus in QML --- 键盘交互
当一个键被按或者释放的时候,一个Key事件就被创建并且传递给当前 QML中焦点Item。 1. 按键处理概述当用户按或者释放一个按键的时候,如下将发生:QT 接受到按键动作,并且产生一个按键事件 如果QT 包含有 QDeclarativeView Widget 有焦点, 那么key事件传递给他, 否则例行Key处理继续 如果没有一个Item有active focus, 那么
2013-06-01 11:47:16
5352
1
原创 linux --- 信号 --- 基本概念
场景:用户输入命令,在Shell下启动一个前台进程 用户按下Ctrl+C,这个键盘输入产生一个硬件中断。 如果CPU当前正在执行这个进程的代码,则该进程的用户空间代码暂停执行,CPU从用户态切换到内核态处理硬件中断。 终端驱动程序将Ctrl-C解释成一个SIGINT信号,记在该进程的PCB中(也可以说发送了一个SIGINT信号给该进程)。 当某个时刻要从内核返回到该进程的用户空间代码继续执
2013-06-01 11:46:33
751
原创 Source Insight --- 配置 SVN
SVN Diffoption->Custom Commands添加一个命令名字:SVN Diff (随便自己写)运行:"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:log /path:%f /notempfile /closeonendTortoiseProc.exe的目录以自己电脑上的为是。
2013-06-01 11:46:06
3861
原创 objdump --- 生成符号表
objdump -t **.a/obj/.. > 1.txt------------------------------------------------将符号表保存在1.txt里面
2013-06-01 11:44:40
3461
转载 linux --- shell --- cut 妙用
1. cut命令用法如下: (转)cut -b list [-n] [file ...]cut -c list [file ...]cut -f list [-d delim][-s][file ...] l 上面的-b、-c、-f分别表示字节、字符、字段(即byte、character、field);l list表示-b、-c、-f操
2013-06-01 11:10:25
1882
原创 linux ---- Shell --- test
1. 条件测试: test [命令test 或 [ 可以测试一个条件是否成立, 如果测试结果为真, 则该命令的Exit Status 为0, 反之为1.这个和C语言是正好相反的。测试两个数的大小关系:
2013-06-01 11:09:24
754
android 最新 API
2014-11-17
android APP 实现微信登录,并同PHP服务器建立连接通信 (悬赏10C币)
2015-11-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人