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”. 即可完成燒錄動作.

NUC972学习历程之NUWRITER使用说明以及烧录模式的说明的更多相关文章

  1. python学习历程之split()方法获取cmd mysql 结果集

    if __name__=='__main__': FServerId = raw_input("Please input source id:") GetFileKey(FServ ...

  2. Tomcat 学习进阶历程之Tomcat架构与核心类分析

    前面的http及socket两部分内容,主要是为了后面看Tomcat源代码而学习的一些网络基础.从这章開始.就開始实际深入到Tomcat的'内在'去看一看. 在分析Tomcat的源代码之前,准备先看一 ...

  3. ROS机器人程序设计(原书第2版)学习镜像分享及使用说明

    ROS机器人程序设计(原书第2版)学习镜像分享及使用说明 系统用于ROS爱好者学习交流,也可用于其他用途,并不局限于ROS. 这款镜像文件是基于一年前的Ubuntu ROS Arduino Gazeb ...

  4. vuejs 学习旅程之 vue-resource

    如上图,所有的数据是从php获取过来的.所以就引出了vuejs 与php通信之说.百度了一下需要使用到一个vue插件 就是今天的主题 vuejs 学习旅程之 vue-resource vue-reso ...

  5. 850 USB 烧录模式

    /************************************************************************* * 850 USB 烧录模式 * 说明: * 本文 ...

  6. thinkphp学习笔记3—项目编译和调试模式

    原文:thinkphp学习笔记3-项目编译和调试模式 1.项目编译 在章节2.4项目编译中作者讲到使用thinkphp的项目在第一次运行的时候会吧核心需要加载的文件去掉空白和注释合并到一个文件中编译并 ...

  7. 深度学习篇——Tensorflow配置(傻瓜安装模式)

    前言 如果你是一个完美主义者,那么请绕过此文,请参考<深度学习篇——Tensorflow配置(完美主义模式)> 安装 pip install tensorflow ok,只要不报错,安装就 ...

  8. I.MX6 不一定要设置BOOT_MODE进入烧录模式

    /************************************************************************* * I.MX6 不一定要设置BOOT_MODE进入 ...

  9. 新唐ARM9之NUC972学习历程之系统的搭建和BSP包的使用

    说到嵌入式,我们首先想到的,就是它的复杂程度,LINUX,BSP,UBOOT,交叉编译,寄存器配置,等等一系列的问题,甚至有的时候我们对此一头雾水,很是头疼,不过我们今天要说的就是关于NUC972的一 ...

随机推荐

  1. Activiti工作流学习要点

    1. 1个插件 在Eclipse中安装Activiti插件,让你可以在Eclipse中绘制Activiti工作流图 2. 1个引擎 ProcessEngine对象,Activiti工作流引擎.这是Ac ...

  2. iOS真机调试出现Development cannot be enabled while your device is locked.

    手机升级到iOS 10之后,运行真机出现了Development cannot be enabled while your device is locked. 这里是你对这台电脑设置了不信任: 解决方 ...

  3. Intellij idea上传项目到github

    操作前提 1.安装了 git for windows客户端 2.配置了rsa公钥 3.设置了邮箱和用户名 详情请看上一篇博客http://www.cnblogs.com/520playboy/p/66 ...

  4. Docker——MacOS上安装运行docker

    近几年来,Docker越来越流行,使用场景也越来越广泛.为了能尽快跟上时代步伐.学习并应用到实际工作中,我也开始了Docker之旅. Docker版本 Docker共有两种版本: 社区版(Commun ...

  5. Sketch Up常见问题

    墙上开门洞用铅笔在墙上画好矩形(2m*1m)->用推拉(P)工具双击左键

  6. mybatis深入学习

    最近做的一个活可以让我深入学习一下现在比较流行的ORM框架:mybatis/ibatis的内部原理,SQL的拦截,解析,dataSource和JDBC中做一些额外的事情.如果有可能的话想造一个比较简单 ...

  7. C语言 · 分数统计

    算法提高 分数统计   时间限制:1.0s   内存限制:512.0MB      问题描述 2016.4.5已更新此题,此前的程序需要重新提交. 问题描述 给定一个百分制成绩T,将其划分为如下五个等 ...

  8. Makefile 编译动态库文件及链接动态库

    本文为原创文章,转载请指明该文链接 文件目录结构如下 dynamiclibapp.c Makefile comm/inc/apue.h comm/errorhandle.c dynamiclib/Ma ...

  9. yum-plugin-priroites这个插件的一个文件。

    yum源优先级的一个文件.是yum-plugin-priroites这个插件的一个文件.用来给yum源分优先级的.比如你在centos下有centos,epel,rpmfusion三个yum源.三个y ...

  10. Python 变量类型和运算符

    -*- coding:utf-8 -*- ''' if语法 if conditon: [tab键] command [tab键] command ... else: [tab键] command [t ...