
Linux相关
文章平均质量分 53
山影水痕
嵌入式开发爱好者
展开
-
file_operation(文件操作)file(文件)inode(节点)三者比较
file_operation就是把系统调用和驱动程序关联起来的关键数据结构。这个结构的每一个成员都对应着一个系统调用。读取file_operation中相应的函数指针,接着把控制权转交给函数,从而完成了Linux设备驱动程序的工作。 在系统内部,I/O设备的存取操作通过特定的入口点来进行,而这组特定的入口点恰恰是由设备驱动程序提供的。通常这组设备驱动程序接口是由结构file_operati转载 2013-03-31 16:19:22 · 717 阅读 · 0 评论 -
对vim的配置
2013-04-24补充:将.vimrc文件仅按如下配置set fileencodings=utf-8,gb2312,gbk,gb18030set termencoding=utf-8 set fileformats=unix (add:,dos)set encoding=prc set nu! 即可实现期望的语原创 2013-04-14 10:51:11 · 1252 阅读 · 3 评论 -
samba服务windows向Linux传入文件速度慢的问题
修改 /etc/samba/smb.conf,加入[global]read size = 512 socket options = TCP_NODELAY SO_KEEPALIVE SO_RCVBUF=512 SO_SNDBUF=512 IPTOS_LOWDELAY getwd cache = yesfollow symlinks = no wid原创 2013-04-24 10:46:54 · 14361 阅读 · 0 评论 -
制作交叉工具链时对文件etc_profile的更改
原来没有27-29行。然后执行source /etc/profile使其生效补充:因为编译出错,百度是编译器版本低的原因,今天相应的方式将其更改为arm-linux-4.4.3 (友善提供的),,,,,,,,,,,,,,,,,,,,,,,,,,,,,使用该工具链还是出现很多错误,又安装了天嵌提供的EABI-4.3.3,至此,第一个驱动测试程序的编译,加载和测试功能基本原创 2013-04-14 16:34:00 · 581 阅读 · 0 评论 -
inode结构及其操作
Linux struct inode结构*索引节点对象由inode结构体表示,定义文件在linux/fs.h中*/struct inode { struct hlist_node i_hash; /* 哈希表 */ struct list_head i_list; /*原创 2013-04-18 16:05:23 · 847 阅读 · 0 评论 -
第一个驱动测试程序的调试和疑问
下面一段代码是为设备申请设备号。当mem_major非0时静态申请,=0时动态分配。 dev_t devno = MKDEV(mem_major, 0); /* 静态申请设备号*/ if (mem_major) result = register_chrdev_region(devno, 2, "memdev"); else /* 如果主设备号为0,动原创 2013-04-18 11:34:03 · 541 阅读 · 0 评论 -
nfs的使用
服务端安装:vim /etc/exports设置:(以此为例) /home 172.21.58.237(rw,sync,no_root_squash)开启服务:/etc/init.d/portmap start /etc/init.d/nfs restart(没re总是不能打开deamon,,,)客户端!!!挂载:moun原创 2013-04-16 21:29:34 · 498 阅读 · 0 评论 -
TQ2440更改IP、网关
直接修改文件:/etc/net.conf原创 2013-04-30 11:47:26 · 1018 阅读 · 0 评论 -
C Qt 10 - Splitters - YouTubehttp
找到个老外讲的QT教程,先记下:http://v.youku.com/v_show/id_XMzc0NjM5NjY4.html?f=17270061原创 2013-05-08 20:05:33 · 506 阅读 · 0 评论 -
Socket send函数和recv函数详解
send函数int send( SOCKET s, const char FAR *buf, int len, int flags ); 不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。该函数的第一转载 2013-05-10 09:20:09 · 406 阅读 · 0 评论 -
VMware9.0下采用默认方式安装的Redhat Enterprise Linux 5后配置vim支持中文
本次安装后依照以前对Vim的配置无法使其显示中文,原因为没有安装中文支持包。以下是本次配置依照的网络资料:1、按顺序安装如下包:中文支持fonts-chinese-3.02-12.el5.noarch.rpmm17n-db-common-cjk-1.3.3-46.el5.noarch.rpmm17n-db-chinese-1.3.3-46.el5.noarch.rpm中原创 2013-06-30 22:01:47 · 965 阅读 · 0 评论 -
驱动程序的安装(直接编译进内核)
国嵌视频:Linux驱动程序介绍make menuconfig后出现的菜单依赖于内核的drivers/char/Kconfig文件vim Kconfig可见类似以下内容:config HW_CONSOLE bool (",,,,") #名称(括原创 2013-04-15 14:26:55 · 704 阅读 · 0 评论 -
内核源代码的阅读
来源:国嵌视频 字符设备驱动程序设计 6-2 对于内核源代码,不必把他的每个函数看懂。可根据函数名大致知道其功能,还要培养感觉:关键的代码,把他看懂。以下一段代码为例:ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos){ ssize_t ret; if (!(fil原创 2013-04-15 16:39:11 · 518 阅读 · 0 评论 -
locate命令出现的错误:cannot open ‘/var/lib/mlocate/mlocate.db’
在使用 locate 命令查找文件时,出现:locate: can not open `/var/lib/mlocate/mlocate.db': 没有找到指定数据库文件使用 #updatedb,即可以解决问题。(然后再locate)locate指令和 find找寻文件的功能类似,但 locate是透过 update程序将硬盘中的所有文件和目录资料先建立一个索引数据库,在执转载 2013-04-23 19:19:34 · 1212 阅读 · 0 评论 -
Linux进程状态解析之R、S、D、T、Z
R (TASK_RUNNING),可执行状态。只有在该状态的进程才可能在CPU上运行。同一时刻可能有多个进程处于可执行状态,这些进程的task_struct结构(进程控制块)被放入对应CPU的可执行队列中(一个进程最多只能出现在一个CPU的可执行队列中)。进程调度器从各个CPU的可执行队列中分别选择一个进程在该CPU上运行。正在CPU上执行的进程定义为RUNNING状态、可执行但尚未被调度转载 2013-04-01 13:49:57 · 506 阅读 · 0 评论 -
linux解压 tar命令
tar [-cxtzjvfpPN] 文件与目录 ....参数:-c :建立一个压缩文件的参数指令(create 的意思);-x :解开一个压缩文件的参数指令!-t :查看 tarfile 里面的文件!特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?转载 2013-03-20 11:26:42 · 430 阅读 · 0 评论 -
vim显示中文
在root用户的根目录~下创建.vimrc文件,在文件中输入以下内容: set fileencodings=utf-8,gb2312,gbk,gb18030set termencoding=utf-8 set fileformats=unixset encoding=prc退出即可显示汉字。附:linux中的四个特殊目录原创 2013-04-02 11:20:10 · 553 阅读 · 2 评论 -
undefined reference to 'pthread_create'问题解决
着GUN/Linux编程指南中的一个例子输入编译,结果出现如下错误:undefined reference to 'pthread_create'undefined reference to 'pthread_join'问题原因: pthread 库不是 Linux 系统默认的库,连接时需要使用静态库 libpthread.a,所以在使用pthread_create(转载 2013-03-21 09:57:34 · 390 阅读 · 0 评论 -
Linux网络编程TCP参考代码
参考例程(国嵌实验代码):服务端:#include #include #include #include #include #include #include #include #define portnumber 3333int main(int argc, char *argv[]) { int sockfd,new_fd; struct原创 2013-03-21 17:47:53 · 564 阅读 · 0 评论 -
linux网络编程TCP篇
参照例程编写的基于TCP的通信程序。server段建立之后,键入客户端运行命令和主机地址,能实现客户端中输入的信息打印到服务端。客户端:#include #include #include #include #include #include #include #include #define portnumber 3333struct sockaddr_in原创 2013-03-21 17:38:27 · 480 阅读 · 1 评论 -
编译内核出现错误提示:line 0:syntax error near unexpected token '('
编译内核出现错误提示:/bin/sh: -c :line 0:syntax error near unexpected token '('参考资料如下:Why do I receive the message "/usr/bin/sh: -c: line 0: syntax error near unexpected token `(' and /usr/bin/sh: -c: l原创 2013-04-14 14:10:24 · 8018 阅读 · 0 评论 -
最简单的Makefile
ifneq ($(KERNELRELEASE),)obj-m :=hello.oelseKDIR:= /lib/modules/2.6.18-53.el5/buildall: make -C $(KDIR) M=$(PWD) modules clean: rm -f *.ko *.o *.mod.o *.mod.c .symversendif注意:1、ifneq后要原创 2013-04-14 15:47:48 · 597 阅读 · 0 评论 -
arm平台Linux内核制作
来自国嵌视频(内核驱动进阶3-1 嵌入式Linux内核制作):1、进入内核(linux2.6.30.4,在天嵌给的内核中解压该内核时用的命令tar -xvjf linux-,,, -C / ,此处加入了-C,见下文讲解)2、执行:/etc/init.d/xinetd restart 3、配置内核makefile menuconfig ARCH=arm(生成.config文件)原创 2013-04-14 20:18:12 · 637 阅读 · 0 评论 -
2013-4-13 日志
今天重装了虚拟系统,复习了系统管理工具相关的国嵌课件内容。小结一下: 1、 对系统配置文件的更改要先备份,参考资料要记录下来(博客笔记)。 2、一个虚拟机可挂多个系统,弄乱了也没必要删。另外,下面配置vim的资料明天试着做出来。http://www.cnblogs.com/witcxc/archive/2011/12/28/2304704.htm原创 2013-04-13 21:32:48 · 475 阅读 · 0 评论 -
带缓存的IO和不带缓存的IO
首先,先稍微了解系统调用的概念: 系统调用,英文名system call,每个操作系统都在内核里有一些内建的函数库,这些函数可以用来完成一些系统系统调用把应用程序的请求传给内核,调用相应的的内核函数完成所需的处理,将处理结果返回给应用程序,如果没有系统调用和内 核函数,用户将不能编写大型应用程序,及别的功能,这些函数集合起来就叫做程序接口或应用编程接口(Application Pr转载 2013-03-21 20:48:48 · 816 阅读 · 1 评论