NUC972學習歷程之NUWRITER使用說明以及燒錄模式的說明

 

3.1 簡介
Nu-Writer 工具能幫助使用者透過 USB ISP模式, 將Image檔案放入儲存體中, 例如:SPI Flash設備或 NAND Flash設備.
3.2 驅動程式安裝
Nu-Writer 必須在電腦中安裝VCOM驅動程式才能使用Nu-Writer工具. 請依據下列步驟來安裝VCOM驅動程式:
1. 將電腦與NUC970系列晶片開發板透過USB cable連接起來後.在電腦中執行WinUSB4NuVCOM.exe 開始安裝驅動程式. (在Linux BSP的Tools目錄中)
2. 開啟NUC970系列晶片開發板的電源之後, Windows 會發現新的設備, 然後會要求你安裝驅動程式.工具

3. 按下 「Next」. 這個畫面告訴你即將要安裝WinUSB4NuVCOM 1.0 驅動程式. 以下圖:加密

4. 選擇使用者想要安裝的路徑或使用預設的路徑, 確定以後按下「Next」. 以下圖:3d

5. 按下 「Next」. 以下圖:orm

6. 按下 「Install」. 以下圖:blog

 

7. 按下 「Finish」, 完成VCOM驅動程式的安裝. 以下圖:flash

8. 若是VCOM驅動程式是安裝成功, 能夠在」Device Manager」中看到「WinUSB driver (Nuvoton VCOM)」. 以下圖:it

3.3 USB ISP 模式設置
NUC970系列晶片提供jumpers 去選擇開機的方法. 選擇USB ISP 模式, 則 PA0和PA1 必須設定為低電平 . 其餘開機設定能夠參考下表:class

開啟NUC970系列晶片開發板的電源並且設定為USB ISP模式和開啟電腦上的Nu-Writer 工具, 便可開始使用.
注意:若是電腦沒有找到VCOM驅動程式則Nu-Writer工具無法使用.方法

3.4 芯片設置
解開NuWriter-xxxxxxxx.7z(在BSP/Tools目錄下)壓縮包, 執行 「nuwriter.exe」, 第一個畫面以下.
選擇目前晶片, 目前支援NUC970系列 (NUC972, NUC976… 等)芯片. 若是選擇NUC970系列芯片, 則必須選擇DDR參數, DDR參數依據NUC970系列芯片的PID來選擇. 選擇完成後按下 「Continue」, 便可開始使用Nu-Writer工具.im

DDR/SRAM 模式
DDR/SRAM模式能夠將Image檔案直接下載到DDR 或 SRAM 記憶體中. 操做步驟以下:
1. 選擇 「DDR/SRAM」模式.
2. 選擇Image檔案.
3. 輸入Image檔案放在DDR/SRAM的位址. 注意:若要傳輸到 DDR 中, 位址必須介於0x00~0x1F00000(31MB).
4. 選擇」Download only」或是選擇」Download and run」
5. 按下 「Download.

DDR/SRAM模式能夠將Image檔案和Divice Tree檔案(*.dtb)一塊兒直接下載到DDR 或 SRAM 記憶體中. 操做步驟以下:
1. 選擇 「DDR/SRAM」模式.
2. DTB 檔案打開.
3. 選擇 DTB檔案
4. 輸入Image檔案放在DDR/SRAM的位址. 注意:不要被Image 檔案覆蓋.
5. 選擇Image檔案.
6. 輸入Image檔案放在DDR/SRAM的位址. 注意:若要傳輸到 DDR 中, 位址必須介於0x00~0x1F00000(31MB).
7. 選擇」Download only」或是選擇」Download and run」
8. 按下 「Download.

eMMC 模式
eMMC 模式 能夠將Image檔案燒入到eMMC中,並且將Image檔案型態設定為Data、Environment、uBoot 、 Pack,四種型態中的其中一種 。

新增Image檔案
1. 選擇 「eMMC」 模式, 表格只會紀錄當次燒錄的Image檔案,並不會讀取eMMC Flash中Image的資料。
2. 輸入 image檔案資料:
 Image Name
 Image Type
 Image encrypt
 Image execute address
 Image start offset
3. 按下 「Burn」。
4. 等待進度表完成後,表格將會顯示這次燒錄完成的Image檔案。在完成以後,若是按下「Verify」便可確認燒入資料是否正確。

讀取eMMC
依照下列步驟便可以完成新增Image檔案:
1. 選擇 「eMMC」 模式。
2. 按下 「Read」。
3. 輸入儲存的檔案。
4. 輸入讀回來的sectors(1 sector is 512 bytes) 。
 Start : Sector 起始位置
 Length : Sector 長度

5. 按下 「OK」。便可完成。

格式化 (FAT32)
依照下列步驟便可以完成eMMC格式化:
1. 選擇 「eMMC」 模式。
2. 按下 「Format」。
3. 輸入保留空間(單位為512bytes)。注意:修改此參數可能形成Image或FAT32格式損毀。
4. 按下 「OK」。便可完成。

SPI 模式
SPI 模式 能夠將Image檔案燒入到SPI Flash中, 並且將Image檔案型態設定為Data、Environment、uBoot 、 Pack, 四種型態中的其中一種 。
3.7.1 新增Image
依照下列步驟便可以完成新增Image檔案:
1. 選擇 「SPI」 模式, 表格只會紀錄當次燒錄的Image檔案,並不會讀取SPI Flash中Image的資料。
2. 輸入 image檔案資料:
 Image Name 選擇要燒錄的 loader 檔案
 Image Type 選擇燒錄 Image的型態
 Image encrypt 設置是否需AES加密, 如果, 設置祕鑰文件
 Image execute address 設置 loader 執行位置, 依編譯設定而輸入.
 Image start offset 燒錄起始塊位置

3. 按下 「Burn」.
4. 等待進度表完成. 在完成以後若是按下「Verify」便可確認燒入資料是否正確.

3.7.2 讀取Image
依照下列步驟便可以完成讀取Image:
1. 選擇 「SPI」 模式。
2. 按下 「Read」。
3. 選擇要儲存檔案的位置。
4. 輸入讀回來的blocks,Block 大小是依據SPI FLASH規格所決定。
 Start : Block 起始位置
 Length : Block 長度
5. 按下 「OK」, 便可完成Image讀取。

3.7.3 移除 Image
依照下列步驟便可以完成移除Image檔案:
1. 選擇 「SPI」 模式。
2. 按下 「Erase all」,便可完成移除Image。

 

NAND 模式
NAND模式 能夠將Image檔案燒入到NAND Flash中, 並且將Image檔案型態設定為Data、Environment、uBoot 、 FS、Pack, 五種型態中的其中一種 . FS型態目前支援YAFFS2與UBIFS兩種檔案系統格式。這兩種格式均可以選擇FS型態,將作好的Image存放到NAND Flash對應的位址。讓使用者能夠透過uBoot或Linux來讀取檔案系統。YAFFS2與UBIFS的Image檔的製做能夠參考3.8.4章節
3.8.1 新增Image
依照下列步驟便可以完成新增Image檔案:
1. 選擇 「NAND」 模式, 表格只會紀錄當次燒錄的Image檔案,並不會讀取NAND Flash中Image的資料.
2. 按下 「Add new」. (當選擇NAND模式時, 預設為「Add new」頁面)
3. 輸入 image檔案資料:
 Image Name 選擇要燒錄的 loader 檔案
 Image Type 選擇燒錄 Image的型態
 Image encrypt 設置是否需AES加密, 如果, 設置祕鑰文件
 Image execute address 設置 loader 執行位置, 依編譯設定輸入.
 Image start offset 燒錄起始塊位置
4. 按下 「Burn」.
5. 等待進度表完成. 在完成以後若是按下「Verify」便可確認燒入資料是否正確

讀取Image
依照下列步驟便可以完成讀取Image:
1. 選擇 「NAND」 模式。
2. 按下 「Read」。
3. 選擇要儲存檔案的位置。
4. 輸入讀回來的blocks,Block 大小是依據NAND FLASH規格所決定。
 Start : Block 起始位置
 Length : Block 長度
5. 按下 「OK」, 便可完成Image讀取。

移除 Image
依照下列步驟便可以完成移除Image檔案:
1. 選擇 「NAND」 模式。

2. 按下 「Erase all」,便可完成移除Image。
3.8.4 製做File System Image
這裡說明如何製做YAFFS2(yaffs2的tag儲存在DATA區塊中)和UBIFS,這兩種File System均可以使用DATA型態燒入到 NAND flash中,依據下列步驟便可完成製做File System Image。
1. YAFFS2製做In-band tags Image命令以下:(yaffs2的tag儲存在DATA區塊中)

--inband-tags:yaffs2的tag儲存在DATA區塊。
-p:設定NAND Flash頁的大小(Page Size)。
便可將rootfs資料夾壓縮成rootfs_yaffs2.img,再透過NuWriter放到相對應NAND Flash的位址。輸入下列命令便可將YAFFS2 inband-tags 檔案系統掛在flash資料夾中:

YAFFS2的指令能夠在yaffs2utils套件中找到。YAFFS2文件系統設置能夠參考5.3.4章節。

UBIFS製做Image命令以下:

mkfs.ubifs 使用的參數說明以下: -F :設定檔案系統未使用的空間優先mount. -x: 壓縮的格式,"lzo", "favor_lzo", "zlib" 或 "none" (預設:"lzo") -m:最小的I/O操做的大小,也就是NAND Flash一個頁的大小。 -e:邏輯擦除塊的大小(logical erase block size)。因為實體擦除塊(PEB)為128KiB,因此邏輯擦除塊設定為124KiB=126976。 -c:最大的擦除塊的號碼(maximum logical erase block count)。
-o:輸出檔案。
ubinize使用的參數說明名以下:
-o:輸出檔案。 -m:最小輸入/輸出的大小,也就是NAND Flash一個頁的大小。 -p:實體擦除塊大小,128KiB=131072。
-O:VID檔頭位移位置。
-s:使用最小輸入/輸出的大小,存放UBI檔頭。
ubinize.cfg

便可將rootfs資料夾壓縮成ubi.img,再透過NuWriter放到相對應NAND Flash的位址。
輸入下列命令便可將UBIFS檔案系統掛在flash資料夾中:
須要參考/sys/class/misc/ubi_ctrl/dev內容,假設內容為 10:56,則設定以下:

UBIFS相關指令能夠在mtd-utils套件中找到。UBIFS文件系統設置能夠參考5.3.4章節。
3.9 MTP 模式
MTP模式能夠將你選擇的鑰匙檔案燒入到NUC970系列晶片的 MTP中, 藉由此鑰匙來保護NUC970系列晶片使用到存儲體(eMMC, NAND, SPI FLASH)中的程式碼.
3.9.1 新增key檔案
1. 進入資料夾key_cfg以下圖.

2. 創建文字檔和輸入密碼, 密碼格式以下, 第一行必定是 256. 之後連續 8 行大端模式密鑰.

3. 從新開啟Nu-Writer工具, 並選擇 「MTP」 模式.
4. 選擇剛剛創建的文字檔.
5. 選擇燒入的方式
 開機模式選擇: eMMC, NAND, 或 SPIFLASH
 保護模式選擇: SHA 或 AES
 啟動模式選擇: Enable 或 Disable
 上鎖模式選擇: 若是此模式開啟時,則永久無法修改MTP相關的設定,使用此模式時請當心

6. 按下 「Burn」. 便可完成燒錄動做.

相關文章
相關標籤/搜索