您好,欢迎进入 官方网站!
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”. 如下圖:
5. 按下 “Next”. 如下圖:
6. 按下 “Install”. 如下圖:
7. 按下 “Finish”, 完成VCOM驅動程式的安裝. 如下圖:
8. 如果VCOM驅動程式是安裝成功, 可以在”Device Manager”中看到“WinUSB driver (Nuvoton VCOM)”. 如下圖:
3.3 USB ISP 模式設置
NUC970系列晶片提供jumpers 去選擇開機的方法. 選擇USB ISP 模式, 則 PA0和PA1 必須設定為低電平 . 其他開機設定可以參考下表:
開啟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工具.
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”. 即可完成燒錄動作.
上一篇:STM32学习之路之入门篇
下一篇:Linux文件与目录管理