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

 
 
 
Reply to this topicStart new topic
> размещение данных во внешней EEPROM
Василий Зыков
сообщение Apr 17 2010, 04:30
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 63
Регистрация: 11-11-06
Из: Екатеринбург
Пользователь №: 22 191



Добрый день, коллеги!

Прошу помощи в очередном вопросе с размещением данных в EEPROM. Речь идет о внешней памяти EEPROM по отношению к микроконтроллеру.

1) Я описываю в программе структуру данных. Допустим, я ее размещаю в сегменте __eeprom. В этом случае я получаю от компилятора сообщение о том, что я вышел за допустимый объем объявленного сегмента (объем внешней EEPROM больше, чем внутренней EEPROM микроконтроллера). Как поступают в подобных случаях: готовят файл прошивки для EEPROM как-то по-другому? В сторонней программе? Объявляют дополнительный сегмент с нужным размером?

2) Если я размещаю данные во внутренней EEPROM микроконтроллера, то при обращении программы к структуре данных компилятор автоматически вставляет процедуры доступа к внутренней EEPROM. Если же я данные размещаю во внешней памяти - то как мне подменить процедуры доступа своими?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 17 2010, 06:43
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Василий Зыков @ Apr 17 2010, 06:45) *
Как поступают в подобных случаях: готовят файл прошивки для EEPROM как-то по-другому? В сторонней программе? Объявляют дополнительный сегмент с нужным размером?
Оба способа хороши. Сделайте просто отдельный проект, в котором объявлена константа с типом той структуры и присвойте ей начальное значение. На выходе получите файл прошивки для eeprom. Преимущество отдельного проекта в том, что вы можете в линкерном скрипте задать любые адреса. Даже те, которые совпадают с занятыми адресами в основной программе.
Цитата(Василий Зыков @ Apr 17 2010, 06:45) *
Если же я данные размещаю во внешней памяти - то как мне подменить процедуры доступа своими?
В C - никак. Начинайте осваивать C++.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Василий Зыков
сообщение Apr 18 2010, 06:20
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 63
Регистрация: 11-11-06
Из: Екатеринбург
Пользователь №: 22 191



Цитата(Сергей Борщ @ Apr 17 2010, 12:58) *
Оба способа хороши. Сделайте просто отдельный проект, в котором объявлена константа с типом той структуры и присвойте ей начальное значение. На выходе получите файл прошивки для eeprom. Преимущество отдельного проекта в том, что вы можете в линкерном скрипте задать любые адреса. Даже те, которые совпадают с занятыми адресами в основной программе.
В C - никак. Начинайте осваивать C++.


Спасибо. Вчера так и сделал - отдельный проект для данных EEPROM. И общее описание структуры данных для двух проектов.
Go to the top of the page
 
+Quote Post

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

 


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


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