Хэлоу рашн! Хочу запустить второе ядро (М4) и скинуть на него всю работу по прерываниям.
Оба ядра (М4 и М7) имеют одинаковые адреса NVIC. Получается что по сигналу от периферийного устройства оба ядра будут запрыгивать на свой обработчик? И я предполагаю, что в обработчике одного ядра просто нужно сразу выйти из прерывания? Но выйти не получится пока не будет сброшен бит вызвавший прерывание. Что-то не сходится.
Прерывания в двухъядерном режиме (stm32h745)
Re: Прерывания в двухъядерном режиме (stm32h745)
С двухъядерными STM32 дела не имел, но при чем тут одинаковые адреса NVIC? Разные ядра, разные таблицы векторов прерываний, разные, но не обязательно, обработчики. По сигналу от периферийного устройства ядра будут запрыгивать на свой обработчик, да, но если это разрешить, а в разрешении обработки одного события обоими ядрами сразу смысла не много.
Re: Прерывания в двухъядерном режиме (stm32h745)
да я забыл про CPSID. Все, вопрос отваливается, даже семофоров не нужно. (Я имелл ввиду NVIC ядра, а не самого контроллера).
Re: Прерывания в двухъядерном режиме (stm32h745)
[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" и при чём тут они - вообще не понятно...
PS: У вас каша в голове. Начните с изучения ядра Cortex-M. До того как пытаться что-то придумывать и писать. Хотя бы основы освойте.
Добавлено after 2 minutes 54 seconds:
[uquote="danone78",url="/forum/viewtopic.php?p=4664333#p4664333"]Оба ядра (М4 и М7) имеют одинаковые адреса NVIC. Получается что по сигналу от периферийного устройства оба ядра будут запрыгивать на свой обработчик?[/uquote]Запрыгивают блохи на собаку. А Cortex-M выбирает адрес ISR из таблицы векторов и переходит на него.
Что такое "адреса NVIC" и при чём тут они - вообще не понятно...
PS: У вас каша в голове. Начните с изучения ядра Cortex-M. До того как пытаться что-то придумывать и писать. Хотя бы основы освойте.
Re: Прерывания в двухъядерном режиме (stm32h745)
jcxz , безусловно вы правы, я опять прогнал, как всегда )), просто я хотел сказать, что, например, NVIC_ISER у обоих ядер один на двоих.
Re: Прерывания в двухъядерном режиме (stm32h745)
опыт показал: каждое ядро получает доступ к своей области системных ресурсов ядра, не смотря на то что адреса одни и те же. Хитро однако.
Re: Прерывания в двухъядерном режиме (stm32h745)
Документацию нужно хоть иногда открывать, ответ уже в названии главы содержится.

- Вложения
-
- nvic.png
- (21.57 КБ) 226 скачиваний