при компиляции строго проекта выдается сообщеине Error [491] ; . can't find 0xE words for psect "rdata" in segment "COMRAM"
Решил поиграться. последовательное добавление модулей, даже не целиком , а по частям, нашел момент,когда программа компиится.... При добавление всего одной строчки,мало значимой возвращается вышеуказанная ошибка
Предвижу сообщеиня, что-то наподобие, что лучше использовать компилято 9.50 или 9.60, но хотелось бы разобраться.
да и почему версия 9.50 генерит жутко большой код при сипользование указателей ?
<code> const unsigned char cmdADD[] = "ADD"; // const unsigned char cmdCLEAR[] = "CLEAR"; // 2 CLEAR<CR> const unsigned char cmdDUMP[] = "DUMP"; // 3 DUMP<CR> const unsigned char cmdERASE[] = "ERASE"; // 4 ERASE<CR> const unsigned char cmdGET[] = "GET"; // 5 GET (VOLTAGE/DATA/TIME/PAGE)<CR> const unsigned char cmdLIST[] = "LIST"; // 6 LIST<CR> const unsigned char cmdSET[] = "SET"; // 7 SET (DATA/TIME)<CR> const unsigned char cmdSGET[] = "SGET"; // 8 SGET<CR> const unsigned char cmdSGET2[] = "SGET2"; // 9 SGET2<CR>
typedef struct { unsigned char Length; unsigned char CntParam; unsigned char *CmdStr; }sCmd;
near sCmd CmdArray[] = { {sizeof(cmdADD)-1, 6, cmdADD}, {sizeof(cmdCLEAR)-1,1, cmdCLEAR}, // {sizeof(cmdDUMP)-1, 1, cmdDUMP}, // {sizeof(cmdERASE)-1,1, cmdERASE}, // {sizeof(cmdGET)-1, 2, cmdGET}, // {sizeof(cmdLIST)-1, 1, cmdLIST}, // {sizeof(cmdSET)-1, 2, cmdSET}, // {sizeof(cmdSGET)-1, 1, cmdSGET}, {sizeof(cmdSGET2)-1,1, cmdSGET2}};
static unsigned char *PtrCmdString;
далее беру казатель, для работы с массивом комманд PtrCmdString = (CmdArray[Index1].CmdStr);
последующее использование PtrCmdString: (CmdStr[i++] = *(++PtrCmdString)) генерит избыточный код в плане работы с указателями </code>
|