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/MSP432P4111:如何将 MSP432P401R 的示例项目迁移到 MSP432P4111?

Guru**** 2619255 points

Other Parts Discussed in Thread: BOOSTXL-K350QVG-S1

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/676980/ccs-msp432p4111-how-to-migrate-example-projects-of-msp432p401r-to-msp432p4111

器件型号:MSP432P4111

工具/软件:Code Composer Studio

尊敬的所有人:

我有一个 MSP-EXP432P4111 LaunchPad、一个 BOOSTXXL-K350QVG 板和一个教育版 BoosterPack II、因此我想尝试使用这些示例项目。 但示例项目是为 MSP-EXP432P401R LaunchPad 设计的。  我想知道如何将 P401R 的原始示例项目迁移到 P4111? 我可以通过更改某些项目配置来实现这一点吗?  谢谢你。

xview。

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

    1.看一下这两种器件的数据表-它们有很大不同;
    2.查看您的代码库,了解它与硬件的紧密耦合。 一段编写良好的代码会有一个中间层来处理特定于硬件的东西、因此用户代码应该主要与硬件无关。

    一段编写不当的代码会在其中包含特定于硬件的内容、因此无法进行移植。 在这些情况下、请查看代码的意图和逻辑、然后将该意图和逻辑移植到新芯片。 它通常要快得多。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Sunglin、您好!

    您使用的是基于 RTOS 的工程还是非基于 RTOS 的工程? 您是否还在使用 SimpleLink SDK、如果有、该 SDK 的哪个版本?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Amit、您好!

    我将非 RTOS 示例项目与 simplelink_msp432p4_sdk_2_10_00_14搭配使用。 您是否介意看一看示例项目 boostxl_edumki_microphonefft_msp432p401r_MSP_EXP432P401R_nortos_ccs?

    我尝试将芯片从 MSP432P401R 更改为 MSP432P4111、并选择 msp432p4111.cmd 作为链接器命令文件、但它不起作用。

    您是否有任何简单的方法来实现此目的?

    谢谢你。

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

    将非 RTOS 工程从 MSP432P401R 迁移到 MSP432P4111器件时、除了对器件类型和链接器 cmd 文件进行更改外、还需要进行以下更改。

    1.将启动文件从 startup_msp432p401r_ccs.c 更改为 startup_msp432p4111_ccs.c
    2.将启动文件从 system_msp432p401r.c 更改为 system_msp432p4111.c
    3.在“项目属性”中,将预定义符号更改为_MSP432P4111_and DeviceFamily_MSP432P4x1xI
    4.在 Project Properties 中、将 ARM Linker->文件搜索路径包含库从 ti/drivers/lib/drivers_msp432p401x.aem4f 更改为 ti/drivers/lib/drivers_msp432p4x1xi.aem4f

    您可以尝试更改并查看它是否起作用。 我们通常鼓励使用 TI 驱动程序进行迁移。 另请注意、高温下 P4111器件上存在最大 SMCLK 限制。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Amit、您好!

    我已按照您的说明将示例项目第1步更改为第4步、但似乎缺少一些内容。  编译后的错误如下所示。 我想有些头文件缺少链接。

    Sunglin。

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

    我将原始工程名称重命名为其他名称、然后缺少某些定义变量的链接。 换句话说、当我双击某些变量时、它永远不会直接打开其头文件。 您是否想在 CCS 中尝试此示例?

    此致、

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

    对于 LCD 驱动程序中的错误、您需要将寄存器更改为 CMSIS 访问方式。 例如、UCB0TXBUF 必须更改为 EUSCI_B0->TXBUF

    至于 main.c、闪存头文件为 flash_a.h;因此 API 将是

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

    Amit、您好!

    它现在可以工作了。 非常感谢。   

    Sunglin。

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

    我对你的答复还有一个问题。 在您的部分回复中、您说:"另请注意、高温下 P4111器件上存在最大 SMCLK 限制。" 这是什么意思?

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

    工作温度高达105°C 的高温器件的最大 CPU 时钟为24MHz。 在85°C 环境温度下、最高可达48MHz。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Amit、您好!

    85°C 足以满足我的应用需求。 谢谢你。

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

    我遇到了一种非常奇怪的情况、即当我将原始工程名称重命名为其他名称时、定义变量和函数的链接会丢失。 换句话说、当我双击变量或函数时、它绝不会直接打开其头文件。 您知道这种情况的原因吗? 您是否想在 CCS 中尝试此操作?

    此致、

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

    是的、我看到这种情况发生了。 但是、在手动清理 Debug 目录中的任何.d 文件并进行一些清理和重建后、它开始工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Amit、您好!

    为什么项目属性的相同更改不适用于其他示例项目? 例如、"BOOSTXL-K350QVG-S1_GrlibExample_MSP432P401R。"

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

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

    我清理了项目并重建了它、但它仍然有错误。
    有许多未定义的标识符。 附加了所有错误消息的部分。

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

    Amit、您好!

    抱歉、我忘记了附加的错误消息。

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

    它似乎没有采用正确的定义。 如前所述、MSP432P4111器件使用 flash_a.c/.h

    应用程序应调用正确的 API 和正确的参数、这是您需要执行的操作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Amit、您好!

    我将 flash_a.h 和 flash_a.c 复制到工程中、但它仍然显示许多错误消息。 您是否想告诉我如何修改链接到 flash_a.h/c 的工程配置?

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

    参数给出错误的 API 不正确。 API 在 flash_a.c/.h 中具有等效值、需要与正确的参数一起使用。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Amit、您好!

    我复制 flash_a.x 和 sysctl_a.x 文件以分别替换 flash.x 和 sysctl.x。  一些定义变量也已修改为正确的变量。 但仍会收到以下列出的一些错误消息。 您知道如何解决此问题吗?

    Sunglin。

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

    我将所有 SYSCTL_xxxxxxx 函数更改为 SYSCTL_A_xxxxxxx、它现在可以工作。 我只需按照您之前回复的指示操作。 谢谢你。

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

    如果项目现在运行正常、我们可以关闭该帖子吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Amit、您好!

    感谢你的帮助。 我已标记问题已解决。 可以关闭开机自检。

    Sunglin。