Other Parts Discussed in Thread: C2000WARE
主题中讨论的其他器件:C2000WARE
工具/软件:Code Composer Studio
当通过板载 XDS100调试 我们的 LaunchXL-F2379D 时、我们无法看到与硬件外设关联的寄存器、尽管可以看到数据指针指向要执行此操作的存储器中的正确地址。 这仅在我们使用 CAN 的实现中发生、并且也与该模块隔离。 在 SCI 和 CPU 定时器等其他外设上执行类似的操作会产生预期的行为。 但是、对于 CAN 寄存器集、不仅在调试器视图中读取不可用(如下图所示、在最低级别读取指针"m_Reg "会返回错误)、 我们似乎也无法从编译的指令集更新寄存器、因为我们从寄存器窗口中实时观察它们。 当我们对上面提到的指针"m_Reg "进行直接写入时、这些值不会得到反映、因为它们应该在硬件寄存器中。 我还包含了我们的链接器命令文件。
尝试通过变量窗口查看寄存器是我们目前为止找到的最好线索。 展开数据指针,该指针指向寄存器,其包装程序类的名称是在告诉我们“内存映射阻止读取地址... "尽管看指针本身,我们看到它确实指向它所指的位置。 CAN 寄存器部分与 LOCATION 和 FUNCTION 中的其他外设分开、因此我认为我们缺少一些规则或语句、这些规则或语句会配置已编译的代码或调试器以正确读取它们。
此处定义的存储器段映射到此微处理器的正确位置、我们的源代码使用"#pragma DATA_SECTION ()"引用这些段。 我已包含链接器文件和寄存器定义文件、它们是提供的默认 C2000Ware 版本、并进行了一些修改。 我无法提供源代码、但如果有任何其他形式的数据会有所帮助、我很乐意提供这些数据。
e2e.ti.com/.../2837xD_5F00_FLASH_5F00_lnk_5F00_cpu1_5F00_cmd.txte2e.ti.com/.../Can_5F00_Regs_5F00_hpp.txt


