Встраиваемое ПО
- СКИФ
- 1892ВМ14Я
- 1892КП1Я
- 1892ВМ206
- 1892ВМ15АФ
- 1892ВМ10Я
- 1657РУ2У
- ELIoT
Как прошить eMMC через SSH
- Загрузить модуль с SD
- Узнать IP платы (
ifconfig
) - Загрузить на ПК:
- rootfs нужного дистрибутива (В данном примере AltLinux)
- tar2dev
- Выполнить прошивку командой
ssh root@<board_ip> zcat | ROOT=/dev/mmcblk0p1 FDT=mcom03-elvmc03smarc-r1.0-rockpi-n10.dtb \
./tar2dev -s sshd - /dev/mmcblk0 < mcom03-altlinux-rootfs-*.tar.gz
Где:
board_ip - IP адрес платы RockPI
-s sshd - systemd сервисы, которые нужно вк лючить
В результате на eMMC память будет прошит AltLinux и будет включен sshd. Основное руководство - https://dist.elvees.com/mcom03/docs/linux-sdk/latest/components/buildroot.html#sd
Существует ли какой-нибудь документ по запуску "пустой" платы со СКИФом, когда в qSPI и eMMC еще
ничего нет?
Режимы загрузки описаны здесь: https://support.elvees.com/docs/Microchips/SKIF/hw-guide
Спецификация BootROM, отправляется по запросу на почту.
Также есть страница https://dist.elvees.com/mcom03/docs/linux-sdk/2022.09/design/boot-flow.html.
При запуске на модулях ELV-MC03-SMARC-R (RockPI) Buildroot возникает проблема:
Found /boot/extlinux/extlinux.conf
Retrieving file: /boot/extlinux/extlinux.conf
Reading file would overwrite reserved memory
Failed to load '/boot/extlinux/extlinux.conf'
Error reading config file
SCRIPT FAILED: continuing...
"Synchronous Abort" handler, esr 0x96000005
Found /boot/extlinux/extlinux.conf
Retrieving file: /boot/extlinux/extlinux.conf
Reading file would overwrite reserved memory
Failed to load '/boot/extlinux/extlinux.conf'
Error reading config file
SCRIPT FAILED: continuing...
"Synchronous Abort" handler, esr 0x96000005
При перепрошивке qspi-flash (https://github.com/elvees/mcom03-flash-tools) эта область не перезаписывается. Поскольку в релизе от сентября изменился объем доступной DDR-памяти, адреса также изменились. Для решения проблемы следует сбросить env. Для этого во время загрузки U-boot нужно зайти в консоль uboot и ввести следующие команды:
env default -a
saveenv
boot
Как измерить время на DSP-ядре ElCore50 в тактах либо в наносекундах?
Можно читать счетчик тактов:
asm volatile("tcd tic_cntr, %0" : "=r"(value) : :);
Можно ли использовать CMOS1_CLK? Или только CMOS0?
Для использования cmos1_clk необходимо в dts для ноды display_encoder в свойстве clocks изменить MEDIA_CMOS0_CLK на MEDIA_CMOS1_CLK. При этом свойство clock-names необходимо оставить без изменений.
Где можно найти информацию как процессор инициализируется во время загрузки?
Обзор загрузки представлен тут - https://dist.elvees.com/mcom03/docs/linux-sdk/latest/components/buildroot.html#boot-flow
Как скомпилировать Qt-проект для запуска на плате?
На нашей плате нет SD-карты. Откуда можно загружаться?
Если у Вас нет возможности загрузить Linux с SD-карты, то Вы можете попробовать загрузить его из другого источника: с USB-носителя, из eMMC (если используете процессорный модуль Салют-ЭЛ24ПМ2), либо по TFTP и NFS.
Как прошить загрузчик в SPI-flash?
Возможно ли использовать для сборки на ПЭВМ дистрибутив Linux, отличный от CentOS 7?
Да, это возможно, однако, работоспособность системы сборки в данном случае не гарантируется. Проверка системы сборки на всём множестве дистрибутивов системы Linux не представляется возможной.
Возможно ли использовать виртуальную машину для сборки?
Да, это возможно. Требования к виртуальной машине аналогичны требованиям к ПЭВМ.
Будет ли работать под buildroot микросхема PHY DP83865 без изменений ядра?
Драйвер для DP83865 входит в состав драйвера "Drivers for National Semiconductor PHYs". И в большинстве случаев специальные драйверы phy не требуются, т.к. они стандартные и с ними может работать generic-драйвер.
Обязательно ли прошивать образ U-Boot в SPI-флеш, если я собираю свой образ Buildroot?
Да, обязательно.
Не загружается/некорректно работает ALT Linux/Astra Linux
Убедитесь, что в SPI-флеш прошит правильный загрузчик. Для корректной загрузки ALT Linux и Astra Linux требуется загрузчик U-Boot версии 2017.07.0.14 (соответствует Buildroot v2.9).
Как скомпилировать Qt-проект для запуска на плате?
Не заг ружается драйвер delcore30m при выполнении команды modprobe delcore30m
modprobe delcore30m
Для корректной загрузки драйвера необходимо выполнить следующую последовательность команд:
modprobe -r avico
echo -n "37220000.dma" > /sys/bus/amba/drivers/dma-pl330/unbind
modprobe -r delcore30m
modprobe delcore30m
Существует ли сборка Buildroot с RT-ядром?
Нет. Если есть необходимость работать с операционной системой реального времени, то предлагаем рассмотреть FreeRTOS и ЗОСРВ "Нейтрино".
Доступно ли описание на открытую часть драйвера графического контроллера 1892ВМ14Я (FrameBuffer)?
Какой компилятор используется в MCStudio для работы с DSP-ядром? Поддерживается ли C++?
Для работы с DSP ELCore-30M используется clang 4.0. Для DSP ELCore-30M не следует писать код на C++. Вычислительные алгоритмы нужно разрабатывать на С и ассемблере.
Где можно посмотреть пример включения L2-кэш?
Отдельного примера включения кэша второго уровня у нас нет. В целом, работа с L2-кэшем не относится к специфике нашего процессора, это вопрос скорее к самой архитектуре ARM.
В демо версии FreeRTOS реализована работа с L2-кэшем (см. файлы arm_cache.s и l2cc.c): https://nc2.elvees.com/index.php/s/AmPg52cfWnTFMyq?path=%2F1892VM14YA%2FFreeRTOS%2Fv1.0%2Fmcom02_freertos_demo
Как наблюдать тестовый паттерн для вывода с камеры?
Введите команду для выбора паттерна (* - номер выхода):
v4l2-ctrl --device /dev/video* --set-ctrl test_pattern=1
После чего выполнить:
v4l2tofb -i 2 -w 1920 -h 1080
Можно ли для DSP ядер писать код на C?
Да, это возможно. Для этого Вам необходимо создать отдельный проект для DSP-ядра в виде библиотеки (File → New → Project…).В проекте есть два файла (func1.s и func2.c) в которых реализуется необходимый код.
В основном проекте для ARM-ядра необходимо указать добавленную библиотеку в DSP Linker и объявить
используемые функции с ключевым словом extern. Данные функции можно вызывать инструкцией JS, дописав
dsp0__
или dsp1__
перед именем функции:
Start_DSP0:
JS dsp0__test_calc