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/

时间: 2024-10-26 16:11:16

Android深度探索--HAL与驱动开发----第五章读书笔记的相关文章

Android深度探索--HAL与驱动开发----第四章读书笔记

1. 下载.编译.测试源代码 创建存放下载文件的目录(repo) 下载repo脚本文件 创建用于存放源代码的目录 开始下载源代码. 2. 源代码目录含义摘要 Abi 应用程序二进制接口 Device 于设备相关的代码 External 宽展工具源代码 Ndk NDK相关的源代码 Sdk SDK如ddms.draw9patch.sdkmannager. System Android的基本系统 3. 下载源代码中的一部分 使用repo sync命令 使用git clone命令 4. linux内核目

Android深度探索--HAL与驱动开发----第六章读书笔记

Linux驱动程序与其他类型的Linux程序一样拥有自己的规则,下面给出一个编写基本的Linux驱动的一般步骤: (1)建立Linux驱动的骨架(装载和卸载Linux驱动): (2)注册和注销设备文件: (3)指定与驱动相关的信息: (4)指定回调函数: (5)编写业务逻辑: (6)编写Makefile文件: (7)编译Linux驱动程序: (8)安装和卸载Linux驱动. 对于一个Linux驱动程序,一开始可以在Ubuntu Linux上做前期开发和测试.对于访问硬件的部分也可以在Ubuntu

Android深度探索--HAL与驱动开发----第七章读书笔记

首先创建led驱动的设备文件,可以使用cdev_init,register_chrdev_region,cdev_add等建立主设备号的设备文件.步骤如下: 1使用cdev_init初始化cdev 2指定设备号 3使用cdev_add函数将字符设备添加到内核中的字符设备组中 4使用class_creat宏创建struct class 5使用device_creat函数创建设备文件 然后卸载led驱动的设备文件 {Device_destroy(leds_class,dev_number); If(

Android深度探索--HAL与驱动开发----第三章读书笔记

1. 什么是Git? Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件. 2. Git的安装. # apt-get install git #apt-get install git-doc git-svn git-email git-gui gitk 在Linux下可以直接使用man命令查看指定命令的帮助文档 #git help <sub-comm

Android深度探索HAL与驱动开发 第五章

第五章 本章学习了搭建S3C6410开发板的测试环境,其中S3C6410开发板是三星推出的一种低功耗,高性价比的RISC处理器,应用广泛,并为2.5G和3G通信服务提供了优化的 硬件性能,内置强大硬件加速其,满足高端服务通信中的数据宽带要求. 搭建开发板的测试环境首先要安装串口调试工具(minicom),因为开发linux驱动程序与android应用程序不同,无法在eclpse上开发.安装minicom步骤如下: 1.检测当前系统是否支持usb转串口 2.安装minicom #apt—git i

Android深度探索HAL与驱动开发-——第五章

第五章主要介绍的是:S5PV210微处理器.GPIO接口.PwM定时器和DMA控制器及UART接口SPI接口和IIC总线接口.ADC及触摸屏接口.  (1)S5PV210是一款32位微处理器,低功率,他主要有关键功能.微处理器.存储器子系统.多功能.音频子系统.安全子系统.接口和系统外设这几部分.(2)GPIO接口:他的专用寄存器包括1.端口组控制寄存器其包含控制寄存器.数据寄存器.上拉寄存器.2.端口组GPAO控制寄存器分别是控制寄存器.数据寄存器.上拉寄存器.驱动强度寄存器.电源中断模式寄存

Andriod深度探索—HAL与驱动开发 第十 章 读书笔记and一点心得

 打印内核调试信息:printk Printk函数的用法与printf函数相似,只不过printk函数运行在内核空间,printf函数运行在用户空间. Prink函数在printk.c文件中实现,该文件的路径如下: /root/kernel/linux_kernel_2.6.36/kernel/printk.c Printk函数至少要有一个参数(格式字符串)如果格式字符串中包含有占位符(%d.%s等),后面必须跟与占位符相等数量的参数,以便一一对应传入printk函数. Printk文件是一个简

Andriod深度探索—HAL与驱动开发 第八 章 读书笔记and一点心得

Linux驱动的代码重用 Linux 驱动的代码重用有很多种方法.可以采用标准C 程序的方式.将要重用的代码放在其他的文件(在头文件中声明〉中.如果要使用某些功能, include 相应的头文件即可(这种方式称为静态重用).也可以使用另外一种动态重用的方式,也就是一个Linux 驱动可以使用另外←个Linux驱动中的资源(函数.变量.宏等〉. 强行卸载Linux驱动  如果编写的Ljnux 驱动程序在逻辑上是正确的,那么可以正常装载和卸载,但在某些情况下,可能某些程序会出现异常情况.这时Linu

Andriod深度探索—HAL与驱动开发 第七章 读书笔记

创建LED驱动的设备文件 第1步:使用cdev_init函数初始化cdev 第2步:指定设备号.直接在代码指定或动态分配 第3步:使用cdev_add函数将字符设备添加到内核中的字符设备数组中 第4步:使用class_create宏创建struct class 第5步:使用device_create函数创建设备文件 卸载LED驱动的设备文件 需要依次调用device_destroy.class_destroy和unregister_chrdev_region方法 void device_dest