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