dimone 0 30 апреля, 2015 Опубликовано 30 апреля, 2015 (изменено) · Жалоба -Есть набор строк -массивов во флеши, на которые ссылаются всякие менюхи для символьного LCD, поставили пи-тековский ОЛЕД ,там все расширения таблицы символов по-иному..и некоторые символы вообще не те.. Был написан аналогчный вариант меню по этот индикатор, т.е. lcd_menu.h и oled_menu.h но это две прошивки.. вопрос: если слепить два файла в один, и использовать первое меню идельту между бывшими первыми элментами для смещения , например по джмперу,можно ли гарантировать что линкер расположит в сегмнте флеши все линейно, и в произволный момент не перетасует по своему усмотрению.. Изменено 30 апреля, 2015 пользователем dimone Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
E.V.G. 0 30 апреля, 2015 Опубликовано 30 апреля, 2015 · Жалоба Можно принудительно положить в нужный сегмент Flash, например в INFOB #pragma memory = constseg(INFOB) // адреса 01000h - 0100Dh const long data[5] = { // E D C B A 1.5557, -62.5211, 949.3678, -6683.6216, 19308.8867 }; #pragma memory = default Или так, в нужную ячейку Flash: #pragma location = 0x1000 { const long data = 1.5557; } #pragma memory = default По конкретней читайте в справке, например в IAR'а. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimone 0 30 апреля, 2015 Опубликовано 30 апреля, 2015 · Жалоба -не очень хотелось завязываться на абсолютные адреса, придется переписывать, сразу уперся в ошибку ИАРа в следующем "учебном" фргменте: struct { int a; int b; }st; int ofst= offsetof(st,a); -ругается Error[Pe029]: expected an expression ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
desh 0 2 мая, 2015 Опубликовано 2 мая, 2015 · Жалоба #include <stddef.h> typedef struct { int a; int b; } ST; int main( void ) { return offsetof(ST,a); } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimone 0 5 мая, 2015 Опубликовано 5 мая, 2015 (изменено) · Жалоба -Спасибо , получилось, но может существует какой-то иной способ как передававать (например в функцию) номер структуры также и произвольный элемент структуры , кроме как его смещением ? А то получается структура лишь для хранения, а работа с ее полями сплошной криминал с разыменовываниями и арифметикой с адресацией.. Изменено 5 мая, 2015 пользователем dimone Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SSerge 4 5 мая, 2015 Опубликовано 5 мая, 2015 · Жалоба Я сделал просто таблицу размером 128 байт, для перекодировки старшей половины символов (0x80 - 0xff) из win1251 (в которой исходные тексты) в кодировку конкретного индикатора. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimone 0 5 мая, 2015 Опубликовано 5 мая, 2015 · Жалоба Транскод -это первое ,что пришло в голову, но хотелось на одно решение посадить и языковые расширения меню.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
desh 0 5 мая, 2015 Опубликовано 5 мая, 2015 · Жалоба но хотелось на одно решение посадить и языковые расширения меню.. а зачем? по моему с разделением задач очень красиво получается. Для каждого типа дисплея свой драйвер. Завтра замените производителя дисплея - напишете еще один простой драйвер со своей таблицей перекодировки. А языковые расширения отдельно. Независимо от используемого дисплея. Переносимо, гибко, стильно, модно, молодежно :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimone 0 5 мая, 2015 Опубликовано 5 мая, 2015 (изменено) · Жалоба -да я обеими за, только в моем случае -допиливание уже давно писанного, и в любом случае необходимо организоввать статические данные так, чтоб минорными доработками иметь возможность подменять адреса константных строк на входе пользующих их функций( Изменено 5 мая, 2015 пользователем dimone Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться