我正在为 8051 架构芯片和 SDCC 编译器编写 C 程序。
我有一个名为 FilterStructure 的结构;
我的代码看起来像这样......
#define NAME_SIZE 8
typedef struct {
char Name[NAME_SIZE];
} FilterStructure;
void ReadFilterName(U8 WheelID, U8 Filter, FilterStructure* NameStructure);
int main (void)
{
FilterStructure testStruct;
ReadFilterName('A', 3, &testFilter);
...
...
return 0;
}
void ReadFilterName(U8 WheelID, U8 Filter, FilterStructure* NameStructure)
{
int StartOfName = 0;
int i = 0;
///... do some stuff...
for(i = 0; i < 8; i++)
{
NameStructure->Name[i] = FLASH_ByteRead(StartOfName + i);
}
return;
}
出于某种原因,我收到链接错误“?ASlink-Error-Could not get 29 Continuous bytes in internal RAM for area DSEG”
如果我注释掉表明FilterStructure testStruct;
错误消失的行。
这个错误是什么意思?完成后是否需要丢弃结构?