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.

[参考译文] TMS320F28379D:如何在调试时更改表达式

Guru**** 2540720 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1327700/tms320f28379d-how-to-change-the-expression-while-debugging

器件型号:TMS320F28379D

您好!

我正在考虑编写 python 脚本来通过 DSS 来操作 CSS。

我可以在调试时在表达式窗口中更改变量的值吗?    我找不到任何 API 来执行它。

谢谢你。

Miura。

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

    Miura-San,

    Unknown 说:
    我正在考虑用 python 脚本来通过 DSS 操作 CSS。

    您计划如何做到这一点? 您是否尝试使用下述技术从 DSS 启动 CCS IDE?

    https://software-dl.ti.com/ccs/esd/documents/dss_launching_ccs_from_dss.html

    请注意、以上功能只能通过 JavaScript 进行验证。

    [quote userid="595538" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1327700/tms320f28379d-how-to-change-the-expression-while-debugging 能否在调试时更改表达式窗口中变量的值?    我找不到任何 API 来执行它。

    您可以使用 DSS 存储器 API 将值写入变量的地址,如 memory.writeWord()。 请参阅 DSS API 文档。

    dss symbol.getAddress 可以返回全局变量等符号的地址。

    谢谢!

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

    Ki-San、

    谢谢你的答复。

    >您计划如何做到这一点?
    ➢我只想在表达式窗口中更改变量的值。 我不需要自动启动 CSS。

    现在我想我可以使用 DSS API "memory.writeWord()"来实现它,如您所说。
    而且该 API 可以在 python (Jython)中使用、对吗?

    很抱歉因为我缺乏理解而困扰你。

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

    Ki-San、

    我无法通过 DSS 启动调试会话。 但我仍然有一个问题。

    起初、我想读取结构的地址、我可以执行它。

    不过,我不能读一位议员的发言。

    您能告诉我在我的路上出了什么问题吗?

    代码对变量地址进行了淬火。

    有关查询结构成员地址的错误消息。

    谢谢你。

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

    三浦山

    和 API 可以在 python (Jython)中使用,是不是吗?

    可以、您可以使用 python 脚本来(通过 Jython)来调用 DSS API。 请注意、您只能通过 DSS 命令行执行此操作。

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

    三浦山

    然而我无法读取特定成员的地址。

    我认为您不能使用该 API 来获取结构成员的地址。

    不过、您可以使用不同的 API。 尝试:

    address = debugSession.expression.evaluate ("&gstr_DCDC_CPU2CLA.gf32_DCDC_BCM_Vo_ref")

    谢谢!

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

    Ki-San、

    感谢您的回复。

    我成功地读取了结构成员的地址、它的值。

    现在、我正在尝试更改结构成员的值、但它尚未起作用。

    我尝试了4个命令 bellow 连续。

    ------------------------------------------------------------------------------------------------------------------------

    1.data = debugSession.expression.evaluate ("gstr_DCDC_CPU2CLA.gf32_DCDC_BCM_Vo_ref")

       ➢结果:data=0x00

    2.address = debugSession.expression.evaluate ("&gstr_DCDC_CPU2CLA.gf32_DCDC_BCM_Vo_ref")

       ➢结果:地址= 0xC106

    3.debugSession.memory.writeWord(1、地址、10)

    4.data = debugSession.expression.evaluate ("gstr_DCDC_CPU2CLA.gf32_DCDC_BCM_Vo_ref")

       ➢结果:data=0x00

    ------------------------------------------------------------------------------------------------------------------------

     我预计序列4的结果将为0x0a (我写入的值)。 但事实并非如此。

    您能告诉我在我的路上出了什么问题吗?

    作为参考、我在尝试序列时附加了命令行。

    >>> data = debugSession.expression.evaluate("gstr_Dcdc_CPU2CLA.gf32_DCDC_BCM_Vo_ref")
    evaluate: ENTRY sExpression: gstr_Dcdc_CPU2CLA.gf32_DCDC_BCM_Vo_ref
    eval: Requesting evaluation of expression: "gstr_Dcdc_CPU2CLA.gf32_DCDC_BCM_Vo_ref"
    isConnected: ENTRY
    isConnected: Target is connected
    isConnected: RETURN true
    isHalted: ENTRY
    isHalted: Target is not halted
    isHalted: RETURN false
    waitUntil: ENTRY timeout: infinite
    onEvent: Evaluated expression: gstr_Dcdc_CPU2CLA.gf32_DCDC_BCM_Vo_ref
    waitUntil: RETURN
    evaluate: RETURN 0x0
    >>> address = debugSession.expression.evaluate("&gstr_Dcdc_CPU2CLA.gf32_DCDC_BCM_Vo_ref")
    evaluate: ENTRY sExpression: &gstr_Dcdc_CPU2CLA.gf32_DCDC_BCM_Vo_ref
    eval: Requesting evaluation of expression: "&gstr_Dcdc_CPU2CLA.gf32_DCDC_BCM_Vo_ref"
    isConnected: ENTRY
    isConnected: Target is connected
    isConnected: RETURN true
    isHalted: ENTRY
    isHalted: Target is not halted
    isHalted: RETURN false
    waitUntil: ENTRY timeout: infinite
    onEvent: Evaluated expression: &gstr_Dcdc_CPU2CLA.gf32_DCDC_BCM_Vo_ref
    waitUntil: RETURN
    evaluate: RETURN 0xc106
    >>> debugSession.memory.writeWord(1, address, 10)
    writeWord: ENTRY nPage: 1 nAddress: 0xc106 nValues: 0xa
    getPageCount: ENTRY
    getPageCount: RETURN 4
    writeWord: Calculating size of a Word
    writeWord: Word Size: 16 bits
    writeData: ENTRY nPage: 1 nAddress: 0xc106 nValues: 0xa nTypeSize: 16
    writeData: Validating page
    writeData: Validating start address
    writeData: Getting memory object from debug session
    writeData: Setting start address: 0xc106
    writeData: Setting buffer length: 1
    writeData: Filling buffer
    writeData: Writing 1 value(s) to target
    writeData: Requesting memory write of 1 value(s) to target
    waitUntil: ENTRY timeout: infinite
    onEvent: Memory request complete
    waitUntil: RETURN
    writeData: RETURN
    writeWord: RETURN
    >>> data = debugSession.expression.evaluate("gstr_Dcdc_CPU2CLA.gf32_DCDC_BCM_Vo_ref")
    evaluate: ENTRY sExpression: gstr_Dcdc_CPU2CLA.gf32_DCDC_BCM_Vo_ref
    eval: Requesting evaluation of expression: "gstr_Dcdc_CPU2CLA.gf32_DCDC_BCM_Vo_ref"
    isConnected: ENTRY
    isConnected: Target is connected
    isConnected: RETURN true
    isHalted: ENTRY
    isHalted: Target is not halted
    isHalted: RETURN false
    waitUntil: ENTRY timeout: infinite
    onEvent: Evaluated expression: gstr_Dcdc_CPU2CLA.gf32_DCDC_BCM_Vo_ref
    waitUntil: RETURN
    evaluate: RETURN 0x0

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

    Ki-San、

    我解决了上述问题。
    我没有注意到 DSS API 文档显示 writeWord()支持整数。

    我可以更改整数变量的值。

    现在,我的问题都被清除了。

    非常感谢您的帮助。