从linux 驱动 到apk 前言

  前段时间抽空,实现了一下从kernel到apk的全过程,主要借鉴老罗的博客从java层到framework到JNI到HAL到kernel的hello 例子:

    http://blog.csdn.net/luoshengyang/article/details/6568411

  之前这篇博文看了很多遍,觉得不是很难,应该问题不到,真到实现的时候才发现里面有不少坑,正印证了那句老话"纸上得来终觉浅,绝知此事要躬行",还是要多练,才能搞懂。此次博客以实用主义的角度出发,移植实现功能。

  1、实现一个简单的内核驱动,直接借鉴老罗,以移植的角度去实现。

  2、通过c语言实现对对应节点的操作修改对应的参数值

  3、实现相应的JNI部分已经sever部分

  4、实现简单的apk,实现对对应节点的访问

注:个人能力有限,有问题欢迎指正。想牛人致敬!

时间: 2024-08-18 22:24:11

从linux 驱动 到apk 前言的相关文章

从LINUX 驱动 到APK (2)

通过c语言实现对对应节点的操作修改对应的参数值 此次在实现了对应的内核驱动的基础上实现linux应用程序访问对用的驱动节点的过程.实现过程:添加对用的实现文件,添加编译规则,编译实现 1.添加对用的实现文件 选择合适的位置存放相关源码,本次我存放在:vendor\welcome 目录下,新建welcome.c Tips:在编译出现未定义的情况,有可能是内核升级后没有对应的头文件,可以linux下使用终端man 函数名 可以看到函数使用及定义的相关头文件,添加即可 #include <stdio.

从LINUX 驱动 到APK (1)

实现一个简单的内核驱动 此次实现基于MTK8173平台Android 6.0 实现. 此次使用一个虚拟的硬件设备,这个设备只有一个4字节的寄存器,它可读可写,移植的角度来实现我们将其命名为welcome.在kernel部分要实现一个驱动主要分为,添加编译选择选项,实现对应的相关驱动,添加进入内核编译. 1,.添加编译选项 此项选择的源码存放的路径为 kernel-3.18\drivers\misc\mediatek目录 1.1 修改Kconfig文件 再合适的位置添加 config MTK_WE

Linux驱动开发之 六 (那些必须要了解的硬件知识 之 仪器篇)

Linux驱动开发之 六 (那些必须要了解的硬件知识 之 仪器篇) 一.前言 在之前的文章中,老谢已经分享了不少关于嵌入式系统开发过程中必须要了解的硬件知识.作为这一小节的结束(哎呀,终于要结束了),老谢还想和大家聊聊"仪器".本文中老谢不聊仪器的具体使用方法.原理等.只想聊点轻松的,老谢结合自己的实际工作,以图文结合的方式,简单聊聊工作中使用到的仪器. 实话实说,前几篇文章基本无技术含量,包括本文.老谢坚持写这几篇的用意是: Linux驱动开发,必须以此为基础: 通过写博客的方式,让

Linux代码的重用与强行卸载Linux驱动

(一)Linux代码的重用 重用=静态重用(将要重用的代码放到其他的文件的头文件中声明)+动态重用(使用另外一个Linux驱动中的资源,例如函数.变量.宏等) 1.编译是由多个文件组成的Linux驱动(静态重用) 对于复杂的Linux驱动,需要使用多个源代码文件存放不同的功能代码,这样做有利于代码分类和管理,那么就不得不编译多个源代码文件,最终生成.ko文件或编译进Linux内核 下面,就介绍将3个.c文件分别编译为3个.o文件,并将这3个.o文件链接(link)成一个.ko文件——静态重用 假

第六章——使用实例来理解Linux驱动开发及心得

在这一章中主要介绍了一个Linux驱动程序,以实战的方式向我们介绍了一个Linux驱动程序的例子. Linux驱动的工作和访问方式是Linux的亮点之一,同时受到了业界的广泛好评. Linux系统 将每一个驱动都映射成一个文件.这些文件称为设备文件或驱动文件,都保存在/dev目录中.这种 设计理念使得与Linux驱动进行交互就像与普通文件进行交互一样容易.当然,也比访问LinuxAPI 更容易. 由于大多数Linux驱动都有与其对应的设备文件, 因此与Linux驱动交换数据就变成了与 设备文件交

Linux驱动开发盲点笔记1

1. vim中在找到搜索目标后,使用n与N进行定位查找 2. vim中使用gg到最好第一行,使用xxxG到某一行,否则G直接到最后一行: 3. ln -s 产生的链接文件最终指向的目标文件src 新产生的当前软链接文件dst. ln -s project(磁盘上实际存在的文件或者目录) a.lnk ln -s src dst(新产生的文件dst,dst链接到src) symlink功能类似 4 tar -czvf 最终生产的tar打包好的文件 待打包的文件或者文件夹 tar czvf a.tar

常见 wifi热点的linux 驱动

小度Wifi.360Wifi Windows.linux驱动 小度wifi什么的就是一个无线网卡,当然可以自由使用,然官方却说不支持无限网卡功能… 现提供Windows平台和linux平台的驱动安装方法. Windows 驱动下载:http://pan.baidu.com/s/1GcFF1 Linux 使用lsusb命令可以获取USB设备ID.小度wifi为2955:0001或2955:1001 360WIFI2为148F:760B 二者均使用Mediatek Ralink MT7601芯片,都

浅析Linux驱动模型中的底层数据结构kobject和kset

1.kobject Linux内核用kobject来表示一个内核对象.它和Sysfs文件系统联系密切,在内核中注册到系统中的每个kobject对象在sysfs文件系统中对对应着一个文件目录.kobject数据结构通常的用法是嵌入到其对他的数据结构中(即容器,比如cdev结构),用于实现内核对该类数据结构对象的管理.这些数据结构(容器)通过kobject连接起来,形成了一个树状结构. 它在源码中的定义为: /*<include/linux/kobject.h>*/ struct kobject

Linux驱动经典面试题目

1.  linux驱动分类 2.  信号量与自旋锁 3.  platform总线设备及总线设备如何编写 4.  kmalloc和vmalloc的区别 5.  module_init的级别 6.  添加驱动 7.  IIC原理,总线框架,设备编写方法,i2c_msg 8.  kernel panic 9.  USB总线,USB传输种类,urb等 10.android boot 流程 11.android init解析init.rcLinux驱动经典面试题目,布布扣,bubuko.com