
工作资料(kernel)
知耻而后勇的蜗牛
这人很懒
展开
-
Linux下获取文件大小的方法
Linux下获取文件大小的方法用户态下:unsigned long get_file_size(const char *filename){ struct stat buf;if(stat(filename, &buf)<0){ return 0;}return (unsigned long)buf.st_size;}内核态下:知识储备:转载 2013-05-30 22:20:32 · 7246 阅读 · 0 评论 -
读写文件节点---echo与read、write均可
#include #include #include #include #include MODULE_LICENSE("GPL");#define DEVICE_NAME ("my_dev")#define GLOBALMEM_SIZE 512 /*全局内存最大4K字节*/int MAJOR_NUM = 666;char g_val[20];struc原创 2013-06-23 22:41:05 · 8514 阅读 · 0 评论 -
Linux内核----make ARCH=arm menuconfig时出错
make ARCH=arm menuconfig时出错,出错信息如下:**************************************nick@localhost:/workspace/A10/lichee/linux-3.0$ make ARCH=arm menuconfig HOSTLD scripts/kconfig/mconfscripts/kcon转载 2013-07-15 23:39:35 · 7264 阅读 · 2 评论 -
Git使用指南
Refer to How to version projects with Git1.创建目录 $ git config --global user.name "Your Name Comes Here" $ git config --global user.email you@yourdomain.example.com $ git config --li转载 2013-06-16 20:09:06 · 1046 阅读 · 0 评论 -
工作资料(kernel)-----unbalanced enable irq 问题的解决 以及共享的gpio中断引起的问题
最近在工作中使用irq时遇到如下问题,根据log显示应该是什么所谓的不平横问题,先前也没有仔细研究这个问题,只是定位到是enable_irq函数调用所致。因为在项目中使用的中断是gpio中断,该中断在项目中的实现方式为多个gpio中断共享一个真实的物理中断,因此当这个真实的物理中断发生后由系统(就是另一个哥们写的irq驱动)查询到底是连接到这个物理中断上的哪一个具体的gpio产生的了中断(通过转载 2013-08-04 09:50:08 · 2092 阅读 · 0 评论 -
Linux内核-----early_param原理追踪
early_param用于注册内核选项解析的处理函数。与之类似的,__setup也是用于这个目的。在后文会慢慢看出这两者的区别。先看它们的定义:12345678910111213141516171转载 2013-07-28 09:59:02 · 3037 阅读 · 0 评论 -
Kernel-----EXPORT_SYMBOL使用
EXPORT_SYMBOL只出现在2.6内核中,在2.4内核默认的非static 函数和变量都会自动导入到kernel 空间的, 都不用EXPORT_SYMBOL() 做标记的。2.6就必须用EXPORT_SYMBOL() 来导出来(因为2.6默认不到处所有的符号)。 1、EXPORT_SYMBOL的作用是什么?EXPORT_SYMBOL标签内定义的函数或者符号对全部内核代原创 2013-07-28 13:48:15 · 7984 阅读 · 0 评论 -
kernel-----内核宏问题asmlinkage long sys##name(__SC_DECL##x(__VA_ARGS__))
#define SYSCALL_DEFINEx(x, name, ...) \asmlinkage long sys##name(__SC_DECL##x(__VA_ARGS__))系统调用的宏里:__SC_DECL__SC_CAST__SC_LONG以上这三个东西是干什么的, 在哪可以找到解释?#define __SC_DECL1(t1, a1) t1转载 2013-08-11 08:27:29 · 3549 阅读 · 0 评论 -
kernel------理解inode
inode是一个重要概念,是理解Unix/Linux文件系统和硬盘储存的基础。我觉得,理解inode,不仅有助于提高系统操作水平,还有助于体会Unix设计哲学,即如何把底层的复杂性抽象成一个简单概念,从而大大简化用户接口。下面就是我的inode学习笔记,尽量保持简单。===================================理解inode作者:阮转载 2013-09-28 17:31:20 · 1463 阅读 · 0 评论 -
字符驱动
#include #include #include #include #include MODULE_LICENSE("GPL");#define MAJOR_NUM 100int g_val;static ssize_t global_read(struct file *filp, char __user *buf, size_t len, loff_t *off){原创 2013-06-19 23:53:06 · 1259 阅读 · 0 评论 -
git repo使用心得
git是相当与svn,cvs等的版本控制工具,repo封装了对git的操作,使git命令更简单化,git学习网站这是之前自己看的,但实际工作操作中还是遇到了很多困难,总是遇到冲突,无法提交等问题,现在对Git的使用还是不很熟,但现在对使用也基本了解了,这样简单介绍一下。在使用git时,用了repo,Windows下开发,使用的是Cygwin工具,这个比git的bash更好使用。使用git一转载 2013-06-16 20:50:50 · 1226 阅读 · 0 评论 -
git - 简易指南
git - 简易指南助你开始使用 git 的简易指南,木有高深内容,;)。Tweet作者:罗杰·杜德勒 感谢:@tfnico, @fhd and Namics其他语言 english, deutsch, español, français, italiano, nederlands, português, русский, türkçe, မြန်မာ, 日本語,转载 2013-06-16 20:20:53 · 838 阅读 · 0 评论 -
内核态文件操作
有时候需要在Linux kernel--大多是在需要调试的驱动程序--中读写文件数据。在kernel中操作文件没有标准库可用,需要利用kernel的一些函数,这些函数主 要有: filp_open() filp_close(), vfs_read() vfs_write(),set_fs(),get_fs()等,这些函数在linux/fs.h和asm/uaccess.h头文件中声明。下面介绍主 要原创 2013-05-30 22:33:29 · 20480 阅读 · 0 评论 -
判断目录是否存在并创建mkdir
Linux下mkdir函数头文件库: #include #include 函数原型: int mkdir(const char *pathname, mode_t mode); 函数说明: mkdir()函数以mode方式创建一个以参数pathname命名的目录,mode定义新创建目录的权限。转载 2013-05-30 23:04:40 · 37602 阅读 · 1 评论 -
编译错误整理
1.assignment makes pointer from integer without a cast类型不匹配,直接把整型当作地址了原创 2013-05-30 23:02:34 · 761 阅读 · 0 评论 -
linux文件操作
一.文件类型1)普通文件(regular file).这是最常见的文件类型,这种文件包含了某种形式的数据.2)目录 (directory)3)字符特殊文件(character special file).系统中某些类型的设备,例如声卡,网卡,键盘,鼠标。4)块特殊文件(block special file).用于磁盘设备,系统中的所有设备或者是字符特殊文件,或者是块特殊文件。5转载 2013-06-01 17:22:01 · 860 阅读 · 0 评论 -
git配色问题
+默认情况下,ubuntu下的终端中,git没有颜色,可以使用如下命令给git配色+ $ git config --global color.status auto + $ git config --global color.diff auto + $ git config --global color.branch auto + $ git config --global col转载 2013-06-01 17:26:46 · 7531 阅读 · 0 评论 -
Xshell客户端连接Linux服务器中文显示乱码问题的解决办法
Xshell客户端连接linux服务器端中文显示乱码怎么办?可以试试这个方法Xshel连接linux需要客户端和服务器端字符模式一样。首先在服务器端查看字符模式:[root@localhost ~]# cat /etc/sysconfig/i18nLANG="zh_CN.UTF-8"SYSFONT="lat0-sun16"[root@localhos转载 2013-06-01 17:29:11 · 3063 阅读 · 0 评论 -
去掉快捷箭头脚本
@ECHO OFF:MENUECHO. ECHO. =-=-=-=-=请选择您要运行的项目=-=-=-=-=ECHO. ECHO. 1: 去除应用程序快捷方式图标箭头ECHO. ECHO. 2: 去除批处理快捷方式图标箭头ECHO. ECHO.转载 2013-05-31 10:18:55 · 1661 阅读 · 0 评论 -
android交叉编译c程序
1.交叉编译工具arm-2012.03-57-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz22.解压tar -xavf arm-2012.03-57-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -C /home/snail/bin3.配置gedit ~/.bashrc原创 2013-06-02 23:30:58 · 6001 阅读 · 1 评论 -
linux-----内存屏障浅析
内存屏障是一个很神奇的东西,之前翻译了linux内核文档memory-barriers.txt,对内存屏障有了一定有理解。现在用自己的方式来整理一下。在我看来,内存屏障主要解决了两个问题:单处理器下的乱序问题和多处理器下的内存同步问题。为什么会乱序现在的CPU一般采用流水线来执行指令。一个指令的执行被分成:取指、译码、访存、执行、写回、等若干个阶段。然后,多条指令可以同时存在于流水转载 2014-01-25 17:46:23 · 1776 阅读 · 1 评论