Страница 1 из 1

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

Добавлено: Ср дек 25, 2024 21:23:03
danone78
Хэлоу рашн! Хочу запустить второе ядро (М4) и скинуть на него всю работу по прерываниям.
Оба ядра (М4 и М7) имеют одинаковые адреса NVIC. Получается что по сигналу от периферийного устройства оба ядра будут запрыгивать на свой обработчик? И я предполагаю, что в обработчике одного ядра просто нужно сразу выйти из прерывания? Но выйти не получится пока не будет сброшен бит вызвавший прерывание. Что-то не сходится.

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

Добавлено: Ср дек 25, 2024 22:26:45
Adrift
С двухъядерными STM32 дела не имел, но при чем тут одинаковые адреса NVIC? Разные ядра, разные таблицы векторов прерываний, разные, но не обязательно, обработчики. По сигналу от периферийного устройства ядра будут запрыгивать на свой обработчик, да, но если это разрешить, а в разрешении обработки одного события обоими ядрами сразу смысла не много.

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

Добавлено: Чт дек 26, 2024 01:07:27
danone78
да я забыл про CPSID. Все, вопрос отваливается, даже семофоров не нужно. (Я имелл ввиду NVIC ядра, а не самого контроллера).

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

Добавлено: Чт дек 26, 2024 03:35:59
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. До того как пытаться что-то придумывать и писать. Хотя бы основы освойте.

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

Добавлено: Чт дек 26, 2024 22:25:44
danone78
jcxz , безусловно вы правы, я опять прогнал, как всегда )), просто я хотел сказать, что, например, NVIC_ISER у обоих ядер один на двоих.

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

Добавлено: Вт дек 31, 2024 03:56:22
danone78
опыт показал: каждое ядро получает доступ к своей области системных ресурсов ядра, не смотря на то что адреса одни и те же. Хитро однако.

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

Добавлено: Вт дек 31, 2024 10:03:55
Adrift
Документацию нужно хоть иногда открывать, ответ уже в названии главы содержится.

Изображение