06.08.2020 Asymmetric multiprocessing
Материал из SRNS
Lipa (обсуждение | вклад) |
Lipa (обсуждение | вклад) |
||
Строка 67: | Строка 67: | ||
}; | }; | ||
}; | }; | ||
+ | </source> | ||
+ | |||
+ | == Запуск == | ||
+ | Закидываем name.elf в /lib/firmware/ | ||
+ | |||
+ | Указываем путь к шашему .elf | ||
+ | <source lang="bash"> | ||
+ | echo name.elf > /sys/class/remoteproc/remoteproc0/firmware | ||
+ | </source> | ||
+ | |||
+ | Запускаем: | ||
+ | <source lang="bash"> | ||
+ | echo start > /sys/class/remoteproc/remoteproc0/state | ||
</source> | </source> | ||
Версия 17:47, 6 августа 2020
Содержание |
INTRO
Качаем читаем File:ug1186-zynq-openamp-gsg-6_2017.4.pdf
petalinux-config
Высталяем стартовый адрес для ядра не ноль. Предположительно rtos не умеет стартовать не с 0-го адреса, но это вроде хрень. В клоникус выставляем:
Subsystem AUTO ... ->
Memory Settings ->
kernel base address ->
0x1000000
Memory Settings ->
kernel base address ->
0x1000000
petalinux-config -c kernel
Убеждаемся в том, что все включено, как в даташите. Реально нужно самостоятельно включить:
Kernel Features ... ->
Memory split->
2G/2G
Memory split->
2G/2G
petalinux-config -c rootfs
Включаем нужные либы
Эта может быть и не нужна...
Location:
-> Filesystem Packages
-> libs
-> open-amp
-> Filesystem Packages
-> libs
-> open-amp
Device tree
/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>;
};
};
/ {
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
Эмуляция Petalinux QEMU
Наслаждаемся магией!
petalinux-boot --qemu --kernel
[ Хронологический вид ]Комментарии
Войдите, чтобы комментировать.