工具与软件:
您好!
我们正在为 cortex M4使用 gcc 编译器、并且遇到了问题。 我希望您可以在这里提供帮助。 以下函数缺失:"_set_interrupt_priority ()"。 是否在 TI 编译器中定义了这个? 您能否向我们发送该函数的实现?
此致、
Matthias
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.
工具与软件:
您好!
我们正在为 cortex M4使用 gcc 编译器、并且遇到了问题。 我希望您可以在这里提供帮助。 以下函数缺失:"_set_interrupt_priority ()"。 是否在 TI 编译器中定义了这个? 您能否向我们发送该函数的实现?
此致、
Matthias
您好、Matthias
似乎我们错过了针对该线程的寻址、我将其转发给我们的编译器团队、看看他们是否可以澄清 TI 编译器端可用的内容。 您为什么使用 gcc? 我认为您的应用不需要安全、在哪些情况下使用具有合规性支持包等的 TI CLANG 编译器会更好?
TI Arm 编译器(NOT. tiarmclang )支持名为的内在函数 _set_interrupt_priority . 如果您要移植使用此编译器构建的代码,那么您将看到...
缺少以下函数:"_set_interrupt_priority ()"
。 tiarmclang 编译器提供一个名为的头文件 ti_compatibility.h 可简化从 TI Arm 编译器到的代码移植 tiarmclang . 在该文件内有这个代码...
/******************************************************************************/ /* Set the interrupt priority */ /******************************************************************************/ #if __ARM_ARCH_PROFILE == 'M' && (__ARM_ARCH == 6 || __ARM_ARCH == 7) static __inline__ uint32_t __attribute__((always_inline)) _set_interrupt_priority(uint32_t x) { uint32_t res = 0; __asm volatile ("MRS %0, BASEPRI" : "=r" (res) : : ); __asm volatile ("MSR BASEPRI, %0" : : "r" (x) : ); return res; } #endif
请注意、此代码仅通过测试 tiarmclang . 要使其与 gcc Arm 编译器配合使用、可能需要进行一些更改。
谢谢。此致、
-George.