Сравните (например) du -bm
с du -m
.
-b
устанавливает --apparent-size --block-size=1
, но затем m
переопределяет размер блока как 1M
.
Аналогично для -bh
по сравнению с -h
: -bh
означает --apparent-size --block-size=1 --human-readable
, и снова h
переопределяет размер блока.
Это та же конфигурация часов? 48 МГц USb clk нормально? Использование non crystal или ext osc для получения 48 МГц USB обычно приводит к проблеме при большом xfer Даже на F4 не может сказать для l4 Так что может показаться, что он работает с hid и довольно коротким пакетом, но начинает плохо себя вести для большего xfer
Так что я хотел бы быть немного лучше, но мне определенно понадобится больше информации, чтобы дать вам правильное направление. При этом, может быть, что-то не так, поэтому я постараюсь покрыть то, что я могу придумать. Давайте начнем с некоторых из наиболее очевидных.
Конфигурация часов / аппаратное обеспечение может вызывать проблемы из-за неисправных компонентов или неправильного выбора программного / аппаратного обеспечения. Это может вызвать ряд проблем, но это может быть симптомом этого.
Если вы используете сгенерированное промежуточное программное обеспечение 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
Попробуйте увеличить размер стека и посмотрите, что получится. Удачи в поиске вашего решения!