Ассемблер (ASM) для AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Ответить
Друг Кота
Аватара пользователя
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Сообщение FreshMan »

чтобы там небыло мусора
Tell Me The Truth
Реклама
Друг Кота
Аватара пользователя
Сообщения: 20117
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

А тебя как-то ебёт волнует, что там мусор? :) Заслал туда своё значение, мусор затёрся.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Друг Кота
Аватара пользователя
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Сообщение FreshMan »

Gudd-Head, русокото облико морале ! :))
Tell Me The Truth
Друг Кота
Аватара пользователя
Сообщения: 20117
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

Не, Свежий, ну скажи, чем тебе мешает мусор в ОЗУ и РОН?
Единственное что они могли сделать во всех АВРках, это чтобы стек после ресета настраивался сам.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Эиком - электронные компоненты и радиодетали
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

Да уж. FreshMan мертвого кота вопросами за#@$т! :))) Ржал с последних ответов Gudd-Head'а))) Молодец!
РВВ выходят наружу микроконтроллера, поэтому переводятся в самое безопасное для остальной схемы состояние - высокоимпедансное. Остальное - забота программиста.
Ставим плюсы: )
Реклама
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

FreshMan, ты просто не в курсе, что этому эффекту можно найти множество применений, например управление девайсом кнопкой на RESET'е :)

И ещё открою страшный секрет: удаляя файл с компа на жёстком диске ничего физически не удаляется, файл лежит цел целёхонек, только место помечено как свободное :)
Реклама
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

FreshMan писал(а): но как же так, ведь и РОН и РВВ принадлежат к ОЗУ
но РВВ мы обнуляем жостко, а РОН шиш с маслом
как сие возможно ? :dont_know:
РОН и РВВ не принадлежат к ОЗУ. Они расположены в отдельных регистрах, но могут быть адресованы как часть ОЗУ. За счет этого и достигается быстродействие 1MISP/MHz. Насчет безопасности ibiza11 верно сказал, тем более что в реальности это наверняка общая асинхронная линия RESET. А занулять память возможно только по одной ячейке. Можно прикинуть сколько это займет по времени, особенно учитывая что на практике никогда не нужно.
Единственное что они могли сделать во всех АВРках, это чтобы стек после ресета настраивался сам.
Не стоит. Во-первых в разных RTOS для каждой задачи используется свой стек со своим адресом, во-вторых для некоторых применений имеет смысл адресовать стек с 0x00FF, для простоты адресации ОЗУ (XH=0x01; XL=адрес).
СпойлерРазумеется это можно делать только если эти адреса не заняты под системные нужды. Ну там, m8, где ОЗУ фактически начинается с 0x0060, если не ошибаюсь.
akl
Друг Кота
Сообщения: 4470
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Сообщение akl »

Gudd-Head писал(а):Единственное что они могли сделать во всех АВРках, это чтобы стек после ресета настраивался сам.
Замечу, не во всех.
В той же mega8a до сих пор нет. Так что стек лучше настраивать вручную.
Друг Кота
Аватара пользователя
Сообщения: 20117
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

COKPOWEHEU писал(а):Не стоит.
Да ну? Лучше когда там $0000, что ли? И при первом же push'е сваливается в $FFFF?
akl писал(а):В той же mega8a до сих пор нет.
Я имел в виду МОГЛИ БЫ.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

Да я знаю что там этого не сделано :-) Я про то что делать это и не надо, тем более что у разных контроллеров разный объем ОЗУ, соответственно разный адрес ее конца. Да и нагляднее так: если уж руками выставил стек, может будешь помнить что туда писать что попало не стоит. А если автоматически сгенерировалось, как в ЯВУ, например, так там и к памяти просто так не обратишься.
Друг Кота
Аватара пользователя
Сообщения: 20117
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

COKPOWEHEU писал(а):тем более что у разных контроллеров разный объем ОЗУ, соответственно разный адрес ее конца
:facepalm: Естессно. Для каждого МК свой адрес стека. А СДЕЛАНО это, например, у 13-й Тиньки.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

Да? Не знал. Но все равно лучше перестраховаться и указать стек явно.
Друг Кота
Аватара пользователя
Сообщения: 20117
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

COKPOWEHEU писал(а):Да? Не знал.
И не только у неё, во всех многих новых камнях.
COKPOWEHEU писал(а):Но все равно лучше перестраховаться и указать стек явно.
Лучше перестраховаться и почитать самый последний ДШ. Или вы перестраховываетесь и после ресета всю периферию отключаете и порты в Z-состояние переводите? :)))
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

Конечно инициализирую. Не отслеживать же чем этот ресет был вызван, началом работы, сбросом или там собакой.
Слово "переносимость" знакомо?
Друг Кота
Аватара пользователя
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Сообщение FreshMan »

и снова о старом:
rcall годится при обьеме памяти до 8к
call годится при обьеме памяти до 64к
а что же используется в тех МК где память перевалила за рубеж 64к ? :dont_know:
Tell Me The Truth
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

А там используют iCall и/или "удлинители". Как правило, контроллеры с таким объемом флеша не содержат столько кода, объем этот преимущественно используется для размещения ресурсов(таблиц преобразования, картинок, шрифтов, звуков).
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Что rcall/call, что rjmp/jmp применяется к месту. Если в МК 64 кило флеша, это не значит, что все прыжки будут с начала в конец. Подавляющее большинство - всего на несколько слов, может только раз или два во всём проекте пригодится прыгнуть дальше.
Друг Кота
Аватара пользователя
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Сообщение FreshMan »

ploop писал(а):может только раз или два во всём проекте пригодится прыгнуть дальше.
и шо тогда делать?
Tell Me The Truth
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Сообщение a_skr »

прыгать два (или больше) раза:

jmp m1
...
m_1: rjmp m_2
m1: jmp m2
m_2:
...
m2:
Последний раз редактировалось a_skr Пт сен 06, 2013 10:35:25, всего редактировалось 1 раз.
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

и шо тогда делать?
Использовать rjmp/rcall и не париться. Если вдруг размер прыжка превысит их возможности - компилятор выдаст ошибку, сотрёшь буквочку R, и волосы станут мягкими и шелковистыми.
Ответить

Вернуться в «AVR»