В некоторых сценариях использования, У пользователя много данных, которые нужно записать заранее flash Чжун, Операции в коде приложения flash Интерфейс чтения и записи для чтения этих данных, В этой статье будет показано, как эти данные могут быть добавлены sdk Генерируемые W806. fls Конец прошивки, Затем, используя инструмент загрузки flash Ли. 需要注意的是, Пользовательские данные的长度需要大于 1024 字节, 不够的可以А任意数据补齐, 否则会烧录失败.
Предположим, что файл пользовательских данных user. bin, А user. bin Положить SDK Содержание bin/W806 В каталоге. user. bin Я просто записывал данные.
Открыть tools/W806/utilities/aft_build_project. sh Документация, В соответствии с W806 Правила создания прошивки, В каждом. bin Добавить перед файлом header, Создать. img Документация, Будет много. img Файлы соединяются и создаются в конце. fls Документация. Итак, два определения были добавлены в следующем месте, user_img_header Это пользовательские данные header Адрес хранения, 这个 header 只В烧录的时候临时Использование, 所以此处А的是内存Адрес, 内存的起始地址是 0x20000000, 大小是 288KB, Выбор任意Чжун间的位置都可以. user_img_pos Это начальный адрес для хранения пользовательских данных, 这个地址可以自己定义, Следите за тем, чтобы не перекрывались адреса, по которым запускается прошивка, Начальный адрес для запуска прошивки run_img_header=0x08010000, Создано после компиляции W806. img Размер файла - это размер запущенного прошивки, После сложения они представляют собой минимальный начальный адрес данных пользователя, Меньше этого адреса перекрывается, Сделать ошибку.
Добавить следующие две строки кода в следующий код, wm_tool. exe Это инструмент для создания прошивки, Конкретно можно посмотреть wm_tool. c Документация, Вот только несколько используемых параметров. -b Представитель будет работать. bin Путь к файлу, Здесь находится bin/W806/user. bin, Это также соответствует каталогу, Если поместить SDK Под другими путями, Здесь тоже нужно внести изменения. -o Создано представителем. img Путь и имя файла, Можно поместить в тот же каталог, Так что bin/W806/user. -it Маркировка img Тип документа, Равно 0 Представляет secboot. img, Равно 1 Это означает запуск прошивки img, Здесь мы выбираем тот же тип прошивки, что и при запуске. -fc Делегаты сжаты, Выбор 0 Без сжатия. -ra Начальный адрес для хранения прошивки, Выберите предыдущее определение user_img_pos. -ih Выражение header Адрес, Выберите предыдущее определение user_img_header. Остальные параметры пока не используются, Без объяснений.
Следующая строка кода будет сгенерирована. img Файлы сгенерированы. fls Документация. Можно увидеть оригинальный код только secboot. img А W806. img Соединить, Создано W806. fls. Так что W806. img Сзади добавить user. img Параметры. Сохранить изменения.
Чтобы проверить успех, В main. c Добавить тестовый код следующим образом, Вызов flash Интерфейс чтения HAL_FLASH_Read Прочитайте только что определенный начальный адрес пользовательских данных 0x08080400 Данные о местоположении, Смотрим ли и user. bin Содержание совпадает.
Перекомпиляция, Создание прошивки, Можно увидеть в/bin/W806 В каталоге, Создано user. img Документация.
Загрузить прошивку, Использовать Upgrade Tools V1. 4. 19 Версия, Можно посмотреть в процессе загрузки, Всего скачали три. img Документация, Печатать данные и user. bin Данные в одном样的.
如果В修改应А代码过程Чжун担心固件А数据地址有重叠而不知道, 可以В sdk 的 ld/W806/gcc_csky. ld ДокументацияЧжун修改运行区固件的大小, 这样如果固件超范围到了数据区地址, 会编译报错, 可以重新划分数据起始地址向后移动.
点赞