1 / 51

Development Implementation on Embedded uClinux

Development Implementation on Embedded uClinux. 新華電腦 總經理 陳明福. Topics. SOC 嵌入式系統介紹 SOC 嵌入式系統應用、開發考量 技術門檻與工具. SOC 嵌入式系統介紹. uClinux/Linux 存在的理由. Open source 創造競爭,大家受惠 SOC 強烈的需求. 何謂 SOC Embedded system. SOC Chip S/W Embedded in system chip Fixed purpose of application

Download Presentation

Development Implementation on Embedded uClinux

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Development Implementation on Embedded uClinux 新華電腦 總經理 陳明福

  2. Topics • SOC嵌入式系統介紹 • SOC嵌入式系統應用、開發考量 • 技術門檻與工具

  3. SOC嵌入式系統介紹

  4. uClinux/Linux存在的理由 Open source 創造競爭,大家受惠 SOC 強烈的需求

  5. 何謂SOC Embedded system • SOC Chip • S/W Embedded in system chip • Fixed purpose of application • Application type vs. Development type

  6. uClinux / Linux 優點 • 穩定的系統 • 免費或少許費用 • 安全性、漏洞修補 • 多工、多使用者 • 使用者與群組的規劃 • 相對較不耗資源

  7. uClinux / Linux 劣點 • 無特定廠商支援 • GUI不夠成熟 • 學習門檻高

  8. Embedded Linux Structure

  9. 在SOC中會含有那些IP元件 • CPU core (ARM7, ARM9, ARM10, ARM11) • Memory: Cache, RAM, Flash • Communication: UART, USB, Ethernet • Bus Interface:I2C,CAN, SPI, PCI • I/O Peripheral: GPIO, LCD, PWM, ADC • System control: MMU, DMA, WDT, RTC 弱水三千,只取一瓢飲

  10. SOC嵌入式系統應用、開發考量

  11. SOC嵌入式應用型的考量因素 • Turn-key Solution vs. Self-construct • SOC Selection • OS Selection • Assembly, C • Development---ICE ---Debugger ---Compiler ---Programmer (In-System programming)

  12. SOC嵌入式開發型的考量因素 • OS selection or Self-Construct • Tool & S/W Development • Co-design verification的難題

  13. 技術門檻與工具

  14. 良師與工具 • SOC E. S. 軟硬體整合技術門檻高-----老師的辛苦 • 老師的辛苦成就學生一生的感恩 • 何種工具是老師的幫手 • - Hardware Platform • - uClinux / Linux debugging tool • - FPGA tool

  15. SOC Embedded System開發平台 • Debugger for uClinux / Linux • ICE • Motherboard- CreatorModule Changeable Architecture in ARM7, ARM9, SOPC, FPGA, DSP etc. (NIOS, MIPS in the future ) • Daughter Board- Create S3C4510, Create ARM920T-S3C2410, Create ARM922T-EPXA1, Create FPGA-XC2S, Create FPGA-EP1C6, Create TIDSP-5502

  16. Pre-SOC嵌入式開發、訓練平台

  17. 在Creator上的硬體架構 Top view on Creator

  18. Embedded uClinux實作解析

  19. Topics • Linux 跟 uClinux 有什麼不同 • 系統環境的模擬 – Cygwin • Build uClinux Image • 啟動uClinux • Boot loader • Device Driver • User Application • Debugging

  20. Linux 跟 uClinux 有什麼不同

  21. 核心(kernel) • no MMU • no fork(), vfork() • romfs • uclibc

  22. Filesystem • Ext2 • Linux 標準的配備 • JFFS2 • 適用嵌入式系統 • Tmpfs • 不需要久存的

  23. 系統環境的模擬 — Cygwin

  24. Cygwin 安裝

  25. Cygwin 安裝 • DLL(cygwin1.dll) • Toolchain

  26. 環境的模擬

  27. Build uClinux Image

  28. uClinux Image 裡有什麼? • Bootloader • Root File System • Kernel

  29. Toolchain

  30. make xconfig

  31. Start building • make dep • make lib_only • make user_only • make romfs • make image • make

  32. 啟動uClinux

  33. 載入程式 • Debugger – Domingo for uClinux • 載入至 RAM 區或燒錄至 flash ROM

  34. 建立 UART console monitor

  35. 執行與觀察

  36. Boot loader

  37. Boot loader 的作用 • 初始化 CPU 速度 • 初始化記憶體 • 初始化序列埠 • 啓用指令/資料快取記憶體 • 設置堆疊指標 • 設置參數區域並構造參數結構和標記 • 跳轉到Kernel的開始

  38. Device driver

  39. Device Driver 的作用 • 對設備初始化和釋放. • 把資料從 kernel 傳送到硬體和從硬體讀取資料. • 讀取應用程式傳送給設備文件的資料和回送應用程式請求的資料. • 檢測和處理設備出現的錯誤.

  40. Device Driver 的類型 • Character Devices • 以不定長度的字元傳遞資料 • 印表機、終端機 • Block Devices • 以固定大小長度傳遞資料 • 硬碟機、光碟機 • Network interfaces

  41. Kernel 與device driver 的連結 • 靜態連結 • 動態載入 • NFS (Network FileSystem) • TFTP (Trivial File Transfer Protocol)

  42. User Application

  43. Examples – Creator CCM demo RJ-45網路線 ARM CPU CCM Creator

  44. Requirements • NFS的安裝 • ifconfig的設定 • 編譯 device driver 和 Application • config.in • Makefile • Make new kernel • Make module • Make user application – make user_only

  45. Debugging

  46. 除錯的方式與優劣比較 • Debugging by Printing • 優點: kernel提供函數printk • 缺點: 需修改程式並重新編譯, 且影響效率 • Debugging by Querying • 優點: 可於kernel中選擇加入proc檔案系統 • 缺點: 僅提供相關系統資訊 • Debuggers and Related Tools • Using gdb • 優點: free, 有進一步的除錯功能 • 缺點: 需在Linux環境下執行, 且無法做kernel與device driver的debug… • Using Domingo for uClinux and Carrier ICE • 優點: GUI介面, 可於一般PC之Windows系統下執行, 功能強大且有廠商之售後服務…

  47. GDB 除錯 • 將兩台機器用通訊連接埠連接起來 • 將需要debug的程式放到遠端主機 • 在本地主機啟動GDB,讀入需要debug的程式的符號表和程式碼 • 使用target remote命令建立和遠端主機的連接 • 然後就可以和使用一般的Debugger一樣進行程式的debug了

  48. Domingo Debugger for uClinux/Linux • 可在Windows環境下針對uClinux或Linux的Boot loader, Kernel, Device driver及user’s Application除錯 • 所有程式(包含bootloader)均直接透過JTAG下載, 不需事先於目標板中燒錄啟動程式 • Multiple user application debugging • 軟體斷點可設定於實體或虛擬記憶體之中 • Linux system information browser (包含pid, memory, timer…等) • 內建UART console View, 方便觀察執行的狀況

  49. 用Domingo for uClinux/Linux除錯

  50. 用Domingo for uClinux/Linux除錯

More Related