Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: програмные прерывания
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
lons83
Здравствуйте, у меня такая проблема:
хочу организовать программное прерывание. С аппаратном нет проблем, а вот как сделать программное?
Программное прерывание - функция, которая также вызывается как аппаратное прерывание только вызывается по флагу из главной программы.

Я нашел что-то: #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 ?

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

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

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

А кто проверять будет? Если программа то зачем прерывание? Или вы хотите что оно само проверилось? Так не бывает. Возможно какие-то процессоры и умеют с помощью отладочных блоков, но пока не встречалось. Да и процессор аппаратно может максимум мониторить _свои_ обращения по _адресу памяти_ (что такое переменная он не знает). Если туда (в память) периферия запишет - процессор не увидит пока не прочитает (по команде главной программы sm.gif
Kuzmi4
Цитата(lons83 @ Aug 3 2013, 12:34) *
..И как вообще например вызвать программное прерывание, если допустим в главной программе какая-то переменная получила нужное значение?..

Ваш вариант - сделать специальный самописный блок (эдакий проапгредженый брам wink.gif ), где будете хранить переменные, и который можно конфигурить на генерирование прерывания при записи/чтении из определённых адресов. Только это уже будет не программное прерывание..
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.