Как определить размер внутренней вспышки для цели? - PullRequest
0 голосов
/ 01 февраля 2019

Я хочу загрузить прошивку устройства в файл, используя dfu-util.Как определить правильный размер флэш-памяти?

После загрузки устройства в DFU его можно найти с помощью:

dfu-util -l

, для которого я получаю следующую информацию:

Found DFU: [0483:df11] ver=2200, devnum=8, cfg=1, intf=0, alt=1, name="@Option Bytes  /0x1FFFF800/01*016 e", serial="FFFFFFFEFFFF"
Found DFU: [0483:df11] ver=2200, devnum=8, cfg=1, intf=0, alt=0, name="@Internal Flash  /0x08000000/064*0002Kg", serial="FFFFFFFEFFFF"

Чтобы загрузить конфигурацию флэш-памяти в файл, мне нужно определить размер флэш-памяти.Исходя из этой статьи , размер флэш-памяти составит 64 x 1 КБ.

Что означает «кг» в 0002 кг?
В инструкциях, которым я следую (в другом месте, для другого устройства, см. Выше), используется 128 x 1kB, что, на мой взгляд, неверно.
Как рассчитать размер флэш-памяти и что произойдет, если я установлю слишком большой размер памяти для загрузки изображения?

Команда:

dfu-util -a 0 -s 0x08000000:131072 -U ./original.bin

Я думаюдолжно быть

dfu-util -a 0 -s 0x08000000:65536 -U ./original.bin

1 Ответ

0 голосов
/ 01 февраля 2019

Пожалуйста, смотрите UM0290 , в котором мы находим:

Каждый дескриптор строки альтернативной настройки должен следовать этому отображению памяти, иначе программное обеспечение хоста ПК сможет декодировать правильное отображение длявыбранное устройство:

  • @: чтобы определить, что это специальный дескриптор отображения (чтобы избежать декодирования стандартного дескриптора)
  • /: для разделения между зонами
  • Максимум 8 цифр на адрес, начинающийся с «0x»
  • /: для разделителя между зонами
  • Максимум 2 цифры для числа секторов
  • *: Для разделителя между числом секторов и размером сектора
  • Максимум 3 цифры для размера сектора от 0 до 999
  • 1 цифра для множителя размера сектора.Допустимые значения: B (байт), K (килограмм), M (Мега)
  • 1 цифра для типа сектора следующим образом:
    • a (0x41): Для чтения
    • b (0x42): для стирания
    • c (0x43): для чтения и стирания
    • d (0x44): для записи
    • e (0x45): для чтения и записи
    • f (0x46): для удаления и записи
    • g (0x47): для чтения, стирания и записи

Таким образом, ваша строка действительно означает, что внутренняя флэш-память имеет 64 сектора по 2 КБ, и что они являются «читаемыми, стираемыми и записываемыми» (т.е. флэш-память).Вы уверены в своих ожиданиях от макета устройства?

...