<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > s3c2440 android 移植

s3c2440 android 移植

作者: 時(shí)間:2016-11-20 來(lái)源:網(wǎng)絡(luò ) 收藏
ARMv4移植簡(jiǎn)單教程:

相信國內很多朋友手上都有s3c2410/2440的片子,基于armv4t(arm920t)的指令架構。在之前,因為android的一些底層代碼含有armv5t的指令,所以以前無(wú)法移植到這樣的平臺。在這里也放出移植教程和已經(jīng)編譯好的image。讓更多的朋友可以在自己的開(kāi)發(fā)板上親身體驗android。教程基于勤研qt2410以及揚創(chuàng )utu2440完成。
注意,移植是到armv4而不是armv4t, 原因應該是不開(kāi)thumb支持會(huì )比較好移植一些(改動(dòng)未涉及的庫依然會(huì )用thumb代碼,所以kernel依然要開(kāi)thumb支持)。
kernel移植及nfs配置的詳細部分等請自行查閱相關(guān)文檔,本文只做提點(diǎn),另外需要些git的操作。
目前的image只是臨時(shí)方案。主要是基于openmoko的benno一些尚未正式發(fā)布的patch,整體來(lái)說(shuō)已經(jīng)比較完善和clean,我僅做了點(diǎn)小修改就能使用,由于部分庫用c實(shí)現替換掉了arm實(shí)現,同時(shí)一些critical的armv5指令被armv4的替換,速度可能有點(diǎn)慢,尤其是2410上速度很慢。。對于嚴苛的android開(kāi)發(fā)組來(lái)說(shuō),這些patch部分尚未提交,部分在reviewing,還需要一些周期才會(huì )被接受進(jìn)官方git。等這些patch被官方接受后,我會(huì )整理另一套正式一些的版本,同時(shí)可能會(huì )提供些優(yōu)化方案。

本文引用地址:http://dyxdggzs.com/article/201611/318992.htm

A. kernel的移植
1. 移植,兩個(gè)方案可以選。
1). 將android的官方kernel的補丁打到自己的kernel上,這個(gè)方法對于kernel版本比較新的朋友比較合適,也很簡(jiǎn)單。比如2.6.24或以上。
a. 下載android kernel,執行 git diff v2.6.25 HEAD > android.patch
b. 進(jìn)入你自己的kernl,執行 git apply android.patch
c. 一般都會(huì )出error,手動(dòng)合并所有帶error的文件,如果你是2.6.25的話(huà)很簡(jiǎn)單,2.6.24會(huì )費點(diǎn)周折,因為kobject/kset的一些改動(dòng)造成android power/ipv4等驅動(dòng)不太好合。。
2). 將自己kernel上的bsp移植到android官方kernel。適用于kernel比較舊的朋友。
因為2410/2440是linux原生支持,所以基本上只需要移植lcd/touchpanel/網(wǎng)卡等等的驅動(dòng),并打開(kāi)2410/2440支持選項即可。
2. 這些步驟完成后,檢查如下選項是否都已經(jīng)打開(kāi)(make menuconfig):


顯示代碼打印
1 CONFIG_AEABI=y

2 CONFIG_SHMEM=y

3 CONFIG_ASHMEM=y

4 CONFIG_ARM_THUMB=y

5 CONFIG_ANDROID_BINDER_IPC=y

6 CONFIG_ANDROID_LOGGER=y

以下不一定重要, 但能開(kāi)就開(kāi),除非移植有問(wèn)題,比如power驅動(dòng):

顯示代碼打印
1 CONFIG_ANDROID_POWER=y

2 CONFIG_ANDROID_POWER_STAT=y

3 CONFIG_ANDROID_POWER_ALARM=y

4 CONFIG_ANDROID_RAM_CONSOLE=y

5 CONFIG_ANDROID_TIMED_GPIO=y

6 CONFIG_ANDROID_PARANOID_NETWORK=y


3. 按需要make zImage,再生成uImage,燒寫(xiě)到nand。

B. 制作android nfs root
1. 下載我做好的android_armv4 image包,見(jiàn)帖子下方
2. 準備好能啟動(dòng)的nfs root,設置好訪(fǎng)問(wèn)權限(重要?。?
3. 拷貝包中的system目錄到nfs_root/system, data目錄到nfs_root/data, root目錄到nfs_root/ (其他.img文件可以模擬器使用,同時(shí)也可以做真實(shí)文件系統,后話(huà)了)
4. 設置nfs啟動(dòng)參數中的init=/init,既指向nfs_root下的init
5. 刪除nfs_root/init.rc,去掉除mount tmpfs tmpfs /sqlite_stmt_journals size=4m之外所有的mount命令

C. 運行!
跑跑看吧,進(jìn)入android console之后可以運行logcat查看log。第一次啟動(dòng)會(huì )創(chuàng )建很多的數據,會(huì )比較慢,2410幾乎是折磨了。。平常的啟動(dòng)速度2440大概在1分多鐘,2410要5分鐘了??吹狡恋拇笫直?,你就搞定了??!

常見(jiàn)問(wèn)題:

1. lcd不顯示, 檢查framebuffer..如果正常,查看nfs權限。
2. 非法指令,檢查thumb,eabi選項。
3. servicemanager異常退出,檢查binder & ashmem選項。
其他的看kernel log和logcat自己分析吧.



關(guān)鍵詞: s3c2440android移

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>