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.

[参考译文] TMS570LC4357:dmmPORT 的 HALCoGen 寄存器地址错误

Guru**** 2477705 points
Other Parts Discussed in Thread: HALCOGEN, TMS570LC4357

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/686181/tms570lc4357-halcogen-register-address-is-wrong-for-dmmport

器件型号:TMS570LC4357
主题中讨论的其他器件:HALCOGEN

HALCoGen 版本:4.07.00

部件号:TNMS570LC4357ZWT

HALCoGen 生成一个文件 HL_reg_dmm.h、该文件具有以下#define:

/**@def dmmPORT
*@简要 DMM 端口寄存器指针
*
GIO 驱动程序用于访问 DMM I/O 端口的指针
*(使用 GIO 驱动程序访问端口引脚)。
//
#define dmmPORT ((gioPORT_t *) 0xFFFFFF738U)

此值不正确。  它应该是0xFFFFFF770U。

-thx

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

    您好!

    刚刚检查了通过 HALCoGen 4.07.00生成的 HL_reg_dmm.h:dmmPORT 的地址为0xFFFFFF770、这是正确的。

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

    QJ Wang、您好!

    感谢您尝试重现我们的结果。 如果我启动全新的 halcogen 项目、我将获得与您相同的结果。 但是、如果我使用我们的现有工程、手动删除 HL_reg_dmm.h 文件、然后使用 halcogen 重新创建文件、我将继续获取不正确的值、如我之前所述。

    我认为这是因为我们的.DIL 项目文件中包含以下行:

    driver.DMM.VAR.DMM_base_port.value=0xFFFFFF738

    为什么这一行会出现在我们的.DIL 文件中? 我们不会手动编辑.DIL 文件。 我在 halcogen GUI 中看不到任何地方可以为 DMM 输入任何类型的端口值。

    我们已经更新了几次 halcogen 版本、同时继续使用我们的.DIL 文件。

    -thx

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

    很抱歉、出现在.dil 文件中。 我将向我们的 SW 团队强调这一现象。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已经了解了一个示例 TMS570LC4357项目:

    processors.wiki.ti.com/.../File:Proj1_launchxl2_rm57l_570lc43.zip

    此项目中有一个 HALCoGen .dIL 文件、该文件中使用了无效地址0xFFFFF738的无效行。

    (该示例项目中的 HL_reg_dmm.h 文件也使用 该无效值进行了#define。)

    这可能是无效行进入我们自己的.DIL 文件的原因;我们可能从 TI 示例项目(链接中的项目或假设的其他 TI 示例项目)开始。

    或者、我们也许从零开始;但是、无论原因是什么、导致 TI 示例项目具有无效配置行、也会导致我们单独获得无效配置行。

    无论是哪种方式、它们都至少有三个问题:
    1) 1)导致无效配置行的初始原因的任何因素
    2) 2) HALCoGen 未检测和处理无效的配置行
    3) 3) TI 正在提供至少一个且可能有许多示例项目、这些项目至少具有一个无效的配置行

    -thx
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢。 我想这是由 HALCoGen 4.04中的软件错误引起的、该错误已在更高版本 HALCoGen 中修复。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当您说它已在 HALCoGen 的后续版本中修复时、我认为您有一个特定的想法。 我相信我们在这个项目上使用的最早版本 HALCoGen 是4.06.01或4.06.00。 无论如何、我们当前使用的是4.07.00、它没有解决问题。

    根据推测、.dIL 文件中的错误行是"毒丸"的一部分、它会永久破坏我们的 HALCoGen 生成的代码、并且 HALCoGen 的任何版本都不会执行任何操作来纠正甚至只是检测这一点。 我假设我们从您的 TMS570LC4357 MCU Launchpad 项目中启动我们的项目中获得了这一"药丸"。

    在这个阶段、它不会影响我们的团队、但我鼓励您在 HALCoGen 中实施更广泛的修复、或者修复您的示例项目(您针对其他 Hercules MCU 的项目是否也包含此药丸?)、或者两者兼而有之。

    无论如何、您能否为我们提供正确的项目修复方法的明确指导?

    我们是否应该手动编辑.DIL 文件以更正地址? 手动编辑.DIL 文件是否会产生任何后果? 我们应该查找并修复的.dil 文件中是否存在任何其他"毒丸"或其他问题?

    或者、我们是否应该从头开始、生成新的 HALCoGen 项目、然后手动浏览 HALCoGen GUI 中的每个选项卡、每个复选框以启用我们的配置?

    还是我们应该采取其他一些方法?

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

    您好!

    对于.DIL 的差异造成的不便、我深表歉意。

    我的机器上有 HALCoGen 4.06.01和4.07.00。 我刚用4.06.01创建了一个 HAL 项目、启用了所有模块、并将该项目保存为 HAL461_Orig.hcg 并生成了代码。 我用4.07.00打开了该项目、然后生成了代码并保存了该项目、而不进行任何更改(HAL461_470.hcg)。 我比较了两个.DIL 文件(HAL461_Orig.dIL 和 HAL461_470.DIL)、但没有看到差异。

    两个 DMM 头文件都具有正确的 GIO 端口地址。 我将擦干早期版本。

    e2e.ti.com/.../5086.HAL461_5F00_Orig.dile2e.ti.com/.../7571.HAL461_5F00_470.dil