![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux学习之路
东月之神
别驻足,梦想要不停追逐;别认输,熬过黑夜才有日出。要记住,成功就在下一步;路很苦,汗水是最美的书!
展开
-
Git学习笔记--常用命令
基础知识用以了解git的内部的一些原理,接下去还是看看我们平时项目中用到的一些基本命令。1 创建仓库创建仓库有两种方式,一种是当前目录下,通过git仓库导入所有的文件夹和文件,另一种是从远程仓库克隆出一个新的镜像仓库来。1.1 初始化新建仓库git init,git add,git status,git commit新建两个文件$ echo "file 1" > a.c$ echo "file 2原创 2017-10-01 10:46:21 · 949 阅读 · 0 评论 -
和菜鸟一起学linux之input系统简单实例
三伏天说来就来了,比起去年,今年的夏天没热得那么不可思议了。也许真正的炎热还没有到来。任时光匆匆而过,也没得到自己想要的生活方式,觉得有点得过且过的样子。需要换位思考,需要领悟人生的真谛,需要去追求自己想要的。觉得,孟非老师说的一句话很实在,工作再努力,提早完成了之后,能得到什么呢?只会换来领导的一句话,恩,不错,那个,那个这些事你也做一下吧。哈哈,的确如此,所以何不善待自己呢?做自己喜欢的事,而原创 2012-07-26 18:54:50 · 4576 阅读 · 0 评论 -
和菜鸟一起学OK6410之tftp下载内核,nfs挂载文件系统全过程详解
人有悲欢离合,月有阴晴圆缺。少不了离愁别绪,人生就是这样,喜也一天,悲也一天,直待,慢慢老去。老去,必将面临着死亡。终于工作了,终于赚钱了,那么多的终于,也抵不过岁月的流逝,抵不过老去的容颜。外公,一路走好。脑海里全是童年的回忆,外公是最疼我的。上周最后看您一眼,又匆匆赶回来工作,下周也不能天天陪您,只能在最后几天回去陪您。相信在远方的您,会看到我的努力,因为我一直都是您的骄傲,从小就是。未来,我原创 2012-08-25 01:40:27 · 10646 阅读 · 7 评论 -
和菜鸟一起学linux总线驱动之初识USB
现在什么东西都用上了USB了,听着名字觉得怪怪的,拆开来看看,U,SB,貌似是骂人的话了,开个玩笑。不过这个家伙确实给我们带来很多的方便啊,什么USB鼠标啊,U盘啊,USB wifi啊,USB摄像头啊,什么电子设备都貌似可以用USB来替换掉,足见这个东西的好处和通用了。不过一直都不是很清楚这个东西,上次公司让做USB的device设备,由于硬件的总线有问题,从而没有继续下去,只是简单地看了下协议和原创 2012-08-26 16:28:58 · 2354 阅读 · 0 评论 -
和菜鸟一起学linux总线驱动之初识USB系统结构
上一篇文章中,对于USB是什么东东,想必都清楚了,她的连接方法也清楚了,那么接着学习下USB的系统结构吧。先看一下系统的拓扑结构吧。 主机host控制器和一个根hub,然后下面可以接很多的设备,也可以继续接hub,然后hub下面还可以接设备,接下一个hub,一直往下。对于USB总线,最多只能接127个设备。 USB的主控制器主要负责处理主机和设备之间的电气和原创 2012-08-26 17:10:51 · 2275 阅读 · 1 评论 -
和菜鸟一起学linux总线驱动之初识USB设备描述符
耳边依旧是单曲循环,不知何时开始,音乐开始触动于我。一直以来,听歌都是只享受其中的旋律,而慢慢地,歌词很多事情让我微微一颤的感觉。继续循环着,继续这种微妙的感觉。 吃完饭了,那就继续USB吧,接下来那便是USB的设备描述符了。 每个USB设备内部都固化了一些数据,通过这些数据,USB主机就可以获取USB设备的类型、生产厂商等的信息。这组固定格式的数据,就是U原创 2012-08-26 18:13:03 · 2189 阅读 · 0 评论 -
和菜鸟一起学linux总线驱动之初识USB的数据传输方式
周末又快要过去了,一周又一周的循环往复,不知道何时才是尽头,每天除了工作学习就是睡觉。也许这样的日子很充实吧,但是并不是非常喜欢这样的生活。不知何时才可以跳出这样的怪圈。重归现实吧,还是继续看看USB吧,讲了USB的设备描述符,那接下去就是USB的数据传输了。 USB规范中规定了4种不同的数据传输方式,她们分别为:1、等时传输,2、中断传输、3控制传输、4批量传输。原创 2012-08-26 18:31:04 · 2575 阅读 · 2 评论 -
和菜鸟一起学OK6410之熟悉内核源码
今天还是挺顺利的,这周的工作两天就搞定了,其实有点小简单。确实,我们都需要信心。总觉得,网线是个可恶的东西,老是懒懒的刷着网页也不干点实事,让自己进步也慢了好几拍。所以还是把网线直接接到开发板上去了,哈哈,那样就可以不上网,好好玩小o了。 前几天终于把以前留下的tftp下载内核和nfs挂载文件系统给搞定了,接下来开始直接拿linux2.6.28那个内核玩了,公司里所有的寄存器啊原创 2012-08-28 23:36:03 · 3912 阅读 · 2 评论 -
和菜鸟一起学linux总线驱动之初识spi总线协议
还记得第一次用spi设备的时候是大三暑假了,那时和队友一起买了无线模块,然后用单片机来无线传输,不过代码都不是自己写的,虽然实现了这个功能,但是当时还不知道什么spi的。大四了,学弟问我怎么用spi flash,顿感惭愧。后来他送我了一块flash,然后我用51参考网上的实现了下,才知道有这么个东西。之后公司里也渐渐用了些spi的设备,flash,codec,ads7843等,渐渐地也熟悉了这个东原创 2012-08-29 14:53:31 · 2859 阅读 · 0 评论 -
和菜鸟一起学linux总线驱动之初识spi驱动主要结构
既然知道了协议了,那么就可以开始去瞧瞧linux kenerl中的spi的驱动代码了,代码中有很多的结构体,还是对主要的结构体先做个了解吧,那样才可以很好的理解驱动。主要是include/linux/spi.h 首先是SPI的主机和从机通信接口,也就是SPI总线,extern struct bus_type spi_bus_type; bus_type定义在linux/de原创 2012-08-29 14:54:14 · 6831 阅读 · 0 评论 -
和菜鸟一起学linux总线驱动之初识spi驱动数据传输流程
对于SPI的一些结构体都有所了解之后呢,那么再去瞧瞧SPI的那些长见的操作的函数了。首先看一下本人画的比较挫的数据流了,仅供参考,如有不对,不吝赐教 接下来看看各个函数吧还是: SPI write /** * spi_write - SPI synchronous write * @spi: device to which data will be原创 2012-08-29 20:57:44 · 17534 阅读 · 2 评论 -
和菜鸟一起学linux总线驱动之初识i2c总线协议
就这么稀里糊涂地过了两天,都在公司里。为了不是我的任务的工作,是对,还是错。自己定的计划都没有实现,要看的书也没看,要玩的板子也没玩。不过终于体验到了,加班,其实对于IT业来说,太平常不过了。目前的部门还好,基本不用加班,布置的小任务,还是可以提前完成的,也有点时间用来记录所学的过程,慢慢成长。昨天,和我们子公司的工程师赶项目到9点半才回去,今天他说,他是凌晨3点回去的。不容易啊,工作4年后,我也原创 2012-09-10 16:19:22 · 2524 阅读 · 2 评论 -
和菜鸟一起学linux总线驱动之初识i2c驱动主要结构
和spi一样,了解了协议后,还是看看具体的linux kernel中的i2c的一些数据结构吧。在include/linux/i2c.h中主要是以下这些数据结构:struct i2c_msg;struct i2c_algorithm;struct i2c_adapter;struct i2c_client;struct i2c_driver;uni原创 2012-09-10 17:10:49 · 2245 阅读 · 0 评论 -
和菜鸟一起学linux总线驱动之初识i2c驱动数据传输流程
吃个晚饭,画个流程图,没想到已经这么晚了。还是速度把这篇文章搞定,收拾回去了。先看下linux中的i2c的数据流程图吧。这里主要是用gpio模拟的i2c的。 还是具体看下代码吧,流程只是个大概,和i2c的总线协议差不多的。 首先从数据调用来看吧。一般的都是通过i2c_transfer来来实现的, int i2c_transfer(struct i2c_adapt原创 2012-09-11 07:52:18 · 7373 阅读 · 0 评论 -
和菜鸟一起学linux总线驱动之初识USB鼠标抓包数据
小日本可恶的暂时抢走了钓鱼岛,但是,相信凭借全国人民的齐心协力,钓鱼岛是逃不掉的。至于要不要武力解决,这个不是我们说了算的。最好还是不能动武,到时候受害者还是老板姓。相信时间会解释一切,在此只能默默祈祷,钓鱼岛早日回到祖国大陆的怀抱。 好了,钓鱼岛的事,关心是需要的,但是也帮不上什么忙,与其这么瞎折腾,还是多学点东西,为祖国的建设做贡献吧。 记得上次讲了US原创 2020-12-01 17:19:21 · 4366 阅读 · 0 评论 -
和菜鸟一起学linux总线驱动之初识USB设备枚举
最近要写SDK,smartcard又没有什么进展,事情还真是多啊,对于一个本科应届毕业生,是不是要求高了点,哈哈,就喜欢严,那样提高才快,不过很多时候,忙得自己连思考的时间也没有多少了,也没有实行自己的计划,很多很多没有做。想想确实应该放弃一些事情了,那样的话,至少可以再某些方面做得很好,恩,加油就行。趁着周末之际,把所有模块的SDK都小整理了下,还是把上次没有分析完的USB的枚举给分析下吧。原创 2012-09-23 15:34:06 · 3661 阅读 · 0 评论 -
和菜鸟一起学linux之do{...}while(0)的简单实例
最近网上很流行一句话,那就是,元芳,你怎么看呢?那么对于那个linux内核中的宏定义中用的do{…}while(0),元芳,你怎么看呢? 实践出真知,还是写几行代码,来调试调试吧。Linux内核中有着太多太多的奇妙的用法。人类积聚着的财富啊,不像windows,linux是可以让我看到,学习的。而对于windows,那就只能是写写他们准备好了的API,调用下函数,殊不知其中做了原创 2012-10-17 14:00:02 · 4180 阅读 · 1 评论 -
和菜鸟一起学linux之双向链表list head的简单实例
经常在linux内核中看到list head这个链表头,有时候看着也不是很懂,很早就打算拎出来好好理解理解了。这次趁着编写SDK后有点小空闲,就拿出来晒晒吧。 简单的链表实现#include #include #include struct list_head{ struct list_head *next, *prev;};原创 2012-10-17 16:24:42 · 2594 阅读 · 0 评论 -
和菜鸟一起学OK6410之ADC模块
今天,完善了公司第二版的红外遥控器,并且在android上跑起来时也比较灵敏了,GPIO模拟的SPI也可以工作了,看了会书,修正了会,回到宿舍也已经9点多了。想想,OK6410上还有个AD模块呢。网上找了找资料,发现还是可以去尝试下可不可以实现的。好吧,花了我快一个小时了,哈哈,终于搞定了。 下面看代码: #include #include #原创 2012-07-05 23:12:47 · 4496 阅读 · 9 评论 -
和菜鸟一起学单片机之入门级led流水灯
单片机,一开始还不知道这个东西是干嘛的,直到前年的寒假,买来一块51的板子,开始了我的单片机生涯。一开始,还不知道这个东西和程序是怎么搞在一起的,写几行程序真的就这么容易就可以控制单片机了吗?傻傻地,按照给的资料,一点点的开始,先下了个led灯的程序,呀,这个神奇的事情就这么发生了,这个灯一个一个亮了,挺漂亮的。 看着给的代码,就这么几行额,话说搞过ACM的,这个程序应该是超级原创 2012-07-02 22:54:52 · 6042 阅读 · 2 评论 -
Git学习笔记--基础知识
虽然用了很久的git,但是也没有很好地总结下git,都是零零散散的,git其实就是用来代码管理的工具,代码管理主要完成两个功能,一个是备份,一个是代码的合并和分离。 其次android的所有源码都是一个一个git仓库,不过他是用repo来管理的,之后也把repo系统学习下。这里正好有时间可以把这个补上去,还是进入正题吧1 git历史不管怎样都要从历史开始说起,摘抄一段来自维基百科的原创 2017-09-19 21:54:22 · 1907 阅读 · 0 评论 -
简易repo服务器搭建
好久没有写博客了,最近一直被其他的事情忙着,思考了很多,感觉停留在一个水平线上迟迟没法更进一步,虽然依旧学习着新东西,重复着工作,今年已经换了两份工作了,虽然都不是自己非常满意的,但是那又能怎么样呢,还不是要继续工作。有时候觉得之前没有好好考虑自己的职业规划,真的挺为自己感到可笑,虽然很多人都劝告过我要选择一条路,但是心里有cto的路,不广泛涉猎,以后怎么能到达自己的目标呢,即使这个目标有点长远,有原创 2017-05-21 17:07:12 · 3006 阅读 · 6 评论 -
和菜鸟一起学linux之我的vim简单配置
在自己的虚拟机上,配置一些自己要用的vim。网上一大堆一大堆的,也不知道怎么用,个人觉得还是用一个加一个比较好,下面是我的一些简单配置,目前用用也够了。等要用什么,再更新,添加进去:不过还是要一个sudo apt-get install ctags//用来跳转在源码目录下:ctags –R就可以了。用ctrl+] 跳到函数中,ctrl+t返回。set nu原创 2012-12-12 11:51:20 · 1567 阅读 · 0 评论 -
初探linux子系统集之i2c子系统(二)
大概也是前年了,一直没有把那个i2c的子系统讲解完,这里偷个懒,把以前整理的i2c相关的知识再梳理一下,做个了结,然后再去学习timer子系统。原创 2016-02-03 14:06:03 · 2919 阅读 · 0 评论 -
初探linux子系统集之timer子系统(三)
看了hrtimer的一些由来,是否需要开始学习下这个hrtimer吧,不过在学习这个之前还是要先学习下一些关于timer的数据结构,原创 2016-02-03 09:25:22 · 2070 阅读 · 0 评论 -
初探linux子系统集之timer子系统(二)
想着博客中还没有翻译过一篇文章,虽然英文水平有限,但是借助google翻译慢慢地翻译出一篇文章也是不错的选择。那就来学习下hrtimer的文档吧。翻译 2016-02-01 21:26:15 · 1639 阅读 · 0 评论 -
初探linux子系统集之timer子系统(一)
一般来说要让整个linux系统跑起来,那么一个必须的就是linux的时钟,也就是时间子系统了,这里正好工作需要,那么就研究下linux下的时间子系统了。 linux内核必须完成两种主要的定时测量。一个是计时,保存当前的时间和日期,以便能通过time(),gettimeofday()等系统调用,返回给用户程序,另一个是定时,这种机制主要是告诉内核或者应用程序,某一时间间隔已经过去了,触发回原创 2016-02-01 21:27:01 · 2024 阅读 · 0 评论 -
和菜鸟一起学linux内核源码之启动篇
又是一个周末,日子过得比较散,虽然期间也有不断地看书学习,总觉得有点小盲目。想想毕业也快要1年了,从事嵌入式linux的研发工作也1年多了。这1年多的从实习到正式工作到现在的自己,进步有,也很大,但是,总觉得没有那么深入。不管是linux还是android。从红外遥控器的char设备,后来改为input设备开始,然后接着就是i2c控制器驱动,spi控制器驱动,rtc设备驱动,eeprom,spi原创 2013-03-23 16:05:37 · 3404 阅读 · 1 评论 -
和菜鸟一起学linux内核源码之基础准备篇
注:以下大部分内容摘自linux内核编程入门篇和linux内核完全注释 在工作的这段时间,发现我的visio画图熟悉了点点,总喜欢把什么源码啊,结构啊之类的就当作流程图来画来理解,因为对于图,有一个很直观的认识,所以接下去也是以图为中心。 关于linux内核体系结构 说到操作系统,我们都会知道windows操作系统,linux操作系统,苹果的ios操作原创 2013-03-23 21:51:53 · 39072 阅读 · 4 评论 -
和菜鸟一起学linux内核之初始化init篇
注:以下大部分内容摘自linux内核编程入门篇和linux内核完全注释 断断续续地看着内核源码,发现很多知识点都不是很明白,特别是对于操作系统的一些基础。虽然看到了块设备了,但是发现也总结不出什么了,这篇好像好久前更新的,一直没有发表。最近还是比较忙碌,同事走了好多人,也有考虑过别的公司。但是正式工作未满1年,也不能随随便便地就离开。虽然很忙,但是还是学了很多东西。渐渐地接触了原创 2013-04-24 19:11:05 · 1927 阅读 · 0 评论 -
和菜鸟一起深入学习国嵌实验之linux常用命令
首先看下经常用到的linux下的命令吧,用以以后方便查阅。具体用法直接在终端man命令就可以了。以下都是基于ubuntu的操作的。 1、cp和scp cp: 当前的计算机下的拷贝 scp:当前计算机和远程计算机之间的拷贝 2、mv mv: 剪切,也可以当作重命名来使用 3、rm rm: 删除文件 4、m原创 2013-01-27 14:37:30 · 1169 阅读 · 0 评论 -
和菜鸟一起学OK6410之交叉编译hello world
看着大三买来的那块arm11(OK6410),又要开始冲动一把了,记得过年回来的时候,在ubuntu下搭建过OK6410的开发环境,不过不小心把ubuntu系统给卸载了,那软件还装了好多好多的,各种设置,悲剧的孩子。郁闷着,于是装了linux的虚拟机。还是跟新系统啊,安装软件啊,终于搞定了。 好了,既然已经搞定了虚拟机,交叉编译工具啊,内核啊都放进去了,就写个简单的hello w原创 2012-06-29 00:08:05 · 4577 阅读 · 1 评论 -
和菜鸟一起学linux总线驱动之启动篇
突然觉得学了这么久的内核驱动,都没有很深入看内核总线底层的实现。简单看过了最低版本的内核的源码,总算可以稍微理清一些头绪了。现在回过头来,把这一部分的知识给补上去。 Linux设备的模型有:总线(bus)、设备(device)和驱动(driver),还有类(class)。其中总线是处理器与设备之间通道,在设备模型中,所有的设备都通过总线相连;设备是对于一个设备的详细信息描述,驱动是原创 2013-05-13 11:36:19 · 2225 阅读 · 1 评论 -
和菜鸟一起学OK6410之最简单驱动模块hello world
天气越来越热了,可是炎热的天气也抵挡不住我对嵌入式的激情啊,OK6410,哥哥我又来了。今天终于回学校办了最后一件事情,拿了报到证,也签了劳动合同了,接下来,安安心心的工作+努力学习,相信自己的梦想会实现的。 好了,今天就把最简单的驱动模块hello world给实现下吧,以前实现过,所以很快的就搞定了,加上昨天那个交叉编译搞定了平台的搭建,你懂的。 首先就是写个原创 2012-06-29 23:50:20 · 2325 阅读 · 0 评论 -
和菜鸟一起学OK6410之最简单字符驱动
近来睡得都有些晚啊,早上却依旧早早地醒来,心里空空的,不知道可以做什么,既然没事做,那就继续玩OK6410吧,昨晚把最简单的hello world驱动搞定了,今天就把字符型设备驱动总结下吧,以前看过一片文章写得不错,代码都准备好了,就是没有去试过,现在就马上去试试吧。字符型设备驱动,OK6410,哥来了。 驱动嘛,首先得写代码,不多说了,直接上代码吧: #include原创 2012-06-30 12:51:32 · 2888 阅读 · 7 评论 -
和菜鸟一起学OK6410之Led字符驱动
公司待了一个下午,浑浑噩噩的,看了会android的wifi框架,还是懵懵懂懂的。都怪昨天热的睡不着,又不想开空调,唉,夏天,快过去吧。不过也算有点收获吧。吃了晚饭回到宿舍。想着,上几个实验都是看看串口的输出,没劲,好歹以前玩51,FPGA什么的时候,都是做出效果来的,于是觉得,得干出点实物来啊,好吧,记得51和FPGA是从led灯开始的,那么就。。。。。。。。。 还是先上代码原创 2012-06-30 22:42:36 · 5949 阅读 · 3 评论 -
和菜鸟一起学OK6410之蜂鸣器buzzer字符驱动
夕阳的谢幕,随之而出的明月,虽然刚刚回过家,但是还是想念,想念大海,想念妈妈烧的菜,也许真的是一个人久了吧。双休日,连个说话的人都没有,只是自己一个人,闷闷地看着书,写着Blog,天气太热,也懒得出去逛。收拾收拾心情,开始继续OK6410吧。 昨天把led灯实现了,今天就玩个蜂鸣器吧,然后那些小的,简单的外围就告一段落了,接着再好好看看ldd3,linux内核等吧。打好基础再来写原创 2012-07-01 21:39:33 · 5000 阅读 · 2 评论 -
和菜鸟一起学linux之GCC内嵌汇编简单实例
经常会在linux内核中看到汇编,而这个汇编又和正常的汇编不太一样,这个就是GCC中的内嵌汇编了。前先天,在移植dvb的frontend的时候看到了mb();这个函数,发现最终其执行的就是 #define barrier __asm__ __volatile__(“”: : : “memory”)就是不解其中的意思,网上查查资料才发现是嵌入了汇编。看到asm,相信原创 2012-10-18 11:36:09 · 5927 阅读 · 0 评论 -
和菜鸟一起学linux总线驱动之初识smartcard操作过程
学东西还是从实际的物体开始吧,先看下我们常用的触点式IC卡的管脚定义。 接口设备应通过触点VCC向卡提供下列标称电源:—— A类:5V—— B类:3V因此,卡和接口设备应仅工作在A类,或者仅工作在B类,或者工作在A类及B类(以下表示为AB类)。A类卡应能在A类或AB类接口设备上操作。AB类卡应能在原创 2012-10-26 11:39:41 · 3325 阅读 · 0 评论 -
和菜鸟一起学linux总线驱动之i2c死锁问题
不知不觉中已经有好几个月没有写点东西了,懒了就是懒了,说是忙着想把产品做得更好,都是借口,每天花一点时间来写点东西确实很不错,自己也坚持了很久很久,只不过今年以来,发现提高不是很大,能写的东西好少好少,以前专门研究一个方向,学习,完成工作,可以总结,而现在的事情,真的不好总结,额外的时间也没有完全用来学习,也没有追求更深入的掌握一些东西,一段时间测试,一段时间修bug,一段时间整理产品的细节,一段原创 2014-07-01 14:02:46 · 4332 阅读 · 4 评论