工具/软件:
尊敬的团队:
我们希望在 Linux 内核在 CCS 中运行时读取寄存器。 请参阅下图。 如果有其他方法可以实现这一目标、也请予以分享。
我们的目标是在寄存器级调试内核。

此致、
Gopal Sharma
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:
尊敬的团队:
我们希望在 Linux 内核在 CCS 中运行时读取寄存器。 请参阅下图。 如果有其他方法可以实现这一目标、也请予以分享。
我们的目标是在寄存器级调试内核。

此致、
Gopal Sharma
您好 Alex、
CCS 有寄存器视图(从顶部菜单 View -> Registers)、您是否可以使用它?
是的、我们可以查看寄存器、但需要确认此方法是否有效。
使用 CCS、我在停止 A53 内核时捕获了以下寄存器转储。

我观察到寄存器值已更新,但下面列出的寄存器总是显示0。 
您能否确认这是否是读取寄存器值的有效方法? 这些值是否反映了实际的 CSI-RX 寄存器?
此致、
Gopal Sharma
你好 Gopal Sharma ,
我看到您点击了这个选项、您可以详细说明一下您是如何解决问题的、如果其他社区成员遇到类似的问题、您可以参考这个问题吗?
谢谢您、
Alex
你好 Gopal Sharma ,
是的、您应该能够 直接从“Registers"视“视图否更改寄存器值? 您也可以上拉“Memory"视“视图、转到寄存器地址并从中进行更改。 这两种方法都对您有用。
注意:硬件/软件可能会出于任何原因保留覆盖寄存器、因此您可能看不到手动更改。
请尝试一下、并告诉我们。
谢谢、
Alex
您好、Gopal、
你到底想在这里完成什么?
如果您只是尝试调试外设无法在 Linux 中工作的原因、我不建议使用 CCS 来调查寄存器。
对于未来的读者、我在 Gopal 的另一个主题上提供了指向我知道的 CCS/Linux 调试资源的链接:
SK-AM62-LP:查询:如何使用 CCS 调试内核驱动程序
一般调试步骤
请注意、在这些论坛上、我们支持有关 TI 软件或 TI 硬件的问题、但我们不支持“通用 Linux“问题。 我将提供一些高级指导、但如果您想了解有关调试 Linux 的更多信息、则需要从其他地方(如 Bootlin)学习。
首先、检查 Linux 终端引导日志。 外设是否按预期初始化? 是否看到任何错误输出? 尝试查找错误代码以查看它是否为您提供了更多信息(例如,“file not found“、“timeout",“,"resource、"resource not“ not available“等)。
请检查 Linux 器件树文件。 外设是否已正确启用和配置?
您也可以执行很多操作、例如使用 devmem2 工具从 Linux 终端读取寄存器值。
此致、
Nick
您好、Nick、
感谢您的支持。
我也同意你的关切。
此致、
Gopal Sharma
您好、Gopal、
在这里。 我将其保存 到 EVM 上名为 devmem2-range.sh 的脚本中:
#!/bin/sh
# usage: devmem2-range.sh 41010000 41010050
# NOTE: change to .sh and add executable permissions
FROM=$1 TO=$2
if test ${#FROM} -gt ${#TO}; then
FORMAT="%0${#FROM}X"
else
FORMAT="%0${#TO}X"
fi
FROM=$(printf '%d' 0x$FROM) TO=$(printf '%d' 0x$TO)
while test $FROM -le $TO; do
# printf $FORMAT $FROM
out=$(printf $FORMAT $FROM)
# echo $out
devmem2 0x$out | grep Read
FROM=$((FROM+4)) #32byte regs
done
printf '\n'
我可以让您试用一下、并让我知道它是否可以正常工作而不做任何更改吗? 如果是这样、我将把它变成一个常见问题解答、以便其他人更容易找到。
此致、
Nick