Android深度探索--HAL与驱动开发----第五章读书笔记
第五章主要学习了搭建S3C6410开发板的测试环境。首先要了解到S3C6410是一款低功耗、高性价比的RISC处理器它是基于ARMI1内核,广泛应用于移动电话和通用处理等领域。
开发板从技术上说与我们经常用的手机类似, 也包含显示屏、 键盘、 Wi-Fi、 蓝牙等模块(可 能有的是选配〉。但与手机不同的是在开发板上安装嵌入式系统要比手机容易得多。而且一般开发 扳都有很多扩展的端口,可以很容易开发定制的硬件, 并与开发板链接。因此,开发板相对于孚机 来说,更适合对程序进行测试,尤其适合对底层的 Linux 程序(如 Linux 驱动〉进行测试。
目前市面上的开发板型号和种类很多,但目前最流行的是基于三星S3C6410 ARM11架构的开发板。国内很多厂商在S3C6410 ARM11架构的开发板的基础上进行了扩展,开发了扩展板,本博文针对OK6410-A开发板。S3C6410是由三星公司推出的一款低功耗、高性价比的RISC处理器,它基于ARM11内核(ARM1176JZF-S),可广泛应用于移动电话和通用处理等领域。
烧写Android系统
为了安装Android,需要先把OK6410开发板默认安装的是WinCE6.0,卸载了,再安装android
使用Eboot擦除 NandFlash的方法:
1.用串口线或USB转串口线连接开发板和PC,并启动minicom
2.打开OK6410开发板的电源开关,等待5秒的提示信息,按PC键盘的空格键是开发板停留在Eboot状态
3.输入“A”可擦除NandFlash
第1步:准备工作,准备一个2GB或4GB的SD卡,要求FAT32分区格式,插入读卡器并连接PC
第2步:向Sd卡写入mmc.bin和zImage-sd.bin;这一步需要在windows XP下完成。运行Sd_Writer,OS Type选择“android”,并在Select Root和Select Kernel中分别选择mmc.bin和zImage-sd.bin文件写入SD卡。写入成功,会显示“It's ok"对话框
第3步:烧写android前的准备工作。首先将android_fs.tar、mmc.bin和zImage文件复制到SD卡上,然后设置开发板上的启动开关
第4步:开始从SD卡烧写android。 将SD卡插入OK6410开发板的插槽,并设置成SD卡启动,打开开发板,首先会向开发板内存写入一些用于启动android的数据,相当于将boot.bin刷到手机上,出现#提示符,输入.yjsx ,出现“great!!! all jobs is over”信息说明成功安装android
第5步:安装完后记得关闭开发板,重新启动开发板会要求校准屏幕
配置有线网络
# ifconfig eth0 192.168.17.150 netmask 255.255.255.0 up
#route add default gw 192.168.17.254 dev eth0
# /system/busybox/sbin/ifconfig 查询开发板当前的IP配置
# /system/busybox/sbin/route 查询路由表
将所有设置命令放到脚本文件linuxre(视具体情况定)中,保证每次开机都可以自动连接进网络
开发板是开发和学习嵌入式技术的主要硬件,从技术上说,与我们常用的手机类似,也包含显示器、键盘、Wi-Fi、蓝牙等模块,目前市面上的开发板型号和种类很多,但目前最流行的是基于三星S3C6410 ARM11架构的开发板。S3C6410 ARM11是由三星公司推出的一款低功耗、高性价比的RISC(reduced instruction sct computer,精简指令集计算机)处理器,它基于ARM11内核,可广泛应用于移动电话和通用处理等领域。
一、搭建编译环境
所需要的交叉编译工具链:S3C6410X Tool Chain 4.2.2 - EABI V0.0 - cross-4.2.2-eabi.tar
1.解压上述工具链获得文件夹:4.2.2-eabi/
2.在/usr/local/下面创建目录
arm/ (注意,最好是放到这个目录,不然在以后的编译过程中可能出现一些错误)
3.将目录4.2.2-eabi/移动到/usr/local/arm/下面
4.设置环境变量:
编辑/etc/profile文件,在文件末尾添加:PATH="$PATH:/usr/local/arm/4.2.2-eabi/usr/bin"
export PATH
使环境变量生效:在终端输入命令: source /etc/profile
测试环境变量是否设置成功:在终端输入:echo $PATH
如果输出的路径中包含了/usr/local/arm/4.2.2-eabi/usr/bin则说明环境变量设置成功
5.测试交叉编译工具链
在终端输入:arm-linux-gcc –v
二、搭建文件系统镜像制作环境
1.创建根文件系统目录
rootfs及其子目录bin,sbin,boot,root,sys,srv,proc,usr等
2.编译busybox1.7.0:(所需要的源码包:busybox-1.7.0.tar.bz2)
2.1解压源码包,进入源码目录;
2.2配置busybox:在源码目录执行make menuconfig, 如果使用默认配置则直接退出、保存,如果需要配置自己的则更改相应的选项再保存退出。
2.3修改源码目录的Makefile
2.4正式编译busybox:在源码目录执行make编译
2.5安装busybox:执行命令make CONFIG_PREFIX=/***/rootfs(根文件系统目录) install
3.拷贝glibc库相关文件到根文件系统
4.创建配置文件
5.创建设备文件
6.测试已经制作好的根文件系统
http://www.cnblogs.com/caoyutao/
Android深度探索--HAL与驱动开发----第五章读书笔记的更多相关文章
- Android深度探索--HAL与驱动开发----第四章读书笔记
1. 下载.编译.测试源代码 创建存放下载文件的目录(repo) 下载repo脚本文件 创建用于存放源代码的目录 开始下载源代码. 2. 源代码目录含义摘要 Abi 应用程序二进制接口 Device ...
- Android深度探索--HAL与驱动开发----第六章读书笔记
Linux驱动程序与其他类型的Linux程序一样拥有自己的规则,下面给出一个编写基本的Linux驱动的一般步骤: (1)建立Linux驱动的骨架(装载和卸载Linux驱动): (2)注册和注销设备文件 ...
- Android深度探索--HAL与驱动开发----第七章读书笔记
首先创建led驱动的设备文件,可以使用cdev_init,register_chrdev_region,cdev_add等建立主设备号的设备文件.步骤如下: 1使用cdev_init初始化cdev 2 ...
- Android深度探索--HAL与驱动开发----第三章读书笔记
1. 什么是Git? Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开 ...
- Android深度探索HAL与驱动开发 第四章 源代码下载和编译
前面说过Android移植主要就是Linux内核的移植,而Linux内核移植主要是Linux驱动的移植,所以为了开发和测试Linux驱动,有必要学习在Ubuntu Linux下如何搭建两套开发环境:A ...
- Android深度探索HAL与驱动开发 第三章 Git入门
Git功能十分复杂,简单来说它使你的开发更为快捷和可控,尤其是在开源项目上展现的友好的交互和回馈. 熟悉一些git指令操作对开发者的帮助可以避免开发者受到一些外在因素打断开发进度,甚至延误项目的che ...
- 《Android深度探索HAL与驱动开发》第一章阅读心得
首先了解到Android系统架构是由四层构成:其中第一层是Linux内核,他的作用是负责Linux的驱动程序以及内存.进程.电源等管理操作:第二层是C/C++代码库,也就是Linux下.so的文件:第 ...
- 《Android深度探索HAL与驱动开发》第二章阅读心得
按照书中所讲的步骤,第一步先准备好搭建Android开发环境所需要的工具:JDK6或以上版本:Eclipse3.4或以上版本:ADT:CDT:Android SDK:Android NDK;交叉编译环 ...
- Android深度探索HAL与驱动开发 第二章 搭建Android开发环境
通常以应用移植和系统移植的为Andorid系统移植的主要部分.同时为了适应不同平台硬件设备,对源代码进行相应的修改.除了要移植相适应的CPU架构,最重要是移植Linux驱动. 但是由于一些特别的原因, ...
随机推荐
- null
期末考备考最后三天. 加油,把这学期学的知识给它搞透了.
- jquery实现on/off开关按钮
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- 用margin还是padding
用margin还是用padding这个问题是每个学习CSS进阶时的必经之路. CSS边距属性定义元素周围的空间.通过使用单独的属性,可以对上.右.下.左的外边距进行设置.也可以使用简写的外边距属性同时 ...
- 缺少wlanapi.dll文件问题修复
我在下载百度云盘的时候碰到了一个问题,缺少wlanapi.dll文件.下面贴出解决办法 第一步 http://d.apktop.cn/p/soft_134.html 下载wlanapi.dll 第 ...
- SAX和DOM解析的区别
XML和JSon是ios解析文件的两种形式, 两种方法各有千秋. 1>. XML分为SAX和DOM两种方式 SAX是按顺序逐行读取文件, 查找到符合条件的内容时就会停止, 而DOM是讲内容一次性 ...
- chrome 扩展包 postman 的安装
由于chrome网上应用不能使用.添加扩展程序,需要其他的办法. 1.下载postman安装包.下载地址 2.这一步按照这个下载包中的方法,也可以,可以忽略其错误. 先解压出crx,使用两个办法,使用 ...
- git push命令
git push命令用于将本地分支的更新,推送到远程主机.它的格式与git pull命令相仿. $ git push <远程主机名> <本地分支名>:<远程分支名> ...
- supervisor centos安装
一.安装配置supervisor 1.安装python自动化工具 #yum install python-setuptools 2.#easy_install supervisor安装super ...
- C#中REF和OUT的区别
在C# 中,既可以通过值也可以通过引用传递参数.通过引用传递参数允许函数成员更改参数的值,并保持该更改.若要通过引用传递参数, 可使用ref或out关键字.ref和out这两个关键字都能够提供相似的功 ...
- js正则表达式大全(2)
在JAVASCRIPT里面判断一个字符串是否是电子邮件的格式: if(formname.email.value!=formname.email.value.match(/^\w +[@]\w +[.] ...