微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > Linux中加入led驱动及测试程序详解

Linux中加入led驱动及测试程序详解

时间:06-08 来源:互联网 点击:

51单片机我们在大学都学过,51也是我们一个嵌入式接触的第一个处理器,它的结构不算复杂。我们学习51单片机,我们可以清楚的说出51单片机中的资源,累加器A和B,程序状态寄存器,程序计数器,6个中断源,r0-r7工作寄存器等等,其实arm处理器也可以说是一个单片机,只不过它的速度更快,寄存器更多了些,位数多了些(32位),分了几种工作模式,指令多了些等等,不过只要我们有51的学习经验,学习arm并不是很困难的事情。

不过我们学习arm不能在像学习51单片机那样,希望把所有的东西都知道,弄清楚里面的结构,这个是不可能的,也是完全没有必要的。我们学习arm处理器要学习与应用相关的部分。官方给出的芯片手册是一个工具,而不是教材,我们没有哪个工程师能够把那个一千多页的文档从头到尾的看一遍,三星在写手册的时候也有偷工减料的地方,比如6410的有些部分就是直接拿2440的手册中的。我们用到哪一部分,我们再去查相应的部分就可以了。Arm芯片手册中关于芯片的结构和相关的使用说明说的很详细,以前写过关于裸机LED的小程序,那个小程序只是一个简单的GPIO的操作,不过对于刚入门的初学者来说,这个小程序能让我们大概的了解arm芯片。还有那个led的程序运行是有前提的,arm运行之前要先初始化,上次我们直接是在启动uboot启动后运行的我们的led程序,uboot把做了初始化的工作。

学习arm和学习51系列的基本内容相同,arm的基本内容主要包括中断响应过程,arm指令集,存储器结构和汇编语言的程序结构,并没有比51更多多的内容,从这几方面去学习arm,我们会发现学习arm并不是很困难的事。我们不要把arm想的太复杂,太神秘,就像我们没有接触单片机之前,我们并不知道什么是单片机,也不知道单片机能做什么,当我们学完之后,我们感觉其实也没什么难的。Arm也是一样的,我建议初学者买本关于arm入门的书,从头看一遍有个系统的掌握。我给大家推荐一本《从51到ARM—32位嵌入式系统入门》北京航空航天大学出版社出版的。这本书是我在大学的时候接触到的第一本arm的书,这本书讲的很基础,引领我们从51过渡到ARM,很多的地方都是讲51和ARM的对比,让我们看完之后,感觉arm就是一个“超级”的51。建议关于汇编的指令部分先可以不看,因为那个很长,也不好记,而且日后工作也不怎么用。只有我们在移植与CPU直接打交道的时候才用的着。

先看一下百度百科是怎么定义操作系统的,操作系统(Operating System,简称OS)是管理电脑硬件与软件资源的程序,同时也是计算机系统的内核与基石。操作系统是控制其他程序运行,管理系统资源并为用户提供操作界面的系统软件的集合。操作系统身负诸如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。如果我们想学操作系统,关于操作系统很多我前辈都推荐我们先学ucos,可以说麻雀虽小五脏俱全,代码量少,不过里面的基本的机制还是都有的。

我们没有必要学习arm中的详细的结构,我们大概了解arm的体系结构就可以了,就像学习51的时候用C语言编程,也不知道是怎么生成的二进制可执行的文件的。我们想玩操作系统也可不太关心arm结构,编译器会帮助我们完成这个复杂的工作。

操作系统一定意义上也可以看作是一个软件,只不过这个软件管理我们的资源,调度任务,管理内存,管理中断等。Linux是一个多任务,多用户的一个网络操作系统,一台linux机器可以同时运行不同用户的多个任务,一个cpu怎么来实现呢?我们可以听歌的同时也可以浏览网页,而另一个人可能也在通过网络登录这台机器做着自己的开发工作。这就是操作系统要做的。把每个任务分成时间片,轮换着让cpu去执行,只不过这个速度太快了,以至于我们认为我们的任务同时在运行。我们可以把linux想成是一个“大管家”,管理着资源任务。初学者先不要想linux内部究竟是怎么管理的,内部是怎么样的结构,也不要一开始就拿一本linux内核详解来看,整天翻着天书,看不到100页就看不下去了。由浅入深,从简单到复杂,慢慢的我们就会知道什么是linux了,时机到了,不用怎么去看就已经很明了了。

学习嵌入式linux编程,我们接触到的大多是linux设备驱动程序的编程。说了半天没有头绪的东西,还是来点实际的东西。今天我就给大家简单的分析一下飞凌的led驱动程序,有了我们前面led的裸机的程序的基础,这个led的驱动也就简单多了。

大家最好是看一下linux设备驱动程序一书的前六章,这样不会对linux中的led中的一些函数太陌生。首先要对linux的字符

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top