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

 
 
 
Reply to this topicStart new topic
> Cannot write to flash memory, Помогите с ошибкой в Iar Please !!!
dio
сообщение Jun 25 2006, 17:25
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 40
Регистрация: 4-06-06
Пользователь №: 17 766



Приветствую ! Хочю подвесить клавиатуру 4х4 к меге8. Знаю что есть готовые библ. но хочю сделать сам. Пишу следующее в Иар 4.12 :



enum TState{notpressed, prepressed, pressed, longpressed, released};

struct SingleKey
{
byte worked;
byte count;
enum TState state;
};

__flash struct SingleKey Keys[4][4];

int main( void )
{
Keys[1][1].count=1;
}



И получаю : Cannot write to flash memory. help.gif

Может забыл чего в Опциях ?!
Буду благодарен за помощь !

Сообщение отредактировал dio - Jun 25 2006, 17:26
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Jun 25 2006, 17:44
Сообщение #2


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

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Код
__flash struct SingleKey Keys[4][4];
...
Keys[1][1].count=1;

Так оно и есть - пишите же во флэш. Убирайте модификатор и будет вам счастье.


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Jun 25 2006, 17:50
Сообщение #3


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



IAR не обладает подпрограммами записи во флеш по ходу выполнения программы, во избежание. Или пишите свои подпрограммы на ассемблере или размещайте переменные для постоянного хранения в eeprom. Последний вариант намного лучше, так как flash в avr записывается постранично. В вашем случае не вижу смысла размещать Keys в энергонезависимой памяти, объявляйте переменные без модификаторов - используйте RAM.


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
dio
сообщение Jun 25 2006, 18:01
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 40
Регистрация: 4-06-06
Пользователь №: 17 766



Цитата(beer_warrior @ Jun 25 2006, 20:44) *
Код
__flash struct SingleKey Keys[4][4];
...
Keys[1][1].count=1;

Так оно и есть - пишите же во флэш.


Я туда и хочю! Думал так будет лучше! Кроме того в примерах других делалось тоже самое ! blink.gif
Посоветуйте !

Цитата(SpiritDance @ Jun 25 2006, 20:50) *
В вашем случае не вижу смысла размещать Keys в энергонезависимой памяти, объявляйте переменные без модификаторов - используйте RAM.


Благодарю, этого я и хотел услышать !!!

smile.gif
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Jun 25 2006, 18:02
Сообщение #5


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



Цитата(dio @ Jun 25 2006, 21:57) *
Я туда и хочю! Думал так будет лучше! Кроме того в примерах других делалось тоже самое ! blink.gif

Каких примерах? Зачем данные с клавиатуры писать в энергонезависимую память?. У нее кроме всего прочего ограниченное количество циклов перезаписи и у flash и у eeprom.

Цитата(dio @ Jun 25 2006, 21:57) *
Посоветуйте !

Уже ж посоветовали. smile.gif
Код
struct SingleKey Keys[4][4];
...
Keys[1][1].count=1;


Блин. Издержки письменного общения. smile.gif Всегда пжалста!


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Jun 25 2006, 18:09
Сообщение #6


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

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Логически непонятно, зачем это нужно? Такие вещи как клавиатура могут менять данные по нескольку раз в секунду.Так протереть дырку во флэше на раз два. Во флэш стоит писать только какие-нибудь апдейты кода, или таблицы перекодировки.В eeprom калибровки, адреса и прочие данные для настройки конкретного экземпляра устройства.Все остальное в ОЗУ.
Объясните вашу идею с флэшом.


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
Shurmas
сообщение Jun 25 2006, 19:19
Сообщение #7


Местный
***

Группа: Новичок
Сообщений: 232
Регистрация: 24-06-06
Пользователь №: 18 332



Цитата(beer_warrior @ Jun 25 2006, 22:09) *
Такие вещи как клавиатура могут менять данные по нескольку раз в секунду.Так протереть дырку во флэше на раз два.


я вот так дырку протер в начале карьеры ... долго голову ломал почему прибор работать перестал.
Go to the top of the page
 
+Quote Post
dio
сообщение Jun 25 2006, 19:47
Сообщение #8


Участник
*

Группа: Новичок
Сообщений: 40
Регистрация: 4-06-06
Пользователь №: 17 766



Спасибо огромное за пояснения, я понял все с первого раза, просто не заметил что ответил неправильно на ваш пост (два слились в один) и вас запутал. Спасибо ещё раз !!!
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jun 26 2006, 10:53
Сообщение #9


Шаман
******

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



Цитата(dio @ Jun 25 2006, 22:47) *
...просто не заметил что ответил неправильно на ваш пост (два слились в один) ...

Это не баг, а фича!
При частых подряд ответах одного автора в одной ветке посты сливаются, чтобы места занимать меньше.
Go to the top of the page
 
+Quote Post

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

 


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


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