Zybo - AXI DMA inuti inbäddad Linux (4 / 7 steg)
Steg 4: Lapp enhetsträdet
Nu öppna en terminal och ansluta till styrelsens Zybo via ssh (du vet din Zybo IP använder ifconfig). Vi kommer att korrigera enhetsträdet.
- SSH root
- DTC-jag fs - O dts /proc/device-tree -o devicetree.dts
Detta kommer att dumpa enhetsträdet i en mänsklig läsbar form. Vi kommer att korrigera det för våra DMA ses av Linux-kärnan. Använda textredigeraren nano och skapa "pl.dtsi" med följande innehåll:
/ {
scratch_mem {
#address-celler = < 1 >;
#size-celler = < 1 >;
REG = < 0x10000000 0x10000000 >;
kompatibla = "generic-uio";
avbryter = < 0 58 0 >;
avbrott-förälder = < 0x1 >;
};
amba_pl: amba_pl {
spänner;
#size-celler = < 0x1 >;
#address-celler = < 0x1 >;
kompatibla = "simple-bus";
DMA {
#dma-celler = < 1 >;
kompatibla = "generic-uio";
avbrott-förälder = < 0x1 >;
avbryter = < 0 29 4 0 30 4 >;
REG = < 0x40400000 0x10000 >;
};
};
};
Även lägga till följande rad i filen "devicetree.dts" -> /include/ "pl.dtsi"
Vi kommer nu kompilera enhetsträdet till binär form och ersätta det ursprungliga enhetsträdet. Då kommer vår scratch_mem perifera (finns i 0x10000000) och våra DMA engine perifera (finns i 0x40400000) att erkännas. Gör följande:
- sudo mount/dev/mmcblk0p1/boot
- sudo cp /boot/devicetree.dtb /boot/devicetree.dtb.orig
- sudo cp devicetree.dtb /boot/devicetree.dtb
- sudo sync
- sudo umount/boot
- omstart
Din ssh anslutningen stängs och din Zybo kommer att starta om. Din enhet träd ändringar tillämpas.