我试图了解 JTAG 调试背后发生的过程。据我了解,支持 JTAG 调试的设备在设备中有一个称为 DOC(片上调试)的特殊组件。该组件的核心是 TAP 控制器,负责执行来自连接的 JTAG 适配器的请求。
有人可以解释一下适配器向 TAP 控制器发送暂停请求时会发生什么吗?我对电信号的细节不感兴趣,但对过程更感兴趣。是否必须设置 DOC 的任何寄存器才能停止系统?如果是这样,DOC 如何“知道”何时检查该寄存器的值?
我还知道,在大多数 ARM 处理器上,DOC 除非停止,否则无法访问内核寄存器。但是任何内核进程都可以访问 DOC 的寄存器吗?
谢谢你!
我有一个Android设备 - 三星galaxy s2内核版本2.6.35.14(arm cortex a9)
我试图找到异常向量表的物理地址.我知道它在0xffff0000虚拟地址.(我可以通过内核模块打印它的值)
我也知道大多数内核虚拟地址(到物理)的转换是由值0x8000000的子站完成的.
我有一个设备可以直接从设备内存中读取数据,我想获得异常向量表.
当我构建一个内核模块并尝试使用宏virt_to_phys(0xffff0000)我有一些地址,但表不在那里.我成功找到了系统调用表,但这里宏给了我错误的地址.
有谁知道为什么会这样?异常向量表的地址是否位于特殊的物理地址中?内核是否以某种特殊方式转换其地址?
谢谢!!