Вступление.
В прошлой статье мы рассмотрели основные моменты начала работы с платами IC-Nova, теперь рассмотрим как работать со встроенной Flash, например, что бы заменить Uboot установленный на нашей плате на более новый.
Что же такое Uboot? Это начальный загрузчик нашей платы. Его можно сравнить с BIOS для обычного компьютера. Uboot так же тестирует память и инициализирует основные подсистемы нашей платы.
Существует два варианта обновления нашего загрузчика:
- обновление с помощью Atmel JTAG-ICE MKII
- обновление средствами Linux загруженного на плате
Если во время второго варианта у вас что-то пойдет не так, всегда можно прибегнуть к первому варианту, если конечно у вас есть JTAG-ICE MKII.
Обновление Flash при помощи JTAG-ICE MKII.
Для работы нам понадобится AVR32 GNU Toolchain 2.2.1 для вашей операционной системы. В моем случае это Ubuntu 8.04.
Скачиваем и устанавливаем.
Flash память совместима со стандартом CFI и отражаена (маппится) на адрес 0. Образ загрузчика должен быть записан по адресу 0, а образ файловой системы по адресу 0×30000.
Для этого вы можете использовать одну из следующих команд, в данном случае мы находимся в папке с нашим buildroot'ом:
или
Обновление Flash из под Linux.
В принципе все не так сложно. Сначала необходимо настроить загрузку платы по NFS. Или если у нас нет возможности сделать это, загружаем образ с помощью wget в /tmp
Папка /tmp размещена в оперативной памяти и доступна на запись. Теперь можем приступать к обновлению.
Далее уже из под шелла даем команду:
Стоит заметить, что для платы ICnova AP7000 Base существуют следующие разделы:
- mtdblock0 содержит загрузчик, в нашем случае Uboot
- mtdblock1 содержит переменные для загрузчика
- mtdblock2 содержит образ основной файловой системы
Тонкости сборки Uboot.
Перед тем как записать новый Uboot в плату убедитесь, что он был собран именно под вашу конфигурацию. К примеру плата ICnova AP7000 Base поставляется как минимум в двух вариантах:
- без установленного USB-RS232 моста и тогда консоль необходимо выводить на uSART0 (ttyS0)
- с установленным мостом, тогда консоль может быть и на USART1 (ttyS1)
После первой сборки Buildroot зайдите в папку /project_build_avr32/base/u-boot-2009.01/include/configs/ и отредактируйте файл icnova_base.h
если мы используем USART0 то должна быть строка
Если USART1 то:
удаляем из папки с uboot файл uboot.bin
после чего выходим в корень Buildroot'a и задаем
Свежие комментарии