USB поведение не так, как ожидалось

Сравните (например) du -bm с du -m.

-b устанавливает --apparent-size --block-size=1, но затем m переопределяет размер блока как 1M.

Аналогично для -bh по сравнению с -h: -bh означает --apparent-size --block-size=1 --human-readable, и снова h переопределяет размер блока.

0
задан P__J__ 18 March 2019 в 16:04
поделиться

2 ответа

Это та же конфигурация часов? 48 МГц USb clk нормально? Использование non crystal или ext osc для получения 48 МГц USB обычно приводит к проблеме при большом xfer Даже на F4 не может сказать для l4 Так что может показаться, что он работает с hid и довольно коротким пакетом, но начинает плохо себя вести для большего xfer

0
ответ дан Michel Sanches 18 March 2019 в 16:04
поделиться

Так что я хотел бы быть немного лучше, но мне определенно понадобится больше информации, чтобы дать вам правильное направление. При этом, может быть, что-то не так, поэтому я постараюсь покрыть то, что я могу придумать. Давайте начнем с некоторых из наиболее очевидных.

Конфигурация часов / аппаратное обеспечение может вызывать проблемы из-за неисправных компонентов или неправильного выбора программного / аппаратного обеспечения. Это может вызвать ряд проблем, но это может быть симптомом этого.

Если вы используете сгенерированное промежуточное программное обеспечение 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

Попробуйте увеличить размер стека и посмотрите, что получится. Удачи в поиске вашего решения!

0
ответ дан James Novorita 18 March 2019 в 16:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: