$ . .. Device
     . Simulator
Which would you like]

Build type choices are. release
     . debug
Which would you like]

Which product would you like. user  . userdebug . eng
.-update1
TARGET_PRODUCT=fs100
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=false
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=ERE27
============================================

编译 make -j2

编译完成之后

eclair_2.1_farsight ===> rootfs

制作根文件目录:

out/target/product/fs10/root
out/target/product/fs10/system
mkdir myrootfs
cp -raf out/target/product/fs100/root/* myrootfs/
cp -raf out/target/product/fs100/system   myrootfs

===> 制作后的rootfs里面有什么内容:

data   // apk安装目录      
default.prop  
system
   |
   app // 系统自带的apk
   bin  
   etc
   lib  
   usr  
   xbin
   build.prop   // 编译的属性信息: 编译时间,作者,平台 
   fonts   // 字体库
   framework  // android framework运行核心代码的二进制文件
 
init   // 第一个用户进程 
init.fs100.rc    
init.rc   // 启动脚本, 规定了init进程会去启动哪些其他的进程, 类似etc/inittab
init.goldfish.rc 
sbin 
dev
proc     
sys

运行

1, 烧录的方式:

set bootcmd nand read 0x20008000  0x900000 0x300000 \; go 0x20008000
set bootargs console  init... ethaddr  init  init   rootfstype=yaffs2

因为烧录的jffs, yaffs扫描的时候出问题, 文件系统的分区部分擦擦出
yaffs tragedy: no more erased blocks
!!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
yaffs tragedy: no more erased blocks
!!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
yaffs tragedy: no more erased blocks
!!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
yaffs tragedy: no more erased blocks
!!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
yaffs tragedy: no more erased blocks

解决:nand erase 0x9800000 0x6800000

调试

log系统
    / # ls /dev/log/*
    /dev/log/events(数据事件)  /dev/log/main(大部分的调试信息)    /dev/log/radio(针对无线通信)

logcat  ) uid gids, }
调试级别/标签tag(pid): 调试内容
调试级别: 
D   debug
I   info
W   warning
E   error
F   fatal
标签tag: 区分调试信息是从哪个代码中打印出来

过滤: 
logcat -s "ActivityManager"
//清空缓冲
logcat -c

android中如何用c写一个可执行代码--->编译出来-->运行

Android.mk==> 改编后的Makefile

目标文件名 : 依赖文件名
 编译规则
目标文件的路径
依赖文件的路径
写: 抄模板:hardware/ril/rild/Android.mk
#获取源码目录
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
#表示依赖文件
LOCAL_SRC_FILES:= hello.c
#表示目标文件
LOCAL_MODULE:= hello_arm_elf
#表示编译方法
include $(BUILD_EXECUTABLE)

===> 编译:

.-update1
TARGET_PRODUCT=fs100
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=false
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=ERE27
============================================
make:进入目录'/home/ldswfun/src_s5pc/eclair_2.1_farsight'
target thumb C: hello_arm_elf <= mytest/c_test/hello.c
target Executable: hello_arm_elf (out/target/product/fs100/obj/EXECUTABLES/hello_arm_elf_intermediates/LINKED/hello_arm_elf)
target Non-prelinked: hello_arm_elf (out/target/product/fs100/symbols/system/bin/hello_arm_elf)
target Strip: hello_arm_elf (out/target/product/fs100/obj/EXECUTABLES/hello_arm_elf_intermediates/hello_arm_elf)
Install: out/target/product/fs100/system/bin/hello_arm_elf
make:离开目录“/home/ldswfun/src_s5pc/eclair_2.1_farsight”

===> 运行:

cp -raf  out/target/product/fs100/system/bin/hello_arm_elf   /opt/myrootfs/

@成鹏致远

(blogs:http://lcw.cnblogs.com)

(emailwwwlllll@126.com)

【系统移植】Android系统移植的更多相关文章

  1. uni-app 时间格式问题 new Date(str) IOS系统跟Android系统不兼容

    今天做了一个需求,要在列表中把后台返回来的时间给显示出来,使用 new Date(str)  在微信开发者工具上显示是没有问题的,然后在IOS系统上显示是NAN. 原因是 IOS系统只识别 " ...

  2. h5 js判断是IOS系统还是android系统

    function detect(){ var equipmentType = ""; var agent = navigator.userAgent.toLowerCase(); ...

  3. 第一章 Android系统的编译和移植实例

    第一章 Android系统的编译和移植实例 这一章节主要介绍了Android系统的编译和移植技术,作为建立在Linux内核的基础上的Android操作系统,它的编译和移植不论在过程还是技术方面都和嵌入 ...

  4. Android系统架构与系统源码目录

    前言 技术博客终于可以恢复正常的更新速度了,原因是我编写的进阶书籍的初稿已经完成,窃以为它将会是Android应用书籍中最有深度的一本,可以说是<Android开发艺术探索>的姊妹篇.在这 ...

  5. Android系统简介(中):系统架构

    Android的系统架构栈分为4层,从上往下分别是Applications.Application framework.Libraries  & Android Runtime.Linux  ...

  6. Android系统简介(上):历史渊源

    上个月,看到微信的一系列文章,讲到Linux的鼻祖-李纳斯的传记<Just for Fun>, 其人神乎其能, 其人生过程非常有趣,值得每个程序员细细品味. 而实际上,对我而已,虽然做软件 ...

  7. Android系统--输入系统(六)模拟输入驱动程序

    Android系统--输入系统(六)模拟输入驱动程序 1. 回顾输入子系统 简单字符设备驱动:应用程序通过调用驱动所实现的函数使能硬件. 输入子系统:由于有多个应用程序使用输入子系统,故肯定使用的是早 ...

  8. 第二章 Android系统与嵌入式开发

    第二章 Android系统与嵌入式开发 第二章首先要先了解Android和嵌入式Lnux系统有什么区别和联系,嵌入式Linux系统是在嵌入式设备中运行Linux系统:Android系统是在嵌入式设备中 ...

  9. Android系统源代码学习步骤

    目前,互联网行业正在朝着移动互联网方向强劲地发展,而移动互联网的发展离不开背后的移动平台的支撑.众所周知,如今在移动平台市场上,苹果的iOS.谷歌的Android和微软的Windows Phone系统 ...

  10. Android 笔记之 Android 系统架构

    Android笔记之Android系统架构 h2{ color: #4abcde; } a{ color: blue; text-decoration: none; } a:hover{ color: ...

随机推荐

  1. Apache Spark-1.0.1集群搭建

    欢迎经验交流!本文Blog地址:http://www.cnblogs.com/fesh/p/3866791.html Apache Spark   a fast and general engine ...

  2. jQuery ajax - getScript() 方法

    通过 AJAX 请求来获得并运行一个 JavaScript 文件: HTML 代码: <button id="go">Run</button> <di ...

  3. 根据关键词kill进程

    #!/bin/sh pid=`ps -ef | grep /usr/bin/memcached | grep -v grep | awk '{print $2}'` kill $pid

  4. 创建solr集群简述

    综述: 用两台服务器,每台服务器上启动两个solr实例(端口分别为8983.7574),即一共有2x2=4个节点.4个节点分散在两个分片上,每台机器上存放两个分片的各一个replica,这样等于每台机 ...

  5. Python环境下NIPIR(ICTCLAS2014)中文分词系统使用攻略

    一.安装 官方链接:http://pynlpir.readthedocs.org/en/latest/installation.html 官方网页中介绍了几种安装方法,大家根据个人需要,自行参考!我采 ...

  6. MVC5+EF6 简易版CMS(非接口) 第三章:数据存储和业务处理

    目录 简易版CMS后台管理系统开发流程 MVC5+EF6 简易版CMS(非接口) 第一章:新建项目 MVC5+EF6 简易版CMS(非接口) 第二章:建数据模型 MVC5+EF6 简易版CMS(非接口 ...

  7. Verilog之串口(UART)通信

    0:起始位,低电平:1~8:数据位:9:校验位,高电平:10:停止位,高电平. 波特率 “9600bps”表示每秒可以传输9600位. 波特率定时计数器由时钟频率除以波特率. 采集1~8位,忽略0.9 ...

  8. JS 获取服务器时间

    function getSevertime(){ var xmlHttp = new XMLHttpRequest(); xmlHttp.open("get",location.h ...

  9. java多条件不定条件查询

    网站或各类管理系统都会用到搜索,会用到一个或多个不确定条件搜索,单条件搜索比较简单,有时候会有多个条件共同查询,如果系统中已经提供了相关的方法供你使用最好,像我做这老系统改版,需要添加搜索,就要自己写 ...

  10. H3C dhcp 中继

    需求描述RT1作为DHCP服务器创建两个全局地址池:192.168.10.0/24 192.168.20.0/24 RT1和RT3属于VLAN 10 RT2属于VLAN 20 在交换机上配置DHCP中 ...