码迷,mamicode.com
首页 > 其他好文 > 详细

第九章、硬件抽象层:HAL 读书笔记

时间:2016-07-09 08:13:17      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:

编写linux驱动程序的步骤

第一步:建立linux驱动骨架(装载和卸载linux驱动)

第二步:注册和注销设备文件

第三步:指定与驱动相关的信息

第四步:指定回掉函数

第五步:编写业务逻辑

第六步:编写makefile文件

第七步:编写linux驱动程序

第八步:安装和卸载linux驱动

Printf函数运行在用户空间,printk函数运行在内核空间。

测试linux驱动步骤

第一步:导入test_count.c文件

第二步:设置include路径

第三步:建立target

第四步:build工程

第五步:运行测试程序

对于一个Linux驱动程序,一开始可以在UbuntuLinux上做前期的开发和测试。对于访问硬件的部分可以在ubuntuLinux用软件进行模拟。当基本开发完以后,就需要在开发板或者工程样机上使用真实的硬件进行测试。我们可以使用多种方式测试Linux驱动,主要有ubuntuLinux测试、在Android模拟器上通过原生(nativeC程序测试Linux驱动、使用AndroidNDK测试Linux驱动、使用Java源代码直接操作设备文件来测试Linux驱动、使用S3C6410开发板测试Linux驱动,还可以将驱动编译进Linux内核进行测试。

一个完整的linux驱动主要由内部处理和与硬件交互两部分组成。其中内部处理主要是指linux驱动的装载、卸载、与设备文件相关的动作处理以及业务逻辑等。与硬件交互主要是指通过ioweiteioread32等函数与硬件中的寄存器进行数据的交互。Linux驱动在不同平台的移植也是处理这两部分。如果在不同Linux内核版本之间的移植,主要是移植第1部分,如果在不同硬件平台的移植,主要是移植第二部分。

编写Led灯驱动的步骤如下:

1、 创建LED驱动设备文件:

1)   使用cdev-init函数初始化cdev

2)   指定设备号;

3)   使用cdev_add函数将字符设备添加到内核中的字符设备数组中;

4)   使用class_creat宏创建struct class

5)   使用device_create函数创建设备文件;

2、  卸载Led驱动的设备文件

3、 设置寄存器和初始化led驱动

4、 控制led灯:

1)   通过字符串控制LED

2)   通过I/O命令控制

5LED驱动的模块参数

6、 测试LED驱动

1)   编写测试I/O控制命令的通用程序;

2)   使用NDK测试LED驱动;

3)   使用Java测试LED驱动;

7Led驱动移植

第九章、硬件抽象层:HAL 读书笔记

标签:

原文地址:http://www.cnblogs.com/wuxinxinxin/p/5655142.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!