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

 
 
 
Reply to this topicStart new topic
> програмные прерывания, просьба помочь?
lons83
сообщение Aug 3 2013, 10:34
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 69
Регистрация: 9-11-12
Пользователь №: 74 296



Здравствуйте, у меня такая проблема:
хочу организовать программное прерывание. С аппаратном нет проблем, а вот как сделать программное?
Программное прерывание - функция, которая также вызывается как аппаратное прерывание только вызывается по флагу из главной программы.

Я нашел что-то: #include "sys/alt_exceptions.h" -- Вопрос то ли это то что мне надо или нет?
Если это то, тогда: Правильно я понимая что параметр
CAUSE
в функции

alt_exception_result handler
(
alt_exception_cause cause
alt_u32 addr
alt_u32 bad_addr
);

равен 3 - Инструкция системного прерывания.
Тогда чему равен параметр addr? и bad_addr ?

И как вообще например вызвать программное прерывание, если допустим в главной программе какая-то переменная получила нужное значение?
Буду очень признателен если кто-нибудь скинет какой-нибудь кусок прогаммы

Заранее спасибо))))
Go to the top of the page
 
+Quote Post
barabek
сообщение Aug 5 2013, 02:03
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



Непонятно, что Вы хотите. В обычных процессорах я такого не встречал.
А вот если конкретно такая задача:
Цитата(lons83 @ Aug 3 2013, 20:34) *
И как вообще например вызвать программное прерывание, если допустим в главной программе какая-то переменная получила нужное значение?

я бы сделал свое переферийное устройство, которое вызывало бы прерывание. Но что-то задача у Вас мутновата. Объясните подробнее, что хотите.
Go to the top of the page
 
+Quote Post
akorud
сообщение Aug 5 2013, 07:56
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 203
Регистрация: 12-11-10
Из: Poland
Пользователь №: 60 842



Цитата(lons83 @ Aug 3 2013, 12:34) *
И как вообще например вызвать программное прерывание, если допустим в главной программе какая-то переменная получила нужное значение?

А кто проверять будет? Если программа то зачем прерывание? Или вы хотите что оно само проверилось? Так не бывает. Возможно какие-то процессоры и умеют с помощью отладочных блоков, но пока не встречалось. Да и процессор аппаратно может максимум мониторить _свои_ обращения по _адресу памяти_ (что такое переменная он не знает). Если туда (в память) периферия запишет - процессор не увидит пока не прочитает (по команде главной программы sm.gif
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Aug 5 2013, 08:28
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



Цитата(lons83 @ Aug 3 2013, 12:34) *
..И как вообще например вызвать программное прерывание, если допустим в главной программе какая-то переменная получила нужное значение?..

Ваш вариант - сделать специальный самописный блок (эдакий проапгредженый брам wink.gif ), где будете хранить переменные, и который можно конфигурить на генерирование прерывания при записи/чтении из определённых адресов. Только это уже будет не программное прерывание..
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 07:52
Рейтинг@Mail.ru


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