1. 程式人生 > >物聯網倉儲系統(二)—環境搭建—交叉編譯工具鏈和 Bootloader 移植

物聯網倉儲系統(二)—環境搭建—交叉編譯工具鏈和 Bootloader 移植

一、專案環境介紹:    1、Ubuntu 12.04 發行版    2、GCC 交叉編譯工具鏈(版本 4.5.1)    3、U-boot-2010.03    4、FS4412 開發板(ARM Cortex-A9 核心)    5、FS_11C14 開發板(ARM Cortex-M0 核心)二、本節目的:    1、設定開發過程中使用的交叉編譯工具鏈    2、Bootloader 的移植三、交叉編譯工具鏈和 Bootloader 介紹:    1、交叉編譯工具鏈交叉編譯工具鏈是為了使在主機中編譯的檔案能夠在不同平臺的目標機中執行主要由 binutils、gcc 和 glibc 三個部分組成不同的目標平臺對應的交叉編譯工具鏈不同
本專案使用的是已編譯好的(gcc version 4.5.1)    2、BootloaderBootloader 是硬體啟動的載入程式Bootloader 是在作業系統核心執行之前執行的一段小程式碼Bootloader 對必要硬體裝置初始化,為最終執行作業系統準備好環境Bootloader 最終呼叫作業系統核心,起到引導和載入核心的作用Bootloader 不屬於作業系統,一般採用組合語言和 C 語言開發,需要針對特定的硬體平臺移植系統時,首先必須為開發板移植 Bootloader Bootloader 不僅依賴 CPU 體系結構,而且依賴於嵌入式系統板級裝置的配置本專案使用的是 U-boot-2010.03 且已經配置好
四、交叉編譯工具鏈配置:    1、將編譯好的 GCC 交叉工具鏈複製到相應目錄並解壓    本專案檔案均在: ~/Documents/WarehouseSystem    2、配置交叉編譯工具鏈    執行命令:    sudo vim /etc/bash.bashrc新增內容:PATH=$PATH:/home/wf/Documents/WarehouseSystem/arm-2010.09/bin重啟配置檔案:source /etc/bash.bashrc測試交叉工具鏈:arm-none-linux-gnueabi-gcc -v五、Bootloader 移植:    1、將原始碼 uboot-fs4412_v2.tar.xz 複製到相應目錄並解壓
本專案檔案均在: ~/Documents/WarehouseSystem    2、Bootloader 移植    執行命令:    vim Makefile修改以下內容:執行指令碼 build_uboot.sh:./ build_uboot.sh生成 u-boot-fs4412.bin 即移植好:六、U-boot 燒寫:    1、SD 啟動盤製作a)將 sdfuse_d 拷貝到 ~/Documents/WarehouseSystem 下b)將 SD 卡插入電腦並識別c)進入 sdfuse_q 執行如下操作sudo ./mkuboot.sh /dev/sdbd)在 SD 卡中建立目錄 sdupdate 並把 u-boot-fs4412.bin 拷貝進去                            ★★★注意★★★ SD 卡用讀卡器識別不要插入筆記本自帶的卡槽,虛擬機器能識別 USB 介面但不能識別內建 SD 讀卡器    2、U-boot 燒寫:a)連線串列埠和板子,執行串列埠通訊程式 puttyb)關閉開發板電源,將剛才做好的 SD 啟動盤插入SD 卡插槽c)將撥碼開關 SW1 調至(1000)(SD 啟動模式)後開啟電源:d)重新開啟開發板能夠看到如下介面e)在終端上執行以下程式碼執行燒寫 u-bootfs4412.bin 到 Flash:sdfuse flashallf)關閉開發板電源,將撥碼開關 SW1 調至(0110)(EMMC 啟動模式)後開啟電源,看到如下介面表示燒寫成功: