摘要: #include#define container_of(addr,type,field) ((type*)((unsigned char*)addr - (unsigned long)&((type*)0)->field)) struct test_struct { float f1; int num; char ch; }; int main(void) { struct test_struct *test_struct; struct test_struct... 阅读全文
posted @ 2013-11-11 10:50 M.Bing 阅读(489) 评论(0) 推荐(0) 编辑
摘要: linux嵌入式系统中mdev的配置【转】1、mdev是什么。busybox的mdev是一个精简了的udev管理程序,而udev是linux2.6内核引入的一种新的设备文件管理机制,用于取代老的devfs.udev最大的有点就是可以动态的管理/dev目录下的设备文件,而不用再系统初始化时就将可能要用到的设备都创建起来,还可以根据设备具体信息命名设备节点,而不是有内核统一分配。2、如何在嵌入式系统中开启mdev。 1)在busybox中添加对mdev的支持。 2)在/etc/rc.d/rcS中添加 #在/sys中挂载sysfs文件系统,它是mdev运行的基础条件之一mount -t sysfs 阅读全文
posted @ 2013-11-01 13:14 M.Bing 阅读(1749) 评论(0) 推荐(0) 编辑
摘要: register_chrdev() register_chrdev_region() alloc_chrdev_region的区别?【转】在fs.h中的申明如下:分配设备号:extern int alloc_chrdev_region(dev_t *, unsigned, unsigned, const char *);extern int register_chrdev_region(dev_t, unsigned, const char *);注册设备:extern int register_chrdev(unsigned int, const char *, struct file... 阅读全文
posted @ 2013-10-30 15:43 M.Bing 阅读(343) 评论(0) 推荐(0) 编辑
摘要: linux 笔记 关于struct file 结构下 private_data 数据结构的思考[转]转自:http://blog.csdn.net/bush2582/article/details/7731220struct file是字符设备驱动相关重要结构。struct file代表一个打开的文件描述符,它不是专门给驱动程序使用的,系统中每一个打开的文件在内核中都有一个关联的 struct file。 它由内核在 open时创建,并传递给在文件上操作的任何函数,知道最后关闭。当文件的所有实例都关闭之后,内核释放这个数据结构。 在 struct filed有个成员void*private_d 阅读全文
posted @ 2013-10-30 13:57 M.Bing 阅读(1153) 评论(0) 推荐(0) 编辑
摘要: 【C算法】二维数组回字形填充面试的时候遇到一道C语言小算法题目,题目是这样的:以下图方式将1-100数字填充到一个10*10的二维数组内: 编写程序的要点是确定填充的4个方向,并判别填充的界限。代码如下:/* ============================================================================ Name : project1.c Author : M.Bing Version : Copyright : andon Description : Hello World in C, Ansi-s... 阅读全文
posted @ 2013-10-25 14:08 M.Bing 阅读(1121) 评论(0) 推荐(0) 编辑
摘要: Linux下Eclipse搭建嵌入式开发环境1.环境 主机:2.6.25-14.fc9.i686 eclipse:Eclipse SDK Version: 4.2.2 Build id: M20130204-1200 mips工具链:gcc version 3.4.22.步骤解压交叉编译工具链到具体路径。例如:tar xvf mipseltools-gcc412-lnx26.tar.gz -C /opt/toolchain/把交叉工具链的环境变量添加到系统的环境变量中启动Eclipse并且设置Eclipse工作空间,就是选择个目录,然后点击OK按钮。 如图2-1所示图 -1新建一个Mi... 阅读全文
posted @ 2013-09-23 11:02 M.Bing 阅读(496) 评论(0) 推荐(1) 编辑
摘要: 转自:http://wayne173.iteye.com/blog/938202shell中的赋值和操作默认都是字符串处理,在此记下shell中进行数学运算的几个特殊方法,以后用到的时候可以来看,呵呵。 1、错误方法举例 a) var=1+1 echo $var 输出的结果是1+1,悲剧,呵呵 b) var=1 var=$var+1 echo $var 输出结果是1+1,依然悲剧,呵呵 2、正确方法 1)使用let var=1 let "var+=1" echo $var 输出结果为2,这次没有悲剧 注意: a)经我测试let几乎支持所有的运算符,在网上看到一篇文章说“le 阅读全文
posted @ 2013-09-22 13:16 M.Bing 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 启动vmware时出现以下错误:Cannot open the disk 'D:/vmware/Ubuntu.vmdk' or one of the snapshot disks it depends on.原因: 出现这种情况一般是由于上次在关机的出现了异常,比方说非正常关机,强关机等情况,从而导致产生了一些lck为后辍名的文件,那么解决方法就是删除这些lck文件即可。解决方法, d:/vmware目录,删除所有的lck文件即可。 阅读全文
posted @ 2013-09-05 14:03 M.Bing 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 转自http://blog.csdn.net/vcchen_bo_qiang/article/details/5160281Eclipse的安装http://java.sun.com/javace/downloads/index.jsp下载:Jdk-6u17-linux-i586.binhttp://www.eclipse.org/downloads下载:Eclipse-SDK-3.14-linux-gtk.tar.gzhttp://www.eclipse.org/cdt/download.phpcdt-master-5.0.0.zipeclipse的安装[root @localhost ro 阅读全文
posted @ 2013-09-03 20:27 M.Bing 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 在学习Linux驱动的过程中,遇到一个宏叫做container_of。该宏定义在include/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 the container struct this is embedded in.* @member: the name of the member within the struc 阅读全文
posted @ 2013-08-16 10:02 M.Bing 阅读(230) 评论(0) 推荐(0) 编辑