TI中文支持网
TI专业的中文技术问题搜集分享网站

CCS10.1.0 中 watch expressions 中无法读取寄存器映射地址,显示Memory map prevented reading 0x00B4A@Program

使用CCS10.1进行仿真,芯片是280025C,使用C2000Ware 3_02_00_00  ,程序可以正常运行,在用watch Expressions时,出现如图的问题:

在watch寄存器对应的结构体时,出现Memory map prevented reading 0x00B4A@Program的错误,但观察Registers和Memory Browser时,可以看到寄存器对应的地址中是相应的数值的。

如果将Expressions中的结构体中“.”改为“_”,或者直接将Registers添加进Expressions中,可以正常观察。用户自定义部分的内存也可以正常观察。

我怀疑是Expressions错误识别我所添加的寄存器的数据类型,寄存器对应的应该是Data,从Memory Browser中也能看出这点,但Expressions在读取时,将它们视为Program,所以无法正确读取。但这点我不确定,会不会是我的CMD文件那里有问题,担心程序运行也会有问题。

Susan Yang:

请问您是使用的哪个例程?我会在测试后给您回复

user6444549:

回复 Susan Yang:

我使用的是自己的程序,用例程仿真没有出现这个问题,可以正常观察寄存器。

Susan Yang:

回复 user6444549:

那请问能否私信一下您的工程?我们来测试一下,谢谢

user6444549:

回复 Susan Yang:

不好意思,我这边有加密,不太方便。
有解决的思路吗?或者这个问题不影响程序运行

Susan Yang:

回复 user6444549:

您可以看一下GEL文件。该文件指定了板上存在的内存及其属性。在这种情况下,您尝试访问“program”页面上的0x00B4A等。有可能是GEL文件需要更新或者memory map中没有添加相应段或者是设置成为不可读

在调试会话中,可以通过转到“View”菜单并选择“Memory Map”来查看内存映射。在内存映射部分,您应该看到Program,Data和I / O页面的选项卡。

另外您可以参考下面的类似帖子

e2e.ti.com/…/935491
e2e.ti.com/…/522068

user6444549:

回复 Susan Yang:

您好,我查看了GEL文件,GEL文件中将寄存器的地址是分配到page Data部分,如图1,

我最终修改了f28002x_headers_nonbios.cmd文件,增加了Page 0和Page 1 的关键字,将寄存器分配的地址分配到了Page 1部分,也就是Data 部分。这是我参考了280049的headers_nonbios.cmd文件做的修改。修改后和修改前见下图。

现在可以从EXpressions中正常观察。但我不确定修改headers_nonbios.cmd文件是否会对程序运行造成影响。

另外我想了解一下GEL文件的作用,是只用在CCS调试仿真过程中进行内存的分配吗?Page 1和Page 0是否只是一种抽象的分配,只是告诉CCS这部分地址是Data类型还是Program类型,这么理解是否正确。

谢谢。

Susan Yang:

回复 user6444549:

很抱歉回复有些晚了。关于gel文件的作用,您可以看一下之前的分享

e2echina.ti.com/…/105278

以及 TI WIKI页面: processors.wiki.ti.com/…/GEL

赞(0)
未经允许不得转载:TI中文支持网 » CCS10.1.0 中 watch expressions 中无法读取寄存器映射地址,显示Memory map prevented reading 0x00B4A@Program
分享到: 更多 (0)