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

 
 
 
Reply to this topicStart new topic
> Зависание при записи во флэш Tiny45, Вызов SPM приводит к зависанию
Polaris
сообщение Jul 4 2018, 11:51
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 265
Регистрация: 8-12-05
Пользователь №: 11 964



Добрый день,

пришлось заняться написанием загрузчика для Tiny45, с которым не работал уже тысячу лет, и возникла проблема с записью флэш при помощи SPM.
Во внутренний буфер все пишется замечательно, а вот со стиранием/записью страницы есть вопросы.
Код стирания, например выглядит вот так:

Код
LED_PIN_Set;
#asm
  movw R30, R10
  ldi R22, 0x03
  out 0x37, R22
  spm
#endasm
LED_PIN_Clear;
while (SPMCSR & (1 << SPMEN));


Адрес страницы лежит в R10, это железно, так как страница пишется/стирается. Но вот выхода из SPM не происходит, так как светодиод загорается (LED_PIN_Set), но уже не гаснет, то есть до команды LED_PIN_Clear выполнение не доходит.
Фьюз SELFPRGEN включен.
Есть ли у кого-нибудь идеи, почему это может происходить? Потому как наполнение буфера для страницы работает, хотя там тоже используется SPM, хотя и не происходит изменений во флэш. Сама страница тоже пишется, но один раз - из пишущего страницу SPM выхода не происходит.

Заранее спасибо!
Go to the top of the page
 
+Quote Post
zombi
сообщение Jul 4 2018, 17:19
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 055
Регистрация: 10-09-08
Пользователь №: 40 106



Прерывания запретить в asm вставке, регистры сохранить в стеке?
Go to the top of the page
 
+Quote Post
Polaris
сообщение Jul 5 2018, 06:34
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 265
Регистрация: 8-12-05
Пользователь №: 11 964



Цитата(zombi @ Jul 4 2018, 19:19) *
Прерывания запретить в asm вставке, регистры сохранить в стеке?

Прерывания были отключены, регистры не используются в тексте существенным образом.

Проблема была все-таки в логике программы, так что с процессором все в порядке.
Go to the top of the page
 
+Quote Post

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

 


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


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