Runing DVSDK examples on SOM-AM180X

Запуск примеров и тестов из Texas Instruments DVSDK на som-am180x.

Для запуска необходимо:
1) записать файловую систему dvsdk на SD карту
2) запустить som с DVSDK rootfs

1) Записать файловую систему dvsdk на SD карту
Скачиваем DVSDK с сайта ti.com : http://www.ti.com/tool/linuxsdk-omapl138 (LINUXSDKOMAPL138) → dvsdk_omapl138-evm_04_03_00_06_setuplinux Устанавливаем его. Обычно предлагаемый путь утановки: /home/<user>/ti-dvsdk_omapl138-evm_04_03_00_06, где <user> это пользователь под которым вы вошли в систему. Для удобства установим переменную окружения: DVSDK=/home/<user>/ti-dvsdk_omapl138-evm_04_03_00_06

в результатае дальнейших действий ВСЕ данные на SD карточке будут стерты! Вставляем SD накопитель в компьютер, выясняем какому устройству оно соответствует. В моем случае это /dev/sdf, а первый раздел на нем /dev/sdf1
sudo umount /dev/sdf1
sudo mkfs.ext3 /dev/sdf1
sudo mount /dev/sdf1 /mnt
sudo tar -xzf ${DVSDK}/filesystem/arago-base-tisdk-image-da850-omapl138-evm.tar.gz -C /mnt
sudo tar -xzf ${DVSDK}/filesystem/dvsdk-da850-omapl138-evm-rootfs.tar.gz -C /mnt
sync
sudo umount /mnt

2) Запустить som с DVSDK rootfs
Вставляем SD карточку в отладочную плату. Перезапускаем отладку. Когда в терминале появляется напись: Hit any key to stop autoboot: - нажимаем Enter

In:    serial
Out:   serial
Err:   serial
Net:   DaVinci-EMAC
Hit any key to stop autoboot:  0

вводим команду:

setenv bootargs "mem=32M console=ttyS2,115200n8 root=/dev/mmcblk0p1 rw rootfstype=ext3 rootwait panic=3"; boot 

Далее стартует dvsdk rootfs

Ожидаем приглашения:

 _____                    _____           _         _  
|  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_
|     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
|__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_| 
              |___|                    |___|           
Arago Project http://arago-project.org arago ttyS2
Arago 2011.06 arago ttyS2
arago login:

Вводим root

Запуск примеров сжатия/разжатия видео на DSP:
Разжатие:

cd /usr/share/ti/ti-dmai-apps/

./video_decode_io2_omapl138.x470MV -c h264dec -e decode -i /usr/share/ti/data/videos/davincieffect_480x272.264 -n 300 -o ./output.yuv --benchmark
./video_decode_io2_omapl138.x470MV -c mpeg4dec -e decode -i ./output.mp4 -o ./output1.yuv -n 300 --benchmark

Пример вывода:

Frame 299 - Decode: 4782us
Display Frame 298: Wrote UYVY frame size 261120 (480x272) to disk
Loaded Frame 299: frame size 916
Total: 67874us
Frame 300 - Decode: 3583us
Display Frame 299: Wrote UYVY frame size 261120 (480x272) to disk
Total: 72708us
Frame 300 - Decode: 895us
End of application.

Сжатие:

cd /usr/share/ti/ti-dmai-apps/
./video_encode_io1_omapl138.x470MV -c mpeg4enc -i ./output.yuv -o ./output.mp4 -r 480x272 -n 300 --benchmark
./video_encode_io1_omapl138.x470MV -c h264enc -i ./output.yuv -o ./output.264 -r 480x272 -n 300 --benchmark

Пример вывода:

Frame 297: Read UYVY frame size 261120 (480x272) from file
Read time: 12681us
[298] Encode: 16688us
File write time: 371us
Total: 29856us

Frame 298: Read UYVY frame size 261120 (480x272) from file
Read time: 13941us
[299] Encode: 16592us
File write time: 371us
Total: 31014us

Frame 299: Read UYVY frame size 261120 (480x272) from file
... exiting
End of application.

Те же тесты можно прогнать на других частотах процессоров:

#456MHz
echo 456000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
#300MHz
echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
#90MHz
echo 96000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed

По умолчанию сом сконфигурирован на 300МГц. Для дальнейших инструкций можно воспользоваться документом "OMAPL138 Software Developers Guide"