Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Есть один момент... :)

Отправлено Юрий_СВ 18 декабря 2008 г. 14:38
В ответ на: Спасибо за ответ, но отправлено Fm 18 декабря 2008 г. 13:51

GCC так доконца и не научили работать с контроллерами с несколькими полями (адресными пространствами) памяти (ОЗУ, Flash, EEPROM).

Ведь если подумать - по правилам языка не получается. Допустим у вас есть универсальный указатель на "текст" для print(). (с точки зрения языка - это в порядке вещей) Если вы используете его попеременно то для указания на ОЗУ, то для указания на Flash, EEPROM. Что делать компилятору ?
Ведь это совершенно разные наборы команд. Такой код невозможно откомпилировать.

Префикс PROGMEM влияет только на размещение данных, но не на правила их выборки.

Компилятор подразумевает, что если разименовывают указатель, то используется ОЗУ.

Т.е. передавать в функцию просто msg[MSG_MAIN_MENU] - нельзя.
Автоматически выборка делается только по ОЗУ. То есть компилятор возьмёт адрес msg и сделает по нему выборку из ОЗУ.
Для этого и пишется &msg, а в функции по нему делается насильная выборка из Flash.

IAR умеет читать, используя тип указателля, но пишет тоже только если насильно указана функция записи во Flash.

Даже читать из ЕЕПРОМ автоматом - утопие. (Скрытые грабли)
Можно прочитать за несколько тактов, а можно и прождать несколько мс.
Да ещё и скрываются неприятности при парралельной работе с ЕЕПРОМ.


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

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

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru