06.08.2020 Asymmetric multiprocessing
Материал из SRNS
Lipa (обсуждение | вклад) |
Lipa (обсуждение | вклад) |
||
(не показаны 6 промежуточных версий 2 участников) | |||
Строка 6: | Строка 6: | ||
</summary> | </summary> | ||
− | |||
− | |||
== INTRO == | == INTRO == | ||
Строка 13: | Строка 11: | ||
== petalinux-config == | == petalinux-config == | ||
+ | Высталяем стартовый адрес для ядра не ноль. Предположительно rtos не умеет стартовать не с 0-го адреса, но это вроде хрень. В клоникус выставляем: | ||
+ | <source lang="bash"> | ||
+ | Subsystem AUTO ... -> | ||
+ | Memory Settings -> | ||
+ | kernel base address -> | ||
+ | 0x1000000 | ||
+ | </source> | ||
+ | |||
== petalinux-config -c kernel == | == petalinux-config -c kernel == | ||
+ | Убеждаемся в том, что все включено, как в даташите. Реально нужно самостоятельно включить: | ||
+ | <source lang="bash"> | ||
+ | Kernel Features ... -> | ||
+ | Memory split-> | ||
+ | 2G/2G | ||
+ | </source> | ||
+ | |||
== petalinux-config -c rootfs == | == petalinux-config -c rootfs == | ||
+ | Включаем нужные либы | ||
+ | |||
+ | Эта может быть и не нужна... | ||
+ | <source lang="bash"> | ||
+ | Location: | ||
+ | -> Filesystem Packages | ||
+ | -> libs | ||
+ | -> open-amp | ||
+ | </source> | ||
== Device tree == | == Device tree == | ||
+ | В более старых версиях petalinux (2017.1) использовалось поле '''sram0''', сейчас '''srams''' | ||
<source lang="bash"> | <source lang="bash"> | ||
/include/ "system-conf.dtsi" | /include/ "system-conf.dtsi" | ||
Строка 45: | Строка 68: | ||
</source> | </source> | ||
− | == | + | == Запуск == |
− | + | Закидываем name.elf в /lib/firmware/ | |
+ | |||
+ | Указываем путь к шашему .elf | ||
+ | <source lang="bash"> | ||
+ | echo name.elf > /sys/class/remoteproc/remoteproc0/firmware | ||
+ | </source> | ||
+ | |||
+ | Запускаем: | ||
<source lang="bash"> | <source lang="bash"> | ||
− | + | 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
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
В более старых версиях 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>;
};
};
/ {
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
[ Хронологический вид ]Комментарии
Войдите, чтобы комментировать.