Ассемблер (ASM) для AVR в вопросах и ответах
- ibiza11
- Поставщик валерьянки для Кота
- Сообщения: 1900
- Зарегистрирован: Сб фев 21, 2009 13:11:40
- Откуда: Москва
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Gudd-Head, не учите котят костылям) они еще ходить не научились)
Ставим плюсы: )
- Реклама
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Ну почему же? Это как раз такой подвыперт, который ни один СИшный компилятор не осилит. Или они так делают?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: Ассемблер (ASM) для AVR в вопросах и ответах
ploop писал(а):НО: в случае возникновения любого прерывания счётчик команд перебросит тебя на соответствующую строку, где будет твой код
вот. вот это меня и интересует......, почему счетчик команд перебрасывает именно на те адресагде должны были быть прописаны вектора прерываний но в данный момент там находится моя прога....., откуда он знает что там должны находится вектора прерываний ?
Tell Me The Truth
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Ассемблер (ASM) для AVR в вопросах и ответах
FreshMan писал(а):откуда он знает что там должны находится вектора прерываний ?
Логичней было бы спросить, откуда ТЫ знаешь, что там находятся вектора прерываний
Конструктора МК так сделали и поставили тебя перед фактом.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: Ассемблер (ASM) для AVR в вопросах и ответах
откуда он знает что там должны находится вектора прерываний ?
Да вот сделали так разработчики и всё. Могли бы их и с конца разместить, и в середине, но в начале удобней.
Тупо железно. "Запаяли в схеме".
- Реклама
- Engineer_Keen
- Друг Кота
- Сообщения: 3870
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: Ассемблер (ASM) для AVR в вопросах и ответах
FreshMan писал(а):почему счетчик команд перебрасывает именно на те адресагде должны были быть прописаны вектора прерываний но в данный момент там находится моя прога.....,
Его не интересует, что там, переходы на подпрограмму обработчик прерывания или какая-то другая ваша часть программы, он просто так сделан и все... Там даже вами могут быть записаны какие-то константы, при этом переход на них может выдать чудесные глюки, самым безобидным из которых будет сброс
FreshMan писал(а): откуда он знает что там должны находится вектора прерываний ?
выше ответили...
Re: Ассемблер (ASM) для AVR в вопросах и ответах
ешкин кот....., шото не пойму..... зачем же мы тогда пишем вот эти строки ?
который, как я понял, говорят что с 0х00 начинается наша прога
ведь по факту код проги будет начинаться явно не с этого адреса, при наличии прерываний
Код: Выделить всё
.CSEG
.ORG $0000который, как я понял, говорят что с 0х00 начинается наша прога
ведь по факту код проги будет начинаться явно не с этого адреса, при наличии прерываний
Tell Me The Truth
- Engineer_Keen
- Друг Кота
- Сообщения: 3870
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Нет нет, как раз с этого, это тоже прерывание - СБРОС, с него всегда начинается программа. Т.е. вся программа, как бы есть обработчик прерывания "сброс", вот такая вот рекурсия.
Последний раз редактировалось Engineer_Keen Пн сен 02, 2013 15:38:11, всего редактировалось 1 раз.
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Ассемблер (ASM) для AVR в вопросах и ответах
FreshMan писал(а):который, как я понял, говорят что с 0х00 начинается наша прога
Нет. Это мы говорим компилятору, КУДА ЗАСУНУТЬ код, который пойдёт дальше. .CSEG .ORG $0000 можно и не писать, они по умолчанию такие и есть.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: Ассемблер (ASM) для AVR в вопросах и ответах
ешкин кот....., шото не пойму..... зачем же мы тогда пишем вот эти строки ?
Я тоже не пойму, зачем ты так пишешь?
Я вот как пишу:

INT_VECTOR_SIZE - адрес конца блока прерываний.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Gudd-Head писал(а):КУДА ЗАСУНУТЬ код, который пойдёт дальше
дальше после векторов прерываний ?
Tell Me The Truth
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Директива .org говорит компилятору: "всё, что дальше я сочинил, суй по этому адресу". Можешь написать там любое число в пределах объёма памяти, туда компилятор его и засунет.
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Ассемблер (ASM) для AVR в вопросах и ответах
FreshMan писал(а):дальше после векторов прерываний ?
Дальше после директивы .ORG $ХХХХ
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: Ассемблер (ASM) для AVR в вопросах и ответах
ploop писал(а):Директива .org говорит компилятору: "всё, что дальше я сочинил, суй по этому адресу". Можешь написать там любое число в пределах объёма памяти, туда компилятор его и засунет.
Позволю уточнить - не "по этому адресу", а "начиная с адреса".
И вообще, было ведь уже - viewtopic.php?f=57&t=72364
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
- ibiza11
- Поставщик валерьянки для Кота
- Сообщения: 1900
- Зарегистрирован: Сб фев 21, 2009 13:11:40
- Откуда: Москва
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Только INT_VECTORS_SIZEploop писал(а):INT_VECTOR_SIZE - адрес конца блока прерываний.
Ставим плюсы: )
Re: Ассемблер (ASM) для AVR в вопросах и ответах
ibiza11, на вкус и цвет 
Это скриншот кода работающего проекта, который компилировался gavrasm'ом. Последний хорош тем, что ему не нужны .inc - файлы (или как они там называются) контроллера. Все поддерживаемые варианты в нём уже зашиты.
Достаточно указать вначале файла директиву .device (например .device ATmega48)
Но некоторых "привычных" дефайнов нет, как и вышеназванного.
Так что вначале было так:
Это скриншот кода работающего проекта, который компилировался gavrasm'ом. Последний хорош тем, что ему не нужны .inc - файлы (или как они там называются) контроллера. Все поддерживаемые варианты в нём уже зашиты.
Достаточно указать вначале файла директиву .device (например .device ATmega48)
Но некоторых "привычных" дефайнов нет, как и вышеназванного.
Так что вначале было так:
Код: Выделить всё
.equ INT_VECTOR_SIZE = 0x01A ; Размер таблицы прерываний для ATmega48- ibiza11
- Поставщик валерьянки для Кота
- Сообщения: 1900
- Зарегистрирован: Сб фев 21, 2009 13:11:40
- Откуда: Москва
Re: Ассемблер (ASM) для AVR в вопросах и ответах
мне кажется они зашиты именно inc файлами, не?))) хотя я не буду спорить, я не работал в gavrasm'еВсе поддерживаемые варианты в нём уже зашиты.
не пробовали с именем, которое я предложил скомпилировать? может все таки есть?)))
Ставим плюсы: )
Re: Ассемблер (ASM) для AVR в вопросах и ответах
мне кажется они зашиты именно inc файлами, не?
А кто их знает, исходники есть, но не смотрел.
Хм, скомпилил, вы правы. Значит тогда была досадная опечатка, которую не заметил. Ну да чёрт с ней, не суть. Уже больше года на ассемблере не пишу
Re: Ассемблер (ASM) для AVR в вопросах и ответах
1) вычитал что в младших моделях AVR стек организован на аппаратном уровне, в остальных моделях - на програмном............, в чем разница и почему это так сделано
2) в каком офоциальном документе от производителя описывается принцип работы МК "взагалi" т.е. от момента сброса и далее.
3) может кто в курсе как называется сия книга http://autoelectric.xirad.ru/index.php/ ... avr/69-pop хотелось бы ее скачать и почитывать перед сном
2) в каком офоциальном документе от производителя описывается принцип работы МК "взагалi" т.е. от момента сброса и далее.
3) может кто в курсе как называется сия книга http://autoelectric.xirad.ru/index.php/ ... avr/69-pop хотелось бы ее скачать и почитывать перед сном
Tell Me The Truth
Re: Ассемблер (ASM) для AVR в вопросах и ответах
1) Стек всегда реализуется аппаратно (если мы говорим про аппаратный стек
). Только в моделях, в которых нет оперативной памяти, для стека используется небольшой буфер, который больше никуда использовать нельзя.
2) В даташите. Хотя что там описывать, во время сброса инициализируется периферия, управление передаётся на вектор RESET и всё.
3) Сия информация есть на сайте производителя. А так же в сети полно переводов.
2) В даташите. Хотя что там описывать, во время сброса инициализируется периферия, управление передаётся на вектор RESET и всё.
3) Сия информация есть на сайте производителя. А так же в сети полно переводов.


