06.08.2020 Asymmetric multiprocessing

Материал из SRNS
Перейти к: навигация, поиск
 
(не показаны 4 промежуточные версии 2 участников)
Строка 6: Строка 6:
  
 
</summary>
 
</summary>
 
{{Форма2}}
 
  
 
== INTRO ==
 
== INTRO ==
Строка 15: Строка 13:
 
Высталяем стартовый адрес для ядра не ноль. Предположительно rtos не умеет стартовать не с 0-го адреса, но это вроде хрень. В клоникус выставляем:
 
Высталяем стартовый адрес для ядра не ноль. Предположительно rtos не умеет стартовать не с 0-го адреса, но это вроде хрень. В клоникус выставляем:
 
<source lang="bash">
 
<source lang="bash">
Subsystem AUTO ... ->
+
Subsystem AUTO ... ->  
 
     Memory Settings ->
 
     Memory Settings ->
 
           kernel base address ->
 
           kernel base address ->
Строка 41: Строка 39:
  
 
== Device tree ==
 
== Device tree ==
 +
В более старых версиях petalinux (2017.1) использовалось поле '''sram0''', сейчас '''srams'''
 
<source lang="bash">
 
<source lang="bash">
 
/include/ "system-conf.dtsi"
 
/include/ "system-conf.dtsi"
Строка 69: Строка 68:
 
</source>
 
</source>
  
== Эмуляция Petalinux QEMU ==
+
== Запуск ==
Наслаждаемся магией!
+
Закидываем name.elf в /lib/firmware/
 +
 
 +
Указываем путь к шашему .elf
 +
<source lang="bash">
 +
echo name.elf > /sys/class/remoteproc/remoteproc0/firmware
 +
</source>
 +
 
 +
Запускаем:
 
<source lang="bash">
 
<source lang="bash">
petalinux-boot --qemu --kernel
+
echo start > /sys/class/remoteproc/remoteproc0/state
 
</source>
 
</source>
  

Текущая версия на 12:17, 5 мая 2022

Содержание

[править] INTRO

Качаем читаем File:ug1186-zynq-openamp-gsg-6_2017.4.pdf

[править] petalinux-config

Высталяем стартовый адрес для ядра не ноль. Предположительно rtos не умеет стартовать не с 0-го адреса, но это вроде хрень. В клоникус выставляем:

Subsystem AUTO ... ->
     Memory Settings ->
          kernel base address ->
               0x1000000

[править] petalinux-config -c kernel

Убеждаемся в том, что все включено, как в даташите. Реально нужно самостоятельно включить:

Kernel Features ... ->
     Memory split->
          2G/2G

[править] petalinux-config -c rootfs

Включаем нужные либы

Эта может быть и не нужна...

    Location:
        -> Filesystem Packages
            -> libs
                -> open-amp

[править] Device tree

В более старых версиях petalinux (2017.1) использовалось поле sram0, сейчас srams

/include/ "system-conf.dtsi"
/ {
    reserved-memory {
        #address-cells = <1>;
        #size-cells = <1>;
        ranges;
        rproc_0_reserved: rproc@e000000 {
            no-map;
            reg = <0xe000000 0x01000000>;
        };
    };
    amba {
        elf_ddr_0: ddr@0 {
            compatible = "mmio-sram";
            reg = <0xe000000 0x400000>;
        };
    };
    remoteproc0: remoteproc@0 {
        compatible = "xlnx,zynq_remoteproc";
        firmware = "firmware";
        vring0 = <15>;
        vring1 = <14>;
        srams = <&elf_ddr_0>;
    };
};

[править] Запуск

Закидываем name.elf в /lib/firmware/

Указываем путь к шашему .elf

echo name.elf > /sys/class/remoteproc/remoteproc0/firmware

Запускаем:

echo start > /sys/class/remoteproc/remoteproc0/state

[ Хронологический вид ]Комментарии

(нет элементов)

Войдите, чтобы комментировать.

Персональные инструменты
Пространства имён

Варианты
Действия
SRNS Wiki
Рабочие журналы
Приватный файлсервер
QNAP Сервер
Инструменты