1.安裝燒錄工具程式與執行
2.插上MCU燒錄器
3.File > Import > xxxxxxxx.hex 選擇完畢後 Checksum欄位出現 0xxxx(只要出現代表成功)
4-1.Configure > Select device > PIC16F1826
- 選擇MCU CHIP,這個步驟選過一次後燒錄程式會紀錄
4-2.此時將治具插到板子上
5.Programmer > Select programmer > 6 PICkit 3
- 選了會自動Connect 到MCU(Output視窗會出現一串訊息,PICkit 3 detected~connected),每次重開燒錄程式都要選 ...
- 如果要Re-connect,先選None再選6 PICkit3
- 若出現error:You must connect a target device to use PICkit3這是正常的(因為裝置還沒過電)
6.Programmer > Settings > 選Power頁 > 將Power target circuit from PICkit3 攔勾選起來
- 此時會出現Device ID Recision: 000000d 表示接上了
7.點主畫面點右上方Tool bar 的Program,進行燒錄,再點選旁邊的Read鍵讀取,再點選旁邊的Verify鍵進行驗證
- 如果沒有燒錄成功,output window會出現錯誤
- 燒錄下一片只需要將治具拔出,換下一片,點Tool bar的Program, Read, Verify即可
後記:某次燒錄的時候怎麼燒都燒不進去,業界前輩建議我接上主電源 再點選Power再燒錄看看,結果過了~~歸咎原因:因為板子以接上其他裝置的電源,導致第六步驟的power供電不足
雖然感覺已燒錄卻會出現燒錄失敗的情形,如下:
PICkit 3 detected Connecting to PICkit 3... Firmware Suite Version...... 01.26.26 Firmware type......................dsPIC33F/24F/24H PICkit 3 Connected. Device ID Revision = 00003040 Programming... Programming failed
========================================================================
U-boot指令
Survey:常用u-boot命令详解(全)
燒錄mac位址:burnmac xx:xx:xx:xx:xx:xx
列印設定檔相關資訊:printenv
底下待整理:
Printenv 列印環境變數
Uboot> printenv
baudrate=115200
ipaddr=192.168.1.1
ethaddr=12:34:56:78:9A:BC
serverip=192.168.1.5
Environment size: 80/8188 bytes
Setenv 設定新的變數
Uboot> setenv myboard AT91RM9200DK
Uboot> printenv
baudrate=115200
ipaddr=192.168.1.1
ethaddr=12:34:56:78:9A:BC
serverip=192.168.1.5
myboard=AT91RM9200DK
Environment size: 102/8188 bytes
Saveenv 儲存變數
命令將當前定義的所有的變數及其值存入flash中。用來存儲變數及其值的空間只有8k位元組,應不要超過。
Loadb 透過串口Kermit協議下載二進製數據。
Tftp 透過網路下載程式,需要先設定好網路配置
Uboot> setenv ethaddr 12:34:56:78:9A:BC
Uboot> setenv ipaddr 192.168.1.1
Uboot> setenv serverip 192.168.1.254 (tftp伺服器的位址)
下載bin檔案到位址0x20000000處。
Uboot> tftp 20000000 application.bin (application.bin應位於tftp服務程式的目錄)
Uboot> tftp 32000000 vmlinux
把server(IP=環境變數中設定的serverip)中/tftpdroot/ 下的vmlinux透過TFTP讀入到物理內存32000000處。
Md 顯示Memory 的內容。
Mm 修改Memory ,位址自動遞增。
Nm 修改Memory ,位址不自動遞增。
Mw 用模型填充Memory
mw 32000000 ff 10000(把Memory 0x32000000開始的0x10000位元組設為0xFF)
Cp 拷貝一塊Memory 到另一塊
Cmp 比較兩塊Memory 區
這些Memory 操作命令後都可加一個後綴表示操作數據的大小,比如cp.b表示按位元組拷貝。
Protect 寫保護操作
protect on 1:0-3(就是對第一塊FLASH的0-3扇區進行保護)
protect off 1:0-3取消寫保護
Erase 清除扇區。
erase: 刪除FLASH的扇區
erase 1:0-2(就是對每一塊FLASH的0-2扇區進行刪除)
對DataFlash的操作
U-Boot在引導時如果發現NPCS0和NPCS3上連有DataFlash,就會分發虛擬的位址給它,具體為 ︰
0xC0000000---NPCS0
0xD0000000---NPCS3
run 執行設定好的腳本
Uboot> setenv flashit tftp 20000000 mycode.bin\; erase 10020000 1002FFFF\;
cp.b 20000000 10020000 8000
Uboot> saveenv
Uboot> run flashit
bootcmd 保留的環境變數,也是一種腳本
如果定義了該變數,在autoboot模式下,將會執行該腳本的內容。
Go 執行Memory 中的二進製代碼,一個簡單的跳轉到指定位址
Bootm 執行Memory 中的二進製代碼
要求二進製代碼為製定格式的。通常為mkimage處理過的二進製檔案。
起動UBOOT TOOLS製作的壓縮LINUX內核, bootm 3200000
Bootp 透過網路啟動,需要提前設定好硬體位址。
? 得到所有命令清單
help help usb, 列出USB功能的使用說明
ping 注︰只能開發板PING別的機器
usb
usb start: 起動usb 功能
usb info: 列出設備
usb scan: 掃描usb storage(u 盤)設備
kgo 起動沒有壓縮的linux內核
kgo 32000000
fatls 列出DOS FAT檔案系統
fatls usb 0列出第一塊U盤中的檔案
fatload 讀入FAT中的一個檔案
fatload usb 0:0 32000000 aa.txt 把USB中的aa.txt 讀到物理Memory 0x32000000處﹗
flinfo 列出flash的訊息
nfs
nfs 32000000 192.168.0.2:aa.txt
把192.168.0.2(LINUX 的NFS檔案系統)中的NFS檔案系統中的aa.txt 讀入Memory 0x32000000處。
沒有留言:
張貼留言