打印
[技术问答]

如何透过 PinView 与 Lua 脚本查看并改变寄存器状态?

[复制链接]
577|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
如何透过 PinView 与 Lua 脚本查看并改变寄存器状态?PinView能够透过lua脚本来存取MCU的内存,不需透过KEIL μVision和IAR EWARM编译环境,PinView支持透过lua进行以下操作:
(1) 存取寄存器,方便验证硬件线路
(2) 打印SRAM的内容
(3) 支持lua脚本,能够快速实现测试程序
Lua网站:https://www.lua.org/


使用特权

评论回复
沙发
幸福小强|  楼主 | 2019-12-26 23:07 | 只看该作者
使用场景:
(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

使用特权

评论回复
板凳
幸福小强|  楼主 | 2019-12-26 23:07 | 只看该作者
太牛了,可以用Lua,我要马上试试看。

使用特权

评论回复
地板
643757107| | 2019-12-26 23:59 | 只看该作者
666,还支持Lua

使用特权

评论回复
5
捉虫天师| | 2019-12-27 08:45 | 只看该作者
看了一下这个软件的安装目录,竟然有好多Lua脚本

使用特权

评论回复
6
yiy| | 2019-12-29 17:21 | 只看该作者
竟然还可以这么操作。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

124

主题

1543

帖子

2

粉丝