硬汉嵌入式论坛

 找回密码
 立即注册
查看: 807|回复: 4
收起左侧

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

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106760
QQ
发表于 2023-4-7 09:56:55 | 显示全部楼层 |阅读模式
这里分享下SWD接口Lua函数读取失败解决办法。

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

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

示例代码:

[Lua] 纯文本查看 复制代码
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("========================")



下载 (2).png




回复

使用道具 举报

36

主题

2039

回帖

2147

积分

至尊会员

积分
2147
发表于 2023-4-7 12:48:03 | 显示全部楼层
我前几天测试就遇到了这个问题,谢谢分享解决方法
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

0

主题

69

回帖

69

积分

初级会员

积分
69
发表于 2023-4-13 09:10:52 | 显示全部楼层
读取失败后,再次重新初始化,不会复位芯片吧。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106760
QQ
 楼主| 发表于 2023-4-13 09:14:41 | 显示全部楼层
Vxworks 发表于 2023-4-13 09:10
读取失败后,再次重新初始化,不会复位芯片吧。

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

使用道具 举报

0

主题

69

回帖

69

积分

初级会员

积分
69
发表于 2023-4-13 10:05:00 | 显示全部楼层
eric2013 发表于 2023-4-13 09:14
不会的,SWD接口函数全程不会复位目标板芯片,除非你发送复位命令。

好的,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-5 03:35 , Processed in 0.168660 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表