Stap 12: Gebouw Linux voor het bestuur van de dev ZYBO
Op een Linux OS sommige bestanden zijn er nodig voor de embedded operating system: een apparaat boom map
De uitgepakte map moet worden gekopieerd naar de map SDK. Voeg de locatie van de map van het apparaat boom in Xilinx Tools/apparaat Repositories. Volgende stap is het apparaat boom om bestanden te maken. Onder bestand/nieuw nem Board steunpakket maken en kies de optie apparaat-boom. Noteer de naam van de kern. Het maakt niet uit welke kern u gebruiken, maar deze kern gebruiken voor alle projecten (de ARM in ZYNQ is een dual-core MPU). Van
de gegenereerde bestanden Kopieer de bestanden pl.dtsi, skeleton.dtsi, zynq-7000.dtsi en system.dts naar het Linux-platform. Open het bestand system.dts en vervang de & gem deel met:
&gem0 { local-mac-address = [00 0a 35 00 00 00]; phy-handle = <&phy0>; phy-mode = "rgmii-id"; status = "okay";
xlnx,ptp-enet-clock = <0x6750918>; ps7_ethernet_0_mdio: mdio { #address-cells = <1>; #size-cells= <0>;
phy0: phy { compatible = "realtek,rtl8211e"; device_type = "ethernet-phy"; reg = <0>;};};};
Deze wijziging wordt de Ethernet PHY voor het apparaat geconfigureerd. Op het Linux-apparaat gebruikt ik ./scripts/dtc/dtc-ik dts - O dtb -o .dtb .dts opdracht waarmee het system.dtb-bestand is gemaakt. De FSBL voor het apparaat boom: Ik heb een nieuw Application-project gemaakt van bestand/nieuw. Zynq FSBL als de sjabloon selecteren en bouwen van het project.
Om de boot Image-bestand hebt gemaakt, moet ik bouwen het Xilinx uBoot-bestand.
Lopende make-zynq_zybo_config zal het .config-bestand maken en uitvoeren van de output in de src zal bouwen
map. Ga in SDK naar Xilinx Tools/maken Zynq schoen spiegelbeeld. De FSBL.elf moet worden toegevoegd als bootloader bestand, de design_wrapper.bit als gegevens. uBoot moet zijn hernoemd naar uBoot.elf en het bestand toegevoegd aan de bestanden. De volgorde van de bestanden is belangrijk!
Om te bouwen van Linux, moet de volgende bestemmingspunt code volgorde worden uitgevoerd:
make ARCH=arm mrproper make ARCH=arm xilinx_zynq_defconfig make ARCH=arm
Nu maakte ik een ingepakte beeld van de kernel - zImage, maar de uitgepakte versie nodig is, dus ik moest voert u de volgende opdracht:
make ARCH=arm UIMAGE_LOADADDR=0x8000 uImage.
In Linux nodig ik om een ram disk image te bouwen door het uitvoeren van de opdracht:
mkimage –A arm –T ramdisk –c gzip –g ./ramdisk8M.image.gz uramdisk.image.gz
De laatste stap is het kopiëren van alle bestanden op een SD-kaart: de bestanden die nodig zijn: BOOT.bin gegenereerd op basis van het proces van de FSBL, devicetree.dtb, uImage – zonder de extensie elf, en het uramdisk-bestand, al deze bestanden zullen worden gekopieerd naar een kleine FAT32-partitie op de SD-kaart, een ext4 partitie is nodig voor het bestandssysteem van de opslag (als deze partitie wordt niet gebruikt de Linux zal alleen werken op de RAM, zodat voor deze partitie ik een ARCH Linux-bestandssysteem gebruikte).