Почему это вызывает NOCP?
У меня проблема с серьезной ошибкой в ядре процессора M4F. Проблема в том, что у меня была ошибка NOCP (попытка выполнить инструкцию сопроцессора). После удаления этой части кода:
uint16_t SV_current_heater_1_6[6];
uint8_t HBTriacCurrentFlowP = 0;
if (SV_current_heater_1_6[0] > 2200){
HBTriacCurrentFlowP |= 1;
}
else {
HBTriacCurrentFlowP &= 254;
}
Проблема исчезла. Что я сделал не так, чтобы я мог в следующий раз учиться у него?
Информация:
Atollic TrueStudio, HAL, STM32F4xx
1 ответ
У меня такая же проблема, ошибка NOCP в коде инициализации блока MPU. Все мое приложение не использует плавающие точки. Включение FPU с помощью регистра CPACR решает проблему, но мне интересно, почему что-то использует FPU, когда операции с плавающей запятой не используются явно. Кроме того, у меня есть проблема с его отладкой, поскольку