摘要: HAL(硬件抽象层)是建立在驱动之上的一套程序库,是位于内核上的应用层。HAL主要目的是为了保护“私人财产”。Linux内核采用GPL协议,该协议要求所有使用者基于GPL协议的源代码必须开源,这对于某些公司和个人是不利的,从而衍生出HAL。将逻辑业务代码存储在HAL中,linux内核只保存与寄存器交 阅读全文
posted @ 2016-07-03 17:48 1310-09 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 对于复杂的linux驱动及HAL等程序库,需要使用各种方法对其进行调试,例如设置断点、逐步跟踪代码,输出调试信息等。 一、打印内核调试信息:printk 该函数用法与printf函数类似,只不过printk函数运行在linux内核空间,而printf函数在用户空间。 例如:printk(“hello 阅读全文
posted @ 2016-07-03 17:47 1310-09 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 三星开发板再带蜂鸣器,所以我们可以通过向寄存器写入特定的值来控制蜂鸣器发出声响。开发一个驱动时可能会在init、exit等函数中发生错误这是驱动可能会安装失败,更糟的是无法使用rmmod驱动,这也就会造成无法再次安装的窘境。linux驱动的代码重用有很多种方法。可以采用标准C程序方式。将要重用代码放 阅读全文
posted @ 2016-06-05 17:08 1310-09 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 上节中了解到驱动程序的开发步骤,并给了一个实列来演示如何开发一个完整的驱动。但这个驱动只是简单的演示了实现步骤。真正的驱动需要与硬件直接进行相互交互。这节完整的演示驱动程序,控制开发板上的4个led灯闪烁。在开发前我们了解下工作原理。linux驱动直接与硬件打交道,但并不是驱动直接向硬件中的内存协数 阅读全文
posted @ 2016-06-05 16:50 1310-09 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 从本章开始将通过详细的列子来进行学习。 首先对linux驱动分析,本质上linux驱动和API没本质的区别,只是使用Linux驱动的方式与使用API的方式不同而已,驱动的工作和访问方式是系统的亮点之一。这些文件为设备文件或驱动文件,多保存在/Dev目录中。这种设计使得驱动的交互就像普通文件进行交互一 阅读全文
posted @ 2016-06-05 16:13 1310-09 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 开发板是开发和学习嵌入式技术的主要硬件设备,pc上开发linux驱动,但是得编译成ARM架构的linux驱动模块。S3C6410是三星公司推出的一款低功耗、高性价比的PISC处理器,它基于ARM11内核,可广泛应用于移动电话和通用处理等领域。次开发板为2.5G和3G通信服务提供了优化的硬件性能,内置 阅读全文
posted @ 2016-06-05 14:44 1310-09 阅读(153) 评论(0) 推荐(0) 编辑
摘要: linux的开源使得其内核版本繁多,所以爱好者们之前的软件交流以源代码形式进行造成管理混乱,所以出现了Git拥有非凡的性能和最为优化的存储能力。 安装Git:apt-get install git、 apt-get install git-doc git-svn git-email git -gui 阅读全文
posted @ 2016-05-02 10:55 1310-09 阅读(91) 评论(0) 推荐(0) 编辑
摘要: Android开发环境的搭建前我们要准备相应的工具,准备完毕后我们首先安装虚拟环境JDK,在安装时需要修改相应的环境变量,修改完后可以再命令窗口去查看是否安装正确。搭建安卓应用程序开发环境,使得安卓的测试可以再pc电脑上进行测试,谷歌在这步提供了Android SDK给我们学生省去了很多麻烦,我只需 阅读全文
posted @ 2016-05-02 10:55 1310-09 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 21世纪社会进入高速发展时代,手机的使用以成为人们生活的必需品。Android系统是如今手机操作系统的老大。因为安卓的开源性基于linux内核的安卓系统一直到其他不同种类的硬件中充当操作系统。 实现安卓的移植必须了解安卓的构成,优秀的嵌入式操作系统记过不断地积累形成了非常完善的系统构架,第一层lin 阅读全文
posted @ 2016-05-02 10:55 1310-09 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 安卓源代码包含了很多东西,内嵌在其中的应用程序的源代码及各种工具。所以我们要想使用他人的Linux软件要下载他的源代码。想要下载源代码需要配置Android源代码下载环境,首先创建一个用于存放下载脚本文件的(repo)的目录 接着下载repo脚本文件(用于下载Android源代码) 并创建用于存放A 阅读全文
posted @ 2016-05-02 10:54 1310-09 阅读(148) 评论(0) 推荐(0) 编辑