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.

[参考译文] TMS320F28388D:"CCS Expressions"窗口显示无效值(long)并进行持续刷新

Guru**** 657930 points
Other Parts Discussed in Thread: TMDSCNCD28388D
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1306205/tms320f28388d-ccs-expressions-window-show-invalid-value-long-with-continuous-refresh

器件型号:TMS320F28388D
主题中讨论的其他器件:TMDSCNCD28388D

您好、专家

我有一个关于 CCS ( 版本: 11.2.0.00007 )的问题。

我使用"CCS Expressions"窗口通过持续刷新=on 来监控 SDFM 输出数据(32位)。  

如下所示

SDFM 的输入(sdfm21_in_s32g)约为零(从-100至+100)。

但在表达式窗口中、有时会显示 sdfm21_in_s32g 约为+655xx /- 655xx。

我将 BP 设置为低于、但未命中。  

更改阈值时、它始终

这意味着 BP 工作正常,但表达式窗口显示的数据不正确?

CCS 的这种行为意味着表达式窗口在连续 refresh=on 时会出现问题。

它不支持连续刷新=on 的32位值。

当输出值 从- 4更改为+ 4时,sdfm21_in_s32g 将从下面变为。

0xFFFFF_FFFC

0x0000_00004

如果 未更改较低的16位、则  sdfm21_in_s32g 为0x0000_FFFC (=65532)。

我认为表达式窗口中的一个32位值会以16位数据大小的步长进行更新。

 

当输出值 从+ 4更改为- 4时,sdfm21_in_s32g 将从下面变为。

0x0000_00004

0xFFFFF_FFFC

如果  未更改较低的16位、则  sdfm21_in_s32g 为0xFFFFF_0004 (=-65532)。

此致、

秀彦

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Kaya-San,

    它不支持连续刷新=on 的32位值。

    您可能会观察到以下文章中所述的问题:

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1250555/tms320f280039c-variables-cannot-be-updated-in-the-expression-and-variables-window/4752885#4752885

    谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ki-San:

    感谢您的信息。

    这是 https://sir.ext.ti.com/jira/browse/EXT_EP-10722上的一个已知问题。

    启用持续刷新后、"CCS Expressions"窗口有时会显示无效值(32位)。

    是不是啊?

    因为 CCS/JTAG 接口扫描1字数据( C2000系列中的16位数据)。

    长数据从-4更改为+4

    0xFFFFFF_FFFC (=-4)-> 0x0000_00004 (+4)

    16位(小端字节序)

    地址: N、N+1

    记忆: FFFC, FFFF

    序列  

    1) 1) CCS 通过"Address=N"读取16位数据

     -> CCS 获得"0xFFFC"

    2) 2) C28388D (DSP)/SW 从 0xFFFFFF_FFFC (=-4)->  0x0000_00004 (+4)更新一个值

    3) 3) CCS 通过"Address=N+1"读取16位数据

     -> CCS 获得"0x0004"

    4)"Expressions"窗口显示以下值

      0x0000_FFFC (=- 65532)

    W/a (A): 您已经提供了以下选项。

    W/A (B):持续刷新已关闭。

    此致、

    秀彦

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Kaya-San,

    启用持续刷新后、"CCS Expressions"窗口有时会显示无效值(32位)。

    是不是啊?

    [/报价]

    没错。 这是因为 GEL 存储器映射 通常指定对存储器的16位访问、因此调试器需要进行两次16位访问才能读取32位值。 连续刷新有时会在此过程中间刷新"Expressions"视图、以便仅访问32位值的一半、显示无效值。

    权变措施是更新 GEL 存储器映射以指定32位访问、如针对 https://sir.ext.ti.com/jira/browse/EXT_EP-10722的权变措施中所述。

    "C2000 GEL 文件可以更改为使用 AS4解决此问题。"

    W/a (A): 您已经提供了以下选项。

    W/A (B):持续刷新已关闭。

    [/报价]

    如果您更改 GEL 存储器映射、则无需执行此操作。

    谢谢!

    [/quote]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ki-San:

    感谢您的答复。

    >如果您更改 GEL 内存映射,则不需要执行此操作。

    "C2000 GEL 文件可以更改为使用 AS4解决此问题。"

    我将更改 GEL 内存映射以解决此问题。

    您能告诉我如何更改它吗?

    1)哪个 GEL 文件要更改?

    C:\ti\ccs1120\ccs\ccs_base\emulation\gel\

    f28388d_cpu1.gel

    我的测试板是 TMDSCNCD28388D—适用于 C2000 MCU controlCARD 的 F28388D 评估模块

    CCS v11.2

    CPU1上的软件运行

    2)如何更改?

    全局变量位于 LS4上

     GEL_MapAddStr (0x0000A000、0、0x800、"R|W|AS2"、0);/* LS4 RAM (带奇偶校验)(4KB)*/

    ->

     GEL_MapAddStr (0x0000A000、0、0x800、"R|W|AS4"、0);/* LS4 RAM (带奇偶校验)(4KB)*/

    您能告诉我们应用 AS4而不是 AS2的缺点是什么 吗?

     

    此致、

    秀彦

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Kaya-San,

    1)要更改哪个 GEL 文件?

    检查目标配置文件并查看正在使用哪些 GEL 文件:

    https://software-dl.ti.com/ccs/esd/documents/users_guide/gel/targetconfig.html#adding-gel-files-to-a-target-configuration

    2)如何更改?

    全局变量位于 LS4上

     GEL_MapAddStr (0x0000A000、0、0x800、"R|W|AS2"、0);/* LS4 RAM (带奇偶校验)(4KB)*/

    ->

     GEL_MapAddStr (0x0000A000、0、0x800、"R|W|AS4"、0);/* LS4 RAM (带奇偶校验)(4KB)*/

    [/报价]

    是的、这看起来是正确的。

    ,您能否告诉我们应用 AS4而不是 AS2时有何缺点?

    如果支持32位内存访问(在本例中是这样)、则不会有缺点。

    谢谢!

    [/quote]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Ki-San、

    感谢您的回答。

    此问题已得到解决。

    我更改了下面的文件。 AS2 ->数据存储器映射中的 AS4  

    C:\ti\ccs1120\ccs\ccs_base\emulation\gel\

    f28388d_cpu1.gel

    (我之前的更改不正确。 它用于*程序存储器映射*/)

    /*数据存储器映射*/

    ……

    GEL_MapAddStr (0x0000A000、1、0x800、"R|W|AS4"、0);/* LS4 RAM (带奇偶校验)(4KB)*/

    >如果支持32位内存访问(在这种情况下是这样),则没有缺点。

    如果是、我希望"AS4"将是此处理器的默认设置。

    此致、

    秀彦