Цитата(Solodov @ Nov 18 2010, 10:38)

Всем, доброго дня.
Не подскажите ли процедуру размещения переменных во FLASH?
Да и собственно где размещаются те переменные которые объявляются? Как этим управлять?
в RAM:
#pragma location = 0x200
__no_init volatile unsigned int nADC_CH0; // curent value adc ChN_0
во Falsh:
const unsigned char clAbout[] = {"\n\r\t- MWR monitore v1.6 -\n\r\n\r"};
#define PORT_MASK_SIZE 8
const unsigned char cbPortMask [PORT_MASK_SIZE] = { 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80 };
для переменных удобно использовать Info сектора.
Для двух секторного контроллера:
#define FSectorB 0x1000 // Start addr infoB sector
#define FSectorA 0x1080 // Start addr infoA sector
#pragma constseg=INFOB
const unsigned int cDELAY_ON = {1000}; // Powr RELAY enable time puse
const unsigned int cDELAY_OFF = {200}; // ... disable time puse
const unsigned char cNumber[] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01};//
const unsigned char cVer[] = "1.01b";
const unsigned char cID_GUID[] = {0xAF,0xE0};
#pragma constseg=default
Читаются как обычные константы. А вот для записи нужно будет сначала прочитать все переменные из сектора в буфер RAM, изменить значение конкретной переменной в этом буфере, очистить сектор процедурой стирания и вновь записать все используемые переменные. То же самое можно проделывать и с основной памятью, вот только размер сектора там больше. Подробности хорошо описаны в примерах на выбранный контроллер которые свободно берутся с сайта TI. Например MSP430x261x_flashwrite_01.c из архива slac151a.zip.
Сообщение отредактировал O.L. - Nov 18 2010, 06:57