Прерывания в двухъядерном режиме (stm32h745)

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Встал на лапы
Сообщения: 82
Зарегистрирован: Вт фев 15, 2022 21:28:35

Сообщение danone78 »

Хэлоу рашн! Хочу запустить второе ядро (М4) и скинуть на него всю работу по прерываниям.
Оба ядра (М4 и М7) имеют одинаковые адреса NVIC. Получается что по сигналу от периферийного устройства оба ядра будут запрыгивать на свой обработчик? И я предполагаю, что в обработчике одного ядра просто нужно сразу выйти из прерывания? Но выйти не получится пока не будет сброшен бит вызвавший прерывание. Что-то не сходится.
Реклама
Вымогатель припоя
Сообщения: 553
Зарегистрирован: Вт окт 01, 2024 15:22:33

Сообщение Adrift »

С двухъядерными STM32 дела не имел, но при чем тут одинаковые адреса NVIC? Разные ядра, разные таблицы векторов прерываний, разные, но не обязательно, обработчики. По сигналу от периферийного устройства ядра будут запрыгивать на свой обработчик, да, но если это разрешить, а в разрешении обработки одного события обоими ядрами сразу смысла не много.
Реклама
Встал на лапы
Сообщения: 82
Зарегистрирован: Вт фев 15, 2022 21:28:35

Сообщение danone78 »

да я забыл про CPSID. Все, вопрос отваливается, даже семофоров не нужно. (Я имелл ввиду NVIC ядра, а не самого контроллера).
Мудрый кот
Сообщения: 1731
Зарегистрирован: Вт авг 15, 2017 10:51:13

Сообщение jcxz »

[uquote="danone78",url="/forum/viewtopic.php?p=4664407#p4664407"]да я забыл про CPSID. Все, вопрос отваливается, даже семофоров не нужно. (Я имелл ввиду NVIC ядра, а не самого контроллера).[/uquote]NVIC есть только у ядра. "У самого контроллера" никакого NVIC нету. CPSID вообще не понятно - при чём тут?

Добавлено after 2 minutes 54 seconds:
[uquote="danone78",url="/forum/viewtopic.php?p=4664333#p4664333"]Оба ядра (М4 и М7) имеют одинаковые адреса NVIC. Получается что по сигналу от периферийного устройства оба ядра будут запрыгивать на свой обработчик?[/uquote]Запрыгивают блохи на собаку. А Cortex-M выбирает адрес ISR из таблицы векторов и переходит на него.
Что такое "адреса NVIC" и при чём тут они - вообще не понятно... :dont_know:

PS: У вас каша в голове. Начните с изучения ядра Cortex-M. До того как пытаться что-то придумывать и писать. Хотя бы основы освойте.
Реклама
Эиком - электронные компоненты и радиодетали
Встал на лапы
Сообщения: 82
Зарегистрирован: Вт фев 15, 2022 21:28:35

Сообщение danone78 »

jcxz , безусловно вы правы, я опять прогнал, как всегда )), просто я хотел сказать, что, например, NVIC_ISER у обоих ядер один на двоих.
Реклама
Встал на лапы
Сообщения: 82
Зарегистрирован: Вт фев 15, 2022 21:28:35

Сообщение danone78 »

опыт показал: каждое ядро получает доступ к своей области системных ресурсов ядра, не смотря на то что адреса одни и те же. Хитро однако.
Реклама
Вымогатель припоя
Сообщения: 553
Зарегистрирован: Вт окт 01, 2024 15:22:33

Сообщение Adrift »

Документацию нужно хоть иногда открывать, ответ уже в названии главы содержится.

Изображение
Вложения
nvic.png
(21.57 КБ) 236 скачиваний
Ответить

Вернуться в «ARM»