|
Адреса в EEPROM, Можно ли назначить адреса в EEPROM |
|
|
|
 |
Ответов
(1 - 14)
|
Dec 5 2005, 09:11
|
Участник

Группа: Свой
Сообщений: 74
Регистрация: 24-10-05
Пользователь №: 10 056

|
Нет, не возможно.
Сделайте функцию для чтентя/писания с EEPROM'a.
|
|
|
|
|
Dec 5 2005, 09:24
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
Цитата Нет, не возможно.
Сделайте функцию для чтентя/писания с EEPROM'a. А смысл? Ведь можно будет только писать/читать по определенным адресам... а переменная будет размещена там, где ее разместит линкер... сорри, если я не прав  В IARE например можно написать так: __eeprom unsigned int stat_rec_point@0x10; //размещает переменную в EEPROM по адресу 0x10 Может все-таки есть такая возможность и в CodeVision? Может в хелпе есть?
--------------------
Выбор.
|
|
|
|
|
Dec 5 2005, 10:38
|
Участник

Группа: Свой
Сообщений: 36
Регистрация: 26-05-05
Из: Киев
Пользователь №: 5 406

|
я в таких случаях создаю струкутру, в которую входят _все_ переменные которые должны лежать в еепром. тогда вся эта струкутра будет размещена с начала сегмента еепром если объявить ее с __еепром при необходимости я читаю всю структуру из еепром, передаю в пк, модифицирую и прописываю всю струкутру назад. таким образом я могу модифицировать все что мне нужно в еепром не боясь потерять адреса и т.д. хотя, возможно, в вашем случае это будет немного неудобно
|
|
|
|
|
Dec 5 2005, 10:53
|
Знающий
   
Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32

|
at90, да оч. просто Код #asm(".eseg") #asm(".org 0x80") eeprom struct SETTINGS my_settings;
--------------------
Главная линия этого опуса ясна мне насквозь!
|
|
|
|
|
Dec 5 2005, 10:57
|

Шаман
     
Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221

|
Цитата(arttab @ Dec 5 2005, 12:43)  Ну значит я любитель анахранизмов. У нас требуется получить на комп блок данных и записать результат обработки во флешь мк. Операция однократная. Интересно, как с точки зрения передового чела это реализавать не зная куда писать? Передовой чел, как правило, не станет делать свой проект зависимым от знания адресов ещё на этапе постановки задачи, чтобы потом не задавать подобных вопросов и козырять подобными примерами. Цитата(arttab @ Dec 5 2005, 12:43)  я не говорил про только eeprom. мы и во flash пишим. а целеком ее перешивить.... нет уж. Это сама прога в мк делает, но адреса мы знаем. Если воспользоваться относительной адресацией, то с таким же успехом адреса можно и не знать. Кроме того и сам протокол связи получится более переносимым.
|
|
|
|
|
Dec 5 2005, 11:57
|
Профессионал
    
Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886

|
Цитата(at90 @ Dec 5 2005, 11:47)  В кодэвижене есть такая штука как переменная типа EEPROM. Можно ли присваивать переменным типа eeprom адреса вручную. Чтобя я знал адреса и мог обратится по адресу к переменной. Конечно можно, если вам действительно это нужно (например для чтения калибровочного байта, записанного в конкретный адрес, например с помошью AVREAL, с последующей записью его в OSCCAL). Делается это так: Код eeprom unsigned char dummy; // заводим переменную, зарезервировав память. (на всяк случай =) ) unsigned char eeprom *ep; .......... .......... .......... ep=0; // сюда записываем собственно адрес. OSCCAL=ep[0];
|
|
|
|
|
Dec 6 2005, 03:19
|

Профессионал
    
Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371

|
Цитата(IgorKossak @ Dec 5 2005, 16:57)  Цитата(arttab @ Dec 5 2005, 12:43)  Ну значит я любитель анахранизмов. У нас требуется получить на комп блок данных и записать результат обработки во флешь мк. Операция однократная. Интересно, как с точки зрения передового чела это реализавать не зная куда писать?
Передовой чел, как правило, не станет делать свой проект зависимым от знания адресов ещё на этапе постановки задачи, чтобы потом не задавать подобных вопросов и козырять подобными примерами. Цитата(arttab @ Dec 5 2005, 12:43)  я не говорил про только eeprom. мы и во flash пишим. а целеком ее перешивить.... нет уж. Это сама прога в мк делает, но адреса мы знаем. Если воспользоваться относительной адресацией, то с таким же успехом адреса можно и не знать. Кроме того и сам протокол связи получится более переносимым. Звучит категорично. Можете считать что мне лень в случае необходимости разобраться какае данные использует программа, сначала выяснять какая это версия и по каким адресам в ней расположились важные константы. При объеме около штуки приборов в месяц и переодическими дополнениями в код (не часто) доп. проблем не хочется создавать.
--------------------
OrCAD, Altium,IAR, AVR....
|
|
|
|
|
Dec 6 2005, 07:37
|

Профессионал
    
Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264

|
Цитата(IgorKossak @ Dec 5 2005, 13:57)  Цитата(arttab @ Dec 5 2005, 12:43)  Ну значит я любитель анахранизмов. У нас требуется получить на комп блок данных и записать результат обработки во флешь мк. Операция однократная. Интересно, как с точки зрения передового чела это реализавать не зная куда писать?
Передовой чел, как правило, не станет делать свой проект зависимым от знания адресов ещё на этапе постановки задачи, чтобы потом не задавать подобных вопросов и козырять подобными примерами. Цитата(arttab @ Dec 5 2005, 12:43)  я не говорил про только eeprom. мы и во flash пишим. а целеком ее перешивить.... нет уж. Это сама прога в мк делает, но адреса мы знаем. Если воспользоваться относительной адресацией, то с таким же успехом адреса можно и не знать. Кроме того и сам протокол связи получится более переносимым. Какие бы аргументы не приводились в пользу другой 'методологии', по большому счету IgorKossak прав! Одно из великих достижений стиля современного программирования это переносимость кода из одного проекта в другой с очень маленькой вероятностью переделок (адаптации). Иными словами портирование части кода (старого) во вновь создаваемый целесообразно с точки зрения качества создаваемой продукции. Если аудитория незнакома с принципами 'Capability Maturity Model® for Software (SW-CMM®)' что либо обьяснять дальше бессмысленно... Обьясню это несколько примитивней: если вы имеете уже созданный код, который работает 100% удовлетворяя требования предьявляемые к его функционированию. Недопустимой роскошью является разработка и создание такового - заново. Любая фирма производитель цениться именно своим накопленным положительным опытом, который может быть использован в дальнейшем без излишних трудовых и финансовых затрат. Далее о том что изначально говорилось в вопросе... Подобные вещи хранящиеся в eeprom имеют данные определяющие в основном конфигурацию системы либо какие-то долговременные (редко изменяемые) параметры. Где-то это называется code-plug, в каких-то других системах flex-data и т.п. Так вот таковые представляются в виде таблиц, естественно упорядоченных, конечно удобней всего их описать, как говорилось выше - структурой, где переменные имеют размер (тип), а начало такой структуры всегда при прошивке и дальнейшего использования можно привязать к конкретному адресу. С символическими именами программисту работать комфортнее. Работа же с абсодютными адресами имеет древние корни машинного языка, когда отсутствовали программные средства (и не могли быть в силу ограниченности той техники) позволяющие использовать такие принципы програмирования. Вывод - программирование на современном этапе обьединяет в себе множество ипостасий и такие, как технология и культура программирования. И умение их использовать обеспечивает положительный результат.
--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
|
|
|
|
|
Dec 6 2005, 07:49
|

Знающий
   
Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544

|
Цитата(BVU @ Dec 6 2005, 10:37)  Цитата(IgorKossak @ Dec 5 2005, 13:57)  Цитата(arttab @ Dec 5 2005, 12:43)  Ну значит я любитель анахранизмов. У нас требуется получить на комп блок данных и записать результат обработки во флешь мк. Операция однократная. Интересно, как с точки зрения передового чела это реализавать не зная куда писать?
Передовой чел, как правило, не станет делать свой проект зависимым от знания адресов ещё на этапе постановки задачи, чтобы потом не задавать подобных вопросов и козырять подобными примерами. Цитата(arttab @ Dec 5 2005, 12:43)  я не говорил про только eeprom. мы и во flash пишим. а целеком ее перешивить.... нет уж. Это сама прога в мк делает, но адреса мы знаем. Если воспользоваться относительной адресацией, то с таким же успехом адреса можно и не знать. Кроме того и сам протокол связи получится более переносимым. Какие бы аргументы не приводились в пользу другой 'методологии', по большому счету IgorKossak прав! Одно из великих достижений стиля современного программирования это переносимость кода из одного проекта в другой с очень маленькой вероятностью переделок (адаптации). Иными словами портирование части кода (старого) во вновь создаваемый целесообразно с точки зрения качества создаваемой продукции. Если аудитория незнакома с принципами 'Capability Maturity Model® for Software (SW-CMM®)' что либо обьяснять дальше бессмысленно... Обьясню это несколько примитивней: если вы имеете уже созданный код, который работает 100% удовлетворяя требования предьявляемые к его функционированию. Недопустимой роскошью является разработка и создание такового - заново. Любая фирма производитель цениться именно своим накопленным положительным опытом, который может быть использован в дальнейшем без излишних трудовых и финансовых затрат. Далее о том что изначально говорилось в вопросе... Подобные вещи хранящиеся в eeprom имеют данные определяющие в основном конфигурацию системы либо какие-то долговременные (редко изменяемые) параметры. Где-то это называется code-plug, в каких-то других системах flex-data и т.п. Так вот таковые представляются в виде таблиц, естественно упорядоченных, конечно удобней всего их описать, как говорилось выше - структурой, где переменные имеют размер (тип), а начало такой структуры всегда при прошивке и дальнейшего использования можно привязать к конкретному адресу. С символическими именами программисту работать комфортнее. Работа же с абсодютными адресами имеет древние корни машинного языка, когда отсутствовали программные средства (и не могли быть в силу ограниченности той техники) позволяющие использовать такие принципы програмирования. Вывод - программирование на современном этапе обьединяет в себе множество ипостасий и такие, как технология и культура программирования. И умение их использовать обеспечивает положительный результат. Убийственно!
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|