主题中讨论的其他器件: MSP430FR4133、 MSP430WARE
工具/软件:Code Composer Studio
#include "rom_map_driverlib.h"
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.
工具/软件:Code Composer Studio
您好 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、
我想总结一下为成功构建空 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