• Aucun résultat trouvé

Syst`emes embarqu´es 6

N/A
N/A
Protected

Academic year: 2022

Partager "Syst`emes embarqu´es 6"

Copied!
6
0
0

Texte intégral

(1)

embarqu´es 6 J.-M Friedt

Syst` emes embarqu´ es 6

J.-M Friedt

FEMTO-ST/d´ epartement temps-fr´ equence jmfriedt@femto-st.fr

transparents ` a jmfriedt.free.fr

18 janvier 2018

1 / 6

(2)

embarqu´es 6

J.-M Friedt

P´ eriph´ erique dans le FPGA

• XADC : convertisseur

analogique-num´ erique 1 MS/s (12 bits) ...

• ... connect´ e au PS et au PL

• Instantiation comme p´ eriph´ erique dans Vivado (XADC Wizard)

• PL : source de donn´ ees vers le

PS ou vers d’autres blocs

FPGA pour traitement

temps-r´ eel

(3)

embarqu´es 6

J.-M Friedt

Configuration dans Vivado

• Mesure en continu (pas de trigger)

• Activation des voies 8 et 9

• Autoroutage pour les horloges et les signaux du bus AXI

3 / 6

(4)

embarqu´es 6

J.-M Friedt

Acc` es ` a XADC depuis le PS

• Xilinx fournit un pilote IIO pour XADC : xilinx xadc.ko

• ce pilote se configure par le devicetree

• Reconfiguration du pilote n´ ecessite de le passer en module

• Eviter de rebooter lors du chargement de l’XADC dans le ´ devicetree : overlay

/dts-v1/;

/plugin/;

/ {compatible = "xlnx,zynq-7000";

fragment@0 {

target = <&fpga_full>;

#address-cells = <1>;

#size-cells = <1>;

__overlay__ {

#address-cells = <1>;

#size-cells = <1>;

firmware-name = "system_wrapper.bit.bin";

};

};

fragment@1 { target = <&adc>;

__overlay__ { xlnx,channels {

#address-cells = <1>;

#size-cells = <0>;

channel@0 {reg = <0>;};

channel@1 {reg = <1>;};

channel@2 {reg = <2>;};

channel@9 {reg = <9>;};

channel@10 {reg = <10>;};

};

};

};

Le nœud fragment@1 surcharge les pa- ram` etres du nœud adc du devicetree ori- ginal

adc: adc@f8007100 {

compatible = "xlnx,zynq-xadc-1.00.a";

reg = <0xf8007100 0x20>;

interrupts = <0 7 4>;

interrupt-parent = <&intc>;

clocks = <&clkc 12>;

};

avec compatible identique au pilote drivers/iio/adc/xilinx-xadc-core.c

static const struct of_device_id xadc_of_match_table[] = { {.compatible = "xlnx,zynq-xadc-1.00.a", (void *)&xadc_zynq_ops }, {.compatible = "xlnx,axi-xadc-1.00.a", (void *)&xadc_axi_ops }, { },

};

Le nœud fragment@0 fait r´ ef´ erence au

fpga manager pour surcharger le nom du

(5)

embarqu´es 6

J.-M Friedt

Chargement du bitstream et du

pilote IIO

$ mkdir /sys/kernel/config/device-tree/overlays/toto

$ rmmod xilinx_xadc

$ cp system_wrapper.bit.bin /lib/firmware

$ cat xadc.dtbo > /sys/kernel/config/device-tree/overlays/toto/dtbo

$ dmesg | tail -1

fpga_manager fpga0: writing system_wrapper.bit.bin to Xilinx Zynq FPGA Manager

$ modprobe xilinx_xadc

$ pwd

/sys/bus/iio/devices/iio:device0

$ ls ...

in_voltage10_vaux1_scale in_voltage8_vaux9_raw in_voltage11_vaux0_raw in_voltage8_vaux9_scale in_voltage11_vaux0_scale in_voltage9_vaux8_raw in_voltage12_vpvn_raw in_voltage9_vaux8_scale

• Une interface standard pour les p´ eriph´ eriques d’acquisition (raw, scale, offset ...)

5 / 6

(6)

embarqu´es 6

J.-M Friedt

Acc` es depuis le PL

• Vivado a donn´ e l’adresse de base du p´ eriph´ erique

• La documentation du XADC IP d´ ecrit les registres aux adresses

relatives

Références

Documents relatifs

• Alternative au temps r´ eel : le mat´ eriel reconfigurable se charge des op´ erations rapides et d´ echarge le processeur de tˆ aches imm´ ediates (UART, FIFO, ADC du coldfire

• Partant de l’exemple de module avec timer en /dev, impl´ ementer une m´ ethode read qui se d´ ebloque ` a intervalles de temps r´ eguliers (utiliser un mutex). • Proposer

• depuis le CPU (Linux) : pilote noyau pour communiquer avec les p´ eriph´ eriques. • description de la configuration mat´ erielle par le m´ ecanisme des devicetree consult´ e par

Notion de syst` eme embarqu´ e Architecture des processeurs Mat´ eriel v.s logiciel Rappels de C Les microcontrˆ oleurs 8 bits G´ en´ eralit´ es sur les syst` emes num´ eriques

Un ordinateur est, pour sa version la plus simple, un processeur entour´ e de quelques circuits de mise en œuvre (gestion d’horloge, de la r´ einitialisation), une m´ emoire

Si nous pouvons interrompre l’ex´ ecution, ou modifier l’initialisation de i, nous serons en mesure d’afficher le message re- cherch´ e (d´ ebloque)5. Supposons que le vendeur de

timers : expiration d’un timer ou un tick (p ´eriode) d’horloge syst `eme autres p ´eriph ´eriques : touche clavier, clic souris, paquet ethernet,.. Exceptions et Interruptions

– Il ne peut y avoir plus d’un processus dans sa section critique en mˆeme temps – Un processus en dehors de sa section critique ne peut bloquer un autre