eric2013 发表于 2023-4-7 09:56:55

H7-TOOL的SWD接口Lua函数读取失败后处理办法(2023-04-07)

这里分享下SWD接口Lua函数读取失败解决办法。

一般情况下,读取失败后,重新调用初始化函数pg_init,很多时候可以解决问题。这里要注意的是循环函数读取失败。

读取失败后,不能一直死循环读取,会导致阻塞在死循环里面,解决办法依然是重新执行一次pg_init,并记录次数,比如失败超过10次,break退出死循环。

示例代码:

local re
local data
local count

function printf(...)
    print(string.format(...))
end

pg_init()

count = 0 -- 计数次数清零

while (1)
do

re, data = pg_read_u32(0x24000000)

if(re == 0) then
    pg_init()
    count = count+ 1
    printf("读取失败%d", count)
    if(count == 10)then
      printf("10次读取失败,退出循环")
      break
    end
else
    printf("读取成功")
end

delayms(200)
end

printf("========================")








byccc 发表于 2023-4-7 12:48:03

我前几天测试就遇到了这个问题,谢谢分享解决方法

Vxworks 发表于 2023-4-13 09:10:52

读取失败后,再次重新初始化,不会复位芯片吧。

eric2013 发表于 2023-4-13 09:14:41

Vxworks 发表于 2023-4-13 09:10
读取失败后,再次重新初始化,不会复位芯片吧。

不会的,SWD接口函数全程不会复位目标板芯片,除非你发送复位命令。

Vxworks 发表于 2023-4-13 10:05:00

eric2013 发表于 2023-4-13 09:14
不会的,SWD接口函数全程不会复位目标板芯片,除非你发送复位命令。

好的,谢谢
页: [1]
查看完整版本: H7-TOOL的SWD接口Lua函数读取失败后处理办法(2023-04-07)