- 博客(257)
- 资源 (6)
- 收藏
- 关注
原创 VIM 多行编辑
这个题目下最常用的应该是多行注释,和多行取消注释,也即在多行的行首插入 # 或者 “ 符号,和删除多行的行首符号.多行注释:1. 进入命令模式,按ctrl + v进入 visual block模式,使用方向键,把需要注释的行选中2. 按大写字母 I (shift + i),再插入注释符,例如#3. 按Esc键,然后再按任意键,就可以看到了(VIM 7.4上测试)取消多行注释:1. 进...
2015-11-30 14:11:01
737
原创 【读书笔记】算法复杂度/时间复杂度 的描述
摘自《Linux Kernel Development》3rd edtion. 迄今为止看到最通俗易懂的关于算法复杂度/时间复杂度的描述。同时感叹一下:老外的教育和中国的真的就是不一样,人家可以用最朴实通俗的语言来描述一个专业术语,让几乎小白的人也可以看明白,相反,随便用百度搜出来的结果,看得人似懂非懂 ...
2015-01-28 22:35:45
335
原创 ARM Program Status Register 和 相关指令之笔记
【原本发表在网易博客,可博客中的图片经常过段时间后就挂掉了,逼我换地方的节奏】The ARM instruction set provides two instructions to directly control a program status register (psr). The MRS instruction transfers the contents of either the
2015-01-17 21:35:52
515
原创 C语言实现链表操作
12/27 更新,增加了双向链表应付面试需要应该完全木有问题了。包含单向链表和双向链表,单向链表中的操作比较多。双向链表因为实现逻辑基本和单向链表一致,所以增加它只是为了练手。单链表基本上包含了最常见的,也就是你搜索链表操作时候,baidu给出的那些结果。包含简单测试程序。因为发现网上许多此类代码,其实并没有经过较完(You)整(Bug)测试,有些连基本的边界值都没测过= =。戳我包含操作:创建,...
2014-12-26 22:50:20
158
原创 了解 Git
最近闲的蛋疼。看完了《a byte of python》。又来了解下Git,因为想把一些面试用常见的基本题目放倒github,已经传一份关于单链表操作的,后面整理结束在发出来。Git 教程 这份教程看了2/3多,内容编排,篇幅编辑算符合我对好书的定义。另有一份文章可做参考手册看...
2014-12-21 22:31:49
165
原创 无OS下 BSS段清零
移植vivi到FS2410(s3c2410)上碰到的问题,串口有这样的打印:Failed initailizing heap region问题出在于,下面的代码中,gHeapBase始终不为NULL,这就很奇怪了,作为C开发者,一般都会知道gHeapBase会被汇编在bss段,然后加载的时候,bss区域都是0。这个问题真是让我百思不得其解了好几天。但是,注意,这一概念是在有OS的情况下而言,因为加...
2014-07-11 23:01:31
280
原创 GCC内联汇编
这份英文资料 GCC-Inline-Assembly-HOWTO 其实很深入浅出,面面俱到了,乍一看有点费劲,慢慢看还是挺好理解的另有人专门翻译的上面的文档,没细看,仅供参考对于我个人,只有一个术语开始比较困惑:clobbered registers,看了下翻译的文档也了然了。clobber,被重击的,被打击的,在这里引申出来的意思就是,被破坏了的寄存器。个人理解,内嵌汇编已经是汇编了,所以编译...
2014-05-25 22:57:11
213
原创 线程的同步与锁简介之:信号量,互斥体,临界区
来自《程序员的自我修养》一书某节,手打抄录代为笔记。简洁的介绍,适合已知道这些概念并温故而知新的同学,比如我,因为有介绍其区别。为了避免多个线程同时读写一个数据而产生不可预料的后果,我们需要将各个线程对同一个数据的访问做同步。所谓同步,既是指在一个线程访问数据未结束的时候,其他线程不得对同一个数据进行访问。如此,对数据的访问被原子化了。同步最常见的方式是锁(Lock)。锁是一种非强制机制,每一个线...
2014-05-10 18:17:16
203
原创 帮助理解 死锁 的案例
取自:LDD3,Chapter5,自旋锁->自旋锁和原子上下文我们的驱动程序正在执行,并且已经获得了一个自旋锁,这个锁控制着对设备的访问。在拥有这个锁的时候,设备产生了一个中断,它导致中断处理程序(routine)被调用。而中断处理程序在访问该设备前,也要获得这个锁。在中断处理程序中拥有锁是合法的,这也是自旋锁操作不能休眠的一个原因。但是,当中断处理程序在最初拥有锁的代码所在的处理器上运行时...
2013-06-02 17:16:44
142
原创 My Vimrc
一半是自己的内容,另一半是升级后被自动merge过来的,懒得整理了,还算好用,备份下"""""""""""""""""""""""""""""""""""&quo
2013-05-19 22:39:40
155
原创 BB 黑莓手机 8700 上网问题 Service Book(SB)导入方法
用BB的手机上网的话是要进行相应的配置的,关键就是要把ServiceBook导入到手机了,不同的运营商对应不同的SB,SB到网上去下载就可以啦,导入方法如下:首先在BB上进入 “Option 选项”->“Advanced Option 高级选项”->“Service Book 服务与预订”,然后按住(是按住)Alt,再依次按键“S-B-E-B”(如果是增强型SureType键盘按S的话...
2013-05-07 23:36:50
309
原创 全局变量 重定义的问题
最近碰到的问题,a文件中定义并初始化了一个全局变量,b文件想声明使用它,但不巧忘记写extern,然后链接时竟然没有报错。找到正解:另附静态库解析流程,已验证过 ...
2013-04-15 22:21:35
355
原创 C语言整形数据之间的转换的几个小note
1. 无符号数就是普通的二进制表示,有符号数为补码表示,绝大多数的计算机都是用补码表示有符号数 2. 有符号数和无符号数之间互相转换的原则是:两种数字一起运算时,有符号数向无符号数转换,其二进制表示的位模式不会改变。有几个小问题要注意, 1)如果转换的无符号数过大,导致超出补码能够表示的范围,这个就需要琢磨下,转换后的数字到底是多少了。所以,如果无符号数比较小,转成有符号数时其数值可能不会变...
2012-09-22 20:41:18
166
原创 【转载】“而立”,“不惑”和“知天命”--程序员的三个层次
原文来自:http://www.cnblogs.com/woodhead/archive/2008/10/10/1307824.html 摘要:我把我接触过的有经验的程序员分为三个层次,借用夫子的话来形容这三个层次就是:“而立”,“不惑”和“知天命”。如果想要见识“知天命”级别的程序员的功力,可以仔细研究下例如log4net之类的成熟开源框架。 编了12年的程序,国内国外四处奔波,从“...
2012-07-15 22:50:34
168
原创 【转载】C++/C宏定义中## 连接符与# 符的含义
总是记不住。。那就Mark一下## 连接符与# 符 ## 连接符号由两个井号组成,其功能是在带参数的宏定义中将两个子串(token)联接起来,从而形成一个新的子串。但它不可以是第一个或者最后一个子串。所谓的子串(token)就是指编译器能够识别的最小语法单元。具体的定义在编译原理里有详尽的解释,但不知道也无所谓。同时值得注意的是#符是把传递过来的参数当成字符串进行替代。下面来看看它们是怎样工作...
2012-06-24 13:48:21
107
原创 container_of 理解
看LDD3时,碰到了这个Macro。还是有点意思的,在<linux/kernel.h>中定义如下:/** * container_of - cast a member of a structure out to the containing structure * @ptr: the pointer to the member. * @type: the type of th...
2012-06-17 20:39:53
109
原创 结构体中最后一个成员为char[1]或char[0]
看代码时候看到了,很土鳖的不知道是啥意思,总结下网上看到的内容。需要引起注意的:ISO/IEC 9899-1999里面,这么写是非法的,这个仅仅是GNU C的扩展,gcc可以允许这一语法现象的存在。 结构体最后使用0或1的长度数组的原因,主要是为了方便的管理内存缓冲区,如果你直接使用指针而不使用数组,那么,你在分配内存缓冲区时,就必须分配结构体一次,然后再分配结构体内的指针一次,(而此时分配的内存...
2012-04-15 23:58:29
220
原创 umount 时出现 "Device is busy" 的解法
原链接: HERE 很好用!当任何目录有 mount, 然后有程序使用/挂在那个目录上的话, 就没有办法 umount 掉, 於 umount 时会出现 Device is busy 的讯息.要怎麼找出是哪个程序挂在那个目录上? 然后去把那个程式砍掉呢?使用 fuser 的指令那要怎麼找出是哪个程式挂在那个目录上?可以使用 fuser - identify processes using fil...
2012-04-09 23:09:43
136
原创 vanilla linux
又是一个有趣的名词,了解下 http://en.wikipedia.org/wiki/Linux_kernel he current development model of the Linux kernel is such that Linus Torvalds makes the releases of new versions, also called the "vanilla" or "m...
2012-01-20 00:48:46
436
原创 Parameters VS Arguments/Parameters 与 arguments的区别
偶然碰到这个问题,值得一了解,详见 http://en.wikipedia.org/wiki/Parameter_(computer_programming) In a word, 简单的说:这两个术语一个用在函数定义时,一个用在函数调用时~These two terms are sometimes loosely used interchangeably; in particular, "arg...
2012-01-20 00:21:21
219
原创 一直会困惑的问题= =|
"在计算机中,无符号数编码是基于传统的二进制表示法,有符号整数(包括正数和负数)是用二进制补码表示的。有符号数x的补码表示是”x的绝对值按位取反,再加1;正数的补码还是其本身“总是会忽略&忘记这一点。。导致刚出道时的疑问,今天还会疑问= =||| 一个字节,用二进制表示时,其值域是0000 0000 - 1111 1111,如果看成十进制整数就是0 - 255,这两种符号表示方法对于描述字...
2011-09-09 01:59:55
135
原创 How to install Sun Java 1.5 on Ubuntu 10.04【zz】
10.04装过java的都知道,如何装1.6网上可以找到,今天需要试下1.5,这里http://steve-on-sakai.blogspot.com/2010/05/how-to-install-sun-java-15-on-ubuntu.htmlblogspot竟然可以访问了???Here's how to get Sun Java 1.5 installed on Ubuntu 10.04:...
2010-09-08 16:20:35
143
原创 小记Pthread线程属性
上次用过,对它的属性值的意思不明白,detachable, joinable,可分离的,可切入,看这个中文谁能明白这个线程属性是啥意思?今天补记下:http://fanqiang.chinaunix.net/a4/b8/20010811/0905001105.html 其中一段文字讲到这个了线程的分离状态决定一个线程以什么样的方式来终止自己。在上面的例子中,我们采用了线程的默认属性,即为非分离状态...
2010-09-04 21:11:38
113
原创 Ubuntu server 10.04 禁止 framebuffer
Disabling Frame Buffer in Ubuntu 10.04 ServerI was able to disable the framebuffer by adding a blacklist entry for my particular vga driver into /etc/modprobe.d/blacklist-framebuffer.conf.Added "black...
2010-09-01 18:43:18
187
原创 __asm__ __volatile__内嵌汇编用法简述
今天出去面试被问到了C中如何使用汇编,格式是怎样的,代码看过,但是谁会想到去记它,做个笔记吧。。。。面试结果是失败的。。据说是和他们招聘岗位不符~~在阅读C/C++原码时经常会遇到内联汇编的情况,下面简要介绍下__asm__ __volatile__内嵌汇编用法。因为我们华清远见教学平台是ARM体系结构的,所以下面的示例都是用ARM汇编。 带有C/C++表达式的内联汇编格式为: __asm__...
2010-08-24 00:35:21
291
原创 ubuntu 9.04 + crosstool
去年开始看arm的时候做过的了,成功是成功了。。但是编译出的二进制文件运行似乎有问题。。。还是乖乖用厂家给的toolchain吧参考链接:http://www.kegel.com/crosstool/current/doc/crosstool-howto.html#allhttp://hi.baidu.com/luisxu/blog/item/9cb513dbd8a06261d0164e86.ht...
2010-08-02 19:20:34
98
原创 rssi为什么是负值
也是几个月前看过的了,放blog做笔记因为无线信号多为mW级别,所以对它进行了极化,转化为dBm而已,不表示信号是负的。1mW就是0dBm,小于1mW就是负数的dBm数。弄清信号强度的定义就行了:Rss=10logP只需将接受到的信号功率P代入就是接收信号强度(灵敏度)[例1] 如果发射功率P为1mw,折算为dBm后为0dBm。 [例2] 对于40W的功率,按dBm单位进行折算后的值应为: 10l...
2010-08-02 19:17:56
749
原创 Wi-Fi术语总结(原创)
前几个月做Wi-Fi的过程中,顺便总结了下,wifi的术语很多,这里算做个快速索引吧。中间很多文档出处忘记了。。很好,只能需要读者自己google之了WEP:Wired Equivalency Protection,一种Wi-Fi连接的安全标准,类似的安全标准还包括下面的WPA,WPA2。它可以使用64/128bit的ASCII/HEX(0-9,A-F)的Password,它的密钥是由Passwo...
2010-08-02 19:15:53
472
原创 Nand 的几个名词:oob,bbt,ecc【ZZ】
Nand Flash还是有很多知识学习的,目前是碰到啥再去了解啥了,这篇不错。例如Samsung K9F1208U0B,数据存储容量为64MB,采用块页式存储管理。8个I/O 引脚充当数据、地址、命令的复用端口。 芯片内部存储布局及存储操作特点: 一片Nand flash为一个设备(device), 其数据存储分层为: 1 (Device) = 4096 (Blocks) ...
2010-07-29 02:14:29
188
原创 start_addr & NAND_BLOCK_MASK || size & NAND_BLOCK_MASK
网上好多人同问这个问题,nand_read_ll函数中,开始的if判断啥意思#define NAND_SECTOR_SIZE 512#define NAND_BLOCK_MASK (NAND_SECTOR_SIZE - 1)if ((start_addr & NAND_BLOCK_MASK) || (size & NAND_BLOCK_MASK)) { return...
2010-07-22 17:31:08
140
原创 ATPCS
看bootloader的nand flash部分汇编调用C函数部分,看到参数传递使用的是R0,R1,R2,几个寄存器,碰到了新名词,了解下,在这里:其实自己目前只要知道这个标准规定了:参数传递以及返回值使用R0-R3寄存器就够了。更详细的有本pdf在这里(可右键另存为来下载)ADS编译链接环境定义了统一的函数过程调用标准ATPCS(ARM-Thumb Procedure Call Standard...
2010-07-22 16:30:38
169
原创 很强大--Linux系统一条命令批量修改图片尺寸
find ./ -name '*.jpg' -exec convert -resize 600x480 {} {} \;注意空格和最后的分号。转换后会覆盖源文件。这里用到两个命令。这条命令的意思是找到当前目录所有jpg文件。执行conver -resize 600x480 文件名 文件名。find会把每个文件执行一次convert命令。使用find命令有时比写个脚本还要方便。...
2010-06-02 18:27:46
380
原创 研究下了sqlite3
大忙之后,小爽一周,然后研究了下数据库,做一个小小入门篇吧,给些我看过比较有帮助的链接: SQL(Structured Query Language) 关系数据库 sqlite简介:是遵守ACID的关系数据库管理系统,它包含在一个相对小的C库中。SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。这在消耗总量、...
2010-05-27 15:13:26
123
Embedded Linux®: Hardware, Software, and Interfacing
2017-06-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人