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.
工具/软件:TI-RTOS
您好!
我正在尝试在 IAR (7.11.1)中启用 PIC 的情况下构建项目。
在链接阶段、会出现一条错误消息:
错误[e117]:运行时模型不兼容。 模块 MSP-EXP430F5438-A2_pr430XS 指定"_pic"必须为"no"、但模块 ADC 具有"ropi"值。
我想知道如何将--ropi 选项添加到生成的模块 MSP-EXP430F5438-A2_pr430XS?
xdctool 版本:xdctools_3_32_00_06。
tirtos 版本:tirtos_msp43x_2_20_00_06
提前感谢。
艾伦
您好、Allen、
您可能会发现在 《适用于德州仪器 MSP430微控制器的 IAR C/C++编译器参考指南》中搜索"_pic"会有所帮助。 对于运行时模型属性"__pic",您可以为该值指定"ropi"或"no"。
此外、我找到了另一个相关线程、其中 Debug 与 Release 配置会影响此行为。 据 Anders 说、启用"ropi"使代码更难读取。
此致、
James
MSP 客户应用
谢谢 Sean、
昨天、我尝试通过修改编译配置文件(BIOS.Bld 和 drivers.Bld)来重建 TI-RTOS。
VAR ccOpts ={
…
"IAR.targets.MSP430.MSP430X_small":"-ropi", //-ropi 已添加
…
};
但是、编译会停止、并显示以下一些错误消息。 似乎不支持编译器选项关键字"--ropi"、"__pic"或"__ropi"。
在这两个.bld 文件中添加编译器选项是否正确? 如果是、关键字是什么??
非常感谢。
艾伦
您好 Sean、
感谢您的反馈。
1) 1)对于您的第一个重建 driverlib/驱动程序的建议、我已成功地使用--ropi 选项重建 BIOS.o、方法是在.cfg 文件中添加此编译器选项。
BIOS.libType = BIOS.LibType_Custom;
BIOS.customCCOpts +="-ropi";
但是、另一个文件 xxx_pr430Xs.or430XS (位于文件夹 xxx\configPkg\package\cfg 中)仍然未启用"ropi"。
这个文件似乎是自动生成的、我们如何也可以将"--ropi"添加到这个文件中?
2) 2)如何将文件(driverlib 和驱动程序文件)直接添加到项目中?
谢谢
艾伦
艾伦
到目前为止、我还不幸运地使用该选项重建这些库、您是否尝试将"-ropi"添加到此文件的"配置文件"部分:?
C:\ti_tirtos_msp43x_2_20_00_06\products\BIOS_6_46_00_23\packages/IAR\targets\MSP430\MSP430X_small.XDC
但是、如果我们将源文件/头文件直接添加到您的项目中、我们可能完全不需要这些库。
要添加这些文件、您必须知道您的应用程序使用的驱动程序以及这些驱动程序使用的 driverlib 文件、并将它们添加到您的 IAR 项目中。 然后、这些文件将使用项目的编译标志在本地编译、因此在链接时不需要库。
谢谢、
肖恩
您好 Sean、
谢谢、我刚刚尝试在文件夹 C:\ti_tirtos_msp43x_2_20_00_06\products\BIOS_6_46_00_23\packages\IAR\Targets\MSP430\中的文件 MSP430X_small.XDC 中添加"-ropi"选项。
/*!
*==== CC ====
*用于将 C/C++源文件编译为目标文件的命令
*
*默认值:
*@p (dlist)
*-`- e`
*启用编译器扩展、以便可以获取段
*以 C 表示的起始地址、通过:
*@p (代码)
*#pragma 段="CSTACK"
* isrStack =__secte_begin ("CSTACACK");
*@p
*-`-内核=430X`
* MSP430X 架构
*-`- data_model`
*用于 MSP430X 架构的小型数据模型
*-`- save_reg20`
*所有的20个寄存器位都保留在所有中断函数中
*@p
*
覆盖 readonly config 命令 cc ={
CMD:"icc430"、
选项:"-e --core=430X --data_model=small --save_reg20 --ropi"
};
但是构建日志仍然显示如下:
"ERROR[e117]:不兼容的运行时模型。 模块 MSP-EXP430F5438-A2_pr430XS 指定"_pic"必须为"no"、但模块 ADC 具有"ropi"值
"
我没有机会将库文件直接添加到项目中、您是否成功尝试了此方法?
您好 Sean、
链接中、该链接显示"没有 XDCtools、就无法使用 SYS/BIOS。 要替换 XDCtools、您需要使用另一个工具来读取 CFG 脚本、然后生成与 SYS/BIOS 库和应用程序编译和链接的源文件。 我不知道任何这样的工具。"
https://e2e.ti.com/support/embedded/tirtos/f/355/t/189232?DSP-SYS-BIOS-without-using-the-XDC
那么、在您看来、如果没有配置文件和 XDCTool、我们如何才能使用 BIOS 和库呢?
谢谢
艾伦
您好、Allen、
再次感谢您的耐心等待。 只是快速状态更新。 在与更熟悉 XDCtools 的工程师进行一些调试后、我们确定 IAR XDC 工具无法正确传递标志、并且缺少用于指定自定义配置%ld 文件的选项。 覆盖 XDC 目标也是不够的、除非在我们的末尾重新构建了该封装 我们正在探讨此问题的替代解决方案、希望下周初我能为您带来更好的消息。
谢谢、
肖恩
谢谢 Sean、
我将在接下来的几天内尝试您的解决方案、并将让您了解其工作原理。
对于您最后的建议、"通常使用一个小应用程序来编译内核、该小应用程序会跳转到独立于位置的单独代码应用程序"、如果我理解正确、那么该小应用程序会启用 RTOS、而支持独立代码的其他应用程序代码将不会使用 RTOS?
我是否理解正确?
谢谢
艾伦
您好、Allen、
不用担心、很高兴听到您找到了解决方案。
因此、如果我理解正确、您希望 TIRTOS 应用程序为 PIC、以便无论您放置在何处、都可以直接跳转到新的 FW? 这是一个有趣的用例、我相信大多数引导加载程序会像现在一样在固定位置覆盖旧应用程序。 尽管在理论上、您可以将应用程序放置在其他位置、前提是您提前为该位置编译应用程序。
遗憾的是、我认为内核不支持 PIC、因为这可能需要重写大部分内容、甚至重新构建。 我还无法找到支持 PIC (至少显式)甚至共享库的竞争 RTOS 解决方案、这正是 PIC 的常见原因。
无论如何、感谢您再次与我们联系、很抱歉我们没有您想要的功能。 祝您好运!
肖恩