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. 关联容器——map、set

    map类型通常被称为关联数组,与正常数组类似,不同之处在于其下标不必是整数.我们通过一个关键字而不是位置来查找值(键值对). 与之相对,set就是关键字的简单集合.当只是想知道一个值是否存在时,set ...

  2. 一款纯css3实现的动画按钮

    今天给大家分享一款纯css3实现的动画按钮.第一排的按钮当鼠标经过的背景色动画切换,图标从右侧飞入,第二排的按钮当鼠标经过的时候边框动画切换,图标右侧飞入,效果非常好,一起看下效果图: 在线预览    ...

  3. 模板方法模式(Head first 设计模式——7)

    一.模板方法模式定义 模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中.模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤. 从定义中,应该可以看出一部分,为 ...

  4. 找你妹+ipad+wifi,回顾那年的经典游戏

    昨天,不是从前天同事拿平板给我后,就没睡过一个安稳觉. 先是看电视看得爽歪了,再就是昨天晚上的游戏之夜.IPAD比較老.连系统都不好更新了.就用了留存的应用. 打开酷我看看有什么音乐推荐,听到一首&l ...

  5. 【C#】List<T>对象的深复制

    一.List对象中的T是值类型的情况(int 类型等) 对于值类型的List直接用以下方法就可以复制: List<T> oldList = new List<T>(); old ...

  6. etl获取转换文件名

  7. Message Code 【27796】 Failed to connect to server 'hostname';port_ld': 'reason'.

    Message Code [27796] Failed to connect to server 'hostname';port_ld': 'reason'.Unable to connect to  ...

  8. 解析xml的4种方法详解

    1. 介绍 1)DOM(JAXP Crimson解析器)         DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许 ...

  9. 【转】【OPenGL】OPenGL 画图板-- 中点算法画圆

    为了能以任意点为圆心画圆,我们可以把圆心先设为视点(相当于于将其平移到坐标原点),然后通过中点法扫描转换后,再恢复原来的视点(相当于将圆心平移回原来的位置). 圆心位于原点的圆有四条对称轴x=0,y= ...

  10. MySQL常用shell语句

    1.连接数据库 格式:mysql -h ip -P port -u user -p 2.修改某一列的值 格式:update tablename set column1 = 'xxx', column2 ...