全志XR806芯片 如何使用watchpoint功能?

1.问题背景
watchpoint,一般用来观察某个变量/内存地址的状态(也可以是表达式),如可以监控该变量/内存值是否被程序读/写情况。

2.问题描述
在程序运行异常的时候,可以借助watchpoint来进行辅助调试。

3.问题分析
在XR MCU SDK中,支持了watchpoint功能,通过使能指定宏以及调用指定函数来使用该功能。

4.解决办法
(1)使能watchpoint的宏开关:export __CONFIG_WATCHPOINT:=y
(2)调用watchpoint_add函数添加观察点
以下是代码使用示例:

#include <debug/watchpoint.h>
static int watchpoint_test_value;
static struct watchpoint wp;
static enum cmd_status cmd_watchpoint_value_init(char *cmd)
{
    int ret;
    watchpoint_test_value = 1;
    wp.address = (unsigned int)&watchpoint_test_value;
    wp.length = sizeof(watchpoint_test_value);
    wp.rw = DWT_WRITE;
    ret = watchpoint_add(&wp);
    if (ret) {
        printf("watchpoint_add fail.\n");
    }
    return CMD_STATUS_OK;
}
static enum cmd_status cmd_watchpoint_value_change(char *cmd)
{
    watchpoint_test_value = 0;
    return CMD_STATUS_OK;
}

原贴链接:https://bbs.aw-ol.com/topic/735
全志在线开发者交流企鹅群(客服机器人24小时在线解答):498263967
资源获取、问题讨论可以到全志在线开发者社区进行:https://www.aw-ol.com/
全志及开发者最新动态可以关注全志在线微信公众号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值