ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
26 ноября
605963
shan (25.06.2015 13:50, просмотров: 19232)
Ошибка HARD_FAULT в RTOS от КЕЙЛ 5.14 Запущено несколько процессов с периодом 10 мс, 1с, и 2 процесса без жёсткого периода. Один из 2-х процессов пишет (дозипись по append) файл журнала работы в диск S0: (на SPI флеш AT45DB321D). Иногда после сброса, первая группа команд {finit(),fopen(), fwrite("а") fclose() funinit()} выполняется без ошибок, а во второй группе fwrine() вылетает на вечный цикл по адресу HARD_FAUL_HANDLER (в startup_stm32f2xx.s)и приложение виснет. После этой ошибки,всегда сразу после ресета первый fwrine() вылетает на HARD_FAUL_HANDLER. Если записываемый файл удалить из S0:, то приложение работает нормально сколь-угодно долго (файл пишется). При очередном программном ресете может выскочить описанная бяка с 5-10% вероятностью. Программный ресет выполняется естественно до finit() или после funinit(). Нигде не нашёл в каких случаях происходит переход на HARD_FAUL_HANDLER. Что посоветуете? Где почитать про HARD_FAUL_HANDLER?