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

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> Работа с опреативной памятью в AVR ASM
ILYAUL
сообщение Jan 26 2011, 06:15
Сообщение #31


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(OlegNZH @ Jan 26 2011, 09:02) *
Вообще-то я- про конкретную конструкцию говорил
cli ; !!!
ld R16, X+
А регистры XYZ к прерываниям никаким боком...Здесь речь может идти только о регистрах ВВ.

А где Вы в этом коде нашли регистры ВВ?


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jan 26 2011, 06:53
Сообщение #32


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(нечитатель @ Jan 26 2011, 03:54) *
произойдёт прерывание - после возврата из него XH и (или?) XL испортятся. Даже если попытано их сохранять/восстановлять в процедуре обработки прерывания.

Это было 100 лет назад. До крызыса sm.gif Сейчас уже такой баги нетути.
Go to the top of the page
 
+Quote Post
_Bill
сообщение Jan 26 2011, 06:57
Сообщение #33


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219



Цитата(_Pasha @ Jan 26 2011, 10:53) *
Это было 100 лет назад. До крызыса sm.gif Сейчас уже такой баги нетути.

Я что-то вообще о такой баге не слышал, да и встречать не приходилось. Или я не там ходил?
Go to the top of the page
 
+Quote Post
OlegNZH
сообщение Jan 26 2011, 07:13
Сообщение #34


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 19-11-08
Пользователь №: 41 782



Bill Да причём тут целостность инструкции! Уже второй пост.Кому вы что об'ясняете? Речь шла о том, что после постинкремента - уход по прерыванию , и сколько X не пушируй , он всё равно "сломается". И было указано , что с мерами предосторожностями нужно работать только с 16-ти битными регистрами ВВ , а не с XYZ.


Цитата(нечитатель @ Jan 26 2011, 03:54) *
Не считая полезным занятием переписывание собственными словами документа "AVR Instruction Set", обратил бы внимание на:
Код
ldi XH, high(addr)
ldi XL, low(addr)
cli                                ; !!!
ld R16, X+
ld R17, X
sei                                ; !!!

В том смысле, что если после ld R16, X+ произойдёт прерывание - после возврата из него XH и (или?) XL испортятся. Даже если попытано их сохранять/восстановлять в процедуре обработки прерывания.

Где-то умнее излагается о, но ссылку либо название затрудняюсь.


Сообщение отредактировал OlegNZH - Jan 26 2011, 07:18
Go to the top of the page
 
+Quote Post
_Bill
сообщение Jan 26 2011, 07:15
Сообщение #35


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219



Цитата(OlegNZH @ Jan 26 2011, 11:13) *
Bill Да причём тут целостность инструкции! Уже второй пост.Кому вы что об'ясняете? Речь шла о том, что после постинкремента - уход по прерыванию , и сколько X не пушируй , он всё равно "сломается".

Что значит "сломается"?
Go to the top of the page
 
+Quote Post
OlegNZH
сообщение Jan 26 2011, 07:44
Сообщение #36


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 19-11-08
Пользователь №: 41 782



Цитата(_Bill @ Jan 26 2011, 10:15) *
Что значит "сломается"?

Вот и я про то-же.(Вы шуток не понимаете sm.gif ) . В оригинале:
"...В том смысле, что если после ld R16, X+ произойдёт прерывание - после возврата из него XH и (или?) XL испортятся..."
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Jan 26 2011, 07:49
Сообщение #37


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(OlegNZH @ Jan 26 2011, 10:13) *
Bill Речь шла о том, что после постинкремента - уход по прерыванию

Насколько понятно из Ваших слов это после этого
Код
ld R16, X+


Тогда не прокатывает вторая часть фразы-
Цитата
уход по прерыванию

Никуда он там не уйдёт , пока не выполнит
Код
ld R17, X
sei


И как же надо написать обработчик прерывания , что бы убить не только регистры XL и XH , но и найти в стеке ячейки с их даными и там их maniac.gif krapula.gif


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
OlegNZH
сообщение Jan 26 2011, 08:31
Сообщение #38


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 19-11-08
Пользователь №: 41 782



О,господи..... Вы мой пост #27 прочитайте. (и #26 V_G)

Сообщение отредактировал OlegNZH - Jan 26 2011, 08:33
Go to the top of the page
 
+Quote Post
_Bill
сообщение Jan 26 2011, 09:51
Сообщение #39


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219



Цитата(OlegNZH @ Jan 26 2011, 12:31) *
О,господи..... Вы мой пост #27 прочитайте. (и #26 V_G)

Прошу прощения. Сразу не понял. Случай из жизни (немного не в тему).
Как-то, еще во время учебы в институте, стоим на перемене, разговариваем, анекдоты травим. Рассказали анекдот, все посмеялись, звонок, все вернулись в аудиторию. Идет занятие. Вдруг по середине занятия раздается громкое "Гы-гы-гы!". Мы все дружно оглядываемся и удивленно-вопросительно смотрим на гогочущего. Тот удовлетворенно - "Дошло!". После этого заржали все остальные. Естественно, преподаватель так ничего и не понял.
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Jan 26 2011, 13:01
Сообщение #40


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(OlegNZH @ Jan 26 2011, 11:31) *
О,господи..... Вы мой пост #27 прочитайте. (и #26 V_G)

Прочёл:
Цитата
ну во-первых , после ld R16, X+ прерывание не может произойти
На что Вам правда уже ответитли - может
К тому же эта фраза отличается от
Цитата
Речь шла о том, что после постинкремента - уход по прерыванию
на которую Вам я и ответил


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
нечитатель
сообщение Jan 26 2011, 19:52
Сообщение #41


Местный
***

Группа: Участник
Сообщений: 235
Регистрация: 20-11-10
Пользователь №: 61 032



Цитата(_Pasha @ Jan 26 2011, 09:53) *
Это было 100 лет назад. До крызыса :) Сейчас уже такой баги нетути.
С этого места заинтересовало. Бага была в чём конкретно и в какой момент перестала быть?

Популярное развлечение в плане для себя лично: забыть cli + sei вокруг её, танцевать с бубном на ровном месте.
Если не забыть - тогда и не танцевать, но после крызиса это как-то иначе теперь решать прилично мало ли вдруг.

Теоретические рассуждения читать интересно (особенно писать, наверное), а литературным языком описание так и не вспомнил я где.

---
К выступающим есть предложение не стараться делать так. Оно даже и в правилах отдельной строкой прописано.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jan 27 2011, 04:32
Сообщение #42


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(нечитатель @ Jan 26 2011, 23:52) *
С этого места заинтересовало. Бага была в чём конкретно и в какой момент перестала быть?

Первые эрраты на АТ90S2313 что-то подобное содержали, но это было так давно, что не помню, касалось ли это LD/ST , но LDS/STS - однозначно, типо такая конструкция
Код
sbrc  r0,0
lds   r1, ADDR

с разрешенными прерываниями, является багонеустойчивой
Go to the top of the page
 
+Quote Post
OlegNZH
сообщение Jan 27 2011, 09:19
Сообщение #43


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 19-11-08
Пользователь №: 41 782



Цитата(_Pasha @ Jan 27 2011, 07:32) *
Первые эрраты на АТ90S2313 что-то подобное содержали, но это было так давно, что не помню, касалось ли это LD/ST , но LDS/STS - однозначно, типо такая конструкция
Код
sbrc  r0,0
lds   r1, ADDR

с разрешенными прерываниями, является багонеустойчивой


Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post

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

 


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


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