Inbäddade system för datainsamling ECG (12 / 14 steg)
Steg 12: Building Linux för ZYBO dev styrelsen
På en Linux OS vissa filer behövs för inbäddade operativsystem: en enhet träd mapp
Den uppackade mappen måste kopieras till katalogen SDK. Lägg till platsen för mappen enhet träd i Xilinx verktyg/enhet förråd. Nästa steg är att skapa enheten trädet filer. Under Arkiv/ny skapa nem Board Support Package och välj alternativet enhet-träd. Notera namnet core. Det spelar ingen roll vilken kärna du använder, men använder denna kärna för alla projekt (armen i ZYNQ är en dual core MPU). Från
de genererade filerna kopiera filerna pl.dtsi, skeleton.dtsi, zynq-7000.dtsi och system.dts till Linux-plattformen. Öppna filen system.dts och ersätta den & pärla del med:
& gem0 {
lokal-mac-adress = [00 0a 35 00 00 00];
PHY-handtag = < & phy0 >;
PHY-mode = "rgmii-id";
status = "okej";
xlnx, ptp-enet-klocka = < 0x6750918 >;
ps7_ethernet_0_mdio: mdio {#address-celler = < 1 >;
#size-celler = < 0 >;
phy0: phy {kompatibel = "realtek, rtl8211e";
device_type = "ethernet-phy";
REG = < 0 >;};};};
Denna ändring konfigurerar Ethernet-gränssnitt för enheten. På Linux-enheten jag använde ./scripts/dtc/dtc-jag dts - O dtb -o .dtb .dts kommando som skapat filen system.dtb. FSBL för enhetsträdet: Jag skapade ett nytt program projekt från Arkiv/ny. Välj Zynq FSBL som mall och projekt.
För att skapa boot Image-fil, måste jag bygga Xilinx uBoot filen.
Kör make zynq_zybo_config kommer att skapa .config-filen och kör make kommer att bygga produktionen i src
mappen. I SDK gå till Xilinx verktyg/skapa Zynq stöveln bild. FSBL.elf måste läggas i bootloader-fil design_wrapper.bit som data. uBoot filen bör vara bytt namn till uBoot.elf och lagt till filerna. Filerna är viktigt!
För att bygga Linux, måste folowing kod sekvensen utföras:
gör ARCH = arm mrproper
gör ARCH = arm xilinx_zynq_defconfig
gör ARCH = arm
Nu gjorde jag en zippad bild av kernel - zImage, men den uppackade versionen behövs, så jag behövde till springa den följande befalla:
gör ARCH = arm UIMAGE_LOADADDR = 0x8000 uImage.
Jag behöver bygga en ram-diskavbildning genom att köra kommandot i Linux:
mkimage – en arm – T
ramdisk – c gzip – g./ramdisk8M.image.gz uramdisk.image.gz
Det sista steget är att kopiera alla filer till ett SD-kort: de filer som behövs är: BOOT.bin genereras från FSBL processen, devicetree.dtb, uImage – utan tillägget elf, och filen uramdisk, alla dessa filer kopieras till en liten FAT32 partition på SD-kortet, en ext4-partition behövs för lagring filsystemet (om den partitionen inte används Linux fungerar bara på RAM, så för den här partitionen jag använde ett ARCH Linux filsystem).