Так что я хотел бы быть немного лучше, но мне определенно понадобится больше информации, чтобы дать вам правильное направление. При этом, может быть, что-то не так, поэтому я постараюсь покрыть то, что я могу придумать. Давайте начнем с некоторых из наиболее очевидных.
Конфигурация часов / аппаратное обеспечение может вызывать проблемы из-за неисправных компонентов или неправильного выбора программного / аппаратного обеспечения. Это может вызвать ряд проблем, но это может быть симптомом этого.
Если вы используете сгенерированное промежуточное программное обеспечение FATFS из ST, небольшой размер стека внутри конфигурации L4 может вызвать именно эту проблему. он может работать до тех пор, пока регистр ПК не получит ошибочную ошибку, которая может привести к некоторой неисправности или, в некоторых случаях, просто к плохому результату, возвращенному внутри FATFS, или к периферийному коду USB от ST, и он вернет грязный сектор на Окно USB считывается из FATFS, что приводит к прекращению операций на периферийном устройстве.
Я вижу, что вы используете STM32Cube, поэтому вы можете отредактировать размер стека и кучи, открыв файл startup_stm32l475xx.s
и отредактировав их так, как считаете нужным для своего приложения.
; Amount of memory (in bytes) allocated for Stack
; Tailor this value to your application needs
; <h> Stack Configuration
; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>
Stack_Size EQU 0x400
AREA STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem SPACE Stack_Size
__initial_sp
; <h> Heap Configuration
; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>
Heap_Size EQU 0x200
Попробуйте увеличить размер стека и посмотрите, что получится. Удачи в поиске вашего решения!
Да, проверьте инструменты AutomatedQA. Они могут сделать покрытие кода с ручным тестированием, и у них есть инструменты для автоматизации ручных тестов, которые также могут быть вместе с покрытием кода.
Получение 100%-го покрытия является, вероятно, излишеством - и существуют некоторые случаи, где, даже когда все строки покрыты, инструмент не может показать его. Однако необходимо проверить инструменты покрытия кода в Системе Команды Visual Studio или любом из многих внешних инструментов покрытия, такие как nCover. Система команды позволяет Вам определять связанные с тестированием политики регистрации, которые могут позволить Вам делать то, что Вы хотите относительно проверки, которая зарегистрировалась в коде, был протестирован.