Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.
ev-l138_am1808-lite [2013/01/31 16:18] evodbg |
ev-l138_am1808-lite [2013/03/01 12:50] (текущий) evodbg |
||
---|---|---|---|
Строка 5: | Строка 5: | ||
* [[https://docs.google.com/file/d/0B_FS6J7Oi9HabFZpMWFSMHNZbXM/edit|Архив для восстановления u-boot, ядра и файловой системы + утилита для программирования NAND/SPI Flash (Для плат с 256 MB ОЗУ обновлено 31/01/2013]] | * [[https://docs.google.com/file/d/0B_FS6J7Oi9HabFZpMWFSMHNZbXM/edit|Архив для восстановления u-boot, ядра и файловой системы + утилита для программирования NAND/SPI Flash (Для плат с 256 MB ОЗУ обновлено 31/01/2013]] | ||
* [[http://otladka.com.ua/doc/evam1808/virtual_evam1808.rar|Образ виртуальной машины VirtualBox для сборки u-boot, ядра и файловой системы ]] \\ | * [[http://otladka.com.ua/doc/evam1808/virtual_evam1808.rar|Образ виртуальной машины VirtualBox для сборки u-boot, ядра и файловой системы ]] \\ | ||
- | * [[https://docs.google.com/file/d/0B_FS6J7Oi9HaYmtIaHpZYkgxdkk/edit|Образ виртуальной машины с установленным dvsdk_omapl138-evm_04_03_00_06]] \\ | + | * [[https://docs.google.com/file/d/0B_FS6J7Oi9HaYmtIaHpZYkgxdkk/edit|Образ виртуальной машины с установленным dvsdk_omapl138-evm_04_03_00_06 (Обновлено 31/01/2013)]] \\ |
* [[http://otladka.com.ua/doc/evam1808/omapl138_software_developers_guide.pdf|Документ OMAPL138 Software Developers Guide (англ.)]]\\ | * [[http://otladka.com.ua/doc/evam1808/omapl138_software_developers_guide.pdf|Документ OMAPL138 Software Developers Guide (англ.)]]\\ | ||
{{:evam1808_components.png?300|}}{{:evam1808_connectors.png?300|}} | {{:evam1808_components.png?300|}}{{:evam1808_connectors.png?300|}} | ||
+ | <note tip>Вступление</note> \\ | ||
+ | Плата EV-L138/AM1808-Lite может комплектоваться процессором OMAP-L138 (два ядра ARM926 + DSP C674x) или процессором AM1808 (только ядро ARM926). Соответственно примеры использующие DSP ядро | ||
+ | на плате с процессором AM1808 работать не будут.\\ | ||
+ | На плате опционально может быть установлена микросхема SPI Flash памяти MX25L6406.\\ | ||
+ | Основные отличия ревизии платы v2.1 от v2.0:\\ | ||
+ | * Использован Push-Pull держатель для microSD карты;\\ | ||
+ | * Добавлена задержка в цепь CLK mmcsd1; | ||
+ | * Предусмотрена установка микросхемы часов реального времени PCF8563 вместо DS1338; | ||
<note tip>Сборка u-boot.</note> \\ | <note tip>Сборка u-boot.</note> \\ | ||
Строка 50: | Строка 58: | ||
<code>setenv bootcmd 'usb start; fatload usb 0:1 0xc0700000 uImage; bootm 0xc0700000'</code> | <code>setenv bootcmd 'usb start; fatload usb 0:1 0xc0700000 uImage; bootm 0xc0700000'</code> | ||
- | Восстановление ядра и файловой системы в NAND Flash \\ | + | Файловая система на HDD \\ |
+ | <code>setenv bootargs 'ip=192.168.0.103:192.168.0.101:192.168.0.1:255.255.255.0:1808 mem=128M console=ttyS2,115200n8 root=/dev/sda1 rootwait'</code> | ||
+ | |||
+ | <note tip>Восстановление ядра и файловой системы в NAND Flash</note> \\ | ||
+ | {{:evam1808_safe.png?300|}}\\ | ||
Записываем u-boot, как описано выше. \\ | Записываем u-boot, как описано выше. \\ | ||
- | Записываем на USB Flash Drive папку Owlboard из архива safe_evam1808.zip | + | Записываем на USB Flash Drive папку Owlboard из архива safe_evam1808.zip\\ |
+ | В папке Owlboard присутствуют файлы:\\ | ||
+ | * u-boot.bin - загрузчик\\ | ||
+ | * uImage - собранное ядро\\ | ||
+ | * rootfs.tar.gz - файловая система\\ | ||
+ | В папке Owlboard/boot находится файл uImage с встроенной файловой системой, который после первоначальной загрузки обеспечивает запись в NAND Flash вышеперечисленных файлов.\\ | ||
Вставляем флешку в верхней разъем USB, устанавливаем перемычку на разъем X18 в положение 1-2 \\ | Вставляем флешку в верхней разъем USB, устанавливаем перемычку на разъем X18 в положение 1-2 \\ | ||
Устанавливаем BOOT перемычки в режим загрузки с NAND (0001) \\ | Устанавливаем BOOT перемычки в режим загрузки с NAND (0001) \\ | ||
Подаем питание на плату. Процесс записи должен запуститься автоматически. \\ | Подаем питание на плату. Процесс записи должен запуститься автоматически. \\ | ||
- | Если процесс записи не стартовал, набираем в консоли: \\ | + | Если процесс записи не стартовал (это может произойти, если ранее уже были записаны переменные окружения), набираем в консоли: \\ |
+ | <code>nand erase 0 0x20000</code> \\ | ||
+ | Эта команда сотрет блок с переменными окружения\\ | ||
+ | или принудительно загружаем с USB Flash\\ | ||
<code>usb start | <code>usb start | ||
fatload usb 0:1 0xc0700000 /Owlboard/boot/uImage | fatload usb 0:1 0xc0700000 /Owlboard/boot/uImage | ||
Строка 73: | Строка 93: | ||
<note tip>Использование платы дисплея EV-ATM5HD-PLUG совместно с EV-L138/AM1808-Lite</note> \\ | <note tip>Использование платы дисплея EV-ATM5HD-PLUG совместно с EV-L138/AM1808-Lite</note> \\ | ||
+ | {{:evam1808_lcd.png?300|}} \\ | ||
Подключить дисплей с помощью 30-жильного кабеля к плате. \\ | Подключить дисплей с помощью 30-жильного кабеля к плате. \\ | ||
- | На дисплеи установить перемычки J4, J8, J9, J10 в положении 1-2. Снять перемычки J2, J3, J6, J7. \\ | + | {{:evatm5hdplug.png?300|}} \\ |
- | Калибровка touch screen панели: \\ | + | И к дисплею.\\ |
+ | {{:evatm5hdplug_jumpers.png?300|}} \\ | ||
+ | Поскольку микросхема контроллера экрана TPS65070 имеет собственный контроллер тачскрина, \\ | ||
+ | необходимо с помощью перемычек отключить микросхему TSC2046 (ADS7846) установленную на дисплее. \\ | ||
+ | На дисплеи установить перемычки J4, J5, J8, J9, J10 в положении 1-2. Снять перемычки J2, J3, J6, J7. \\ | ||
+ | {{:evatm5hdplug_calibrate.png?300|}} \\ | ||
+ | Перед использованием панели надо откалибровать тачскрин, нажав последовательно на 5 точек в углах и центре экрана \\ | ||
<code>ts_calibrate</code> \\ | <code>ts_calibrate</code> \\ | ||
- | Проверка touch screen панели: \\ | + | {{:evatm5hdplug_test.png?300|}} \\ |
+ | Затем можно запустить тест и порисовать: \\ | ||
<code>ts_test</code> \\ | <code>ts_test</code> \\ | ||
+ | |||
+ | <note tip>Подключение HDD накопителя на жестких дисках</note> \\ | ||
+ | {{:evam1808_hdd.png?300|}}\\ | ||
+ | Подключаем HDD стандартным SATA кабелем. В данном случае подключен HDD 2.5" от ноутбука, питание 5В подано извне.\\ | ||
+ | При старте ядра можно увидеться строки, что HDD найден:\\ | ||
+ | <code>[ 2.160174] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300) | ||
+ | [ 2.421254] ata1.00: ATA-8: ST9250410ASG, 0004SDM1, max UDMA/133 | ||
+ | [ 2.427345] ata1.00: 488397168 sectors, multi 16: LBA48 NCQ (depth 31/32) | ||
+ | [ 2.452895] ata1.00: configured for UDMA/133 | ||
+ | [ 2.471582] scsi 0:0:0:0: Direct-Access ATA ST9250410ASG 0004 PQ: 0 ANSI: 5 | ||
+ | [ 2.502053] sd 0:0:0:0: [sda] 488397168 512-byte logical blocks: (250 GB/232 GiB) | ||
+ | [ 2.512594] sd 0:0:0:0: Attached scsi generic sg0 type 0 | ||
+ | [ 2.531559] sd 0:0:0:0: [sda] Write Protect is off | ||
+ | [ 2.537264] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA | ||
+ | [ 2.592417] sda: sda1 | ||
+ | [ 2.605219] sd 0:0:0:0: [sda] Attached SCSI disk</code> | ||
+ | |||
+ | Монтируем диск:\\ | ||
+ | <code>root /root # mount /dev/sda1 /mnt | ||
+ | [ 104.681721] NTFS volume version 3.1. | ||
+ | root /root #</code> | ||
+ | |||
+ | Тестирование скорости:\\ | ||
+ | <code>root /root # hdparm -tT /dev/sda | ||
+ | /dev/sda: | ||
+ | Timing buffer-cache reads: 58 MB in 0.51 seconds = 115620 kB/s | ||
+ | Timing buffered disk reads: 61 MB in 3.01 seconds = 20727 kB/s | ||
+ | root /root #</code> | ||
+ | |||
+ | <note tip>Тестирование карты памяти</note> \\ | ||
+ | Вставляем карту формата microSD\\ | ||
+ | <code>root /root # [ 174.115490] mmc0: host does not support reading read-only switch. assuming write-enable. | ||
+ | [ 174.125576] mmc0: new SD card at address 8fe4 | ||
+ | [ 174.133519] mmcblk0: mmc0:8fe4 SU02G 1.84 GiB | ||
+ | [ 174.148325] mmcblk0: p1 | ||
+ | root /root #</code> | ||
+ | Тест скорости:\\ | ||
+ | <code>root /root # hdparm -tT /dev/mmcblk0 | ||
+ | /dev/mmcblk0: | ||
+ | Timing buffer-cache reads: hdparm: HDIO_DRIVE_CMD: Inappropriate ioctl for device | ||
+ | 48 MB in 0.52 seconds = 93151 kB/s | ||
+ | Timing buffered disk reads: 25 MB in 3.03 seconds = 8436 kB/s | ||
+ | hdparm: HDIO_DRIVE_CMD: Inappropriate ioctl for device | ||
+ | root /root #</code> | ||
+ | |||
+ | <note tip>Подключение эмулятора J-Link к плате</note> \\ | ||
+ | J-Link поддерживает работу с ядром ARM9 имеющееся в процессорах OMAP-L138 и AM1808.\\ | ||
+ | Отладка DSP ядра не поддерживается!\\ | ||
+ | Соединяем одноименные сигналы разъемов JTAG эмулятора (в данном случае используется JetlinkPro) и платы EV-AM1808/L138\\ | ||
+ | {{:jlinkjtag.png?300|}}\\ | ||
+ | Слева сигналы разъема JTAG эмулятора, справа - сигналы разъема JTAG платы с процессором OMAPL138 или AM1808\\ | ||
+ | VTREF - VCC_3V3D \\ | ||
+ | GND - GND \\ | ||
+ | TSRT - TRST\\ | ||
+ | TDI - TDI\\ | ||
+ | TDO - TDO\\ | ||
+ | TMS - TMS\\ | ||
+ | TCK-TCK\\ | ||
+ | RTCK - RTCK\\ | ||
+ | |||
+ | Запускаем утилиту J-Link.exe из ProgrammFiles/Segger/JLinkARM_xxx/Jlink.exe\\ | ||
+ | {{:jlink1.png?300|}}\\ | ||
+ | Видно, что цепочка найдена, но процессор не опознан.\\ | ||
+ | Копируем скрипт OMAP-L138.JlinkScript из папки \ProgramFiles\SEGGER\JLinkARM_xxx\Samples\JLink\Scripts\OMAP-L138.JLinkScript\\ | ||
+ | в папку с утилитой Jlink.exe (ProgrammFiles/Segger/JLinkARM_xxx/) и переименовываем этот скрипт в default.c\\ | ||
+ | Снова запускаем JLink.exe и видим, что процессор найден\\ | ||
+ | {{:jlink2.png?300|}}\\ | ||
+ | Для отладки в среде IAR необходимо скопировать default.c в папку \ProgramFiles\IAR Systems\Embedded Workbench 6.4\arm\bin\default.c\\ | ||
+ | |||
+ | <note tip>Подключение эмулятора XDS100v2 к плате EV-AM1808/L138 в среде Code Composer Studio 4.2.4</note> \\ | ||
+ | |||
+ | Подключаем эмулятор XDS100v2 к плате (Одеваем его прямо на разъем), подключаем miniUSB кабель к эмулятору и подаем питание на плату\\ | ||
+ | {{:xds100_evam1808.png?300|}}\\ | ||
+ | Запускаем Code Composer Studio (CCS)\\ | ||
+ | {{:evam1808_ccs1.png?300|}}\\ | ||
+ | Target - New Target Configuration\\ | ||
+ | {{:evam1808_ccs2.png?300|}}\\ | ||
+ | Придумываем имя для конфигурации\\ | ||
+ | {{:evam1808_ccs3.png?300|}}\\ | ||
+ | В выпадающем списке Connection выбираем эмулятор XDS100v2, в Device устанавливаем галочку на OMAPL138, нажимаем кнопку Save\\ | ||
+ | {{:evam1808_ccs4.png?300|}}\\ | ||
+ | Target - Launch TI Debugger\\ | ||
+ | {{:evam1808_ccs5.png?300|}}\\ | ||
+ | Нажимаем правой кнопкой мыши на Texas Instruments XDS100v2 USB Emulator_0/ARM9_0 [Non-Project Debug Session] и выбираем Connect Target.\\ | ||
+ | |||
+ | |||
+ | |||
<note tip>Проверка платы видеозахвата</note> \\ | <note tip>Проверка платы видеозахвата</note> \\ | ||
Строка 95: | Строка 210: | ||
alsasink demux.video_00 ! queue ! TIViddec2 ! TIC6xColorspace \ | alsasink demux.video_00 ! queue ! TIViddec2 ! TIC6xColorspace \ | ||
engineName=codecServer ! queue ! tidisplaysink2</code> | engineName=codecServer ! queue ! tidisplaysink2</code> | ||
+ | |||
+ | <note tip>I2C шина</note> \\ | ||
+ | Детектирование устройство на шине\\ | ||
+ | <code> | ||
+ | root /media # i2cdetect -y -a -r 1 | ||
+ | 0 1 2 3 4 5 6 7 8 9 a b c d e f | ||
+ | 00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- | ||
+ | 10: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- | ||
+ | 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- | ||
+ | 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- | ||
+ | 40: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- | ||
+ | 50: 50 51 52 53 54 55 56 57 -- -- 5a -- UU UU -- -- | ||
+ | 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- | ||
+ | 70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- | ||
+ | root /media # | ||
+ | </code> | ||
+ | Прочитать регистр с адресом 0x00 в микросхеме с адресом 0x5d (TVP5147)\\ | ||
+ | <code>root /media # i2cget -f -y 1 0x5d 0x00 b | ||
+ | 0x0c | ||
+ | root /media #</code> | ||
+ | Записать в регистр с адресов 0x00 в микросхеме с адресом 0x5d (TVP5147) значение 0x0C\\ | ||
+ | <code>i2cset -f -y 1 0x5d 0x00 0x0c b</code> | ||
+ | |||
<note tip>Далее идет информация для виртуальной машины с dvsdk_omapl138-evm_04_03_00_06</note> \\ | <note tip>Далее идет информация для виртуальной машины с dvsdk_omapl138-evm_04_03_00_06</note> \\ | ||
Строка 115: | Строка 253: | ||
<note tip>Запуск демонстрационной оболочки Matrix</note> \\ | <note tip>Запуск демонстрационной оболочки Matrix</note> \\ | ||
<code>/etc/init.d/matrix-gui-e start</code> \\ | <code>/etc/init.d/matrix-gui-e start</code> \\ | ||
+ | |||
+ | <note tip>Генерация тестовой таблицы</note> \\ | ||
+ | <code>gst-launch videotestsrc ! video/x-raw-rgb ! fbdevsink</code> \\ | ||
+ | |||
+ | <note tip>Генерация тестовой таблицы на весь экран (800*480) </note> \\ | ||
+ | <code>gst-launch videotestsrc ! video/x-raw-rgb, framerate=25/1, width=8 | ||
+ | 00, height=480 ! fbdevsink</code> \\ | ||
+ | |||
+ | Немного экспериментов с Web камерой. Использовалась Logitech C110, подключенная в разъем USB Full Speed, в системе /dev/video2 \\ | ||
+ | |||
+ | <note tip>Захватываем видео с WEB камеры (UVC стандарта) </note> \\ | ||
+ | <code>gst-launch v4l2src device=/dev/video2 ! ffmpegcolorspace ! fbdevsink</code> \\ | ||
+ | |||
+ | <note tip>Захватываем видео с WEB камеры (UVC стандарта) с нужным нам разрешением </note> \\ | ||
+ | <code>gst-launch v4l2src device=/dev/video2 ! video/x-raw-yuv, width=320,height=240 ! ffmpegcolorspace ! fbdevsink</code> \\ | ||
+ | |||
+ | <note tip>Захватываем видео с WEB камеры (UVC стандарта) и транслируем в сеть </note> \\ | ||
+ | <code>gst-launch v4l2src device=/dev/video2 ! ffmpegcolorspace ! jpegenc ! tcpclientsink protocol=gdp host=192.168.0.101</code> \\ | ||
+ | |||
+ | <note tip>Захватываем видео с WEB камеры (UVC стандарта) с нужным нам разрешением и транслируем в сеть </note> \\ | ||
+ | <code>gst-launch v4l2src device=/dev/video2 ! video/x-raw-yuv, width=320,height=240 ! ffmpegcolorspace ! jpegenc ! tcpclientsink protocol=gdp host=192.168.0.101</code> \\ | ||
+ | |||
+ | 192.168.0.101 - в данном случае адрес хоста в сети, на котором также запускаем Gstreamer для приема видео. На нем запускаем: \\ | ||
+ | |||
+ | <code>gst-launch -v tcpserversrc host=0.0.0.0 protocol=gdp ! decodebin ! autovideosink</code> \\ | ||
+ | |||
+ | <note tip>Захватываем видео с WEB камеры (UVC стандарта) сжимаем в mp4 и пишем в файл на USB Flash Drive </note> \\ | ||
+ | <code>mount /dev/sda1 /mnt - монтируем флешку \\ | ||
+ | gst-launch v4l2src device=/dev/video2 ! video/x-raw-yuv, width=320,height=240 ! ffmpegcolorspace ! TIVidenc1 codecName=mpeg4enc engineName=codecServer ! filesink location=/mnt/web.mp4 -v</code> \\ | ||
+ | |||
+ | <note tip>Воспроизводим записанный файл </note> \\ | ||
+ | <code>gst-launch filesrc location=/mnt/web.mp4 ! typefind ! TIViddec2 ! queue ! TIC6xColorspace engineName=codecServer ! queue ! tidisplaysink2 -v </code> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
<note tip>Воспроизведение ролика mp4 720p</note> \\ | <note tip>Воспроизведение ролика mp4 720p</note> \\ | ||
Строка 123: | Строка 302: | ||
Перекодировать ролики удобно с помощью утилиты [[handbrake]][[http://handbrake.fr/downloads.php]] \\ | Перекодировать ролики удобно с помощью утилиты [[handbrake]][[http://handbrake.fr/downloads.php]] \\ | ||
Настройки приведены на скриншотах: \\ | Настройки приведены на скриншотах: \\ | ||
- | {{:handbrake1.png?300|}} \\ | + | {{:handbrake1.png?300|}} |
{{:handbrake2.png?300|}} \\ | {{:handbrake2.png?300|}} \\ | ||
- | {{:handbrake3.png?300|}} \\ | + | {{:handbrake3.png?300|}} |
{{:handbrake4.png?300|}} \\ | {{:handbrake4.png?300|}} \\ | ||
{{:handbrake5.png?300|}} \\ | {{:handbrake5.png?300|}} \\ |