510 likes | 696 Views
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
E N D
Development Implementation on Embedded uClinux 新華電腦 總經理 陳明福
Topics • SOC嵌入式系統介紹 • SOC嵌入式系統應用、開發考量 • 技術門檻與工具
uClinux/Linux存在的理由 Open source 創造競爭,大家受惠 SOC 強烈的需求
何謂SOC Embedded system • SOC Chip • S/W Embedded in system chip • Fixed purpose of application • Application type vs. Development type
uClinux / Linux 優點 • 穩定的系統 • 免費或少許費用 • 安全性、漏洞修補 • 多工、多使用者 • 使用者與群組的規劃 • 相對較不耗資源
uClinux / Linux 劣點 • 無特定廠商支援 • GUI不夠成熟 • 學習門檻高
在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 弱水三千,只取一瓢飲
SOC嵌入式應用型的考量因素 • Turn-key Solution vs. Self-construct • SOC Selection • OS Selection • Assembly, C • Development---ICE ---Debugger ---Compiler ---Programmer (In-System programming)
SOC嵌入式開發型的考量因素 • OS selection or Self-Construct • Tool & S/W Development • Co-design verification的難題
良師與工具 • SOC E. S. 軟硬體整合技術門檻高-----老師的辛苦 • 老師的辛苦成就學生一生的感恩 • 何種工具是老師的幫手 • - Hardware Platform • - uClinux / Linux debugging tool • - FPGA tool
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
在Creator上的硬體架構 Top view on Creator
Topics • Linux 跟 uClinux 有什麼不同 • 系統環境的模擬 – Cygwin • Build uClinux Image • 啟動uClinux • Boot loader • Device Driver • User Application • Debugging
核心(kernel) • no MMU • no fork(), vfork() • romfs • uclibc
Filesystem • Ext2 • Linux 標準的配備 • JFFS2 • 適用嵌入式系統 • Tmpfs • 不需要久存的
Cygwin 安裝 • DLL(cygwin1.dll) • Toolchain
uClinux Image 裡有什麼? • Bootloader • Root File System • Kernel
Start building • make dep • make lib_only • make user_only • make romfs • make image • make
載入程式 • Debugger – Domingo for uClinux • 載入至 RAM 區或燒錄至 flash ROM
Boot loader 的作用 • 初始化 CPU 速度 • 初始化記憶體 • 初始化序列埠 • 啓用指令/資料快取記憶體 • 設置堆疊指標 • 設置參數區域並構造參數結構和標記 • 跳轉到Kernel的開始
Device Driver 的作用 • 對設備初始化和釋放. • 把資料從 kernel 傳送到硬體和從硬體讀取資料. • 讀取應用程式傳送給設備文件的資料和回送應用程式請求的資料. • 檢測和處理設備出現的錯誤.
Device Driver 的類型 • Character Devices • 以不定長度的字元傳遞資料 • 印表機、終端機 • Block Devices • 以固定大小長度傳遞資料 • 硬碟機、光碟機 • Network interfaces
Kernel 與device driver 的連結 • 靜態連結 • 動態載入 • NFS (Network FileSystem) • TFTP (Trivial File Transfer Protocol)
Examples – Creator CCM demo RJ-45網路線 ARM CPU CCM Creator
Requirements • NFS的安裝 • ifconfig的設定 • 編譯 device driver 和 Application • config.in • Makefile • Make new kernel • Make module • Make user application – make user_only
除錯的方式與優劣比較 • 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系統下執行, 功能強大且有廠商之售後服務…
GDB 除錯 • 將兩台機器用通訊連接埠連接起來 • 將需要debug的程式放到遠端主機 • 在本地主機啟動GDB,讀入需要debug的程式的符號表和程式碼 • 使用target remote命令建立和遠端主機的連接 • 然後就可以和使用一般的Debugger一樣進行程式的debug了
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, 方便觀察執行的狀況