Микроконтроллер FlagChip FC7300F8MDT оснащен тремя ядрами ARM Cortex-M7. Архитектура требует, чтобы каждое ядро имело собственную таблицу векторов прерываний, указатель стека, reset_handler, функцию main, кучу и стек. При этом периферийные регистры и глобальные переменные являются общими для всех ядер.
Запуск ядер Core1 и Core2 осуществляется исключительно через Core0. Попытка инициализации Core2 из Core1 приводит к ошибке HardFault_Handler. Перед запуском вторичных ядер разработчики могут проверить корректность данных в таблицах векторов прерываний, расположенных в on-chip NOR Flash памяти.
Для обмена данными между ядрами используется подсистема MailBox. Она работает через единый глобальный экземпляр структуры управления. Передаваемые данные должны находиться в глобальной памяти, так как использование стека для этих целей приводит к передаче некорректных данных.
Для размещения кода каждого ядра в отдельных диапазонах Flash-памяти используются специальные атрибуты компилятора. Перезапуск отдельного ядра выполняется через вызов его Reset Handler. При этом глобальные переменные в RAM сохраняют значения, что требует повторной инициализации программных компонентов.






