对于基于 C2000的工程、我将一些 C2000Ware 文件夹作为链接文件夹添加到工程中(即与 device_support、driverlib 和 flash_API 中的芯片相对应的文件夹)。
这些文件夹还包含不应成为编译一部分的文件、例如 examples/directory、特定于该芯片 ARM 内核的文件(不会在 C2000内核上编译)、或者已经复制到工程目录中进行修改的文件(最重要的是中断表)。
因此、这些文件已设置为从编译中排除。 遗憾的是、CCS 通常会"忘记" exclude 设置、从而导致大量构建错误。 这不仅是 CCS 内部的瞬态行为、而且在.cproject 文件中也很明显、其中 CCS 从以下位置进行了更改:
至:
到 C2000Ware_3_03_00_00目录的确切文件夹映射如下(Project => C2000Ware):
device_support/=> device_support/f2838x/
driverlib/=> driverlib/f2838x/driverlib/
我目前正在使用 CCS 版本12.0.00009、在设置链接文件夹的过程中从 CCS 10.2.0.00009升级了工程。 两个版本都存在此问题、但在10.2版中比12.0版中更常见。
它也不能100%重现。 是否发生此问题似乎取决于启动 CCS 后等待编译工程的时间。 等待时间过短或过长似乎会触发错误、而如果 CCS 在启动后空闲几秒钟后启动编译、则正常工作。 CCS 12.0命令行编译不受影响、按预期工作、而 CCS 10.2命令行编译不起作用(尽管我不确定它是否完全相同)。
我发现两个(名称相同)旧线程可能会出现相同的问题、影响 CCS 8.2和9.0、其中包括我无法访问的三个 BugTracker 引用(CCSIDE-3439、CCSIDE-3528、CCSIDE-3529):
CCS/TM4C129CNCPDT:CCSv8.2和"exclude from build"不再有效- Code Composer Studio 论坛
CCS/TM4C129CNCPDT:CCSv8.2和"exclude from build"不再有效- Code Composer Studio 论坛
两个线程中提到的目录说明符模式设置不能解决当前的问题。