第一章心得体会

本章内容首先整体了解到了安卓系统移植和驱动开发概述的整体框架。

安卓的系统架构分为四层:Linux内核、c/c++代码库、Android SDK API、应用程序。

安卓系统移植的主要两部分工作是应用移植和系统移植,应用移植是将应用程序移植到某一特定的硬件平台上,而系统移植是指让安卓操作系统在某一个特定平台上运行。

Linux内核版本有三个,分别是linux2.4、linux2.6、linux3.x,linux内核版本号由主版本号、次版本号、修订版本号、微调版本号组成,这也需要我清楚认识一下linux内核的相关信息。

由于linux内核版本更新很快,所以linux内核对从事驱动开发的我们影响很大,但是这对于学习linux驱动开发来说影响相对较小,所以不管是哪个版本的内核,只要掌握一个内核版本的驱动开发就好了。学习linux驱动要用linux系统,我们应该选择自己熟悉的系统作为自己的实验环境。

学习linux驱动首先应该准备一个自己熟悉的linux操作系统,用于开发和测试linux驱动;其次准备一块开发版;接着应该学习GNU C以及相关的硬件知识并且不断的实践 。而对于linux设备驱动来说,驱动针对的对象是存储器和外设,而不是针对CPU,linux将存储器和外设分为字符设备、块设备、网络设备,另外,usb驱动、PCI驱动、LCD驱动等大体可归为上述三类设备。linux驱动代码涉及了很多系统的函数和结构体,如readl、writel、printk、miscdevice等,我们需要知道任何的linux驱动都有一个装载函数和一个卸载函数,装载函数和卸载函数分别通过mobule_init和module_exit宏指定。

所以本章我认识到,学习linux驱动编程一定要了解linux驱动只与linux内核有关,与用户使用的linux系统无关,唯一可以判断linux内核版本号的定义规则,只有组成内核版本号的五部分完全相同,才能说明两个linux系统的内核是相同的。所以从这一点可以看出,学习安卓驱动开发,实际上就是学习linux驱动开发,知识安卓增加了一个HAL,这是安卓特有的,一般的安卓驱动都会有对应的HAL,不过HAL这不是必须的,通过NDK也可以直接访问linux驱动。

转载于:https://www.cnblogs.com/renxinye/p/5436499.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值