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.

[参考译文] 编译器/TM4C123GH6PM:默认为其他函数的弱函数声明

Guru**** 2587365 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/607563/compiler-tm4c123gh6pm-weak-function-declarations-defaulting-to-an-other-function

器件型号:TM4C123GH6PM

工具/软件:TI C/C++编译器

我对 TI/ARM 编译器的 WEAK pragma 有疑问(我使用版本16.9.x)。 

下面的代码片段来自一个项目、其中我使用 GCC 作为 Cortex M3 MCU (非 TI MCU)的编译器。
它来自该项目的启动文件、并为每个中断矢量声明一个弱函数原型
并使用该 pragma 默认为 Default_Handler。
#define weak __attribute__((weak)
void weak weak weak weak weak TIMER0_IRQHandler (void);


__attribute__(used、section (".ISR_vector")) void (* const g_pfnVectors [])(void)={
TIMER0_IRQHandler、/*!< 1:TIMER0_TIMER0_DIRECTPLITECTOR


=#TIMER0_DIRECTPLK} 



在 TI ARM 编译器手册中、我找不到有关如何使用的任何信息
弱函数原型默认为其他函数。

是否有方法在 TI 编译器中执行此操作?

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

    [引用 user="Jesse de Waard"] TI 编译器中是否有方法可以执行此操作?

    不幸的是、不  TI 编译器支持#pragma weak。  它与 weak 函数属性相同。  GCC #pragma weak 提供了一个称为弱别名的附加功能,您可以在此处使用它...

    [引用用户="Jesse de Waard"]

    #pragma WEAK TIMER0_IRQHandler = Default_Handler 

    [/报价]

    TI 编译器不支持该功能。

    谢谢、此致、

    乔治