реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> линковка строчных констант
dimone
сообщение Apr 30 2015, 08:16
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 102
Регистрация: 23-02-09
Пользователь №: 45 242



-Есть набор строк -массивов во флеши, на которые ссылаются всякие менюхи для символьного LCD,
поставили пи-тековский ОЛЕД ,там все расширения таблицы символов по-иному..и некоторые символы вообще не те..
Был написан аналогчный вариант меню по этот индикатор, т.е. lcd_menu.h и oled_menu.h но это две прошивки..
вопрос: если слепить два файла в один, и использовать первое меню идельту между бывшими первыми элментами для смещения ,
например по джмперу,можно ли гарантировать что линкер расположит в сегмнте флеши все линейно,
и в произволный момент не перетасует по своему усмотрению..

Сообщение отредактировал dimone - Apr 30 2015, 09:35
Go to the top of the page
 
+Quote Post
E.V.G.
сообщение Apr 30 2015, 09:04
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 31-01-10
Из: Арзамас
Пользователь №: 55 175



Можно принудительно положить в нужный сегмент 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'а.
Go to the top of the page
 
+Quote Post
dimone
сообщение Apr 30 2015, 13:25
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 102
Регистрация: 23-02-09
Пользователь №: 45 242



-не очень хотелось завязываться на абсолютные адреса,
придется переписывать, сразу уперся в ошибку ИАРа в следующем "учебном" фргменте:

struct
{
int a;
int b;
}st;

int ofst= offsetof(st,a);


-ругается Error[Pe029]: expected an expression ?
Go to the top of the page
 
+Quote Post
desh
сообщение May 2 2015, 15:39
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 113
Регистрация: 25-10-07
Из: Краснодар
Пользователь №: 31 725



Код
#include <stddef.h>

typedef struct
{
  int a;
  int b;
} ST;

int main( void )
{
  return offsetof(ST,a);
}
Go to the top of the page
 
+Quote Post
dimone
сообщение May 5 2015, 07:58
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 102
Регистрация: 23-02-09
Пользователь №: 45 242



-Спасибо , получилось, но может существует какой-то иной способ как передававать (например в функцию) номер структуры также и произвольный элемент структуры , кроме как его смещением ?
А то получается структура лишь для хранения, а работа с ее полями сплошной криминал с разыменовываниями и арифметикой с адресацией..

Сообщение отредактировал dimone - May 5 2015, 09:30
Go to the top of the page
 
+Quote Post
SSerge
сообщение May 5 2015, 09:31
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Я сделал просто таблицу размером 128 байт,
для перекодировки старшей половины символов (0x80 - 0xff) из win1251 (в которой исходные тексты) в кодировку конкретного индикатора.



--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
dimone
сообщение May 5 2015, 09:36
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 102
Регистрация: 23-02-09
Пользователь №: 45 242



Транскод -это первое ,что пришло в голову, но хотелось на одно решение посадить и языковые расширения меню..
Go to the top of the page
 
+Quote Post
desh
сообщение May 5 2015, 10:01
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 113
Регистрация: 25-10-07
Из: Краснодар
Пользователь №: 31 725



Цитата
но хотелось на одно решение посадить и языковые расширения меню..

а зачем? по моему с разделением задач очень красиво получается.
Для каждого типа дисплея свой драйвер. Завтра замените производителя дисплея - напишете еще один простой драйвер со своей таблицей перекодировки.
А языковые расширения отдельно. Независимо от используемого дисплея. Переносимо, гибко, стильно, модно, молодежно sm.gif
Go to the top of the page
 
+Quote Post
dimone
сообщение May 5 2015, 11:43
Сообщение #9


Частый гость
**

Группа: Участник
Сообщений: 102
Регистрация: 23-02-09
Пользователь №: 45 242



-да я обеими за, только в моем случае -допиливание уже давно писанного,
и в любом случае необходимо организоввать статические данные так,
чтоб минорными доработками иметь возможность подменять адреса константных строк
на входе пользующих их функций(


Сообщение отредактировал dimone - May 5 2015, 11:44
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 04:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.01432 секунд с 7
ELECTRONIX ©2004-2016