**Отладочная плата EV-iMX287** \\
* {{:user_manual_rus_2.1.pdf|Руководство пользователя(Обновлено 28/09/2012)}}
* [[http://otladka.com.ua/doc/evimx287/evimx287_rev2_schematic.pdf|Принципиальная схема (rev 2).]]
* [[http://otladka.com.ua/doc/evimx287/evimx287_rev3_schematic.pdf|Принципиальная схема (rev 3) Обновлено 11/02/2013]]
* [[https://docs.google.com/open?id=0B_FS6J7Oi9HaTGVwRzZySnEwSnc|Утилита для программирования NAND Flash + собранные ядро и rootfs (Обновлено 28/09/2012)]]
* [[https://docs.google.com/open?id=0B_FS6J7Oi9HaWHlZY2ZIR0Z6bm8|Утилита для создания загрузочной microSD карты (cfimager) (Обновлено 28/09/2012)]]
* {{:sb_loader.zip|Утилита для загрузки файлов в память через USB (sb_loader)}}
* [[https://docs.google.com/file/d/0B_FS6J7Oi9HadFZRSU9KUC1KTTA/edit?usp=sharing|Архив с виртуальной машиной (VirtualBox).Обновлено 12/02/2013]]
* {{:ev_imx287_virtual_box.pdf|Руководство по настройке виртуальной машины}}
* {{:ev_imx287_build_kernel_rootfs.pdf|Руководство по сборке ядра и файловой системы}}
* {{:ax250_evodbg_ev-imx287_userguide_v110.pdf|Руководство по запуску WinCE 6.0}}
* [[http://otladka.com.ua/doc/ax250_wce60r3_evodbg_ev-imx287_img_v110.zip|Собранный образ для запуска WinCE 6.0 (Разработан компанией Axonim Devices)]]
* [[http://otladka.com.ua/doc/cfimager_qnx.rar|Собранный образ для запуска QNX ]]
{{:4a.png?300|}}{{:board.png?300|}}
**Внимание!** В платах EV-iMX287 eFuse процессора не запрограммированы. При необходимости вы можете запрограммировать их сами с помощью утилиты.Пока eFuse не запрограммированы, используйте
в процессе работы, загрузки в плату sb файлы с индексом ivt (imx28_ivt_linux.sb, imx28_ivt_uboot.sb)
Заходим в папку ltib, запускаем
./ltib -c
./ltib -p boot_stream.spec -f
сборка boot stream image
После сборки в папке ev-imx287/src/ltib/rootfs/boot/ будут созданы файлы imx28_ivt_linux.sb, imx28_ivt_uboot.sb
В папке ev-imx287/src/ltib/ будет создан файл файловой системы rootfs.ext2.gz
Для создания updater.sb и updater_ivt.sb
./ltib --selectype
-- Choose the platform type
Selection (imx28) --->
-- Choose the packages profile
Selection (mfg firmware profile) --->
После завершения сборки будут созданы файлы updater.sb и updater_ivt.sb (ev-imx287/src/ltib/)
Выбор типа генерируемой файловой системы
./ltib -c -> Target Image Generation -> Options -> Target Image -> ext2.gz ramdisk
Переменные окружения
Задается в
./ltib -c
Package list --->
Файловая система на SD карте
noinitrd console=ttyAM0,115200 root=/dev/mmcblk0p3 rw rootwait ip=none gpmi
Файловая система в NAND Flash
noinitrd console=ttyAM0,115200 ubi.mtd=1 root=ubi0:rootfs0 rootfstype=ubifs rw gpmi
Файловая система NFS
noinitrd console=ttyAM0,115200 fec_mac=00:08:02:6B:A3:1A root=/dev/nfs nfsroot=10.193.100.213:/data/rootfs_home/rootfs_mx28 rw ip=dhcp rootwait gpmi
Файловая система RAMFS
noinitrd console=ttyAM0,115200 root=/dev/ram0 rdinit=/sbin/init fec_mac=00:08:02:6B:A3:1A gpmi
Запись ядра и rootfs на SD карту (Windows) \\
Копируем файлы imx28_ivt_linux.sb и cfimager.exe в папку cfimager. Туда же распаковываем файл rootfs.ext2.gz.Запускаем программу: \\
cfimager.exe -a -f imx28_ivt_linux.sb -e rootfs.ext2 -dual_boot -d h (Где параметр h - имя диска картридера, в который установлена карта)
Запись u-boot на SD карту (Windows)
Копируем файлы imx28_ivt_uboot.sb и cfimager.exe в папку cfimager.Запускаем программу:
cfimager -a -f imx28_ivt_uboot.sb -d h (Где параметр h - имя диска картридера, в который установлена карта)
Для загрузки файлов imx28_ivt_uboot.sb или imx28_ivt_linux в DDR2 платы используем утилиту sb_loader (Windows).
Подключаем кабель USB A-A к разъему USB (OTG) платы и компьютеру, кабель к COM порту, запускаем терминальную программу (например PuTTY) и подключаем к плате питание.Запускаем утилиту
sb_loader -f imx28_ivt_uboot.sb для загрузки u-boot
или
sb_loader -f imx28_ivt_linux.sb для загрузки ядра
Запись ядра и файловой системы в NAND Flash. Способ 1 \\
1. На флешку записываем 2 файла - imx28_ivt_linux.sb и rootfs.jffs2 \\
2. Загружаемся с SD карты. \\
3. Вставляем флешку в USB порт платы и монтируем
mount /dev/sda1 /mnt
4. Стираем NAND Flash \\
flash_eraseall /dev/mtd0
5. Пишем ядро \\
kobs-ng init /mnt/imx28_ivt_linux.sb
6. Пишем файловую систему \\
flash_eraseall /dev/mtd1
nandwrite /dev/mtd1 /mnt/rootfs.jffs2
Отключаем питание платы. Устанавливаем DIP SWITCH переключатель в режим загрузки с NAND Flash (0010). Подаем питание, плата должна загрузится.
Запись ядра и файловой системы в NAND Flash. Способ 2 \\
1.
./ltib -c
Package List -> Package Selection -> Выбираем нужные пакеты файловой системы \\
Здесь же указываем командную строку
noinitrd console=ttyAM0,115200 ubi.mtd=1 root=ubi0:rootfs0 rootfstype=ubifs rw gpmi
\\
{{:1.png?300|}} \\
Target Image Generation -> Options --> Target Image: ext2.gz ramdisk \\
{{:2.png?300|}} \\
Два раза Exit, сохраняем конфигурацию, ждем пока соберется ядро и файловая система.\\
2.
./ltib -p boot_stream.spec -f
создаем boot stream image. \\
3. Запускаем скрипт build_rfs.sh, который создаст архив rootfs.tar.bz2 в папке ltib. \\
4. Копируем файлы rootfs.tar.bz2 и rootfs/boot/imx28_ivt_linux.sb в папку \Mfgtools-Rel-1.6.2.0322\Profiles\MX28 Linux Update\OS Firmware\files\ \\
файл imx28_ivt_linux.sb переименовываем в linux.sb \\
5. Снимаем джампер с разъема USBID (X11) \\
6. Подключаем кабель USB в верхней разъем X10 (USB OTG) \\
7. Устанавливаем Dip Switch (S2) в положение 0000 (загрузка с USB) \\
8. Подаем на плату питание. \\
9. Запускаем утилиту MfgTool.exe, нажимаем Start и ждем. (если подключить кабель к COM порту, можно в терминальной программе наблюдать процесс программирования) \\
{{:3.png?300|}} \\
10. После успешной записи NAND Flash, нажимаем Stop, отключаем USB кабель и питание, переводим DIP SWITCH в положение 0010 и подаем питание на плату.Начнется процесс загрузки из NAND Flash.\\
{{:4.png?300|}} \\
Использование U-boot \\
Используется u-boot-imx, не входящий в LTIB. \\
Создаем карту с u-boot.sb, загружаемся с SD карты (Boot DIP SWITCH =1001) \\
Запись в SPI Flash \\
sf probe 2
sf erase 0x0 0x800000
tftp 0x42000000 u-boot.sb
sf write 0x42000000 0x0 0x42000
Переменные окружения хранятся в SPI Flash, адрес 0x60000. \\
Загрузка с USB \\
Устанавливаем USB Flash Drive в нижний разъем USB \\
usb reset
fatload usb 0:1 0x42000000 uImage
bootm 0x42000000
Проигрывание видеофайла с USB флешки \\
root@freescale ~$mount /dev/sda1 /mnt
root@freescale ~$gplay /mnt/prometheus_trailer.mp4
Запуск терминальной программы screen \\
root@freescale ~$screen -m /dev/ttySP0 115200
minicom \\
Если при попытке включить minicom в rootfs при сборке возникает ошибка \\
window.h:154: error: conflicting types for 'wprintf'
то правим файл \\
dist/lfs-5.1/minicom/minicom.spec\\
меняем в нем номер версии 2.2 на 2.6.1 \\
Загружаем [[minicom версии 2.6.1]][[http://ftp.debian.org/debian/pool/main/m/minicom/minicom_2.6.1.orig.tar.gz]]\\
и копируем его в /opt/freescale/pkgs \\
пересобираем
./ltib -c
Запуск minicom \\
minicom -s
Устанавливаем порт ttySP0 \\
Проверка GSM модема \\
root@freescale~$minicom -s
Устанавливаем порт ttySP0 \\
Информация о операторе из SIM карты: \\
AT+CSPN?
Информация о качестве сигнала:\\
AT+CSQ
Набрать номер: \\
ATD0443622502;
WEB-камера \\
Захват с WEB-камеры и вывод на дисплей \\
gst-launch v4l2src device=/dev/video1 ! ffmpegcolorspace ! fbdevsink
Захват с WEB-камеры и трансляция потокового видео в сеть \\
gst-launch v4l2src device=/dev/video1 ! ffmpegcolorspace ! ffenc_h263 ! tcpclientsink protocol=gdp host=192.168.0.103
можно использовать и другие кодеки
ffenc_mjpeg
ffenc_mpeg4
ffenc_flv
ffenc_wmv1
ffenc_h263p
ffenc_mpeg2video
Воспроизведение на компьютере с Линукс
gst-launch -v tcpserversrc host=0.0.0.0 protocol=gdp ! decodebin ! autovideosink
sudo apt-get -y install gstreamer0.10-pitfdll gstreamer0.10-ffmpeg gstreamer0.10-plugins-bad
gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse
Калибровка touchscreen \\
mknod /dev/input/tslib0 c 13 65
export TSLIB_TSDEVICE=/dev/input/tslib0
rm -f /etc/pointercal
ts_calibrate
Управление реле \\
Настройка портов
echo 126 > /sys/class/gpio/export
echo 57 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio126/direction
echo out > /sys/class/gpio/gpio57/direction
Включить \\
echo 1 > /sys/class/gpio/gpio57/value
echo 1 > /sys/class/gpio/gpio126/value
Выключить
echo 0 > /sys/class/gpio/gpio126/value
echo 0 > /sys/class/gpio/gpio57/value
Управление светодиодами \\
LED0 Настройка порта \\
echo 68 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio68/direction
Включить \\
echo 0 > /sys/class/gpio/gpio68/value
Выключить
echo 1 > /sys/class/gpio/gpio68/value
LED1 Настройка порта \\
echo 71 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio71/direction
Включить \\
echo 0 > /sys/class/gpio/gpio71/value
Выключить
echo 1 > /sys/class/gpio/gpio71/value
Проверка CAN интерфейса \\
Устанавливаем джампер W3 или W4. Соединяем между собой интерфейсы CAN0 и CAN1.В тесте CAN0 будет принимать сообщения, CAN1 - передавать \\
Запускаем два SSH соединения, в первом набираем:
cantest can0
во втором набираем:
cantest can1 500#1E.10.10.51.22.77.45
В результате в первом должно появиться:
read 16 bytes
500 [8] 1E 10 10 51 22 77 45
Настройка FTP сервера на плате \\
Собираем rootfs с включенным inetutils \\
Устанавливаем на плате пароль командой passwd (например root) \\
root@freescale ~$ftp
ftp>open
(to) Вводим IP адрес платы EV-iMX287 (например 192.168.0.107)
Connected to 192.168.0.107.
220 freescale FTP server (GNU inetutils 1.4.2) ready.
Name (192.168.0.107:root):root
331 Password required for root.
Password:root
230 User root logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
Теперь можно зайти на плату с удаленного компьютера (192/168/0/107, логин root, пароль root)
Запуск QNX \\
С помощью cfimager записываем на sd карту файл imx28_ivt_ipl.sb \\
В проводнике записываем файл QNX-IFS на карту. \\
Вставляем sd карту в плату и подаем питание (boot swith = sdcard).
После приглашения нажимаем M
Welcome to QNX Neutrino Initial Program Loader for Freescale iMX28 Board
Command:
Press 'M' for SDMMC download, file QNX-IFS assumed.
\\
Старт драйвера дисплея \\
io-display –dvid=0,did=0
Photon
io-graphics
Старт драйвера тачскрина
devi-43wvfig pro1 dev1
Старт сети
io-pkt-v4 -dmcimx28 ioport=0x800F0000,irq=101,unit=0 –dmcimx28
ioport=0x800F4000,irq=102,unit=1
ifconfig en0 192.168.0.187 up
где 192.168.0.187 - адрес назначаемый плате.
Настройка Wi-Fi \\
USB Wi-Fi модуль на чипсете RTL8192.\\
Загружаем драйвер. Распаковываем в любом месте и правим файл Makefile\\
Указываем PLATFORM_ARM_PXA2XX = y\\
Ниже меняем пути и версию ядра\\
ifeq ($(CONFIG_PLATFORM_ARM_PXA2XX), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
ARCH := arm
CROSS_COMPILE := /opt/freescale/usr/local/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-none-linux-gnueabi-
KVER := 2.6.35
KSRC ?= /home/evodbg/Projects/ev-imx287/ltib/rpm/BUILD/linux-2.6.35.3
endif
Собираем
make
Получаем файл 8192cu.ko\\
Пересобираем файловую систему включив пакет Wireless tools\\
Пересобираем ядро, включив \\
<*> IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP)\\
[*] Support downloading firmware images with Host AP driver \\
[*] Support for non-volatile firmware download \\
Создаем microSD карту с новой файловой системой и ядром\\
Включаем плату, ждем загрузки ядра, копируем файл 8192cu.ko\\
Подключаем USB Wi-Fi модуль, набираем\\
insmod 8192cu.ko
Настраиваем соединение для сети без защиты\\
ifconfig wlan0 192.168.0.177 up
iwconfig wlan0 essid "Имя вашей сети"
Проверяем\\
ping 192.168.0.1
Для сети с WEP
iwconfig wlan0 essid "Имя вашей сети" key s:Ваш ASCII пароль
Проверяем\\
ping 192.168.0.1
Для сетей с WPA/WPA2 необходим wpa_supplicant\\
В папке LTIB выполняем\\
./ltib -m prep -p wpa_supplicant
./ltib -m scbuild -p wpa_supplicant
./ltib -m scinstall -p wpa_supplicant
./ltib -m scdeploy -p wpa_supplicant
Обновленную файловую систему записываем на карту и опять загружаем систему.\\
Продолжение вскоре\\