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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Обработчик прерываний
lexa12
сообщение Feb 8 2014, 07:25
Сообщение #16


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

Группа: Свой
Сообщений: 196
Регистрация: 6-10-10
Из: Санкт-Петербург
Пользователь №: 59 971



Цитата(_Артём_ @ Feb 7 2014, 22:26) *
P.S. Оптимизацию включать пробовали?

Если обработчик написан на асме, зачем включать оптимизацию и что она даст?


Цитата(kolobok0 @ Feb 8 2014, 01:42) *
Или Вы считаете, что команды привязки адресов служат только для формирования таблицы прерываний?


Вы используете странные понятия.
Что в Вашем понимании "команды привязки адресов" ? Звучит как абракадабра. Если это какие то директивы или настройки компилятора, так и пишите.


Цитата(kolobok0 @ Jan 24 2014, 14:11) *
ну почему же либо?
стэк(если писюк то это та же озу), регистры, озу(конкретный адресс), внешняя переферия.


Мне вот это очень понравилось, для Вас переферия МК и "регистры" разные понятия sm.gif
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Feb 8 2014, 07:44
Сообщение #17


Гуру
******

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



Цитата(lexa12 @ Feb 8 2014, 09:25) *
Если обработчик написан на асме, зачем включать оптимизацию и что она даст?
Если на асме - ничего не даст. Попробуйте на Си написать с включённой оптимизацией. Может и не понадобится асм.
Go to the top of the page
 
+Quote Post
lexa12
сообщение Feb 8 2014, 08:49
Сообщение #18


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

Группа: Свой
Сообщений: 196
Регистрация: 6-10-10
Из: Санкт-Петербург
Пользователь №: 59 971



Цитата(_Артём_ @ Feb 8 2014, 11:44) *
Если на асме - ничего не даст. Попробуйте на Си написать с включённой оптимизацией. Может и не понадобится асм.


Обработчик простейший - пара команд. Если убрать сохранение в стек при вызове, получится то что надо.

Писать на Си с оптимизацией наверно будет тоже самое.

Я думаю может как-нибудь проинициализировать переменную в основной программе как "regvar", но настораживает, что нельзя залочить регистр в компиляторе.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Feb 8 2014, 09:27
Сообщение #19


Гуру
******

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



Цитата(lexa12 @ Feb 8 2014, 10:49) *
Я думаю может как-нибудь проинициализировать переменную в основной программе как "regvar", но настораживает, что нельзя залочить регистр в компиляторе.



Код
__regvar __no_init unsigned short IntCounter @ 14;


Go to the top of the page
 
+Quote Post
lexa12
сообщение Feb 8 2014, 10:07
Сообщение #20


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

Группа: Свой
Сообщений: 196
Регистрация: 6-10-10
Из: Санкт-Петербург
Пользователь №: 59 971



Цитата(_Артём_ @ Feb 8 2014, 13:27) *
Код
__regvar __no_init unsigned short IntCounter @ 14;

Как написано в руководстве по компилятору есть т.н. "Scratch registers" и "Preserved registers". А требуется как раз доступ к "Scratch register" недоступный __regvar.
В этом то сейчас и вопрос как его залочить sm.gif
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Feb 8 2014, 13:39
Сообщение #21


Гуру
******

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



Цитата(lexa12 @ Feb 8 2014, 12:07) *
В этом то сейчас и вопрос как его залочить sm.gif
Компилятор предоставляет вам возможность золочить регистры R4-R15. Про другие регистры ничего не говорится.
Цитата(lexa12 @ Feb 8 2014, 12:07) *
А требуется как раз доступ к "Scratch register"
Самые лучшие регистры он оставил себе.
Цитата(lexa12 @ Feb 8 2014, 12:07) *
есть т.н. "Scratch registers" и "Preserved registers".
Это относится к соглашениям о вызовах функций. Резервирование регистров - вопрос отдельный.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Feb 9 2014, 14:14
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(_Артём_ @ Feb 8 2014, 19:39) *
Компилятор предоставляет вам возможность золочить регистры R4-R15. Про другие регистры ничего не говорится.

Надо-ж!... И Вы прям вот так вот запросто золочиваете R15??...
biggrin.gif
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Feb 9 2014, 15:01
Сообщение #23


Гуру
******

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



Цитата(jcxz @ Feb 9 2014, 17:14) *
Надо-ж!...
Отож sm.gif

Цитата(jcxz @ Feb 9 2014, 17:14) *
И Вы прям вот так вот запросто золочиваете R15??...
biggrin.gif
Хоть R14...запросто....
А что - что-то не так? Ну так напишите - что толку намёками говорить...
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Feb 9 2014, 22:33
Сообщение #24


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(lexa12 @ Feb 8 2014, 11:25) *
...Что в Вашем понимании...

...для Вас переферия МК и "регистры" разные понятия sm.gif


Вы не ответили на поставленный вопрос. И пытаетесь уйти от проблем возникших у Вас. странно как то..

переферия это совокупность не только регистров но и некой обвязки выполняющей определённый функционал. Например ПДП, Или скажем АЦП.
Теоретически - Вам никто не мешает сохранить (зная поведение данного узла) определённого размера данные.
Надеюсь Вам стали понятны отличия?
Go to the top of the page
 
+Quote Post
jcxz
сообщение Feb 10 2014, 08:24
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(_Артём_ @ Feb 9 2014, 21:01) *
Хоть R14...запросто....
А что - что-то не так? Ну так напишите - что толку намёками говорить...

А ничего что в R15 - программный счётчик?
Ну если без R14 ещё как-то можно вообразить выполнение программы (без вызовов функций wink.gif, то без PC.... затрудняюсь...
Или у вас тут AVR, а не ARM? Тогда - ФИ..... sm.gif))
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Feb 10 2014, 09:33
Сообщение #26


Гуру
******

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



Цитата(jcxz @ Feb 10 2014, 12:24) *
А ничего что в R15 - программный счётчик?
Это - ничего...мелочи.

Цитата(jcxz @ Feb 10 2014, 12:24) *
Ну если без R14 ещё как-то можно вообразить выполнение программы (без вызовов функций wink.gif, то без PC.... затрудняюсь...
Быстро сдаётесь - а ведь могли бы сказать новое слово в науке и технике.
Цитата(jcxz @ Feb 10 2014, 12:24) *
Или у вас тут AVR, а не ARM? Тогда - ФИ..... sm.gif))
Ну да - мелко плаваем ...

Go to the top of the page
 
+Quote Post
lexa12
сообщение Feb 10 2014, 19:04
Сообщение #27


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

Группа: Свой
Сообщений: 196
Регистрация: 6-10-10
Из: Санкт-Петербург
Пользователь №: 59 971



Цитата(kolobok0 @ Feb 10 2014, 02:33) *
Вы не ответили на поставленный вопрос. И пытаетесь уйти от проблем возникших у Вас. странно как то..

переферия это совокупность не только регистров но и некой обвязки выполняющей определённый функционал. Например ПДП, Или скажем АЦП.
Теоретически - Вам никто не мешает сохранить (зная поведение данного узла) определённого размера данные.
Надеюсь Вам стали понятны отличия?

Вы не поняли вопрос.
Специально для Вас повторяю развернуто "как правильно написать обработчик прерывания на ассемблере с передачей параметров (переменной) в основную программу в IAR? "
И на этот вопрос уже есть ответ (не Ваш, боюсь не поймете - используя директиву EXTERN).
А Вы начинаете разводить какую то теорию. Если не знаете ответа, зачем отвечать?
Насчет переферии, очевидно тот же АЦП для программиста это тот же самый регистр(или регистры), тем более в контексте обсуждаемой темы. Зачем Вы разделяете эти понятия известно только Вам sm.gif
Go to the top of the page
 
+Quote Post

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

 


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


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