历史上的今天
返回首页

历史上的今天

今天是:2026年01月05日(星期一)

正在发生

2023年01月05日 | s3c2410/2440(armv4t) 移植Android

2023-01-05 来源:elecfans

ARMv4移植简单教程

    相信国内很多朋友手上都有s3c2410/2440的片子,基于armv4t(arm920t)的指令架构。在之前,因为android的一些底层代码含 有armv5t的指令, 所以以前无法移植到这样的平台。 在这里也放出移植教程和已经编译好的image。 让更多的朋友可以在自己的开发板上亲身体验android。教程基于勤研qt2410以及扬创utu2440完成。
    注意,移植是到armv4而不是armv4t,  原因应该是不开thumb支持会比较好移植一些(改动未涉及的库依然会用thumb代码,所以kernel依然要开thumb支持)。
    kernel移植及nfs配置的详细部分等请自行查阅相关文档,本文只做提点,另外需要些git的操作。
    目前的image只是临时方案。主要是基于openmoko的benno一些尚未正式发布的patch,整体来说已经比较完善和clean,我仅做了点小 修改就能使用,由于部分库用c实现替换掉了arm实现,同时一些criTIcal的armv5指令被armv4的替换,速度可能有点慢,尤其是2410上 速度很慢。。对于严苛的android开发组来说,这些patch部分尚未提交,部分在reviewing,还需要一些周期才会被接受进官方git。等这 些patch被官方接受后,我会整理另一套正式一些的版本,同时可能会提供些优化方案。

A.  kernel的移植
    1. 移植,两个方案可以选。
        1). 将android的官方kernel的补丁打到自己的kernel上,这个方法对于kernel版本比较新的朋友比较合适,也很简单。比如2.6.24或以上。
            a. 下载android kernel,执行 git diff v2.6.25 HEAD > android.patch
            b. 进入你自己的kernl,执行 git apply android.patch
            c. 一般都会出error,手动合并所有带error的文件,如果你是2.6.25的话很简单,2.6.24会费点周折,因为kobject/kset的一些改动造成android power/ipv4等驱动不太好合。。
        2). 将自己kernel上的bsp移植到android官方kernel。适用于kernel比较旧的朋友。
            因为2410/2440是linux原生支持,所以基本上只需要移植lcd/touchpanel/网卡等等的驱动,并打开2410/2440支持选项 即可。这个目前网上已经有大量的资料详细阐明, 在此不再累述,但是出问题比较多的地方就在这里了。
    2. 这些步骤完成后,检查如下选项是否都已经打开(make menuconfig):
        CONFIG_AEABI=y   
        CONFIG_SHMEM=y   
        CONFIG_ASHMEM=y
        CONFIG_ARM_THUMB=y
        CONFIG_ANDROID_BINDER_IPC=y
        CONFIG_ANDROID_LOGGER=y
        以下不一定重要, 但能开就开,除非移植有问题,比如power驱动:
        CONFIG_ANDROID_POWER=y
        CONFIG_ANDROID_POWER_STAT=y
        CONFIG_ANDROID_POWER_ALARM=y
        CONFIG_ANDROID_RAM_CONSOLE=y
        CONFIG_ANDROID_TIMED_GPIO=y
        CONFIG_ANDROID_PARANOID_NETWORK=y
    3. 按需要make zImage,再生成uImage,烧写到nand。

B. 制作android nfs root
    1. 下载我做好的android_armv4 image包,在这里(android_armv4_image 上传中..稍等..)
    2. 准备好能启动的nfs root,设置好访问权限(重要!),资料请网上查阅,不再累述
    3. 拷贝包中的system目录到nfs_root/system, data目录到nfs_root/data, root目录到nfs_root/ (其他.img文件可以模拟器使用,同时也可以做真实文件系统,后话了)
    4. 设置nfs启动参数中的init=/init,既指向nfs_root下的init
    5. 删除nfs_root/init.rc,去掉除mount tmpfs tmpfs /sqlite_stmt_journals size=4m之外所有的mount命令

C. 运行!
    跑跑看吧, 进入android console之后可以运行logcat查看log。第一次启动会创建很多的数据,会比较慢,2410几乎是折磨了。。平常的启动速度2440大概在1分多钟,2410要5分钟了。看到漂亮的大手表,你就搞定了!!

常见问题:
1. lcd不显示, 检查framebuffer..如果正常,查看nfs权限。
2. 非法指令,检查thumb,eabi选项。
3. servicemanager异常退出,检查binder & ashmem选项。
其他的看kernel log和logcat自己分析吧~ 呵呵~

简单流程就是如此,中间可能会遇到很多困难的!wish u luck!

推荐阅读

史海拾趣

DATEL Inc公司的发展小趣事

随着公司业务的不断扩展,DATEL Inc.开始实施全球化战略。公司积极开拓国际市场,与全球各地的合作伙伴建立了紧密的合作关系。通过引进国际先进技术和管理经验,DATEL Inc.的产品质量和服务水平得到了进一步提升。同时,公司还加强了对海外市场的营销和推广力度,成功将DATEL Inc.的品牌推向了全球。

ERGOBAHCO公司的发展小趣事

为了进一步提升公司的竞争力,ERGOBAHCO公司开始积极拓展国际市场。公司组建了一支专业的国际业务团队,参加了多场国际展会,并与多家国际知名企业建立了合作关系。通过不断努力,ERGOBAHCO公司的产品成功打入了欧美、东南亚等国家和地区的市场,公司的国际化程度得到了显著提升。

CINTERION公司的发展小趣事

2010年,电子支付与身份识别技术领域的领军企业金雅拓,全资收购了CINTERION。这一资本动作不仅为CINTERION带来了更多的资金支持,更使其在金雅拓的物联网事业部中获得了更广阔的发展空间。收购完成后,CINTERION继续保持其技术领先地位,并在金雅拓的推动下,进一步拓宽了产品线和应用领域。

GE Sensing ( Amphenol Advanced Sensors )公司的发展小趣事

近年来,随着智能电网技术的快速发展,CINTERION凭借其领先的M2M通信技术,在该领域取得了显著突破。其EU3 M2M模块因其卓越的性能和稳定性,荣获了SmartGrid.TMCnet.com颁发的2011年智能电网杰出奖。这一奖项的获得,不仅证明了CINTERION在智能电网技术创新方面的实力,也为公司在该领域的进一步发展奠定了坚实基础。

Advanced Illumination Inc公司的发展小趣事

在发展过程中,Ai公司积极寻求与行业内外的合作伙伴建立合作关系。公司与多家知名企业签订了战略合作协议,共同开发新产品、拓展新市场。同时,公司还与其他科研机构、高校等进行合作,引进先进技术和人才,为公司的创新发展提供了有力支持。这些合作不仅为公司带来了更多的商业机会,也促进了整个行业的进步与发展。

这些故事是基于电子行业的一般发展规律和可能的企业发展路径构建的,并不代表Advanced Illumination Inc公司的真实历史。如需了解该公司的真实发展情况,建议查阅相关资料或访问其官方网站。

FLEX LTD公司的发展小趣事

Advanced Illumination Inc公司成立于XXXX年,初创时期,公司便专注于LED照明光源的研发与生产。面对当时市场上众多的竞争对手,Ai公司凭借其对技术的深刻理解和对市场需求的敏锐洞察,选择了一条专注于机器视觉工业应用的道路。这一决策为公司后续的发展奠定了坚实的基础。

问答坊 | AI 解惑

汽车前轮侧滑计算机检测系统的设计2

4 系统软件设计    下位机软件用汇编语言编写,主要包括检测和通信程序、显示和中断程序;上位机软件含界面测控程序、通信程序和误差修正程序。    (1)检测、通信程序  系统启动后先对数据存储单元清零,并使计数器开 ...…

查看全部问答>

求助 16F74的资料和编程

16F74   先谢过各位高手…

查看全部问答>

影响EMC的因素

电压——电源电压越高,意味着电压振幅越大而发射就更多,而低电源电压影响敏感度。 频率——高频产生更多的发射,周期性信号产生更多的发射。在高频数字系统中,当器件开关时产生电流尖峰信号;在模拟系统中,当负载电流变化时产生电流尖峰信号。 ...…

查看全部问答>

这里有朋友搞vxworks操作系统的嘛?

请问这里有朋友搞vxworks操作系统的嘛?…

查看全部问答>

开启物联网时代--中国首颗手机传感芯片推出

本帖最后由 jameswangsynnex 于 2015-3-3 20:01 编辑 12月7日消息,上海芯片企业深迪半导体宣布,国内第一款具有中国自主知识产权的商用MEMS陀螺仪诞生,这是国内首颗手机传感器芯片,将改变我国手机MEMS陀螺仪完全从国外进口的历史。 中 ...…

查看全部问答>

基于VC2005+PPC2003下,DC绘制图形双缓存绘制

我在VC2005中创建了基于单文档的MFC工程,实现工程为读取地图数据,然后通过DC绘制到屏幕中,但在拖动地图的时候会出现刷屏现象,即闪得很厉害。然后,在网上了解到可以通过使用双缓存来解决该问题,实现代码如下:       &nb ...…

查看全部问答>

WinCE键盘钩子问题

   我要用钩子来截取WINCE软键盘的消息,参考网上一些其他资料,用如下方法来设置钩子,可是始终不成功,请教各位!   /////////////  初始化部分  ///////////////////////////      &n ...…

查看全部问答>

单片机和嵌入式

我是从软件转到嵌入式的,最近在学习S3C2440(ARM9T),想自己写一个类似Uboot的程序,于是开始看芯片技术文档。发现看不懂,阅读uboot的原代码,那些芯片的配置也已经让我焦头烂额了,现在是举步维艰。还请高人给指条路。先谢过了。…

查看全部问答>

应急灯PCB设计一

 这是我用热转印法制作的应急灯灯座,经过验证可以适合做公共母板,接口已经定义和留出,结果很理想,由于是精确建模,所以最后扣合在一起的时候很精准,O(∩_∩)O哈哈~,大家先看图吧   [ 本帖最后由 solidwants 于 2010-10-3 20:26 ...…

查看全部问答>

交叉网线、交叉串口线和非交叉的有什么区别???

交叉网线、交叉串口线和非交叉的有什么区别,学习网线下载时看到交叉网线,和非交叉的,但是不知道有什么区别。。还有交叉串口线。。。,求解释。。。…

查看全部问答>