C语言
文章平均质量分 71
bitowang
这个作者很懒,什么都没留下…
展开
-
ASCII码字库的显示
tslib源代码时就注意到里面有font_8x8.c和font_8x16.c两个文件(它们来自Linux内核,具体目录是./drivers/video),它们包含了在屏幕上显示所需的所有字符(可打印字符),由此也看了一下tslib显示字符的代码。字符当然是ASCII码了,通过ASCII码字库文件(网上有下载)和在终端上显示ASCII字符。使用的字库是8x16,每个字符占用内存空间为16字节,文原创 2012-08-17 19:07:33 · 8303 阅读 · 0 评论 -
ARM LR寄存器
MOV PC,LR看下面这个ARM汇编吧BL NEXT ;跳转到子程序......... ;NEXT处执行NEXT..........MOV PC,LR ;从子程序返回这里的BL是跳转的意思,LR(R14)保存了返回地址PC(R15)是当前地址,把LR给PC就是从子程序返回这里有一下总结首先1.SP(R13) LR(R14)PC(R15)2.转载 2013-01-21 15:20:15 · 20748 阅读 · 3 评论 -
头文件的使用出现的情况
今天做LCD屏幕显示汉字的demo程序,需要调用字库文件,为了简便起见,把字库文件中的字符按照一定的数据格式保存到一个数据结构中,大约存了10个汉字,出现这个问题:字符重复定义的错误。把汉字的数据放到一个数组中,保存在头文件中,在此头文件中使用了类似#ifndef ### #endif这样的语句,当有多个语句包含的时候出现重复定义的错误,通过从网上搜索相应的问题发现,变量的定义一般在源文件中(cp原创 2013-03-05 22:26:06 · 7971 阅读 · 0 评论 -
关于Linux中的链接
转载进注明出处:http://blog.csdn.net/footman_/article/details/68716881 索引节点(index node) Linux文件系统中,每个磁盘柱面都存在2个部分,即索引节点inode和实际数据块block。内核为每个文件分配一个称为索引节点的inode(该inode在系统中是唯一的),inode包含了文件的所有者、转载 2013-03-29 17:15:44 · 830 阅读 · 0 评论 -
SUID和SGID的详细解析
SUID和SGID的详细解析 由于SUID和SGID是在执行程序(程序的可执行位被设置)时起作用,而可执行位只对普通文件和目录文件有意义,所以设置其他种类文件的SUID和SGID位是没有多大意义的。首先讲普通文件的SUID和SGID的作用。例子:如果普通文件myfile是属于foo用户的,是可执行的,现在没设SUID位,ls命令显示如下:-rwxr-xr-x 1 f转载 2013-03-29 15:31:49 · 1457 阅读 · 0 评论 -
硬连接和软连接的原理
引子目前,UNIX的文件系统有很多种实现,例如UFS(基于BSD的UNIX文件系统)、ext3、ext4、ZFS和Reiserfs等等。不论哪一种文件系统,总是需要存储数据。硬盘的最小存储单位是扇区,数据所存储的最小单位则不是扇区,因为用扇区来存储效率就太低了。一个扇区只有512字节,而磁头是一个扇区一个扇区地读取,也就是说,如果文件是10MB,那么为了读这个文件,磁头必须要进行读转载 2013-03-29 16:50:19 · 1826 阅读 · 0 评论 -
在Linux下,一个文件也有三种时间,分别是:访问时间、修改时间、状态改动时间
在windows下,一个文件有:创建时间、修改时间、访问时间。而在Linux下,一个文件也有三种时间,分别是:访问时间{atime}、修改时间{mtime}、状态改动时间{ctime}。两者有此不同,在Linux下没有创建时间的概念,也就是不能知道文件的建立时间,但如果文件建立后就没有修改过,修改时间=建立时间;如果文件建立后,状态就没有改动过,那么状态改动时间=建立时间;如果文件转载 2013-03-30 09:56:39 · 791 阅读 · 0 评论 -
图解autoscan、aclocal、autoheader、automake、autoconf、configure、make
1.autoscan (autoconf): 扫描源代码以搜寻普通的可移植性问题,比如检查编译器,库,头文件等,生成文件configure.scan,它是configure.ac的一个雏形。 your source files --> [autoscan*] --> [configure.scan] --> configure.ac2.aclocal (automake)转载 2013-03-25 15:52:24 · 690 阅读 · 0 评论 -
通过OpenCV读取AVI视频,多路视频输出播放器
OpenCV在多线程下不能读取AVI视频新的解决办法:问题情况:在OpenCV中,使用cvCaptureFromAVI打开一个视频文件后,并使用cvReleaseCapture释放关闭它后,再开启一个线程使用cvCaptureFromAVI打开一个视频文件,此时就会出现错误,在调试中,执行这个“CvCapture *capture = cvCaptureFromAVI( m_strVideoP原创 2013-01-16 16:13:33 · 3591 阅读 · 0 评论 -
液晶显示器汉字字模存储及显示
一、3 种汉字字模存储和提取的方法1、字模存放在程序存储器中; 这种方法较为常用,针对程序不大或单片机无外部扩展数据存储区功能的情况。2、通过外扩的EEPROM 存储汉字字模数据,将其作为外部数据存储器进行寻址; 采用哈佛结构的单片机,如8051 单片机及其派生产品,程序存储器(ROM)和数据存储器(RAM)可分别寻址,51 单片机ROM 和RAM 最大原创 2012-08-17 19:16:18 · 7746 阅读 · 0 评论 -
IAR for MSP430 编译时出现Error[Pe099]: a declaration here must declare a parameter 错误
用 iar 编译工程的时候。出现 提示这样一大堆错误。几千个。Warning[Pe231]: declaration is not visible outside of functionWarning[Pe099]: a declaration here must declare a parameter Error[Pe085]: invalid storage cla转载 2012-09-01 23:42:54 · 7135 阅读 · 0 评论 -
IAR error: a declaration cannot have a label
在使用switch时 在case 后面申请变量会出现 error: a declaration cannot have a label错误 原因:Case statements are only 'labels'. This means the compiler will interpret this as a jump directly to the label.The probl原创 2012-09-04 11:25:04 · 5989 阅读 · 2 评论 -
Linux系统调用列表
以下是Linux系统调用的一个列表,包含了大部分常用系统调用和由系统调用派生出的的函数。这可能是你在互联网上所能看到的唯一一篇中文注释的Linux系统调用列表,即使是简单的字母序英文列表,能做到这么完全也是很罕见的。 按照惯例,这个列表以man pages第2节,即系统调用节为蓝本。按照笔者的理解,对其作了大致的分类,同时也作了一些小小的修改,删去了几个仅供内核使用,不允许用户调用的系统转载 2012-10-29 20:47:20 · 643 阅读 · 0 评论 -
Linux 系统调用的实现及其汇编代码的嵌入到C中
一、关于系统调用linux 里面的每个系统调用是靠一些宏,一张系统调用表,一个系统调用入口来完成的。函数1.宏 就是_syscallN(type,name,x...) 其中N是系统调用所需的参数数目,type是返回类型,name即面向用户的系统调用函数名,x...是调用参数,个数即为N。例如:#define _syscall3(type,name,type1,arg1,t转载 2012-10-29 21:37:15 · 2654 阅读 · 0 评论 -
C语言中的数组指针与指针数组
一、指针数组和数组指针的内存布局指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。它是“储存指针的数组”的简称。数组指针:首先它是一个指针,它指向一个数组。在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道。它是“指向数组的指针”的简称。下面到底哪个是数组指针,哪个是指针数组呢:A)int *p1[10];B)int (*p2)原创 2012-10-22 21:52:37 · 1121 阅读 · 0 评论 -
typedef的用法
1、 为现有数据类型定义同义词 typedef 使用最多的地方是创建易于记忆的类型名,用它来归档程序员的意图。例如:typedef int size; 此声明定义了一个 int 的同义字,名字为 size。注意typedef 并不创建新的类型。它仅仅为现有类型添加一个同义字。你可以在任何需要 int 的上下文中使用 size: void measure(size原创 2012-11-04 22:19:14 · 476 阅读 · 0 评论 -
C语言优先级
1、优先级图表优先级最高者不是真正意义上的运算符,包括:数组下标,函数调用,结构体成员选择符。单目运算符的优先级次之。(! ~ ++ -- - (type) * & sizeof)然后是双目运算符。双目运算符里, 算数运算符(* / % + -)优先级最高, 移位(>)次之, 关系运算符( >= != ==)再次之, 接着是位运算符(& ^ | ),逻辑运算符(&& ||) 条原创 2012-10-28 22:14:26 · 3620 阅读 · 0 评论 -
配置内核 Makefile:1449: *** mixed implicit and normal rules. Stop.
在编译内核的时候提示Makefile:1449: *** mixed implicit and normal rules. Stop. 在网上查找后得到如下原因:翻译为中文:混合的和隐含普通规则 是由于我的系统的make工具太新(系统:fedora15),make的旧版规则已经无法兼容新版。按照以下方式,问题得到解决:原创 2012-12-28 10:53:12 · 856 阅读 · 0 评论 -
GNU内联汇编(AT&T语法)
内联汇编提供了可以在C或C++代码中创建汇编语言代码,不必连接额外的库或程序。这种方法对最终程序在汇编语言级别如何实现特定的函数,给予程序员更多的控制权。原文链接|1.基本的内联汇编1)asm格式GNU的C编译器使用asm关键字指出使用汇编语言编写的源代码段落。基本格式:asm("assembly code");括号中的汇编格式:指令必须在引号里;指令超过一条,必须转载 2013-01-16 17:03:16 · 1170 阅读 · 0 评论 -
Unix环境高级编程 写dup2功能相同的函数
题目3.2 Write your own dup2 function that performs the same service as the dup2 function described in Section 3.12, without calling the fcntl function. Be sure to handle errors correctly.(实现自己的dup2函数,转载 2013-03-28 18:12:57 · 1459 阅读 · 0 评论