2440 android,android poring on 2440(一)

android 文件结构:

---bionic:基本的库

---build:编译、配置所需的脚本

---dalvik:虚拟机

---development:程序开发所需的模板和工具

---external:扩展库

---frameworks:框架层

---hardware:硬件库

---kernel:linux 2.6内核

---out:编译默认输出

---packages:应用程序

---preuilt:编译工具

---system:Android底层库

移植方案一

对cupcake 1.5进行修改,是用的Benno的armv4方案,直接禁用Thumb。

移植工作主要是在armv5 与armv4指令的差异上,涉及到的文件如下:

bionic中的libc相关,主要是syscalls下的系统调用,bx,bxne,bxeq,bxls,bxle,bxmi,bxpl换为

BX() BXNE() BXEQ() BXLS() BXLE() BXMI() BXPL()。

定义:

#define BX(reg) mov pc, reg

#define BXNE(reg) movne pc, reg

#define BXEQ(reg) moveq pc, reg

#define BXLS(reg) movls pc, reg

#define BXLE(reg) movle pc, reg

#define BXMI(reg) movmi pc, reg

#define BXPL(reg) movpl pc, reg

build中相关编译选项的更改:

更改Makefile,以及包含的arm相关的文件。

使用ext2的环境变量 TARGET_USERIMAGES_USE_EXT2=true

重要的更改在build/core/combo/linux-arm.mk中,其中加入针对armv4t编译的相关宏定义。因为Thumb指令的不支持,所以采取的方法是直接不使用Thumb指令。即编译选项取出Thumb支持。

system中Android的系统配置的更改:

将涉及到之前所述指令的地方改为宏定义,增加对于armv4的相关设置的宏定义。

init.rc针对sd启动进行更改。

dalvik虚拟机的更改:

armv4t的,针对eabi的更改,具体能不能正常还未知。

external扩展库的更改:

jpeg,opencore,skia,sonivox,yaffs库的修改,基本都是编译选项的更改。

编译工具的选择:

一个是自己编译的gcc 4.2.1的源码,一个是koolu的针对arm920t的工具链。

结果:

两个工具链均无法通过编译,错误很奇怪,依然出在万恶的libc上。

参考Benno的blog:

http://benno.id.au/blog/?tag=android

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值