我目前正在弄清楚其他人的代码的功能和结构,如果您有任何建议,也会受到赞赏。
无论如何,我遇到了一些包含在一些外部线条中的词。以下是我遇到过的几行代码。
extern unchar code Sdrr[];
extern SensLocationStruct code SensLocation[];
extern SensorConfigStruct code SensorConfig[];
extern unchar code DefaultFruData[];
extern FruLocationStruct code FruDevice[];
现在,我所说的是"代码"。
在筛选代码之后,我看不到单词"代码"的特殊声明或定义。以后似乎都没有在函数中调用它。它只出现在这些外部声明中。
结构是:
typedef struct
{
unsigned char device;
unsigned char addr;
unsigned char bus;
} SensLocationStruct;
typedef struct
{
unsigned char SensNum;
unsigned char device;
unsigned char IOType;
unsigned char regIO;
unsigned char calib;
} SensorConfigStruct;
typedef struct
{
unsigned char device;
unsigned char addr;
unsigned char bus;
unsigned char frusize;
} FruLocationStruct;
有没有人知道这是什么或做什么?一切都会有所帮助。
答案 0 :(得分:1)
这通常用于定义变量所在的内存空间。英特尔使用von Neumann architecture。只有一个地址空间,像0x100这样的地址清楚地标识了目标。另一方面,Harvard architecture有两次该地址:在程序代码内存和数据存储空间中。 8051系列有三个存储空间:ProgramCode,InternalRAM和externalRAM。它们中的每一个都需要不同的汇编级别访问指令。