ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
19 мая
223800 Топик полностью
VasilyS (26.11.2010 10:08, просмотров: 1) ответил koyodza на как в константную символьную строку внедрить константу-адрес?
Если длину строк задавать явно и если не страшно, что каждая подстрока будет заканчиваться терминатором \0, то нет проблем.В любом случае как пример. ИАР АВР. static char x = 0x45; // дам x и y определенные значения для удобства поиска в дампе static char y = 0x67; typedef struct { char str1[5]; unsigned int adr_x; char str2[7]; unsigned int adr_y; }qwe_t; // Содержимое строк для наглядности числовое. Разделитель - \0, он же и терминатор строк. const __farflash qwe_t qwe = { "123=", (unsigned int)&x, "45678=", (unsigned int)&y }; void main(void) { printf("%04x\n", &qwe); // выведем адрес структуры во flash printf("%04x\n", qwe.adr_x); // для удобства выведу адрес SRAM x printf("%04x\n", qwe.adr_y); // для удобства выведу адрес SRAM у // напечатало: // 0794 // 0306 // 0307 // Проверка в дебаггере: // 1. Адрес структуры во flash дало 0794 // значит, ищем что во флеши по этому адресу: // 31 32 33 3D 00 06 03 34 35 36 37 38 3D 00 07 03 // Вроде все легло друг за дружкой. Замечательно! // 2. смотрим что же лежит в SRAM по адресам 0306 0307 // 0306 45 да, это x // 0307 67 да, это y }