2016年6月19日

摘要: (一) 打印内核调试信息:printk Printk函数用法与printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空间,printk函数在printk.c文件中实现。 Printk函数的原型如下:asmlinkage int printk(const char *f 阅读全文
posted @ 2016-06-19 22:05 Hi.娴森 阅读(2832) 评论(0) 推荐(0) 编辑
 
摘要: HAL——建立在Linux驱动之上的一套程序库,这套程序库并不属于Linux内核而是属于Linux内核层之上的应用层。HAL的作用就是尽量避免应用程序访问Linux驱动,还有就是保护“私人财产” 阅读全文
posted @ 2016-06-19 22:02 Hi.娴森 阅读(728) 评论(0) 推荐(0) 编辑
 
摘要: (一)Linux代码的重用 重用=静态重用(将要重用的代码放到其他的文件的头文件中声明)+动态重用(使用另外一个Linux驱动中的资源,例如函数、变量、宏等) 1、编译是由多个文件组成的Linux驱动(静态重用) 对于复杂的Linux驱动,需要使用多个源代码文件存放不同的功能代码,这样做有利于代码分 阅读全文
posted @ 2016-06-19 22:00 Hi.娴森 阅读(2537) 评论(0) 推荐(0) 编辑
 

2016年6月2日

摘要: 一 LED驱动的实现原理 尽管Linux驱动直接与硬件打交道,但并不是Linux驱动直接向硬件中的内存写数据,而是与本机的I/O内存进行交互。每一个连接Linux的硬件在I/O内存中都会有映射首地址,开发板上的LED也有其映射首地址。 二 编写LED驱动 第一步:使用cdev_init函数初始化cd 阅读全文
posted @ 2016-06-02 08:34 Hi.娴森 阅读(319) 评论(0) 推荐(0) 编辑
 

2016年5月31日

摘要: 一 编写Linux驱动程序 1.建立Linux驱动骨架 Linux内核在使用驱动时需要装载与卸载驱动 装载驱动:建立设备文件、分配内存地址空间等;module_init 函数处理驱动初始化 卸载驱动:删除设备文件、释放内存地址空间等;module_exit函数处理退出 包含这两个函数的两个宏的C程序 阅读全文
posted @ 2016-05-31 17:41 Hi.娴森 阅读(9286) 评论(0) 推荐(0) 编辑
 

2016年5月26日

摘要: 编译成的Linux驱动模块最终都要在开发板上进行测试,同时,如果Linux驱动需要访问硬件(如LCD、Wi-Fi、蓝牙等),并且这些硬件都很难在PC上进行模拟,那么就要在带有这些硬件的开发板上进行调试和测试 阅读全文
posted @ 2016-05-26 10:17 Hi.娴森 阅读(626) 评论(0) 推荐(0) 编辑
 

2016年4月23日

摘要: (一)下载、编译和测试Android源代码 1.配置Android源代码下载环境 #mkdir ~/bin——创建一个用于存放下载脚本文件的目录 #PATH=~/bin:$PATH #curl https://dl-ssl.google.com/dl/googlesource/git-repo/re 阅读全文
posted @ 2016-04-23 12:45 Hi.娴森 阅读(1007) 评论(0) 推荐(0) 编辑
 
摘要: Linux下的软件有很多都不直接以二进制形式的安装包提供,而是直接提供了源代码,涉及了源代码,就要对源代码进行管理,所有产生了Git源代码管理软件!! 阅读全文
posted @ 2016-04-23 09:57 Hi.娴森 阅读(308) 评论(0) 推荐(0) 编辑
 

2016年4月22日

摘要: (一)安装JDK JDK下载地址 http://www.oracle.com/technetwork/java/javase/downloads/index.html 在Linux终端输入如下命令,设置PATH环境变量 # gedit /etc/profile #. /etc/profile ech 阅读全文
posted @ 2016-04-22 21:33 Hi.娴森 阅读(3497) 评论(0) 推荐(0) 编辑
 

2016年4月21日

摘要: Android现在成为了当前智能手机操作系统的老大。想要在自己的设备上运行Android,需要另外开发一些程序,使得Android可以识别相应设备中的硬件! 阅读全文
posted @ 2016-04-21 18:39 Hi.娴森 阅读(3122) 评论(0) 推荐(0) 编辑