- Главная
- Форум
- Микроконтроллеры и Системы на Модуле (SOM)
- Микроконтроллеры Nuvoton на ядре ARM9
- NUC90x. Настройка и компиляция U-boot, Kernel Linux, YAFFS2, включение TFT LCD.
- Форум
- Микроконтроллеры и Системы на Модуле (SOM)
- Микроконтроллеры Nuvoton на ядре ARM9
- NUC90x. Настройка и компиляция U-boot, Kernel Linux, YAFFS2, включение TFT LCD.
NUC90x. Настройка и компиляция U-boot, Kernel Linux, YAFFS2, включение TFT LCD.
- UnclePetya
- Автор темы
- Посетитель
6 года 2 мес. назад - 6 года 2 мес. назад #6067
от UnclePetya
UnclePetya создал тему: NUC90x. Настройка и компиляция U-boot, Kernel Linux, YAFFS2, включение TFT LCD.
В прошлой статье мы познакомились с контроллером NUC90x, попробовали скомпилировать образ ядра (90Ximage). В этой статье речь пойдет о том, как полученные образы загрузить в нашу плату.
Для этого нам нужно:
- Выставить режим загрузки через USB. Для этого выставляем 1-ый и 2-ой переключатели на SW31 в положение “ON”; - Подключить плату к компьютеру через USB;
- Открыть специальную программу NuWriter.exe. Найти ее можно в приложенном в прошлой статье BSP: \Tools\NuWriter\bin
В выпадающем меню Choose type можно выбрать тип памяти куда мы будет записывать наши образы. Выберем тип NAND.
Для использования любой операционной системы необходимо ее загрузить. Загрузчик U-Boot, разработан для того, чтобы, запустившись после включения МК, подготовить его к запуску основной операционной системы.
В качестве загрузчика U-Boot в случае с использованием NAND Flash нам нужны два бинарных файла: основной файл U-Boot, обладающий полным функционалом, и специальный SPL U-Boot, функцией которого является перемещение основного U-Boot из NAND в DDR память и его запуска.
Способ компиляции U-Boot описан в пункте 4.3 NUC90X Linux BSP User Manual (для тех, кто хочет пропустить данный этап прилагаются оба файла: u-boot-edit.bin и u-boot-spl.bin). Для начала необходимо зайти в директорию:И непосредственно скомпилировать необходимые файлы:Скомпилированный файл u-boot.bin можно найти в папке ../nuc90xbsp/build/nuc90x_uboot. Там же находится папка spl, в которой лежит файл u-boot-spl.bin. К сожалению, предустановленная конфигурация основного U-Boot включает в себя поддержку SPI Flash, что приводит к ошибке при загрузке kernel linux из NAND. Так как, пока что правильно настроить конфигурацию мне не удалось, предлагаю скачать из прикрепленных файлов предварительно скомпилированный рабочий u-boot-edit.bin и использовать его вместо u-boot.bin.
В прошлый раз мы уже компилировали образ ядра 90ximage. В этот раз нам вновь придется это сделать, ведь «повторение – мать учения». Зачем это делать вновь? Во-первых, для загрузки нам необходим не Image файл, а uImage. Во-вторых, нам нужно добавить некоторые изменения в конфигурации ядра для возможности монтирования файловой системы YAFFS2.
Заходим в директорию ядра:Выполним следующие команды:Перед нами откроется графическое меню конфигурации ядра.
На нашей плате имеется ЖКИ с разрешением 800х480. Включим поддержку LCD:Чтобы на экран выводилось загрузочное лого необходимо выполнить следующее:Так как мы решили загрузить файловую систему YAFFS2, то для этого необходимо совершить ряд подготовительных процессов, часть из которых связаны с конфигурацией kernel. В первую очередь необходимо включить функцию Memory Technology Device (MTD) для работы с NAND Flash.После чего включаем поддержку YAFFS2.Сохраняем произведенные изменения в конфигурации и закрываем меню. Остается только скомпилировать образ ядра uImage:Полученный образ автоматически копируется в папку image с названием 90xuimage.
Осталось скомпилировать YAFFS2. Для этого в BSP предусмотрена специальная утилита yaffs2utils, которая позволяет сделать это одной командой.
Полученный образ находится в той же папке.
Вернемся к NuWriter. Теперь у нас есть все необходимые файлы (u-boot-spl.bin, u-boot.bin, 90xuimage, root_yaffs2.img), которые мы копируем в какую-нибудь папку из виртуальной машины на Windows.
Приступим к загрузке этих файлов на плату.
a) Выбираем uBoot в поле Image Type, в поле Image execute address вписываем 0x200. Нажимаем на иконку справа от поля Image Name, находим файл u-boot-spl.bin. Нажимаем Burn. b) Далее выбираем Image Type – Data. Находим файл u-boot.bin. В поле Image start offset вписываем 0х100000 и нажимаем Burn.
c) Находим файл 90xuimage (выбираем All files (*.*), чтобы образ отобразился в окне). В поле Image start offset вписываем 0х200000 и нажимаем Burn.
d) Находим файл root_yaffs.img (выбираем All files (*.*), чтобы образ отобразился в окне). В поле Image start offset вписываем 0хb00000 и нажимаем Burn.
Переставляем 2 переключатель в положение off на SW31. Соединяем компьютер с UART0 на плате. Включаем терминальную программу (например putty) и перезагружаем плату.
Для загрузки нашей ОС автоматически при каждом включении пропишем следующее:После того, как загрузится ОС Linux вверху на экране можно увидеть пингвина. Далее необходимо смонтировать YAFFS2. Последующие команды писать необходимо в терминал.
В следующий раз мы попробуем поработать со звуком, протестируем резистивный тачскрин и многое другое. До скорых встреч!
Для этого нам нужно:
- Выставить режим загрузки через USB. Для этого выставляем 1-ый и 2-ой переключатели на SW31 в положение “ON”; - Подключить плату к компьютеру через USB;
- Открыть специальную программу NuWriter.exe. Найти ее можно в приложенном в прошлой статье BSP: \Tools\NuWriter\bin
В выпадающем меню Choose type можно выбрать тип памяти куда мы будет записывать наши образы. Выберем тип NAND.
Для использования любой операционной системы необходимо ее загрузить. Загрузчик U-Boot, разработан для того, чтобы, запустившись после включения МК, подготовить его к запуску основной операционной системы.
В качестве загрузчика U-Boot в случае с использованием NAND Flash нам нужны два бинарных файла: основной файл U-Boot, обладающий полным функционалом, и специальный SPL U-Boot, функцией которого является перемещение основного U-Boot из NAND в DDR память и его запуска.
Способ компиляции U-Boot описан в пункте 4.3 NUC90X Linux BSP User Manual (для тех, кто хочет пропустить данный этап прилагаются оба файла: u-boot-edit.bin и u-boot-spl.bin). Для начала необходимо зайти в директорию:
$ cd ~/YourDirectory/nuc90xbsp/uboot.v2016.11
$ make O=../build/nuc90X_uboot/ distclean
$ make O=../build/nuc90X_uboot/ nuc90X_config
$ make O=../build/nuc90X_uboot/ all
В прошлый раз мы уже компилировали образ ядра 90ximage. В этот раз нам вновь придется это сделать, ведь «повторение – мать учения». Зачем это делать вновь? Во-первых, для загрузки нам необходим не Image файл, а uImage. Во-вторых, нам нужно добавить некоторые изменения в конфигурации ядра для возможности монтирования файловой системы YAFFS2.
Заходим в директорию ядра:
$ cd ~/YourDirectory/nuc90xbsp/linux-3.10.x
$ make distclean
$ make nuc906_defconfig
$ make menuconfig
Device Drivers --->
Graphics support --->
<*> Support for frame buffer devices --->
[*] NUC90X LCD framebuffer support
NUC90X LCD panel selection (800x480 5-Inch Color TFT LCD) --->
LCD source format (RGB888 support) --->
Console display driver support --->
<*> Framebuffer Console support
Device Drivers --->
Graphics support --->
[*] Bootup logo --->
[*] Standard 224-color Linux logo
Device Drivers --->
Generic Driver Options --->
<*> Nuvoton NUC90X FMI function selection
Select FMI device to support (Support MTD NAND Flash) --->
-*- Memory Technology Device (MTD) support --->
<*> Caching block device access to MTD devices
-*- NAND Device Support --->
-*- Nuvoton NUC90X MTD NAND --->
NUC90X NAND Flash pin selection (Port C) --->
File systems --->
[*] Miscellaneous filesystems --->
<*> yaffs2 file system support
<*> Autoselect yaffs2 format
<*> Enable yaffs2 xattr support
$ make uImage
Осталось скомпилировать YAFFS2. Для этого в BSP предусмотрена специальная утилита yaffs2utils, которая позволяет сделать это одной командой.
$ cd ../applications/yaffs2utils/
$ sudo ./mkyaffs2 –inband-tags -p 2048 ../../rootfs rootfs_yaffs.img
Вернемся к NuWriter. Теперь у нас есть все необходимые файлы (u-boot-spl.bin, u-boot.bin, 90xuimage, root_yaffs2.img), которые мы копируем в какую-нибудь папку из виртуальной машины на Windows.
Приступим к загрузке этих файлов на плату.
a) Выбираем uBoot в поле Image Type, в поле Image execute address вписываем 0x200. Нажимаем на иконку справа от поля Image Name, находим файл u-boot-spl.bin. Нажимаем Burn. b) Далее выбираем Image Type – Data. Находим файл u-boot.bin. В поле Image start offset вписываем 0х100000 и нажимаем Burn.
c) Находим файл 90xuimage (выбираем All files (*.*), чтобы образ отобразился в окне). В поле Image start offset вписываем 0х200000 и нажимаем Burn.
d) Находим файл root_yaffs.img (выбираем All files (*.*), чтобы образ отобразился в окне). В поле Image start offset вписываем 0хb00000 и нажимаем Burn.
Переставляем 2 переключатель в положение off на SW31. Соединяем компьютер с UART0 на плате. Включаем терминальную программу (например putty) и перезагружаем плату.
Для загрузки нашей ОС автоматически при каждом включении пропишем следующее:
=> setenv bootcmd nboot 0x7fc0 0 0x200000\; bootm 0x7fc0
=> saveenv
=> reset
~ # mkdir flash
~ # mount –t yaffs2 –o “inband-tags” /dev/mtdblock2 /flash
В следующий раз мы попробуем поработать со звуком, протестируем резистивный тачскрин и многое другое. До скорых встреч!
Последнее редактирование: 6 года 2 мес. назад пользователем UnclePetya.
- Форум
- Микроконтроллеры и Системы на Модуле (SOM)
- Микроконтроллеры Nuvoton на ядре ARM9
- NUC90x. Настройка и компиляция U-boot, Kernel Linux, YAFFS2, включение TFT LCD.
Время создания страницы: 0.045 секунд