第五章主要学习了搭建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与驱动开发----第五章读书笔记

转载于:https://www.cnblogs.com/l233ee/p/5561676.html

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

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

    Git--源代码管理软件,Git功能十分复杂,我们需要完成的功能有:创建版本库,提交源代码,创建分支,向远程服务器提交源代码,从远程服务器获取源代码等.而本章的学习内容就是掌握如何使用Git从源代码托 ...

  2. Android深度探索HAL与驱动开发—第8章

    (一)Linux代码的重用 重用=静态重用(将要重用的代码放到其他的文件的头文件中声明)+动态重用(使用另外一个Linux驱动中的资源,例如函数.变量.宏等) 1.编译是由多个文件组成的Linux驱动 ...

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

    1.1   Android拥有非常完善的系统构架可以分为四层: 第一层:Linux内核.主要包括驱动程序以及管理内存.进程.电源等资源的程序 第二层:C/C++代码库.主要包括Linux的.so文件以 ...

  4. android深度探索 HAL及驱动开发 第八章

    第八章 读书笔记 本章主要讲蜂鸣器的驱动,蜂鸣器是S3cC6410开发板上带的一个硬件设备,本节将介绍蜂鸣器的实现原理,并实现一个完整的蜂鸣器驱动.本节讲介绍把linux驱动分成多个文件的方式.这些文 ...

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

    一.打印内核调试信息:printk Printk函数用法与printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空间,printk函数在printk.c文件中实现. P ...

  6. 《Android深度探究HAL与驱动开发》学习笔记----第五章

    第五章 搭建S3C6410开发板的测试环境 开发板是开发和学习嵌入式技术的主要硬件设备. 主要学习了搭建S3C6410开发板的测试环境.首先要了解到S3C6410是一款低功耗.高性价比的RISC处理器 ...

  7. Android深度探索(卷1)HAL与驱动开发第五章总结

    开发板是开发和学习嵌入式技术的主要硬件设备,开发板的型号和种类很多,目前流行的是基于S3C6410 ARM11架构的开发板,S3C6410是由三星公司推出的一款低功耗,高性价比的RISC处理器,它基于 ...

  8. Android深度探索(卷1)HAL与驱动开发 第四章 源代码的下载和编译 读书笔记

    Android深度探索(卷1)HAL与驱动开发 第四章 源代码的下载和编译 读书笔记     本章学习了使用git下载两套源代码并搭建两个开发环境.分别为Android源代码和Linux内核源代码.A ...

  9. Android深度探索(卷1)HAL与驱动开发第六章总结

    操作系统是通过各种驱动程序赖家与硬件设备的,它为用户屏蔽了各种各样的设备,驱动硬件是操作系统最基本的功能,并且提供统一的操作方式.设备驱动程序是操作系统最基本的组成部分之一,在Linux内核源程序中也 ...

最新文章

  1. 学习设计模式 - 六大基本原则之单一职责原则
  2. python自动化运维平台能用php开发吗_关于数据库自动化运维平台的设计及开发实现思路...
  3. asp.net 连接 Access 的几种方法
  4. mysql整点抖动_MySQL 5.5 大量数据插入出现的抖动问题 及 解决方法
  5. MYSQL的索引类型:PRIMARY, INDEX,UNIQUE,FULLTEXT,SPAIAL 有什么区别?各适用于什么场合?...
  6. 乘积取中法matlab,迭代取中法、乘同余法及混合同余法产生随机数方法
  7. (Ⅱ)NexT主题的优化定制修改指南
  8. 115道Java面试题及答案分享,java程序员赶紧收好
  9. 在Java中用正则表达式判断一个字符串是否是数字的方法
  10. python怎么安装whl文件
  11. git找回删除的stash
  12. elasticsearch启动报错:unable to install syscall filter: java.lang.UnsupportedOperationException: seccomp
  13. Linux下nginx宕机自动启动
  14. C语言实现JSON字符串解码与编码(三)源代码
  15. 可以在线编译运行代码的网站(支持Python)
  16. 随机过程中的独立与不相关
  17. 【官网文档】机器学习术语表
  18. 未明学院学员报告:喜马拉雅APP上,原来大家最爱听的是……
  19. jQuery报错:Uncaught ReferenceError: $ is not defined在使用jQuery的时候,发现有如下报错:...
  20. 无法识别 移动固态硬盘_M.2接口的固态硬盘无法识别?其实解决方法非常简单!...

热门文章

  1. 如何通过发送短信唤起三方app?
  2. hz什么梗_90hz屏幕什么意思
  3. 智能的未来关键在于发现新的逻辑体系
  4. 农业银行查询开户支行的方法
  5. 婴儿电动摇篮车摇篮床单芯片蓝牙芯片IC方案
  6. 【DG】DG的3种保护模式
  7. 替换单词c语言程序,用c语言完成单词替换
  8. 安装Win10 Ubuntu20.04双系统
  9. 吐血分享:QQ群霸屏技术教程之霸屏实施细则
  10. 大疆FPGA/芯片开发工程师(A卷)笔试题(含详解)