
一:首先你必須了解ARM平臺 Android 移植與驅動核心開發,當然也可以是X86和其他的平臺,不過其他平臺的Android智能終端開發并不是很多,
Android嵌入式智能作業系統是基于Linux內核和驅動的,對于HTC、華為等公司開發Android作業系統時,需要專門將Android移植到 特定硬體平臺下,同時將必要的驅動進行撰寫及開發,成為Android的核心層開發者,在這種嵌入式設備廠商中謀得核心開發人員,
1. Android系統的開發框架和開發模型
做Android嵌入式開發,這個是必須的基礎,你必須清楚Android開發的整個框架,知道一些必要的開發模型和程式模塊,這個有助于你快速的理解Android嵌入式開發
2. Android系統體系及移植相關工具
1.1Android作業系統體系結構介紹,Android Linux內核移植介紹,檔案系統,toolbox等移植,存盤驅動移植,Bootloader相應方案與移植以及Android虛擬器Dalvik移植介紹,
1.2ARM處理器介紹,
ARMv5TJS,
ARM中斷處理,
ARM體系結構與ARM處理器的體系結構,
IP核、芯片與開發板,
ARM處理器結構處理器模式,
. 寄放器,
. 流水線結構,
C語言內嵌匯編款式與編程實體,
1.3ARM指令系統,
.算術邏輯指令 .指令對狀態寄放器的影響 .對比指令 .分支指令 .移位 .指令位圖 .辨認機器指令,
1.4記憶體造訪與記憶體把持,
.資料總線與地址總線的應用與實體,
.STR/LDR ,
1.5ARM歷程呼叫標準,
.LDM/STM,
.反匯編,
.APCS,
.C語言函式與匯編的互相呼叫,
【案例】應用Android Linux patch進行Linux內核的構建
3. AndroidLinux內核移植與核心開發
2.1ARM處理器的Android系統構建,
2.2輸入輸出設備驅動移植 ,
2.3存盤設備nand flash,MMC/SD卡驅動移植,
2.4Framebuffer移植 ,
2.5 Touchscreen移植 ,
2.6 Open Binder IPC移植,
【案例】
2.7在ARM處理器上移植Android實驗 ,
2.8撰寫Nand flash驅動,
2.9移植Framebuffer驅動,
2.10硬體相關部分(鍵盤、觸摸屏、LCD等),
4. Android相關環境庫、以及Bionic系統移植
3.1libc移植 ,
3.2libm移植 ,
3.3libdl移植,
3.4libm移植,
3.5 busybox, toolbox移植,
【案例】
1.移植glibc,
2.移植busybox和toolbox,
5. Android Dalvik移植一
4.1 JNI Call Bridge相關原理 ,
4.2 dx, dalvitvm原理和應用,
4.3 Dalvik指令款式,
4.4 Dalvik履行款式dex ,
4.5 Java位元組碼款式,
6. Android Dalvik移植二
5.1 Dalvik Library原理 ,
5.2 dalvit libcore核心庫移植,
5.3 dalvit/vm/native移植,
5.4 Dalvik Interpreter原理 ,
5.5 Dalvik Mterp,
7. ARMAT&T匯編
6.1AT&T匯編語法詳解 ,
6.2gas工具的應用 ,
6.3label標簽的作用,
6.4資料與代碼的散播,
8. 鏈接腳本ld-script
7.1 段地址的斷定,
7.2 撰寫ld-script,
7.3 ELF款式與libc函式庫的關系,
9. 時序電路根基
8.1電平信號 ,
8.2 電路圖分析,
8.3時序圖分析,
8.4datasheet查看 ,
8.5s3c2440的外圍器件結構,
8.6GPIO操作,
10. AMBA總線標準
9.1 AMBA總線標準 ,
9.2 FCLK/HCLK/PCKL頻率分配與設定,
9.3 Watchdog計時操作,
9.4 UART操作 ,
9.5 ARM中斷體系,
9.6 例外向量表,
9.7 ARM模式切換,
9.8 ARM中斷把持器 ,
9.9 軟中斷,
9.10 Linux系統呼叫的實作,
11. Nand Flash把持器
10.1 Flash原理,
10.2 Nand把持器原理及時序分板,
10.3k9f1208時序分析,
12. 記憶體把持器
11.1 s3c2440物理地址散播 ,
11.2 SDRAM原理與時序,
11.3 記憶體把持器的物理連接,
11.4 地址對齊 ,
11.5 SRAM造訪,
13. 記憶體管理單元
12.1 MMU的原理 ,
12.2ARM協處理器指令,
12.3 section模式,
12.4 small page模式 ,
12.5 I & D TLBs ,
12.6 I & DCache,
12.7 哈佛結構的原理與實作,
14. DMA 直接記憶體造訪的機制與應用
13.1 DMA的狀態機 ,
13.2 DMA的把持,
15. 觸摸屏介面與ADC介面 與實體
14.1 ADC原理 ,
14.1 觸摸屏介面與把持,
16. LCD把持器
15.1 圖形顯示原理,
15.2 LCD把持器,
15.3 LCD時序,
15.4 LCD驅動相關的框架與體系 ,
17. I2S音頻總線
16.1音頻硬體原理,
16.2 I2S時序,
16.3 s3c2440上I2S的操作,
16.4音頻設備的裸驅動討論,
18. CS8900網卡把持
17.1 邏輯鏈路層與MAC層,
17.2 CS8900原理與時序分析,
17.3后續網卡裸驅動討論與體系結構,
19. TCP/IP協議堆疊移植,與網路體系結構
18.1 LwIP TCP/IP協議堆疊簡介 ,
18.2 LwIP配置與編譯,
18.3 tftp配置與編譯,
20. Bootloader原理與移植
19.1u-boot的配置、編譯 ,
19.2u-boot啟動歷程分析,
19.3ARM-Linux的啟動請求,
19.4 ARM-Linux kernel的ld-sript分析 ,
19.5 u-boot到ARM-Linux的跳轉代碼分析 ,
19.6應用mkimage制作啟動鏡像檔案,
21. ARM-Linux原理與移植
20.1ARM-Linux的配置、編譯 ,
20.2ARM-Linux啟動代碼分析,
20.3ARM-Linux 地址映射的關系,
20.4 Busybox的配置、編譯 ,
22.ARM等平臺的除錯測驗技巧
會熟悉的使用一些測驗腳本對自己的驅動進行測驗,或者對嵌入式硬體作簡單的測驗,這個對于做Android嵌入式開發的開發人員十分的有必要!
最后
漫漫開發之路,我們只是其中的一小部分……只有不斷的學習、進階,才是我們的出路!才跟得上時代的進步!
這些資料免費領取方式點擊下方鏈接領取
https://www.jianshu.com/u/ee81236d2d37
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/69545.html
標籤:其他
上一篇:程式員到底要不要接外包?
