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/MSP430FR2512:ROM DriverLib 访问

Guru**** 2589300 points
Other Parts Discussed in Thread: MSP430FR2512, MSP430FR4133

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/856075/ccs-msp430fr2512-rom-driverlib-access

器件型号:MSP430FR2512
主题中讨论的其他器件: MSP430FR4133MSP430WARE

工具/软件:Code Composer Studio

我正在尝试为 MSP430FR2512开发一个程序、该程序利用片上可用的 ROM 驱动程序。
使用新安装的 CCS9.2版本、并按照"如何使用 MSP430 DriverLib ROM"指导说明中的指示、我重新创建了示例项目"adc_ex1_avccRef.c"、该项目默认为 MSP430FR4133的目标 CPU。
如建议的那样、我添加如下内容:-
#include "rom_driverlib.h"
#include "rom_map_driverlib.h"
编译失败、因为这两个文件都不存在。  
存在一个特定于器件的文件、虽然名为"rom_driverlib_fr2676.h"、但没有相应的 ROM_MAP_文件。
然后、我更改了项目属性以反映我选择的目标 MSP430FR2512、但由于未找到包含文件、构建再次失败。 但是、FR2676的同一 driverlib 文件仍然存在。
 
在我看来、ROM 相关头文件的生成可能会出现问题。  请帮助。  我不是 CCS 专家、很想听到我在某个地方犯了一个愚蠢的错误。
 
此致
Dick
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Dick、

    从头开始创建工程需要大量不同的内容、这些内容需要进行拉入和添加。

    我建议下载 CapTIvate 设计中心并进行安装。  它将位于您的 c:\ti\MSP 目录(Windows)中。

    如果您深入了解、您将找到一个目录"示例项目"。 在这里、您可以找到支持我们所有 EVM 的所有默认示例项目。

    我建议将其中一个项目导入到 CCS 中以查看目录结构、并将 CapTIvate 目录复制并粘贴到您的项目中、如果您要使用 I2C 或 UART、也请复制 driverlib 目录。

    接下来、打开示例工程属性、选择编译器选项并查看包含路径。 尽管 如此、我认为您真正需要的只是将 captivate.h 添加到您的文件中、以便引入所有相关的功能。

    您可以从一个示例项目开始、并去除您不需要的东西-如果我是您、我将以这种方式开始。

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

    你(们)好 Dennis

    感谢您迅速回来。  我不想从头开始创建项目。  您的后一项建议正是我试图做的-从 CCS 创建其中一个 CCS 示例项目-以普通的方式使用 MSP430Ware 驱动程序、从 Resource Explorer 向下钻取如下:-

    "Resource Explorer/MSP430Ware/Libraries/Driver Library/MSP430FR2xx/Example Projects"、然后选择一个通用 FR2xx4xx 项目。

    这样做会生成可构建的项目、但不会使用任何 ROM 代码。  

    但是、按照"Resource Explorer/MSP430Ware/Library/Driver Library/MSP430FR2xx/ROM Readme"中的 TI 说明将其中一个项目转换为使用片上 ROM 驱动程序(如果可用)不起作用、因为正确的 rom_driverlib.h (根据注释"将自动将您映射到您所使用器件的特定 ROM 头文件"、该文件不存在。  只有特定于器件的 driverlib 头文件、即使目标 CPU 已更改且工程已重建、也不会更改、因此即使编译正常、也不会工作。

    (我特别关注 FR2512和 ROM 驱动器、这不是因为芯片的电容式感应功能、而是因为我想将程序代码的 FRAM 用量降至最低)。

    让我失望的是"ROM Readme"注释中的指令似乎不起作用。

    Dick

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

    下面是 ROM_driverlib.h 中的内容

    基于 FR2512、编译器将引入 FR2633系列的 ROM 头文件、其中包括 FR2512。

    要访问 ROM 函数、必须使用 MAP_xxxx 或直接与函数的 ROM_xxxx 格式一起使用。  建议使用 MAP_xxx 格式、因为 rom_map_driverlib.h 头文件会选择相应的 ROM_xxxx 函数(如果存在)、否则在中会引入链接到程序空间的 FRAM 版本。

    MAP_EUSCI_B_I2C_initSlave();

    因此、只要您在 CCS 项目设置中声明了预定义符号__MSP430FR2512__、一切都应该正常。

    今天时间已经用完了、但明天我将与您再次联系。

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

    你(们)好 Dennis

    像 rom_driverlib.h 这样的头文件正是我所期望看到的、我也很想看到的!

    我刚刚使用以下命令创建了一个空的通用 MSP430Ware driverlib 项目:

    "Resource Explorer/MSP430Ware/Library/Driver Library/MSP430FR2xx/Example Projects/00EmptyProject/EmptyProject"、并将其导入到 CCS 中。

    这会创建一个空工程(基于 FR4133)、但该工程将构建正常。 我右键点击工程、选择"Properties"/"General/"Project"、然后将目标处理器设置为 MSPFR2512。 这为我提供了一个具有 FR2512正确链接文件的项目、现在看起来是这样的:-

    这也可以很干净地进行构建、但是深入研究项目中的 driverlib 可以看出:-

    也就是说、似乎没有我所期望的任何名为 rom_driverlib.h 的文件。

    现在、我转到 main.c、为 ROM 头文件添加两个 include、第39行和第40行、以及几行以检查是否设置了_MSP430FR2512__、因此看起来如下所示:-

    这无法编译-

     

    >>编译失败

    subdir_rules.mk:9:目标'main.obj'的配方失败

    "./main.c"、第39行:致命错误#1965:无法打开源文件"rom_driverlib.h"

    1在编译"./main.c"时检测到灾难性错误。

    编译已终止。

    现在我完全了解了 ROM 和 MAP_前缀对驱动程序例程本身的使用,但在这里,我似乎无法达到第一个基准。

    此致

    Dick

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

    你(们)好 Dennis

    经进一步调查、所涉及的 MSP430Ware 3.80.07.00示例项目文件在.projectspec 文件中包含错误、该文件中仅包含"rom_driverlib_fr2676.h"头文件的复制指令、并且缺少"rom_driverlib.h"、"rom_driverlib_fr235x.h"、"rom_driverlib_fr263x.h"、最重要的是"rom_driverlib_driverlib_fram_frmapp.h"所需的副本。

    更正.projectspec 文件后、CCS 将正确编译工程、尽管用户包含的两个头文件需要为/rom_headers 目录预先修复。

    快速浏览其他一些 MSP4320FR2xx_4xx 示例项目会发现它们都包含相同的错误!

    网上关于将基于 FR2xx_4xx ROM 的函数整合到 MSP430项目中的信息非常短缺、但我发现很难相信、以前没有人尝试过使用示例项目。  我真的建议有人提供一份有关该主题的全面指南、该指南不会隐藏在自述文件中、在搜索时可以轻松找到。

    Dick

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

    您好 Dick、

    很高兴听到您发现了根本原因。

    是的,我同意拥有一份全面的指南将是有益的。

    我将与 driverlib 软件开发团队分享您的意见。

    感谢您的想法、因为这是一种有助于 TI 改善用户体验的反馈。

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

    您好 Dick、

    只是想让你知道我们计划在年底之前发布一份应用手册,介绍如何使用 ROM 库,并提供一些基准信息:)感谢你指出这一点!  

    谢谢、

    Mitch

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

    您好 Dick、

    我想总结一下为成功构建空 ROM 驱动程序库项目所描述的步骤、供查看该线程的其他人查看:

    1.导航至空 diver lib 示例(我的默认路径为 C:\ti\msp430ware_3_80_07_00\driverlib\examples\MSP430FR2xx_4xx\00_EmptyProject)

    2.单击"ccs"文件夹并打开.projectspec 文件

    3.将以下内容添加到.projectspec 文件中

    
    
    

    4.将更新后的"emptyProject.projectspec"文件导入新的 CCS 项目

    5.在 main.c 中添加以下用户 include

    #include "rom_driverlib.h"
    #include "rom_map_driverlib.h" 

    6.导航至 Project > Properties > General 并选择所需的器件(在本例中为 MSP430FR2512)

    7.导航至 Project > Properties > Processor Options 并将代码内存模型和数据内存模型设置为"small"

    您应该成功构建项目。

    再次感谢您向我们指出这一点!

    Mitch

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

    你(们)好、米奇

    这看起来是正常工作的、但不是所有文件都应该完全相同的 ROM_HEADLES 子目录中才能保持一致?

    谢谢

    Dick

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

    您好 Dick、

    我认为您的观点是保持所有内容一致、但我根据 ROM 自述文件选择了文件位置:

    谢谢、

    Mitch

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

    你(们)好、米奇

    我知道您的来源。  不管怎样、对我来说一切都很好。

    Dick

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

    您好 Dick、

    看起来 Mitch 已经帮助您实现了这一发展。

    我假设您能够继续进行您的项目,因此我将把此问题标记为已解决。
    如果情况并非如此,请单击“这无法解决我的问题”按钮,并使用更多信息回复此主题。
    如果此主题锁定、请单击"提出相关问题"按钮、然后在新主题中描述您的问题的当前状态以及您可能需要帮助我们帮助解决您的问题的任何其他详细信息。