Main Page
From Jollen's Wiki
目錄 |
Android SDK
Dalvik VM
鴻海演講 (2010.3.10)
- dalvik/dalvikvm/Main.c
- dalvik/vm/Init.c
- dalvik/vm/Jni.c
- dalvik/vm/Thread.c
- dalvik/vm/Thread.h
- dalvik/vm/interp/Stack.c
- dalvik/vm/interp/Interp.c
- vm/interp/InterpDefs.h
- vm/mterp/portable/portstd.c
Android 內部設計與移植研究
- 研究Android的thread model
- 研究Android的System Server
- Zygote
- The Zygote fork'd
- Java Thread
- Native Thread
- Dalvik
- Remotable Object
- Launcher
- Build Android Bootchart
Jollen-Kit! 開發板
第一次使用 JK2410 開發板,請先下載 Getting Started 投影片。為了使您更了解 Jollen-Kit! Pro. 開發板的詳細規格,建議您先行閱讀使用qemu-jk2410做為學習環境。
- Jollen-Kit! 是什麼?:JK2410 project 團隊提供製作完成的 toolchain、bootloader 與 kernel。若您想更深入了解有關 JK2410 底層的軟體修改,可參考JK2410 Developers Guide。
- Jollen-Kit! 使用手冊
- JK2410 硬體規格
- 全新JK2410 - Jollen-Kit! Professional 2008
使用 jk2410 模擬器
課堂中的小實驗,可以使用模擬器來驗證,以節省時間。先取得 jk2410-codesuite,裡面包含一個 pre-built JK2410 模擬器 (based-on Qemu)。啟動 JK2410 模擬器
Linux Kernel for Jollen-Kit!
Kernel 2.6 因為已經正式加入 SMDK2410 平臺的因此 BSP,目前,我從 kernel.org 所下載的 kernel 2.6.20.4 有包含非常完整的 S3C2410 & SMDK2410 support;但是也發現 kernel 2.6.20.4 並沒有包含 CS8900A 的驅動程式支援,因為做了簡單的 "glue" porting。
現階段下載方式請見:http://www.jollen.org/blog/s3c2410。 預先編譯好的 kernel(U-Boot format):http://www.jk2410.org/opensource/pre-built/uImage26,本檔案可能會隨時更新。
- [Porting_CDATA|移植 cdata 到 JK2410]
- 移植 kernel 2.4.18 到 JK2410的範例
- 新增serial port (USB to serial port) 的使用於JK2410
- 存取JK2410的Frame buffer (LCD Panel)
Embedded Linux 教學
編譯 "Hello, World!" for ARM
- Step 1: 取得範例:hello_arm.tar.gz
- Step 2: 編譯程式
- Step 3: 下載檔案至 JK2410 Board
JK2410 Project 所提供的 ARM9 toolchain 是利用 [crosstool] 所建立的
Root Filesystem for ARM9 入門
製作 bootstrap root filesystem(base root filesystem)以提供一個最簡單、陽春且可開機的環境;製作完成的系統可開機到shell模式,並可使用 busybox 提供的指令。
首先,您必須準備一台 host 開發環境,並安裝好 cross toolchain;接著,由於本文是做實機測試,因此,如果您沒有 ARM9 開發板,可以考慮使用 Qemu 來做模擬測試。以下的操作示範,只節錄重點指令片段,您可能必須根據自己的整體實作流程,來微調指令的順序,或是參數等。
- Step 1: 建立工作目錄
- Step 2: 建立目錄架構
- Step 3: 建立裝置檔
- Step 4: 加入Busybox
- Step 5: 加入動態程式庫
- Step 6: 加入系統檔案
- Step 7: 編寫 Initial Script
- Step 8: 製作 Root Filesystem 映像檔(Image File)
- Step 9: 在 Target 端做測試
了解 bootstrap root filesystem 的製作後,建議您準備一份具備 NFS 功能的 root filesystem,以便未來能加速您的 embedded Linux 套件移植與整合工作。請參考 Jollen's Blog: Embedded Linux 測試:Full root filesystem for ARM9 階段《NFS Mount》,另外,Jollen 也為大家準備了一份事先建立好的 NFS root filesystem:http://www.jk2410.org/opensource/pre-built/nfsroot_arm.img。
完成了,接下來可以進入 open source / free software 整合的階段了。
Root Filesystem 深入研究
首先,先由 http://svn.jk2410.org/jkbuilder 下載 Jollen-Kit! Builder 最新的穩定版本。初次接觸請 checkout 'jkbuilder-core',並下載安裝說明後,根據說明書內容安裝 JKBuilder 開發環境。
Jollen-Kit! Builder 觀念所提供的 root filesystem 平臺,用以搭配 Jollen 的教育訓練;此外,也提供實務上的 embedded Linux 基礎建設。jkbuilder 的目的是提供架構精簡的 build 工具,以及打包「原生」內容,以方便後續的客製化或程式碼修改。並可透過合併工具將許多元件合併成一個 jkbuilder 平臺,例如:
jkbuilder-nanox + jkbuilder-ffmpeg = MPEG Player 裝置 + <system configuration/integration>
- 所有的 jkbuilder:包含一些範例,即 jkbuilder 元件(component)。
- jkbuilder merge:合併 jkbuilder 元件的工具(尚未提供)。
- JKBuilder 的架構
Root Filesystem 與 Toolchain 維護
Linux Device Drivers: Jollen的10堂課
- Install and compile JK2410 kernel
- JK2410 Interrupt GPIO
- JK2410 LED
- JK2410 merge a new driver into kernel
- JK2410 shared interrupt
- JK2410 event driven in interrupt handler
- hardware shared interrupt and software shared interrupt
- Tasklet Lab
- I/O memory access: bootloader
- user-space driver and process race condition
- prepare_to_wait - 講義第111頁
- about Platform Driver
cdata
cdata 是我們 Linux device driver 課程的範例,我們說明如何從無到有寫出一個驅動程式,最後再將這個驅動程式移植到 JK2410 上執行。
- 在 Ubuntu 7.10/host 上編譯 cdata 範例時的注意事項
- cdata initial 加入 P12 / P13
- cdata exercise 4 vs cdata exercise 5
課程相關
- MP3 Player
- Graphics
- nano-X project
- 安裝 git
- Misc Tips
- 課程規劃: 從無到有打造你的嵌入式作業系統: 以Linux為例
- 更多: Jollen's Consulting 訓練課程筆記
- C Language Toturial
- Function pointer
- Mouse Control Protocol
- Mokoid CD
- 99M006 Android Porting Embedded Linux
網路資源
- Pthread API, http://cs.pub.ro/~apc/2003/resources/pthreads/uguide/document.htm
- POSIX Threads Programming, https://computing.llnl.gov/tutorials/pthreads/


