Android 2.1移植

來源:互聯網
上載者:User
Android 2.1移植的那些事1

 

      談談我們的平台,北福士志小本(MPRC)。在沒有開發板和FPGA資源緊缺的情況下,我們唯一的選擇:北大小本。

 

 

 

我們的目標產品是基於國產嵌入式架構Unicore的Android平板電腦。

(unicore是北大開發出來的國產嵌入式架構,相當於arm,power pc ,mips等。說句實話,沒人能保證我們的pad出來後會有市場份額,而且我們的核是unicore,系統是2.1;算了,這個不能說太多。畢竟是國家項目,作為小羅羅的我們只負責做好自己的事。)

為了今後目標產品的開發,我們先積累開發經驗。

 

 

google的android源碼是基於arm,而我們的核是unicore架構的。我們有自己的指令集,有自己的編譯器。這個就為android的移植工作帶來了不少的麻煩。bionic中c庫的實現,系統調用等等, 反正與架構相關的代碼都得該。當然,這部分工作是北大自己做的。我們拿到編譯好的二進位檔案就行了。dalivik中解譯器指令我們也得用unicore的彙編來實現,這部分工作本來是由複旦負責的。不太放心,我們自己也去移植了dalvik,目前還在測試中。至少這兩部分工作,對於Arm 平台的移植人員來說不用考慮。另外,前期我們在圖形那一塊搞得很糾結,例如surfaceflinger和libpixflinger很多內嵌彙編,arm寫的晦澀難懂,移植起來很麻煩或者說工作量很大。只能用c實現,這樣圖形效能我們和Arm的就差一個檔次。(還好後來有硬體加速)

223 void ARMAssembler::MLA(int cc, int s,<br />224 int Rd, int Rm, int Rs, int Rn) {<br />225 if (Rd == Rm) { int t = Rm; Rm=Rs; Rs=t; }<br />226 LOG_FATAL_IF(Rd==Rm, "MLA(r%u,r%u,r%u,r%u)", Rd,Rm,Rs,Rn);<br />227 *mPC++ = (cc<<28) | (1<<21) | (s<<20) |<br />228 (Rd<<16) | (Rn<<12) | (Rs<<8) | 0x90 | Rm;<br />229 }<br />230 void ARMAssembler::MUL(int cc, int s,<br />231 int Rd, int Rm, int Rs) {<br />232 if (Rd == Rm) { int t = Rm; Rm=Rs; Rs=t; }<br />233 LOG_FATAL_IF(Rd==Rm, "MUL(r%u,r%u,r%u)", Rd,Rm,Rs);<br />234 *mPC++ = (cc<<28) | (s<<20) | (Rd<<16) | (Rs<<8) | 0x90 | Rm; 

 

在前期的工作中,我們一遇到ARM的彙編就頭疼。還好現在那部分工作都解決了,或者說不能解決的都不了了之了。

當然,我們小組有一個技術強人,這會讓團隊少走很多彎路。

 

搞了幾個月,我們的最小系統終於跑起來了,但是效果沒法看。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.