7-25:编译android源码,安装编译公码的环境,然后source,lunch,make命令,进行编译。
问题1:下载repo/manifests中default.xml时无法执行命令,(在安装repo的时候,解压到了bin目录下,没有可执行权限)
解决:通过百度查询原因得知文档读写运行权限问题无法执行命令,没有可执行权限,经过chmod 777将权限改为所有用户组都为rwx,最终问题得到解决。
问题2:将python2.7.6设置为默认python时找不到python目录
解决:在用户目录下找python和根目录产生混淆,最后在根目录下找到
7-26号:装驱动,通过adb进入下载模式,然后将程序(系统)通过qfil下载到开发板里,这个过程的作用就是,若是将开发板的程序写乱了,还可以通过这个步骤重装一下系统,也就是刷机。
7-27号:讲解了安卓源码的作用,以及qfile进行单刷,单刷就是分扇区进行程序的烧写。
驱动流程分为5个部分:1、分配 2、设置 3、注册file_operation 4、入口 5、出口
a -- 使用cdev结构体来描述字符设备;
b -- 通过其成员dev_t来定义设备号(分为主、次设备号)以确定字符设备的唯一性;
c -- 通过其成员file_operations来定义字符设备驱动提供给VFS的接口函数,如常见的open()、read()、write()等;
1.什么是设备树
这里不会用太多专业名词来解释设备树是什么,如果需要从专业的角度去理解网上有很多相关的书籍和资源供大家参考。这里我用通俗的语言对设备树做一个解释。举个例子,你的设备驱动是一套炒菜的流程,但是具体用哪个锅,哪种火,是天然气还是电磁炉,你需要告诉他,这些东西也就是你机器的硬件信息。
2.为什么要用设备树
以往驱动的这些硬件信息都是存在一个单独的文件里的,但是你想想,这么多厨师,这么多种菜,显然每一个都准备一个文件来描述,这个会增加Linux内核的冗余度,对内核非常不友好。当一个公司在一个产品上,比如一台手机上,用到了几十个硬件