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

 
 
> Адреса в EEPROM, Можно ли назначить адреса в EEPROM
at90
сообщение Dec 5 2005, 08:47
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 866
Регистрация: 31-03-05
Из: Краснодар
Пользователь №: 3 814



В кодэвижене есть такая штука как переменная типа EEPROM.
Можно ли присваивать переменным типа eeprom адреса вручную.
Чтобя я знал адреса и мог обратится по адресу к переменной.


--------------------
<<Первая производная от чужой идеи - уже твоя идея.>>
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 14)
solidreg
сообщение Dec 5 2005, 09:11
Сообщение #2


Участник
*

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



Нет, не возможно.

Сделайте функцию для чтентя/писания с EEPROM'a.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Dec 5 2005, 09:24
Сообщение #3


Познающий...
******

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



Цитата
Нет, не возможно.

Сделайте функцию для чтентя/писания с EEPROM'a.


А смысл? Ведь можно будет только писать/читать по определенным адресам... а переменная будет размещена там, где ее разместит линкер... сорри, если я не правsmile.gif

В IARE например можно написать так:
__eeprom unsigned int stat_rec_point@0x10; //размещает переменную в EEPROM по адресу 0x10
Может все-таки есть такая возможность и в CodeVision? Может в хелпе есть?


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Dec 5 2005, 09:35
Сообщение #4


Шаман
******

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



К переменной при желании можно обратиться по указателю или ссылке.
Где бы она ни находилась.
Обращение по конкретному адресу - это архаизм, переносимый в языки высокого уровня от опыта программирования на плохих ассемблерах, т к в хороших ассемблерах адрес переменной также знать незачем.
Go to the top of the page
 
+Quote Post
arttab
сообщение Dec 5 2005, 10:10
Сообщение #5


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

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



Ну значит я любитель анахранизмов. У нас требуется получить на комп блок данных и записать результат обработки во флешь мк. Операция однократная. Интересно, как с точки зрения передового чела это реализавать не зная куда писать?

Если зотите знать где ваши переменные лежит, посмотрите про объявления масива, сегмента. Должны быть нужные дерективы.


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
andr2000
сообщение Dec 5 2005, 10:38
Сообщение #6


Участник
*

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



я в таких случаях создаю струкутру, в которую входят _все_ переменные
которые должны лежать в еепром. тогда вся эта струкутра будет размещена
с начала сегмента еепром если объявить ее с __еепром
при необходимости я читаю всю структуру из еепром, передаю в пк,
модифицирую и прописываю всю струкутру назад.
таким образом я могу модифицировать все что мне нужно в еепром
не боясь потерять адреса и т.д.
хотя, возможно, в вашем случае это будет немного неудобно
Go to the top of the page
 
+Quote Post
arttab
сообщение Dec 5 2005, 10:43
Сообщение #7


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

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



я не говорил про только eeprom. мы и во flash пишим. а целеком ее перешивить.... нет уж. Это сама прога в мк делает, но адреса мы знаем.


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
vet
сообщение Dec 5 2005, 10:53
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32



at90,
да оч. просто

Код
#asm(".eseg")
#asm(".org 0x80")
eeprom struct SETTINGS my_settings;


--------------------
Главная линия этого опуса ясна мне насквозь!
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Dec 5 2005, 10:57
Сообщение #9


Шаман
******

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



Цитата(arttab @ Dec 5 2005, 12:43) *
Ну значит я любитель анахранизмов. У нас требуется получить на комп блок данных и записать результат обработки во флешь мк. Операция однократная. Интересно, как с точки зрения передового чела это реализавать не зная куда писать?

Передовой чел, как правило, не станет делать свой проект зависимым от знания адресов ещё на этапе постановки задачи, чтобы потом не задавать подобных вопросов и козырять подобными примерами.
Цитата(arttab @ Dec 5 2005, 12:43) *
я не говорил про только eeprom. мы и во flash пишим. а целеком ее перешивить.... нет уж. Это сама прога в мк делает, но адреса мы знаем.

Если воспользоваться относительной адресацией, то с таким же успехом адреса можно и не знать.
Кроме того и сам протокол связи получится более переносимым.
Go to the top of the page
 
+Quote Post
Petka
сообщение Dec 5 2005, 11:57
Сообщение #10


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

Группа: Свой
Сообщений: 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];
Go to the top of the page
 
+Quote Post
arttab
сообщение Dec 6 2005, 03:19
Сообщение #11


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

Группа: Свой
Сообщений: 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....
Go to the top of the page
 
+Quote Post
BVU
сообщение Dec 6 2005, 07:37
Сообщение #12


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

Группа: Свой
Сообщений: 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 и т.п. Так вот таковые представляются в виде таблиц, естественно упорядоченных, конечно удобней всего их описать, как говорилось выше - структурой, где переменные имеют размер (тип), а начало такой структуры всегда при прошивке и дальнейшего использования можно привязать к конкретному адресу. С символическими именами программисту работать комфортнее. Работа же с абсодютными адресами имеет древние корни машинного языка, когда отсутствовали программные средства (и не могли быть в силу ограниченности той техники) позволяющие использовать такие принципы програмирования.
Вывод - программирование на современном этапе обьединяет в себе множество ипостасий и такие, как технология и культура программирования. И умение их использовать обеспечивает положительный результат.


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
Igor26
сообщение Dec 6 2005, 07:49
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 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 и т.п. Так вот таковые представляются в виде таблиц, естественно упорядоченных, конечно удобней всего их описать, как говорилось выше - структурой, где переменные имеют размер (тип), а начало такой структуры всегда при прошивке и дальнейшего использования можно привязать к конкретному адресу. С символическими именами программисту работать комфортнее. Работа же с абсодютными адресами имеет древние корни машинного языка, когда отсутствовали программные средства (и не могли быть в силу ограниченности той техники) позволяющие использовать такие принципы програмирования.
Вывод - программирование на современном этапе обьединяет в себе множество ипостасий и такие, как технология и культура программирования. И умение их использовать обеспечивает положительный результат.

Убийственно! a14.gif
Go to the top of the page
 
+Quote Post
arttab
сообщение Dec 6 2005, 10:09
Сообщение #14


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

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



Во зацепило!
С таким бы пылом ответ бы дать на поставленный вопрос....
А мнений о необходимости и допустимости at90 получил много.
Опять же выскажу свое мнение. Пытаюсь узнать о разных свойствах и возможностях чего угодно. Даже если они мне и не пригодятся.
Офтопик. Вчере реализовывал расчет коэффициента и корекцию порогов при изменении входного напряжения. Коэф. в районе 1. Нужно учитывать 2 знака после запятой. Через float + 1500 байт. Выкрутился целочисленными переменными. Теперь знаю как оно трогать float и что можно без него. Опыт...


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
BVU
сообщение Dec 6 2005, 11:14
Сообщение #15


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

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



Цитата(arttab @ Dec 6 2005, 13:09) *
Во зацепило!
С таким бы пылом ответ бы дать на поставленный вопрос....
А мнений о необходимости и допустимости at90 получил много.
Опять же выскажу свое мнение. Пытаюсь узнать о разных свойствах и возможностях чего угодно. Даже если они мне и не пригодятся.
Офтопик. Вчере реализовывал расчет коэффициента и корекцию порогов при изменении входного напряжения. Коэф. в районе 1. Нужно учитывать 2 знака после запятой. Через float + 1500 байт. Выкрутился целочисленными переменными. Теперь знаю как оно трогать float и что можно без него. Опыт...

Ответ на для at90 на поставленный вопрос был дан и даже исчерпывающе (что следует не только из моего. но и из сообщений других участников. Толочь воду в ступе не есть хороший пример для обсуждения). Жаль, что Вы несумели понять (содержание моего ответа)... sad.gif А уж может человек реализовать данные ему рекомендации это все зависит не только от опыта, но и от квалификации. smile.gif


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post

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

 


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


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