Nuvoton(新唐科技)如何透過PinView與Lua腳本查看並改變暫存器狀態?

PinView能夠透過lua腳本來存取MCU的記憶體,不需透過KEIL μVision和IAR EWARM編譯環境,PinView支援透過lua進行以下操作:

(1) 存取暫存器,方便驗證硬體線路

(2) 打印SRAM的內容

(3) 支援lua腳本,能夠快速實現測試程式

Lua網站:https://www.lua.org/

 

使用場景:

(1) 使用者沒有客戶的程式碼,但需要針對客戶的專案進行除錯

(2) 使用者沒有客戶的開發環境( KEIL μVision or IAR EWARM ),但須要針對客戶的專案進行除錯

1. 建立一個 lua 檔案. (Lua Example 1)

2. 開啟 PinView

3. 執行 lua 腳本

 

 

4. PinView 右側視窗會顯示改變的內容

 

Lua Example 1: my1.lua – 存取 GPIOA 暫存器並切換I/O邏輯

-- Config

local write_data = 0

local RegAdd = 0x50004008 -- GPIOA_DOUT

-- Print setting

local ext = require("ext")

local print = ext.redirect_print

print(string.format('Hello Nuvoton'));

-- Read register

local read_data = ice:ReadMem32(RegAdd)


print(string.format("ReadMem: addr 0x%08X, data 0x%08X", RegAdd, read_data))

-- Write register

write_data = 0xFFFF-read_data; -- Invert GPIOA data

ice:WriteMem32(RegAdd, write_data)

print(string.format("WriteMem addr 0x%08X, data 0x%08X", RegAdd, write_data))


 

Lua Example 2: my.lua – 打印 SRAM 資料

-- Config

local RegAdd = 0x20000000 -- SRAM address

local total_size = 256 -- Data length

-- Print setting

local ext = require("ext")

local print = ext.redirect_print

print(string.format('Hello Nuvoton'));

-- Dump SRAM data

local i = 0

while i < total_size do

            local read_data = ice:ReadMem32(RegAdd+i)

            print(string.format("ReadMem: addr 0x%08X, data 0x%08X", RegAdd+i, read_data))

            i = i + 4

end


 

★博文內容參考自 網站,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論