NUC972学习历程之NUWRITER使用说明以及烧录模式的说明

Wesley13
• 阅读 882

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 會發現新的設備, 然後會要求你安裝驅動程式.

NUC972学习历程之NUWRITER使用说明以及烧录模式的说明

3. 按下 “Next”. 這個畫面告訴你即將要安裝WinUSB4NuVCOM 1.0 驅動程式. 如下圖:

NUC972学习历程之NUWRITER使用说明以及烧录模式的说明

4. 選擇使用者想要安裝的路徑或使用預設的路徑, 確定以後按下“Next”. 如下圖:

NUC972学习历程之NUWRITER使用说明以及烧录模式的说明

5. 按下 “Next”. 如下圖:

NUC972学习历程之NUWRITER使用说明以及烧录模式的说明

6. 按下 “Install”. 如下圖:

 NUC972学习历程之NUWRITER使用说明以及烧录模式的说明

7. 按下 “Finish”, 完成VCOM驅動程式的安裝. 如下圖:

NUC972学习历程之NUWRITER使用说明以及烧录模式的说明

8. 如果VCOM驅動程式是安裝成功, 可以在”Device Manager”中看到“WinUSB driver (Nuvoton VCOM)”. 如下圖:

NUC972学习历程之NUWRITER使用说明以及烧录模式的说明

NUC972学习历程之NUWRITER使用说明以及烧录模式的说明

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

NUC972学习历程之NUWRITER使用说明以及烧录模式的说明

NUC972学习历程之NUWRITER使用说明以及烧录模式的说明

開啟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工具.

NUC972学习历程之NUWRITER使用说明以及烧录模式的说明

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.

NUC972学习历程之NUWRITER使用说明以及烧录模式的说明

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

NUC972学习历程之NUWRITER使用说明以及烧录模式的说明

新增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”。即可完成。

NUC972学习历程之NUWRITER使用说明以及烧录模式的说明

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

NUC972学习历程之NUWRITER使用说明以及烧录模式的说明

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”即可確認燒入資料是否正確.

NUC972学习历程之NUWRITER使用说明以及烧录模式的说明

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

NUC972学习历程之NUWRITER使用说明以及烧录模式的说明

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”即可確認燒入資料是否正確

NUC972学习历程之NUWRITER使用说明以及烧录模式的说明

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

NUC972学习历程之NUWRITER使用说明以及烧录模式的说明

移除 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區塊中)

NUC972学习历程之NUWRITER使用说明以及烧录模式的说明

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

NUC972学习历程之NUWRITER使用说明以及烧录模式的说明

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

UBIFS製作Image命令如下:

NUC972学习历程之NUWRITER使用说明以及烧录模式的说明

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

NUC972学习历程之NUWRITER使用说明以及烧录模式的说明

NUC972学习历程之NUWRITER使用说明以及烧录模式的说明

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

NUC972学习历程之NUWRITER使用说明以及烧录模式的说明

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如下圖.

NUC972学习历程之NUWRITER使用说明以及烧录模式的说明

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

NUC972学习历程之NUWRITER使用说明以及烧录模式的说明

NUC972学习历程之NUWRITER使用说明以及烧录模式的说明

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

6. 按下 “Burn”. 即可完成燒錄動作.

NUC972学习历程之NUWRITER使用说明以及烧录模式的说明

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
Java获得今日零时零分零秒的时间(Date型)
publicDatezeroTime()throwsParseException{    DatetimenewDate();    SimpleDateFormatsimpnewSimpleDateFormat("yyyyMMdd00:00:00");    SimpleDateFormatsimp2newS
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这