3.1 BOOT LOAD
BOOT LOAD 就像是電腦的 BIOS,在開機後首先執行的一段程式,一般可將它 分成兩個部份來看,一個為 BOOT,主要目的在於初始化硬體,如 CPU、頻率、中斷、
記憶體配置等,爾後將 LOADER、LINUX image、File system 等搬至 Memory,偵測 將執行 LOADER 或 uClinux。LOADER,主要用來更新程式、測試及設定等。
3.1.1 U-BOOT 簡介
U-BOOT 為 Universal Boot Loader 支援多種架構的處理器,也支援多種的作業系 統。它遵循 GPL 開放源代碼,源代碼與 LINUX 相似,就像是 LINUX 的簡化版本。
U-BOOT 的執行程序如圖 3.1 及 3.2 所示,虛線部份為我們需要針對平台及應用加以 修改的地方。目前所使用的 u-boot 版本為 u-boot_1.1.3。
圖3.1、u-boot 程序 1
圖3.2、u-boot 程序 2
24 24
3.1.2 U-BOOT 修改
U-BOOT 為 BOOT LOAD 其中的一種,在此說明如何建立 u-boot 給自己的平台 使用,步驟如下:
1. board/stamp to board/serial_brc - cp ./stamp ./serial_brc 2. board/ serial_brc /Makefile
-OBJS = $(BOARD).o flash.o serial_brc.o spi.o
3. The basic board will need a new config.mk file.
-TEXT_BASE = 0x00FC0000
-PLATFORM_CPPFLAGS += -I$(TOPDIR) 4. include/config.mk
-ARCH = blackfin -CPU = bf533 -BOARD = serial_brc 5. blackfin_config.mk
- PLATFORM_CPPFLAGS += -DCONFIG_BLACKFIN -D__blackfin__
6. cpu/$bf533/config.mk
- PLATFORM_RELFLAGS += -ffixed-P5
7.main makefile
serial_brc_config : unconfig
@./mkconfig $(@:_config=) blackfin bf533 serial_brc
8. copy include/configs/stamp.h to include/configs/serial_brc.h -修改 serial_brc.h 裡的設定以符合平台的需求
9. Memory Access and CPLD`s
-修改 cpu/bf533/cpu.c,定義 Data and instruction CPLD‘s 10.修改 DDR 設定
-register、timing 及 size
11.去除無需使用的程式及修改 gpio 的使用,如網路、CF card、boot command…
12.加入 Lcd driver、開機畫面如圖 2.3 所示 13. configured
- make serial_brc_config 14. build image
-make
圖3.3、開機畫面
3.2 作業系統
26 26
作業系統掌控整個系統的運作,與系統效能有很大的關連性,因此選用合適的作 業系統是非常的重要。一般嵌入式系統所使用的作業系統需選擇較小的記憶體空間、
較高的執行效率、方便客製化及技術的支援,這些都是選擇時所需作的考量。
本論文選擇了 uClinux,主要的原因是 BF-533 為 NON-MMU 的 DSP,且在平台 的支援能力上 uClinux 提供了許多的資源可供參考。
3.2.1 uClinux 簡介
uClinux 為 Micro Control Linux 的縮寫,它由 Linux 演變而來,主要是提供給微控 制器使用,針對沒有記憶體管理單元的微控器來作修改,同時也縮小程式碼與簡化架 構,非常適合嵌入式系統使用。大多在 Linux 上所開發的應用程式可以直接的移植至 uClinux 上運行,並分享 Linux 龐大的開發資源。
目前所使用的 uClinux 為 2006R2_RC2 的版本。在產生影像檔時需修改合適的設 定檔,並去除不需使用的部份,減小影像檔的容量,如表 3.1 所示,將原始影像檔由 作業系統共存。因為平台使用 SPI-FLASH,我們選擇使用 JFFS2 來管理 FLASH 的檔 案系統。
3.3.1 JFFS2 簡介
JFFS2 為 Journalling Flash File System Version 2 的縮寫,主要提供給使用 Flash Memory 的裝置,它加入了處理斷電的機制;並且針對 JFFS 還做了些許的修正,包含 檔案壓縮、Wear Leveling、Garbage Collection 效能提升與降低記憶體的使用率等…。