我有一个现有的 C 代码(第 3 方源,我无法更改),PC-Lint(版本 9.0)不接受它。该代码在嵌入式环境中运行,使用的是 Green Hills Compiler。
有没有人知道如何配置 PC-Lint 以接受代码定义?我只附加了结构中第一个成员的错误消息。
以下是头文件中的定义:
typedef struct
{
uint32_t PINSEL0; // see ERROR message from PCLint, line 153 in LPC23.h
uint32_t PINSEL1;
uint32_t PINSEL2;
} LPC_PINCON_TypeDef;
#define LPC_PINCON_BASE (0xE002C000)
#define LPC_PINCON ((LPC_PINCON_TypeDef *) LPC_PINCON_BASE)
#define PINSEL_BASE_ADDR 0xE002C000
#define PINSEL0 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x00))
/**************************/
/* function in c-file */
void Port_Init()
{
LPC_PINCON->PINSEL0 &= ~(3 << 4); //p0.2
LPC_PINCON->PINSEL0 |= (1 << 4); //
LPC_PINCON->PINSEL0 &= ~(3 << 6); //p0.3
LPC_PINCON->PINSEL0 |= (1 << 6); //
// etc................
}
/*******************************************/
// ERRORS from PC-Lint
// **********ERROR MESSAGES**************
#... (volatile unsigned long *)(PINSEL_BASE_ADDR + 0x00))
uint32_t PINSEL0;
LPC23.h 153 Error 10: Expecting identifier
#... BASE_ADDR + 0x00))
uint32_t PINSEL0;
LPC23.h 153 Error 102: Illegal parameter specification
#... BASE_ADDR + 0x00))
uint32_t PINSEL0;
LPC23.h 153 Error 10: Expecting ';'