Пакеты поддержки модулей для ЗОСРВ «Нейтрино» > MIPS > BSP для устройств на базе процессора Элвис 1892ВМ206 > Проверка функционирования



Проверка функционирования

Проверка функционирования ППМ для семейства микропроцессоров Sitara серии AM335x под ЗОСРВ «Нейтрино».


Список проверок:

Базовые проверки функционирования ОС
Проверка запуска на ПМ ядра ЗОСРВ в составе загружаемого образа
Проверка запуска компонентов
Проверка функционирования контроллера DDR памяти
Проверка функционирования контроллера прерываний
Проверки интерфейсов
Проверка драйвера контроллера UART
Проверка драйвера контроллера Gigabit Ethernet
Проверка переключения режимов и дуплекса контроллера Ethernet
Проверка драйвера контроллера SD/MMC
Проверка драйвера контроллера USB
Проверка драйвера контроллера I2C
Проверка драйвера контроллера SPI
Проверка блока Watchdog

Тестовый стенд

Тестовый стенд представляет из себя ПМ на базе микропроцессора Sitara серии AM335x, соединённый с инструментальным ПК по интерфейсам RS-232 и Ethernet.


На инструментальный ПК должно быть установлено:

Подготовка

Перед проведением проверок необходимо запустить ЗОСРВ «Нейтрино» на ПМ на базе микропроцессора Sitara серии AM335x в соответствии с главой документации Загрузка образа ОС.


Дополнительные тестовые программы i2c-scan, ticksize и другие не входят в состав ППМ и должны быть самостоятельно загружены из публичного git-репозитория и собраны командой:

$ cd utils $ make install

Затем следует скопировать armle-v7 версии тестовых программ на SD карту памяти и подключить её к ПМ или передать файлы по сети с помощью FTP или NFS.

Базовые проверки функционирования ОС

Проверка запуска на ПМ ядра ЗОСРВ в составе загружаемого образа

В последовательном терминале выполнить команду:

# uname -s

Проверка считается выполненной успешно, если в терминале будет выведено сообщение вида:

KPDA

Проверка запуска компонентов

Для вывода информации о запущенных компонентов выполнить команду pidin ar:

# pidin ar pid Arguments 1 procnto -v -ae 2 slogger -s 16384k 3 pipe 4 devc-seromap -e -F -b115200 -c48000000/16 0x44E09000^2,72 5 sh 6 devb-sdmmc sdio hc=omap,addr=0x48060000,irq=64,dma=25,dma=24,dma=128,dma=32,bs=nocd:nowp \ cam cache,pnp,async blk cache=8M disk name=sd 7 devb-sdmmc sdio hc=omap,addr=0x481D8000,irq=28,dma=3,dma=2,dma=160,dma=32,bs=emmc,bw=4 \ cam quiet,cache blk rw,cache=2M disk name=emmc 16392 i2c-omap35xx-j5 -i 70 -p0x44E0B000 16393 i2c-omap35xx-j5 -i 71 -p0x4802A000 16394 i2c-omap35xx-j5 -i 30 -p0x4819C000 16395 wdtkick 24588 io-usb -vvv -d dm816x-mg ioport=0x47401c00,irq=19 24589 io-hid -d usb /dev/io-usb/io-usb 24590 devb-umass cam pnp 24591 spi-master -d am335x base=0x481A0100,irq=125,edma=1,edmairq=555,edmachannel=43 24592 io-pkt-v4-hc -ptcpip stacksize=65536 -dam335x deviceindex=0,verbose=1 32785 devc-pty 32786 dev-leds-beaglebone 32788 inetd 73747 io-display -d vid=0x0,did=0x0 114710 Photon -g -lphlogin2 '-Sphshutdown -l' 135191 /usr/photon/bin/io-graphics 139288 phlogin2 -Sphshutdown -l 151578 /usr/photon/bin/devi-hid -b touch mouse kbd 184341 random 253977 pidin ar

Проверка функционирования контроллера DDR памяти

Для вывода информации о процессоре и доступной оперативной памяти выполнить команду pidin info:

# pidin info CPU:ARM Release:2024 FreeMem:462Mb/512Mb BootTime:Feb 01 00:20:32 UTC 2000 Processes: 23, Threads: 68 Processor1: 1094697090 Cortex A8 500MHz FPU

Проверка функционирования контроллера прерываний

Для вывода информации о используемых прерываниях выполнить команду pidin ir:

# pidin ir # pidin ir pid tid name 1 1 procnto 0 0x44 0 -P- @0xfe089d30:0x0 1 2 procnto 1 3 procnto 1 5 procnto 1 6 procnto 1 7 procnto 1 8 procnto 1 9 procnto 1 10 procnto 1 11 procnto 1 12 procnto 1 13 procnto 2 1 slogger 3 1 pipe 3 2 pipe 3 3 pipe 3 4 pipe 4 1 devc-seromap 1 0x48 0 --- @0x804a4dc:0x8072ab8 5 1 sh 6 1 devb-sdmmc 2 0x40 0 TP- =PULSE 0x40000005:21 0x3:0 6 2 devb-sdmmc 6 3 devb-sdmmc 6 4 devb-sdmmc 6 5 devb-sdmmc 6 6 devb-sdmmc 6 7 devb-sdmmc 6 8 devb-sdmmc 6 9 devb-sdmmc 6 10 devb-sdmmc 7 1 devb-sdmmc 3 0x1c 0 TP- =PULSE 0x40000005:21 0x3:0 7 2 devb-sdmmc 7 3 devb-sdmmc 7 4 devb-sdmmc 7 5 devb-sdmmc 7 6 devb-sdmmc 7 7 devb-sdmmc 7 8 devb-sdmmc 16392 1 i2c-omap35xx-j5 4 0x46 0 T-- @0x8049eb4:0x8050040 16393 1 i2c-omap35xx-j5 5 0x47 0 T-- @0x8049eb4:0x8050040 16394 1 i2c-omap35xx-j5 6 0x1e 0 T-- @0x8049eb4:0x8050040 16395 1 wdtkick 24588 1 io-usb 7 0x11 0 T-- @0x780088a8:0x8087070 24588 2 io-usb 24588 3 io-usb 8 0x13 0 T-- @0x780047e4:0x8087070 24588 4 io-usb 24588 5 io-usb 24588 6 io-usb 24589 1 io-hid 24589 2 io-hid 24589 3 io-hid 24589 4 io-hid 24589 5 io-hid 24590 1 devb-umass 24590 2 devb-umass 24591 1 spi-master 24591 2 spi-master 9 0x7d 0 T-- @0x780016b0:0x8064f18 10 0x22b 0 TP- =PULSE 0x40000004:21 0x2:0x1018214 24592 1 io-pkt-v4-hc 24592 2 io-pkt-v4-hc 11 0x29 0 T-- @0x78003c44:0x8190280 32785 1 devc-pty 32786 1 ev-leds-beaglebone 32786 2 ev-leds-beaglebone 32786 3 ev-leds-beaglebone 32788 1 inetd 73747 1 io-display 73747 2 io-display 73747 3 io-display 12 0x24 0 TPE @0x780033b8:0x28000100 73747 4 io-display 73747 5 io-display 114710 1 Photon 135191 1 io-graphics 135191 2 io-graphics 135191 3 io-graphics 139288 1 phlogin2 151578 1 devi-hid 151578 2 devi-hid 151578 3 devi-hid 151578 4 devi-hid 151578 5 devi-hid 184341 1 random 184341 2 random 262169 1 pidin

Проверка считается пройденной успешно, если вывод утилиты pidin ir содержит информацию об обработчиках прерывания, принадлежащих выполняемым процессам, в формате

pid tid Имя процесса id прерывания vector mask_count flags handler:area

Проверки интерфейсов

Проверка драйвера контроллера UART

Для работы с последовательным портом используется драйвер devc-seromap. Настройки последовательного порта по умолчанию: скорость 115200, 8 бит, без контроля четности, 1 стоп-бит. В составе загрузочного образа драйвер запускается автоматически.

В случае успешного запуска драйвера в директории /dev/ будет создано устройство ser1.

# ls /dev/ser* /dev/ser1

Для проверки функционирования драйвера UART подключите ПМ к последовательному порту ПК (или через преобразователь по USB) и запустите терминальную программу. В последовательном или удалённом терминале выполните следующую команду:

# echo Test message > /dev/ser1

Проверка считается выполненной успешно, если в терминальной программе будет выведено сообщение:

Test message

Проверка драйвера контроллера Gigabit Ethernet

Для работы с контроллером интерфейса Ethernet используется драйвер devnp-am335x.so и менеджер ресурсов io-pkt-v4-hc. В составе загрузочного образа драйвер запускается автоматически. Для вывода информации о сетевых интерфейсах выполните команду ifconfig.

В случае успешного запуска драйвера будет создан сетевой интерфейс dm0 и в результате выполнения команды ifconfig на экран будут выведены следующие данные:

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192 inet 127.0.0.1 netmask 0xff000000 dm0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 address: 50:65:83:ca:a7:f5 media: Ethernet none (100baseTX full-duplex) status: active inet 172.16.6.127 netmask 0xffff0000 broadcast 172.16.255.255

Для проверки функционирования сетевого обмена выполнить следующую команду, инициирующую отправку ICMP пакетов существующему сетевому узлу:

# ping -c 3 172.16.80.12 PING 172.16.80.12 (172.16.80.12): 56 data bytes 64 bytes from 172.16.80.12: icmp_seq=0 ttl=64 time=0 ms 64 bytes from 172.16.80.12: icmp_seq=1 ttl=64 time=0 ms 64 bytes from 172.16.80.12: icmp_seq=2 ttl=64 time=0 ms ----172.16.80.12 PING Statistics---- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 0/0/0 ms variance = 0 ms^2

Проверка считается выполненной успешно, если все 3 пакета были успешно получены (процент потерь равен нулю).

Проверка переключения режимов и дуплекса контроллера Ethernet

Просмотр доступных сетевых режимов осуществляется утилитой ifconfig с опцией -m:

# ifconfig -m lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192 inet 127.0.0.1 netmask 0xff000000 dm0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 address: 50:65:83:ca:a7:f5 media: Ethernet none (100baseTX full-duplex) status: active supported Ethernet media: media none media autoselect media 10baseT media 10baseT mediaopt full-duplex media 100baseTX media 100baseTX mediaopt full-duplex media 1000baseT media 1000baseT mediaopt full-duplex inet 172.16.6.127 netmask 0xffff0000 broadcast 172.16.255.255

Для проверки автоматического определения сетевого режима выполнить следующие команды:

# ifconfig dm0 media autoselect down up

Проверка считается пройденной успешно, если в выводе ifconfig -m присутствует строка

media: Ethernet autoselect (none full-duplex)

с указанием автоматически выбранного режима.

Для проверки установки требуемого сетевого режима необходимо установить его на ПМ и на инструментальной машине, с которой устанавливается сетевое соединение. Выполнить следующую команду на ПМ, где <режим> - требуемый сетевой режим из списка доступных сетевых режимов:

# ifconfig dm0 media <режим> down up

На инструментальной машине необходимо выполнить следующую команду, где <интерфейс> - сетевой интерфейс, <скорость> - требуемая скорость соединения, <тип> - half / full:

# ethtool -s <интерфейс> speed <скорость> duplex <тип> autoneg off

Проверка считается выполненной успешно, если после переключения режима корректно изменяется параметр media при вызове команды ifconfig для выбранного интерфейса, а команда ping отправляет и получает пакеты:

Проверка драйвера контроллера SD/MMC

Для работы с контроллером SD/MMC используется драйвер devb-sdmmc. В составе загрузочного образа драйвер запускается автоматически. В случае успешного запуска драйвера в директории /dev/ будет создано устройство sd0, соответствующее SD-карте, а также устройства, соответствующие разделам. Для управления устройствами могут быть использованы стандартные утилиты для управления и чтения/записи блочных устройств. Проверка считается выполненной успешно, если при выполнении команды ls /dev/sd0* отображаются устройства, соответствующие SD-карте и разделам, например:

# ls /dev/sd0* /dev/sd0 /dev/sd0t11 /dev/sd0t6 /dev/sd0t77

В выводе утилиты mount увидеть точку монтирования одного из разделов SD-карты, например:

# mount /dev/sd0t77 on / type qnx4

Для измерения производительности операции записи и чтения необходимо создать файл и заполнить его случайными значениями с помощью утилиты dd, при этом измеряя время данной операции через time:

# dd if=/dev/urandom of=/dev/shmem/test_file bs=1000 count=256 # time dd if=/dev/shmem/test_file of=<точка монтирования>/test_file \ bs=1000 count=256

Выводом данной команды будет является время и скорость записи:

256+0 records in 256+0 records out 256000 bytes transferred in 0.034 secs (7529411 bytes/sec) 0m00.04s real 0m00.00s user 0m00.00s system

Для измерения скорости чтения необходимо скопировать созданный тестовый файл в /dev/null с помощью утилиты dd:

# time dd if=<точка монтирования>/test_file of=/dev/null bs=1000 count=256

Выводом данной команды будет является время и скорость чтения:

256+0 records in 256+0 records out 256000 bytes transferred in 0.009 secs (28444444 bytes/sec) 0m00.02s real 0m00.00s user 0m00.00s system

Проверка драйвера контроллера USB

Для работы с контроллером интерфейса USB используется драйвер devu-mg-dm816x.so и менеджер ресурсов io-usb. В составе загрузочного образа драйвер запускается автоматически.

В случае успешного запуска драйвера в директории /dev/ будет создано устройство io-usb.

# ls /dev/io-usb/ . devu-mg-dm816x.so .. io-usb

Для получения списка подключенных usb устройств может быть использована утилита usb:

# usb

Проверка считается выполненной успешно, если в терминальной программе будет выведено сообщение:

# usb USB 0 (dm816x) v1.10, v1.01 DDK, v1.01 HCD

После подключения USB flash накопителя к ПМ должно появиться новое устройство:

# usb USB 0 (dm816x) v1.10, v1.01 DDK, v1.01 HCD Device Address : 1 Vendor : 0x0781 (SanDisk) Product : 0x5581 (Ultra) Class : 0x00 (Independent per interface)

Проверка драйвера контроллера I2C

Для работы с контроллером I2C используется драйвер i2c-omap35xx. В составе загрузочного образа драйвер запускается автоматически. В случае успешного запуска драйвера в директории /dev/ будут создано устройство i2c0.

# ls /dev/i2c* /dev/i2c0 /dev/i2c1 /dev/i2c2

Проверка функционирования заключается в запуске утилиты i2c-scan и считается выполненной успешно, если вывод i2c-scan соответствует ожидаемому, например:

#./i2c-scan -d /dev/i2c1 Scanning I2C device /dev/i2c1 for I2C devices... 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: xx -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- Scanning done

Проверка драйвера контроллера SPI

Для работы с контроллером SPI используется драйвер spi-am335x.so. В составе загрузочного образа драйвер запускается автоматически. В случае успешного запуска драйвера в директории /dev/ будет создано устройство spi0.

Проверка функционирования драйвера контроллера SPI считается выполненной успешно, если устройство успешно создано.

Проверка блока Watchdog

Для работы с блоком watchdog используется утилита wdtkick-am335x. В составе загрузочного образа утилита запускается автоматически. Для проверки работоспособности блока watchdog вызвать завершение работы системы с помощью утилиты shutdown:

# shutdown -fb

Проверка считается выполненной успешно, если через ~10 секунд произойдет сброс ПМ.




Предыдущий раздел: перейти