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.

[参考译文] CCS/TM4C123GH6PM:GPIOPinConfigure 与 ROM_GPIOPinConfigure

Guru**** 2484615 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/732806/ccs-tm4c123gh6pm-gpiopinconfigure-vs-rom_gpiopinconfigure

器件型号:TM4C123GH6PM

工具/软件:Code Composer Studio

您好!

我正在使用 TM4C123G Launchpad。

在在线示例中、有时我看到 GPIOPinConfigure 函数正在使用、而在另一个时间我看到 ROM_GPIOPinConfigure。

两者之间的区别是什么? 何时应使用一个而不是另一个?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我要将此主题移至器件论坛。 那里的专家可以为您提供最好的帮助。

    谢谢
    Ki
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    通常、这些函数会执行相同的操作。 调用"GPIOPinConfigure()"时,该函数的代码将包含在程序中并驻留在闪存中。 调用"ROM_GPIOPinConfigure()"时,程序会跳转到 ROM 存储器中的某个例程,因此它不占用闪存空间。 使用基于 ROM 的函数的缺点是、如果基于 ROM 的函数中存在错误、则无法使用新版本的库来修复。 因此、您可以包含头文件"rom.h"和"rom_map.h"并使用前缀"map_"。 如果最新版本的 TivaWare 的头文件与最新版本匹配、则它将转换为基于 ROM_based 的函数、否则它将转换为该库中基于闪存的函数。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢、
    所以一般建议是如果使用 ROM_后缀函数,除非有错误?
    此外、您会说:"通常、函数会执行相同的操作"。 如果它们不存在,是否有例外?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果闪存空间是一个问题、建议使用"map_"前缀。 这将调用 ROM 版本、除非在该版本中发现错误、并且 TivaWare 库中提供了更新版本的函数。 在这种情况下、ROM 和库版本不同。

    当您开始开发代码时、这实际上不是问题、因为如果发现 ROM 中的代码包含错误、函数的 ROM_version 将不会在最新版本的 TivaWare 库中定义。 不同之处在于、我们发布了更新后的库、而您使用新库重建代码。 如果使用 ROM_PREFIX 并且弃用了该函数的 ROM 版本、则会出现链接错误。 如果您使用了 MAP_前缀、头文件将自动使链接器引入库版本。 也就是说、使用"ROM_"或"MAP_"前缀将最大限度地减少程序所需的闪存容量。 如果您希望在链接更新的库版本时收到错误通知、而函数已更改或未更改、则可以选择此选项。