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

 
 
> Прерывание на ASM, IAR AVR interrupt
_Артём_
сообщение Feb 6 2011, 18:48
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Всем привет!

Нужно написать обработчик прерывания на ассемблере (остальная программа на Си);
процессор - AtxMega256A3, компилятор - IAR.

Нет ли у кого-нибудь примера кода?

Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
andk
сообщение Feb 7 2011, 14:59
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 199
Регистрация: 17-12-04
Из: Миасс
Пользователь №: 1 519



Все таки напишите, что нужно получить в итоге.
Сишный код у последних компиляторов вполне себе компактный, может асм и не нужен вовсе?
По приведенному выше коду:
Откуда уверенность, что сишный компилятор оставил вам достаточно стека?
совет от defunct +1
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Feb 7 2011, 16:39
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Попытаюсь описать что не так...

Программа компилится без ошибок, вроде бы правильно работает.
Но есть странности:
при установке точки прерывания симулятор (AVRStudio) открывает не мой исходный файл а окно Disasemdler-а, что странно и неудобно.



Цитата(andk @ Feb 7 2011, 16:59) *
Все таки напишите, что нужно получить в итоге.


В итоге хотелось бы:
прерывание должно быть написано в asm-файле, остальная программа на Си. И чтобы всё это работало...


Цитата(andk @ Feb 7 2011, 16:59) *
Сишный код у последних компиляторов вполне себе компактный, может асм и не нужен вовсе?


Можно и обойтись, но что-то слишком медленный код у IAR получился.

Цитата(andk @ Feb 7 2011, 16:59) *
Откуда уверенность, что сишный компилятор оставил вам достаточно стека?

Не то чтобы уверенность, я о стеке и не подумал...
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Feb 7 2011, 17:28
Сообщение #4


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

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



Цитата(_Артём_ @ Feb 7 2011, 19:39) *
Попытаюсь описать что не так...

Программа компилится без ошибок, вроде бы правильно работает.
Но есть странности:
при установке точки прерывания симулятор (AVRStudio) открывает не мой исходный файл а окно Disasemdler-а, что странно и неудобно.
Не то чтобы уверенность, я о стеке и не подумал...

А Вы стек вообще-то определили? Команды push и pop без стека не работают и не удивительно , что открывается Disasm. Компилятор не проверяет логику.


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

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Feb 7 2011, 18:19
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(ILYAUL @ Feb 7 2011, 19:28) *
А Вы стек вообще-то определили? Команды push и pop без стека не работают и не удивительно , что открывается Disasm. Компилятор не проверяет логику.


Стек определил. С запасом... потому и задумывался о нём...

Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Feb 7 2011, 20:34
Сообщение #6


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

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



Цитата(_Артём_ @ Feb 7 2011, 21:19) *
Стек определил. С запасом... потому и задумывался о нём...

Что значит "...С запасом.. " Оределяют только "вершину" стека -обычно старший адрес общего адресного пространства SRAM, далее , как вершина айсберга, всё что туда вкладывается стремится к нулю. Так , что Ваш запас - это весь объём SRAM. C начального адреса SRAM обычно записываются все необходимые данные , которые Вы используете в программе. Так вот - нет ли перехлёста данных "впихнутых" в SRAM c данными записанными Вашей программой по тем же адресам SRAM


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

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- _Артём_   Прерывание на ASM   Feb 6 2011, 18:48
- - SasaVitebsk   Цитата(_Артём_ @ Feb 6 2011, 21:48) Всем ...   Feb 7 2011, 11:53
|- - _Артём_   Цитата(SasaVitebsk @ Feb 7 2011, 13:53) А...   Feb 7 2011, 13:33
|- - defunct   Цитата(_Артём_ @ Feb 7 2011, 15:33) IAR н...   Feb 7 2011, 14:29
- - GDI   Почитайте в хэлпе как асм код встраивать в Си, точ...   Feb 7 2011, 12:00
- - V_G   У вас прерывание единственное? Когда несколько пре...   Feb 8 2011, 06:01
|- - _Артём_   Цитата(V_G @ Feb 8 2011, 08:01) У вас пре...   Feb 8 2011, 13:32
|- - Палыч   Цитата(V_G @ Feb 8 2011, 09:01) нужно учи...   Feb 8 2011, 13:54
|- - _Артём_   Цитата(Палыч @ Feb 8 2011, 15:54) При вхо...   Feb 8 2011, 14:11
- - _Артём_   В завершении темы выкладываю пример проекта на Си ...   Feb 10 2011, 14:24


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

 


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


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