关于添加 #define _GNU_SOURCE

本文解决了一个在使用CPU亲和性接口时遇到的编译错误:'implicit declaration of function 'CPU_ZERO' [-Werror=implicit-function-declaration]'。通过在源文件中添加#define _GNU_SOURCE预处理指令,激活了GNU编译特性,成功解决了此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在使用CPU亲和性的相关接口时会报出

error:implicit declaration of function 'CPU_ZERO' [-Werror=implicit-function-declaration]

 

解决办法是文件中添加 #define _GNU_SOURCE从而打开一些编译特性

/* If _GNU_SOURCE was defined by the user, turn on all the other features.  */
#ifdef _GNU_SOURCE
# undef  _ISOC99_SOURCE
# define _ISOC99_SOURCE 1
# undef  _POSIX_SOURCE
# define _POSIX_SOURCE 1
# undef  _POSIX_C_SOURCE
# define _POSIX_C_SOURCE 200112L
# undef  _XOPEN_SOURCE
# define _XOPEN_SOURCE 600
# undef  _XOPEN_SOURCE_EXTENDED
# define _XOPEN_SOURCE_EXTENDED 1
# undef  _LARGEFILE64_SOURCE
# define _LARGEFILE64_SOURCE 1
# undef  _BSD_SOURCE
# define _BSD_SOURCE 1
# undef  _SVID_SOURCE
# define _SVID_SOURCE 1
# undef  _ATFILE_SOURCE
# define _ATFILE_SOURCE 1
#endif

 

#ifndef ti_msp_dl_config_h #define ti_msp_dl_config_h #define CONFIG_MSPM0G350X #define CONFIG_MSPM0G3507 #if defined(__ti_version__) || defined(__TI_COMPILER_VERSION__) #define SYSCONFIG_WEAK __attribute__((weak)) #elif defined(__IAR_SYSTEMS_ICC__) #define SYSCONFIG_WEAK __weak #elif defined(__GNUC__) #define SYSCONFIG_WEAK __attribute__((weak)) #endif #include <ti/devices/msp/msp.h> #include <ti/driverlib/driverlib.h> #include <ti/driverlib/m0p/dl_core.h> #ifdef __cplusplus extern "C" { #endif /* * ======== SYSCFG_DL_init ======== * Perform all required MSP DL initialization * * This function should be called once at a point before any use of * MSP DL. */ /* clang-format off */ #define POWER_STARTUP_DELAY (16) #define CPUCLK_FREQ 32000000 /* Defines for PWM_0 */ #define PWM_0_INST TIMA1 #define PWM_0_INST_IRQHandler TIMA1_IRQHandler #define PWM_0_INST_INT_IRQN (TIMA1_INT_IRQn) #define PWM_0_INST_CLK_FREQ 181818.18181818182 /* GPIO defines for channel 0 */ #define GPIO_PWM_0_C0_PORT GPIOA #define GPIO_PWM_0_C0_PIN DL_GPIO_PIN_28 #define GPIO_PWM_0_C0_IOMUX (IOMUX_PINCM3) #define GPIO_PWM_0_C0_IOMUX_FUNC IOMUX_PINCM3_PF_TIMA1_CCP0 #define GPIO_PWM_0_C0_IDX DL_TIMER_CC_0_INDEX /* Defines for TIMER_0 */ #define TIMER_0_INST (TIMA0) #define TIMER_0_INST_IRQHandler TIMA0_IRQHandler #define TIMER_0_INST_INT_IRQN (TIMA0_INT_IRQn) #define TIMER_0_INST_LOAD_VALUE (1U) /* Defines for UART_0 */ #define UART_0_INST UART0 #define UART_0_INST_FREQUENCY 32000000 #define UART_0_INST_IRQHandler UART0_IRQHandler #define UART_0_INST_INT_IRQN UART0_INT_IRQn #define GPIO_UART_0_RX_PORT GPIOA #define GPIO_UART_0_TX_PORT GPIOA #define GPIO_UART_0_RX_PIN DL_GPIO_PIN_11 #define GPIO_UART_0_TX_PIN DL_GPIO_PIN_10 #define GPIO_UART_0_IOMUX_RX (IOMUX_PINCM22) #define GPIO_UART_0_IOMUX_TX (IOMUX_PINCM21) #define GPIO_UART_0_IOMUX_RX_FUNC IOMUX_PINCM22_PF_UART0_RX #define GPIO_UART_0_IOMUX_TX_FUNC IOMUX_PINCM21_PF_UART0_TX #define UART_0_BAUD_RATE (115200) #define UART_0_IBRD_32_MHZ_115200_BAUD (17) #define UART_0_FBRD_32_MHZ_115200_BAUD (23) /* Defines for UART_1 */ #define UART_1_INST UART1 #define UART_1_INST_FREQUENCY 32000000 #define UART_1_INST_IRQHandler UART1_IRQHandler #define UART_1_INST_INT_IRQN UART1_INT_IRQn #define GPIO_UART_1_RX_PORT GPIOA #define GPIO_UART_1_TX_PORT GPIOA #define GPIO_UART_1_RX_PIN DL_GPIO_PIN_9 #define GPIO_UART_1_TX_PIN DL_GPIO_PIN_17 #define GPIO_UART_1_IOMUX_RX (IOMUX_PINCM20) #define GPIO_UART_1_IOMUX_TX (IOMUX_PINCM39) #define GPIO_UART_1_IOMUX_RX_FUNC IOMUX_PINCM20_PF_UART1_RX #define GPIO_UART_1_IOMUX_TX_FUNC IOMUX_PINCM39_PF_UART1_TX #define UART_1_BAUD_RATE (9600) #define UART_1_IBRD_32_MHZ_9600_BAUD (208) #define UART_1_FBRD_32_MHZ_9600_BAUD (21) /* Port definition for Pin Group GPIO_GRP_0 */ #define GPIO_GRP_0_PORT (GPIOB) /* Defines for PIN_0: GPIOB.13 with pinCMx 30 on package pin 1 */ #define GPIO_GRP_0_PIN_0_PIN (DL_GPIO_PIN_13) #define GPIO_GRP_0_PIN_0_IOMUX (IOMUX_PINCM30) /* Port definition for Pin Group GPIO_LEDS */ #define GPIO_LEDS_PORT (GPIOA) /* Defines for USER_LED_1: GPIOA.0 with pinCMx 1 on package pin 33 */ #define GPIO_LEDS_USER_LED_1_PIN (DL_GPIO_PIN_0) #define GPIO_LEDS_USER_LED_1_IOMUX (IOMUX_PINCM1) /* Defines for USER_TEST: GPIOA.15 with pinCMx 37 on package pin 8 */ #define GPIO_LEDS_USER_TEST_PIN (DL_GPIO_PIN_15) #define GPIO_LEDS_USER_TEST_IOMUX (IOMUX_PINCM37) /* Defines for USER_LED_2: GPIOA.16 with pinCMx 38 on package pin 9 */ // pins affected by this interrupt request:["USER_LED_2"] #define GPIO_LEDS_INT_IRQN (GPIOA_INT_IRQn) #define GPIO_LEDS_INT_IIDX (DL_INTERRUPT_GROUP1_IIDX_GPIOA) #define GPIO_LEDS_USER_LED_2_IIDX (DL_GPIO_IIDX_DIO16) #define GPIO_LEDS_USER_LED_2_PIN (DL_GPIO_PIN_16) #define GPIO_LEDS_USER_LED_2_IOMUX (IOMUX_PINCM38) /* clang-format on */ void SYSCFG_DL_init(void); void SYSCFG_DL_initPower(void); void SYSCFG_DL_GPIO_init(void); void SYSCFG_DL_SYSCTL_init(void); void SYSCFG_DL_SYSCTL_CLK_init(void); void SYSCFG_DL_PWM_0_init(void); void SYSCFG_DL_TIMER_0_init(void); void SYSCFG_DL_UART_0_init(void); void SYSCFG_DL_UART_1_init(void); void SYSCFG_DL_SYSTICK_init(void); bool SYSCFG_DL_saveConfiguration(void); bool SYSCFG_DL_restoreConfiguration(void); #ifdef __cplusplus } #endif #endif /* ti_msp_dl_config_h */ 这是我们的配置,然后板卡用的MSPM0G3507
最新发布
07-07
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值