Как определить размер внутренней вспышки для цели?

Я хочу загрузить прошивку устройства в файл, используя 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 х 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 ответ

Решение

Пожалуйста, смотрите 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 КБ, и что они являются "читаемыми, стираемыми и записываемыми" (т.е. флэш-память). Вы уверены в своих ожиданиях от макета устройства?

Другие вопросы по тегам