Может кто сталкивался, помогите Использую процессор MSP430F5342, программу пишу в среде Embedded Workbench 6.0. Вроде пока проблем не возникало но тут возникла. Дело в том, что основная память процессора code memory располагается по адресу от 0x4400 до 0x24400 и составляет 128 КВ. У меня есть необходимость записывать во Flash архивы измеряемых значений, причем под архивы планирую отвести половину всей памяти (Банк С и Банк D адреса от 0х14400 до 0x24400). Для записи использую следующую процедуру из MSPWare Driver Library: Flash_write32(__MSP430_BASEADDRESS_FLASH__, C_N, (unsigned long *)START_ARC, 4); Я писал сначала в Information memory в сегменты Info B и Info C (START_ARC=0x1880 START_ARC=0x1900) писалось без проблем. Попробовал в основную память в Банк С (START_ARC=0x14400) не пишется. И потом я обнаружил, что если ставить адрес меньше 0хFFFF, то пишется и в основную память, а если ставить адрес больше 0х10000 не работает, то есть можно записать до середины Банка В, а дальше нельзя. И еще одно наверное с этим связанное: если я хочу расположить массивы во Flash: #pragma location=0x1900 // параметры __root __no_init unsigned long param[32]; #pragma location=0x1880 // счетчики __root __no_init unsigned long counter[32]; #pragma location=0x14400 // архивы __root __no_init unsigned long archive[128]; не компилируется, ругается на адрес третьего массива, выдает ошибку: Error[Ta028]: Placing a located variable above 0xffff is not allowed D:\Prog\Teplos_3V_6.0\main.c 85 пишет что переменные по адресу больше 0xffff располагать запрещено.
|