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

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

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

Сообщение danone78 »

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

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

Сообщение Adrift »

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

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

Сообщение danone78 »

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

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

Сообщение 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. До того как пытаться что-то придумывать и писать. Хотя бы основы освойте.
danone78
Встал на лапы
Сообщения: 82
Зарегистрирован: Вт фев 15, 2022 21:28:35

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

Сообщение danone78 »

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

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

Сообщение danone78 »

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

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

Сообщение Adrift »

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

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

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