[求助]磁盘和数据缓冲区的定义能不能为数组形式呢?

#define DISK_BASE_BUF_ADDR 0x0200 #define DISK_BASE_BUF_LEN 1024 #define FILE_DATA_BUF_ADDR 0x0A00 #define FILE_DATA_BUF_LEN 2048 这种固定地址的定义方式,感觉不好,我感觉只有在进行了ch375的初始化之后才能使用上面的空间,否则,上面只给出了首地址和长度,好像还不能用,如果换成数组的形式多好啊 如下: unsigned char DISK_BASE_BUF[1024]; unsigned char FILE_DATA_BUF[2048];

这样让它自动分配地址,也不担心出问题。 在不进行u盘传输的时候,上面也可以用做其它方面

#if DISK_BASE_BUF_LEN #ifdef DISK_BASE_BUF_ADDR __no_init UINT8 DISK_BASE_BUF[ DISK_BASE_BUF_LEN ] @ DISK_BASE_BUF_ADDR; /* 外部RAM的磁盘数据缓冲区,缓冲区长度为一个扇区的长度 */ #else UINT8 DISK_BASE_BUF[ DISK_BASE_BUF_LEN ]; /* 外部RAM的磁盘数据缓冲区,缓冲区长度为一个扇区的长度,起始地址必须为偶地址 */ #endif #endif 定义成数组形式恐怕不行,原因如下,下面是ch375头文件中的程序: #ifdef FILE_DATA_BUF_LEN #ifdef FILE_DATA_BUF_ADDR __no_init UINT8 FILE_DATA_BUF[ FILE_DATA_BUF_LEN ] @ FILE_DATA_BUF_ADDR; /* 外部RAM的文件数据缓冲区,缓冲区长度不小于一次读写的数据长度 */ #else UINT8 FILE_DATA_BUF[ FILE_DATA_BUF_LEN ]; /* 外部RAM的文件数据缓冲区,缓冲区长度不小于一次读写的数据长度,起始地址建议为偶地址 */ #endif 既然数组的说明在头文件中,那么在不传输数据到u盘的时候,还是可以用的


只有登录才能回复,可以选择微信账号登录