新唐ARM9之NUC972学习历程之系统的搭建和BSP包的使用

说到嵌入式,我们首先想到的,就是它的复杂程度,LINUX,BSP,UBOOT,交叉编译,寄存器配置,等等一系列的问题,甚至有的时候我们对此一头雾水,很是头疼,不过我们今天要说的就是关于NUC972的一系列的步骤,和解决它的难题。

1 NUC970 Linux BSP 簡介

這包 BSP 支持了NUC970 系列芯片. 新唐科技的 NUC970 系列芯片是以 ARM926EJS 為核心的系统级單芯片. 包含了 16kB I-Cache 以及 16kB D-Cache 以及MMU 記憶體管理模塊. 最高支援到 300MHz 的頻率, 並且提供了豐富的外設接口周邊. 有USB 快速Host/Device, SDHC, 支援TFT LCD介面, 網路接口 和I2S audio介面, 有11 組UART…等. 並可以由 NAND flash, SPI Flash 開機.
這包 Linux BSP 包含了以下內容:
 Linux 3.10 內核源碼, 以及 NUC970 使用的驅動程式
 GCC 4.8.4 交叉編譯器, 支持 EABI.
 uClibc-0.9.33 庫文件
 Binutils-2.24 交叉開發工具
 演示個接口功能的範例程式源碼, 以及一些開源軟件
 U-Boot 源碼, 以及 NUC970 使用的驅動程式
 Windows 端燒錄程序 Nu-Writer, 以及所需的驅動
 說明文檔

1.1 開發環境連線
在Linux 環境下, 基本的系統訊息以及 shell 環境的溝通都是透過串口來達成. 不論是U-Boot 或是Linux 均使用 UART0 來做為訊息溝通的接口. 在 U-Boot 環境下, 也支援了網口 TFTP 的傳輸. 另外新唐也提供了基於 Windows 平台的 USB 介面燒寫工具. 以下是開發環境連線的示意圖. 若是使用虛擬機, 則只需要一台 PC 即可

新唐ARM9之NUC972学习历程之系统的搭建和BSP包的使用

1.2 開發板設置
NUC970 系列芯片支持不同的開機模式, 可從 SPI, NAND, eMMC 開機, 或是進入 USB ISP 模式. 這些設置是透過 PA[1:0] 的 jumper 控制. 另外, 因為複用腳位的關係, 開發版上會有些 jumper 須依不同系統需求來設置. 請參考開發版的文件來做系統相應的設置.

NUC970 Linux BSP 提供了基於 Linux 作業系統的交叉編譯環境. 新唐有在不同的 x86 Linux 環境測試了本 BSP, 包含了 Ubuntu, CentOS, Debian…等. 因 Linux 發行版眾多, 系統設置會有些許差異, 有時使用這需更改系統設置, 使開發環境順利執行,本人用的是UBUNTU 64位,推荐32位LINUX。
Linux 開發環境可選擇架設原生環境, 或是選擇架設於 Windows 作業系統中的虛擬機上. 关于如何安装虚拟机,或者如何安装LINUX,或者如何安装虚拟机,请看我在Linux里面发表的文章里观看,查阅。

多數的 Linux 發行版不會將所有的原件都安裝. 但有些元件在使用 BSP 的開發過程中是必須的. 另外有些元件可讓開發的過程更加順利. 以下列了一些Linux 安裝過程會省略, 但必須及建議安裝的原件.
新唐ARM9之NUC972学习历程之系统的搭建和BSP包的使用

各個Linux 發行版的元件安裝介面不盡相同. Ubuntu 的使用者可以使用 apt-get 命令或是Synaptic Package Manager 來安裝元件. 而 Fedora的使用者可以使用 rpm 命令或是 Package Manager來安裝元件. 請參考所使用的 Linux 發行版文件來安裝缺少的元件.

这一段倒是没有什么复杂的地方

Linux BSP 包含了三個目錄. 各目錄的內容列在下表:

新唐ARM9之NUC972学习历程之系统的搭建和BSP包的使用

請將 BSP 目錄中的壓縮包複製到 Linux 開發機器上. 並使用以下的命令解壓縮 : $ tar

新唐ARM9之NUC972学习历程之系统的搭建和BSP包的使用

在此目錄中有安裝腳本 install.sh. 此腳本需要管理者權限才可以執行. 可以選擇使用 “su” 命令切換到管理者來執行:

新唐ARM9之NUC972学习历程之系统的搭建和BSP包的使用

或是使用 sudo 來執行安裝腳本 (若是安裝的 Linux 沒有開放 root 權限, 例如 Ubuntu, 則可以使用本方式來安裝 BSP)

新唐ARM9之NUC972学习历程之系统的搭建和BSP包的使用

本安裝腳本支援本地源碼解壓縮, 或是自网络上的源码库复制最新版本. 若是選擇自源码库複製, 系統中需要預先安裝 Git 以及網路連線正常, 以便自Github 或是 OSChine下載最新的源碼. 以下為整個安裝過程:

新唐ARM9之NUC972学习历程之系统的搭建和BSP包的使用

新唐ARM9之NUC972学习历程之系统的搭建和BSP包的使用

若是使用的 Linux 開發環境之前已經安裝過新唐提供的交叉編譯工具, 安裝腳本會詢問是否須複寫編譯工具, 否則腳本並不會詢問使用者, 而是直接在 /usr/local/arm_linux_4.8目錄安裝編譯工具. 在第一種已安裝過編譯工具的情況下, 若是要複寫, 可按Y (或是 yes、y、YES), 然後按 Enter 鍵.
安裝完成交叉編譯工具後, 安裝腳本會詢問安裝 Linux 內核, U-Boot, 以及範例程序的絕對路徑. 下表列出了會裝在指定目錄中的項目.

新唐ARM9之NUC972学习历程之系统的搭建和BSP包的使用

新唐ARM9之NUC972学习历程之系统的搭建和BSP包的使用

安裝腳本會嘗試將安裝的目錄設置正確權限, 並將交叉編譯器的路經加至系統搜尋路徑 ($PATH)中. 但在有些 Linux 版本中, 可能發生無法正確設置的問題. 此時需麻煩使用者手動設置正確的權限並且將/usr/local/arm_linux_4.8/bin加到 $PATH 中.
請注意, 在安裝完成後, 使用者須先登出再登入, $PATH 的設定才會生效.

若是安裝過程選擇自網絡複製源碼, 之後使用者可以至源碼倉庫以git pull 命令同步最新的更新. 以下列出各個源碼倉庫的鏈結. Git 的操作指令不在本文件的說明範圍, 但可以至 https://git-scm.com/ 查詢基本的操作方式.

新唐ARM9之NUC972学习历程之系统的搭建和BSP包的使用

上一篇:Android自定义View


下一篇:selenium+PhantomJS 抓取淘宝搜索商品