U-Boot 使用說明
U-Boot 是一個主要用於嵌入式系統的開機載入程式, 可以支援多種不同的計算機系統結構, 包括ARM、MIPS、x86與 68K. 這也是一套在GNU通用公共許可證之下發布的自由軟體. 他支援下列功能:
 網路下載: TFTP, BOOTP, DHCP
 串口下載: s-record, binary (via Kermit)
 Flash 管理: 抹除, 讀, 寫
 Flash 型別: SPI flash, NAND flash
 記憶體工具: 讀, 寫, 複製, 比對
 交互式 shell: 命令, 腳本
NUC970 U-Boot 的版本是 201304RC2. 從下面連結下載
http://www.denx.de/wiki/U-Boot/SourceCode
U-Boot 官網上對各項功能有更詳盡的介紹
http://www.denx.de/wiki/view/DULG/UBoot

配置
U-Boot 是可配置的, 修改配置檔中的各項定義來產生不同的配置.
NUC970 配置檔位於 include/configs/nuc970_evb.h
以下分段介紹配置檔 nuc970_evb.h 中的各項定義.

 CONFIG_SYS_LOAD_ADDR: 影像檔所要下載位址
 CONFIG_EXT_CLK: 外部晶振頻率
 CONFIG_TMR_DIV: timer 除頻倍率
 CONFIG_SYS_HZ: timer 頻率
 CONFIG_SYS_MEMTEST_START: 記憶體測試的起始位址
 CONFIG_SYS_MEMTEST_END: 記憶體測試的結束位址
 CONFIG_NUC970_HW_CHECKSUM: 使用 SHA-1 計算 Linux 內核的 checksum (若屏蔽此定義,則採用 crc32 來計算 checksum),必須與 mkimage 搭配使用,請參考 4.7.2 章節。
 CONFIG_CMD_TIMER: 使用timer 相關的命令

 CONFIG_SYS_USE_SPIFLASH: 使用 SPI flash
 CONFIG_SYS_USE_NANDFLASH: 使用 NAND flash
 CONFIG_ENV_IS_IN_NAND: 環境變數儲存在 NAND flash 中
 CONFIG_ENV_IS_IN_SPI_FLASH: 環境變數儲存在 NAND flash 中
 CONFIG_ENV_IS_IN_MMC: 環境變數儲存在 eMMC 中
 CONFIG_NUC970_WATCHDOG: 編譯 NUC970 watchdog timer 驅動程式
 CONFIG_HW_WATCHDOG: 打開 watchdog timer 功能 (CONFIG_NUC970_WATCHDOG 需同時打開)
 CONFIG_DISPLAY_CPUINFO: 顯示 CPU 相關資訊
 CONFIG_BOOTDELAY: 開機時的延遲秒數
 CONFIG_SYS_INIT_SP_ADDR: 系統初始化時的堆棧指針
 CONFIG_BAUDRATE: 串口波特率
 CONFIG_NUC970_EMAC0: 使用 NUC970 EMAC0

 CONFIG_NUC970_EMAC1: 使用 NUC970 EMAC1
 CONFIG_NUC970_ETH: 支援 NUC970 Ethernet
 CONFIG_NUC970_PHY_ADDR: PHY 位址
 CONFIG_CMD_NET: 支援網路相關命令
 CONFIG_ETHADDR: MAC 位址
 CONFIG_SYS_RX_ETH_BUFFER: Rx Frame Descriptors 的個數

 CONFIG_BOOTP_SERVERIP: TFTP 伺服器的 IP 不會被改成 DHCP 伺服器的 IP
 CONFIG_CMD_PING: 使用網路的 ping 命令功能
 CONFIG_CMD_DHCP: 使用網路的DHCP 命令功能
 CONFIG_CMD_DHCP: 支持 JFFS2 命令功能

 CONFIG_NAND_NUC970: 開啟 NUC970 NAND 功能
 CONFIG_CMD_NAND: 使用 nand 命令功能
 CONFIG_MTD_DEVICE: 啟動 MTD 裝置
 CONFIG_MTD_PARTITIONS: 啟動 MTD 分區
 CONFIG_CMD_UBI: 啟動 UBI
 CONFIG_CMD_UBIFS: 啟動 UBIFS 文件系統

 CONFIG_CMD_MTDPARTS: MTD 分區命令
 CONFIG_RBTREE: 啟動 UBI 需要的配置
 CONFIG_LZO: 啟動 UBI 需要的配置
 MTDIDS_DEFAULT: 設定 MTD 名稱, 需要和內核中的設定一致
 MTDPARTS_DEFAULT: 分區配置
 CONFIG_CMD_NAND_YAFFS2: 啟動YAFFS2的命令
 CONFIG_YAFFS2: 啟動YAFFS2檔案系統
 CONFIG_SYS_MAX_NAND_DEVICE: 定義NAND 裝置個數
 CONFIG_SYS_NAND_BASE: 定義NAND controller base 位址
 CONFIG_ENV_OFFSET: 環境變數在 flash 中的偏移位址
 CONFIG_ENV_SIZE: 保留給環境變數的空間大小
 CONFIG_ENV_SECT_SIZE: 保留給環境變數的空間的 sector 大小
 CONFIG_ENV_RANGE: 定義環境變數的儲存範圍,範圍是 CONFIG_ENV_OFFSET 到 CONFIG_ENV_OFFSET + CONFIG_ENV_RANGE. (當遇到儲存環境變數的 block 是壞塊時,U-Boot 會將環境變數存到下一個 block)
 CONFIG_SYS_NAND_U_BOOT_OFFS: U-Boot 放在 NAND 中的偏移位址
 CONFIG_SYS_UBOOT_SIZE: U-Boot 使用的總空間 (code + data + heap)
 CONFIG_SYS_PHY_UBOOT_BASE: U-Boot 實際跑起來的位址
 CONFIG_SYS_NAND_U_BOOT_SIZE: U-Boot 影像檔大小
 CONFIG_SYS_NAND_PAGE_SIZE: NAND flash 一個 page 的大小
 CONFIG_SYS_NAND_BLOCK_SIZE: NAND flash 一個 block 的大小
 CONFIG_SYS_NAND_PAGE_COUNT: NAND flash 一個 block 有幾個page

 CONFIG_CMD_SF: 使用 SPI flash 的 sf 命令功能
 CONFIG_SPI_FLASH_MACRONIX: 使用 MACRONIX SPI flash
 CONFIG_SPI_FLASH_WINBOND: 使用 Winbond SPI flash
 CONFIG_SPI_FLASH_EON: 使用 EON SPI flash
 CONFIG_ENV_OFFSET: 環境變數在 flash 中的偏移位址
 CONFIG_ENV_SIZE: 保留給環境變數的空間大小

 CONFIG_SYS_PROMPT: 提示列字串
 CONFIG_SYS_LONGHELP: 顯示完整幫助選單
 CONFIG_CMDLINE_EDITING: 允許編輯命令

 CONFIG_LCD: 開啟 LCD 功能
 CONFIG_NUC970_LCD: 編譯 NUC970 驅動程式
 LCD_BPP: 輸出到 LCD 上的一個 pixel 用幾個 bit 來表示
 CONFIG_LCD_LOGO: 將 LOGO 輸出到 LCD 上
 CONFIG_LCD_INFO: 將 U-Boot 版本以及 NUC970 相關訊息輸出到 LCD 上
 CONFIG_LCD_INFO_BELOW_LOGO: 將 NUC970 相關訊息的輸出位置放在 LOGO 底下
 CONFIG_SYS_CONSOLE_IS_IN_ENV: stdin/stdout/stderr 採用環境變數的設定
 CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE: stdin/stdout/stderr 切換到 serial port

 CONFIG_NUC970_MMC: 編譯 NUC970 驅動程式
 CONFIG_CMD_MMC: 支持 MMC 相關命令
 CONFIG_CMD_FAT: 支持 FAT 相關命令
 CONFIG_MMC: 支持 MMC
 CONFIG_GENERIC_MMC: 支持通用的 MMC
 CONFIG_DOS_PARTITION: 支持 DOS 分區
 CONFIG_NUC970_SD_PORT0: 支持 SD port 0
 CONFIG_NUC970_SD_PORT1: 支持 SD port 1
 CONFIG_NUC970_EMMC: 支持 eMMC
 CONFIG_SYS_MMC_ENV_DEV: 存放環境變數的 MMC 設備編號
 CONFIG_ENV_OFFSET: 環境變數存放位址
 CONFIG_ENV_SIZE: 環境變數大小
 CONFIG_ENV_SECT_SIZE: 存放環境變數的 eMMC 區塊大小

 CONFIG_CMD_USB: 支持 USB 命令
 CONFIG_CMD_FAT: 支持 FAT 命令
 CONFIG_USB_STORAGE: 支持 USB 儲存系統
 CONFIG_USB_EHCI: 支持 USB 2.0
 CONFIG_USB_EHCI_NUC970: 支持 NUC970 芯片 USB 2.0
 CONFIG_DOS_PARTITION: 支持 DOS 分區

 CONFIG_NUC970_GPIO: 開啟 GPIO 功能
 CONFIG_SYS_MALLOC_LEN: 設置動態配置記憶體大小
 CONFIG_STACKSIZE: 設置堆棧大小

 CONFIG_KPI_NUC970: 開啟 GPIO 功能
 CONFIG_KPI_PA_PORT: 選擇PORT A為按鍵來源
 CONFIG_KPI_PH_PORT: 選擇PORT H為按鍵來源
(使用者只能選擇 CONFIG_KPI_PA_PORT 或 CONFIG_KPI_PH_PORT其中之)
 CONFIG_KPI_ROW_NUM: 設置掃描按鍵列的數目
 CONFIG_KPI_COL_NUM: 設置掃描按鍵行的數目
 CONFIG_KPI_DEBOUNCE: 設置掃描按鍵de-bounce的長度

目錄架構
U-Boot 的目錄結構如下圖

 arch: 包含CPU 相關的源代碼

 NUC970 CPU 相關的源代碼放在 arch/arm/cpu/arm926ejs/nuc900.
 board: 包含板子相關的源代碼
 NUC970 板子相關的源代碼放在 board/nuvoton/nuc970_evb.
 common: 包含 U-Boot 命令以及一些各平台共同的源代碼.
 doc: 放置各式各樣的 README 文件.
 drivers: 放置驅動程式源代碼.
 NUC970 的驅動程式源代碼也是放在 drivers 目錄下, 例如 Ethernet 驅動程式就放在 drivers/net/nuc900_eth.c
 examples: 放置一些範例. 例如 mips.lds 就是 MIPS 的鏈結腳本
 fs: 存放各種檔案文件系統. 例如: FAT, yaffs2.
 include: 存放頭文件以及配置檔. NUC970 的配置檔就放在 include/configs/nuc970_evb.h
 lib: 放置各種函式庫.
 nand_spl: 存放 NAND 開機源代碼
 net: 存放網路相關的源代碼. 例如: tftp.c, ping.c,
 tools: 存放一些工具, 例如 mkimage 就是一個產生影像檔的工具.

NUC970 U-Boot 使用說明的更多相关文章

  1. JavaFX結合 JDBC, Servlet, Swing, Google Map及動態產生比例圖 (2):JavaFX建立及程式碼說明 (转帖)

    說明:就如同標題一樣,前端會用到JavaFX.Swing.Java Web Start.Google Map 的技術, 後端就是JDBC.Servlet的技術,以及我們會簽署認證jar檔案,這樣才可存 ...

  2. man page分類與說明

    轉載自http://itzone.hk/article/article.php?aid=200407152225014657 (如有侵權,請留言或來信告知) 前言 Man page是每位程式設計員及U ...

  3. [DE2i-150] 重建PCIe_Fundmental範例說明

    以下資料的整理主要是做備忘錄,避免以後忘了,順便留給需要的人. ========================================== 本文主要是參考友晶科技的DE2i-150光碟裡面的 ...

  4. open和opener使用說明

    父網頁:window.open("article.html")子網頁:var dialoginfo=$('#dialogdata',window.opener.document); ...

  5. vi 常用命令使用說明

    vi是一種文字模式全螢幕文字編輯軟體(Text Editor).對初學者來說,vi是個很難用的工具,一般需要2個星期的時間才能得心應手.之所以介紹vi,其理由如下: vi是Unix上的標準文字編輯軟體 ...

  6. 【转】UniGUI Session管理說明

    [转]UniGUI Session管理說明 (2015-12-29 15:41:15) 转载▼   分类: uniGUI 台中cmj朋友在uniGUI中文社区QQ群里发布的,转贴至此. UniGUI ...

  7. GlusterFS六大卷模式說明

    GlusterFS六大卷說明   第一,分佈卷 在分布式卷文件被随机地分布在整个砖的体积.使用分布式卷,你需要扩展存储,冗余是重要或提供其他硬件/软件层.(簡介:分布式卷,文件通过hash算法随机的分 ...

  8. 【转载】GlusterFS六大卷模式說明

    本文转载自翱翔的水滴<GlusterFS六大卷模式說明> GlusterFS六大卷說明 第一,分佈卷 在分布式卷文件被随机地分布在整个砖的体积.使用分布式卷,你需要扩展存储,冗余是重要或提 ...

  9. 什麼是 N-key 與按鍵衝突?原理說明、改善技術、選購注意完全解析

    不管是文書處理或遊戲中,我們都經常會使用到組合鍵,也就是多顆按鍵一起按下,執行某些特定的功能.有時候你可能會發現,明明只按下2顆鍵,再按下第3顆鍵時訊號卻沒有輸出.要是打報告到一半遇到這種狀況還好,如 ...

随机推荐

  1. redis 安装 检测是否安装命令

    0: 安装redis服务: # wget http://download.redis.io/releases/redis-3.2.6.tar.gz# tar xzf redis-3.2.6.tar.g ...

  2. kubernetes deployment

    deployment是k8s中部署应用最常见的一种方式.如果不需要被访问,那么只需要定义deployment即可.如果需要被其他服务访问,那么可以创建一个service与其绑定,通过访问service ...

  3. 设计模式-观察者模式(上)<转>

    本文参考Head First设计模式一书,感觉书中的例子实在很好,很贴切.对模式的知识点进行总结,并对书的源码做了一定注释.   观察者模式要点有二:主题和观察者. 最贴切的案例是:杂志订阅,杂志是主 ...

  4. 添加信任站点和允许ActiveX批处理

    有两种写法 1.如果是用IP reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMa ...

  5. Kafka Tools

    参考, https://cwiki.apache.org/confluence/display/KAFKA/System+Tools https://cwiki.apache.org/confluen ...

  6. android assets与 assets与res/raw 的相同、不同点

    1.获取资源的输入流 资源文件 sample.txt 位于 $PROJECT_HOME/assets/ 目录下,可以在 Activity 中通过   //也可以放置图片等资源,获取方式相同 Conte ...

  7. mac for appium环境安装

    之前写过windows 安装appium环境步骤. 1. 需求的前置条件如下 (mac 自动git.ruby.brew命令): 2. java  环境 3. git 环境 4. ruby环境 5. b ...

  8. C++ 类的头文件、实现、使用

    再次吐槽下C++Primer这本书,啰哩啰嗦,废话太多.如果我来翻译的话,绝对删减一堆没用的---仅限于发牢骚. 不知道是否经典的做法 类中的成员声明在头文件中,定义(我更喜欢叫实现)在源文件中,使用 ...

  9. e636. Listening to All Key Events Before Delivery to Focused Component

    Registering a key event dispatcher with the keyboard focus manager allows you to see all key events ...

  10. e685. 显示页面格式窗口

    The page format dialog allows the user to change the default page format values such as the orientat ...