调试DP1.4 selftest遇到的坑

本文记录了在使用DP1.4过程中XDpTxSs_SelfTest自检失败的问题,通过分析内存窗口和官方文档发现寄存器配置错误。作者修改Xdp_selftest.c并解决后,官方例程运行成功。讨论了可能的原因,如软件版本或代码bug。
摘要由CSDN通过智能技术生成

在调试DP1.4时,使用selftest无法通过的问题,记录如下

问题描述

项目当中要使用DP1.4,SDK中的代码当然是老套路:

XDpTxSs_LookupConfig();
XDpTxSs_CfgInitialize();
XDpTxSs_SelfTest();

结果在XDpTxSs_SelfTest()失败,导入官方例程xdptxss_selftest_example跑起来也一样,在XDpTxSs_SelfTest此函数中会失败,如图
在这里插入图片描述
debug一步步跟进DpTxss_SelfTestExample->XDpTxSs_SelfTest->XDp_SelfTest->XDp_TxSelfTest
跟到此函数下发现问题如下三图
图1
在这里插入图片描述
图2
在这里插入图片描述
图3
在这里插入图片描述
由以上代码可知:寄存器在0x800000F8处需要为0x07000000,在0x800000FC处为0x01020A00的时候,该函数才会不返回failure,但是通过Memory窗口看到的是:
在这里插入图片描述
这两个值就是不对。

解决问题

查看PG299可以看到
在这里插入图片描述
在0x800000FC这个地址值的描述上,官方文档与在Memory窗口看到的值是一致的为0x01040000,文档中没有找到对0xf8这个寄存器的描述,但还是有信心认为是与Memory窗口中看到的一致(软件版本问题?官方代码bug?既然0xfc这里不对,那0xf8也有可能不对)。
于是对Xdp_selftest.c作以下更改:
在这里插入图片描述
然后官方例程运行成功:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值