![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux驱动
IT山IT水
当你的能力没法实现自己的抱负时,请学习
展开
-
搭建 Linux 交叉编译环境(EABI) 的一点经验:
这是我在学完单片机之后,回过头来学习arm的开始,我准备重新搭建Linux环境。遇到了以下问题,回想以前的经验教训,在此做下记录: 在解压安装完EABI(天嵌科技修改后的交叉编译环境)后,我依照其说明,做了如下操作: 1.用vi /etc/profile 操作打开如下图文件,添加红线所圈语句; 2.接着,用source /etc/profile 操作使其生效,用 arm-linux-gcc -v 验证安装成功! 问题就此出现了,当我打开新的conso原创 2010-10-31 00:08:00 · 738 阅读 · 0 评论 -
Linux设备驱动开发概述
Linux设备驱动开发概述 <br />2008-03-19 22:52:00标签:Linux开发驱动原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://21cnbao.blog.51cto.com/109393/120012作者:宋宝华 email:author@linuxdriver.cn<br /> 在过去这些年,Linux已经成功应用于服务器和桌面系统,而近年来,随着嵌入式系统应用的持续升温,Linux也开始广泛应用于嵌入式转载 2010-11-21 15:06:00 · 594 阅读 · 0 评论 -
Linux驱动框架
<br />Linux驱动学习记录<br />阅读(12) 评论(1) 发表时间:2008年08月21日 21:13 <br />本文地址:http://qzone.qq.com/blog/61096542-1219324420<br /> <br /> <br /> <br />2.4内核注册驱动要用:<br />int register_chrdev (unsigned int major, const char *name, struct file_operations *fops);<br /转载 2010-11-21 15:26:00 · 513 阅读 · 0 评论 -
Linux 内核学习 书籍 推荐
<br /> <br />本文转自:http://blog.chinaunix.net/u3/104073/showart.php?id=2381926<br /><br />史上最经典的Linux内核学习方法论<br />经典书籍<br /> 待到山花烂漫时,还是那些经典在微笑。<br /> 有关内核的书籍可以用汗牛充栋来形容,不过只有一些经典的神作经住了考验。首先是5本久经考验的神作(个人概括为“2+1+2”,第一个2是指2本全面讲 解内核的书,中间的1指1本讲解驱动开发的书,后面的2则指2本有关内转载 2010-11-22 17:34:00 · 733 阅读 · 0 评论 -
Linux 线程基本编程——线程函数大全
本文转自:http://blog.chinaunix.net/u3/114149/showart_2402573.html线程基本编程——线程函数大全线程基本编程——线程函数大全 索引:1.创建线程pthread_create2.等待线程结束pthread_join3.分离线程pthread_detach4.创建线程键pthread_key_create5.删除线程键pthread_key_delete6.设置线程数据pthread_setspecific7.获取线程数据pthread_getspecifi转载 2010-11-22 17:43:00 · 665 阅读 · 0 评论 -
升级Red Hat Linux 9.0的内核,从2.4.20-8升级到2.6.20版本
<br />升级Red Hat Linux 9.0的内核,从2.4.20-8升级到2.6.20版本。<br />升级过程曲折而艰辛,不过经过努力,还是成功了,愿与大家共享。<br />这个升级过程不局限于从2.4.20-8升级到2.6.20版本,可供将内核从2.4.x升级到2.6.x的用户使用。<br />首先,要做好准备工作,你的手中至少要有以下四套软件包:<br />1、Linux的2.6.20版本内核包(linux-2.6.20.tar.gz):作用就不多说了,自然是内核的源码包;<br />2、Mo转载 2011-03-03 07:32:00 · 884 阅读 · 0 评论 -
关于串口工具SecureCRT不能输入命令的问题
<br />关于串口工具SecureCRT不能输入命令的问题<br /> <br /> <br />解决方案:Session Options -> Connection -> Serial -> Flow Control,将原先选中的 RTS/CTS取消掉,再重新connect开发板,再次连上后,此时就可以从键盘输入了原创 2011-03-13 20:07:00 · 4733 阅读 · 1 评论 -
linux2.6.37.4在XC2440上移植成功
linux2.6.37.4在XC2440上移植成功 新版内核移植的过程真是艰难,历时4个月,曾多次想过放弃。如果我都使用以前做好的东西,我的板在去年12月份就能开始卖了,也没必要等到现在。现在发现我以前做的那些东西真是低级,当时才疏学浅,也只知道照搬别人的东西。 在现在的公司做了半年的驱动,对驱动也有了一个新的认识,我一直看高通的android代码,觉得高通的驱动做的挺专业的,就算一个LED的驱动也要写个几百行。我准备尝试用新版的内核,将内核中所有能用的驱动都用在XC2440上。 这次使用转载 2011-05-11 23:32:00 · 969 阅读 · 0 评论 -
驱动移植的方法与步骤
<br /> 驱动学习下苦工是必须的,但是与其并驾齐驱的还有方法。没有好的方法,苦工也就白费了。<br /> 驱动学习总体分三步走:<br /> 第一,要走通流程。所谓走通流程,就是能够按照资料,自己把别人的驱动能成功移植到arm开发板中,试试效果,脑袋也就清晰了,有目标了。<br /> 第二,要看代码,慢慢的体会。看什么样的代码实现了你所看到的效果,分析别人的代码,并做好学习笔记。<br /> 第三,就是自己动原创 2011-05-07 00:26:00 · 2507 阅读 · 0 评论 -
mips平台的u-boot启动流程
转载自: http://hi.baidu.com/rbdr/blog/item/63bffb5476360f4c564e00bf.htmlu-boot 启动流程(mips)2011-06-13 17:55u-boot的启动过程比较简单,大致做下面的工作: 1 cpu初始化转载 2011-07-26 11:17:28 · 922 阅读 · 0 评论 -
如何指定GCC的默认头文件路径
<br />如何指定GCC的默认头文件路径<br /> <br />原地址:http://blog.chinaunix.net/u/28781/showart.php?id=401631<br />===============================================================================<br />在交叉编译的时候我们需要用到其他的库,在config时候可以通过“-I”来指定头文件目录,但是每次都需要设置的话难免有些麻烦,找到一个简单的方法转载 2010-11-21 12:36:00 · 1486 阅读 · 0 评论 -
unresolved symbol prefetch 问题解决方案
<br /> 当我安装(insmod)一个自己的驱动时,出现了“globalvar.o: unresolved symbol prefetch “的错误提示。很是郁闷,我找了老半天,终于解决,我用的是RedHat9(kernel version 2.4.20-8)。<br /> 解决方案如下:<br /> 在编译该驱动时,应当添加二级优化 -O2。<br /> 出现问题的编译方法:[root@localhost globalvar]# gcc -D__KE原创 2010-11-20 15:13:00 · 998 阅读 · 0 评论 -
关于Linux驱动编写时,版本匹配问题的一点经验
<br /> 我用RedHat9开始驱动编程联系的,由于在/usr/src 和 /usr/local/src/ 都没有Linux源码,所以自己下了个2.4.20的包解压到了这两个地方(以用来操作,一个做备份吧)。解压完后,刚开始不能执行 “make menuconfig” 命令,在提示下执行了“make config” 命令,接着执行了 “make modules ” 和 “make modules_install"命令。终于把源码包配置完毕。<br /> 接着回到我的驱动原创 2010-11-20 01:55:00 · 904 阅读 · 0 评论 -
arm与thumb编程学习
<br /> 看了好长时间了,对arm有了初步的了解,也就是感性的认识,跟我们学习x86一个样,不是太难,原理一样,稍有改变,只是指令集不同而已,这也是为了不同的目的所设计的指令集。其中,汇编与C语言的学习对arm开发,特别是arm的驱动开发开发至关重要,要好好复习它们,注意C语言与汇编的相互调用,还有汇编对寄存器的调用,不同寄存器的功能区别。<br /> 就这些吧,我要睡了,时间不早了。<br />I believe I can learn them very well!原创 2010-11-20 02:31:00 · 580 阅读 · 0 评论 -
关于Linux驱动编写时,版本匹配问题的一点经验
<br /> 我用RedHat9开始驱动编程联系的,由于在/usr/src 和 /usr/local/src/ 都没有Linux源码,所以自己下了个2.4.20的包解压到了这两个地方(以用来操作,一个做备份吧)。解压完后,刚开始不能执行 “make menuconfig” 命令,在提示下执行了“make config” 命令,接着执行了 “make modules ” 和 “make modules_install"命令。终于把源码包配置完毕。<br /> 接着回到我的驱动原创 2010-11-20 01:55:00 · 673 阅读 · 0 评论 -
Linux中配置环境变量的三种方法
<br />第一种:用命令vi ~/.bashrc在配置文件.bashrc最后设置。<br /> 譬如:<br /># .bashrc<br /># User specific aliases and functions<br />alias rm='rm -i'<br />alias cp='cp -i'<br />alias mv='mv -i'<br /># Source global definitions<br />if [ -f /etc/bashrc ]; then<br />原创 2010-11-20 02:23:00 · 1159 阅读 · 0 评论 -
Makefile文件编写
<br /> 刚开始接触的差不多就是arm应用程序的编写,其中Makefile的编写至关重要,但是,感觉应用没前途,也就没兴趣了,就把精力投到内核与驱动学习,但是,没想到内核也要掌握Makefile,那就加紧学了,O(∩_∩)O~!<br /> Makefile文件中就有类似于C语言中宏定义的用法,用一个标识符来代替一个复杂的字符串,减少许多不必要的麻烦。Makefile中的变量的调用格式为: $(变量) <br /> Makefile书写的一般格原创 2010-11-20 02:26:00 · 590 阅读 · 0 评论 -
Couldn't find the kernel version the module was compiled for Linux 驱动 编译 错误
<br /> 在编译第一个Linux驱动时,碰到如标题所示错误:Couldn't find the kernel version the module was compiled for<br /> <br /> 解决方案:<br /> You should do "make modules" , next do "make modules_install " and then recompile your modules.原创 2010-11-17 20:36:00 · 1232 阅读 · 0 评论 -
Linux学习者应当知道的网站整理
<br /> Linux 内核源码获取:http://www.kernel.org/<br /> version 2.4的获取地址:http://www.kernel.org/pub/linux/kernel/v2.4/<br /> version 2.6的获取地址:http://www.kernel.org/pub/linux/kernel/v2.6/<br /> <br /> <br />原创 2010-11-17 22:47:00 · 590 阅读 · 0 评论 -
学习arm有个任重道远过程
<br /> 到目前为止,学习arm已有两个月了,自我感觉还不错,但是,从今天来看,我根本没有进入arm的学习呢,目前只是学习了linux的一点知识,并且是一知半解的。今天,我才注意到天嵌科技提供的学习资料中的第二张光碟、第六次课的内容,即,arm知识概述。这就是说,我才刚接触到arm,以前只是个前奏,只是个小小的了解而已。<br /> arm 相当于用于pc机的x86一样,也是一款处理器,它有自己的指令集。arm7有两种指令集,即,arm指令集与thumb指令集。原创 2010-11-20 02:32:00 · 620 阅读 · 0 评论 -
对Linux内核映像架构的理解:
<br /> 今天看了Linux0.11的内核体系结构,感觉挺有意思的,内核与文件系统的模式有相似之处,都是有许多目录同构成,比如:有boot、fs。include。init、kernel、lib、mm、tools、Makefile。这些目录下的文件都有各自的功能,其中,/boot/bootsect.s、/boot/setup.s、/boot/head.s是/boot目录下的三个汇编程序,当pc加电后,运行固件,调动bios,再由bios调用/boot/bootsect.s来启动内核文件。boo原创 2010-11-20 02:28:00 · 672 阅读 · 0 评论 -
ubuntu修改MAC地址
ubuntu修改MAC地址【转】 首先必须关闭网卡设备,否则会报告系统忙,无法更改。ifconfig eth0 down修改 MAC 地址,这一步较 Windows 中的修改要简单。ifconfig eth0 hw ether 重新启用网卡ifconfig eht0 up 如果计算机每次启动都要修改mac地址 修改你的源,并升级到最新的系统:sudo gedit原创 2010-05-04 20:31:00 · 1017 阅读 · 0 评论