Search
Cílem je z programu přistupovat na periferie procesorového zařízení.
S problematikou se seznamte nejdříve v simulátoru QtMips. Jednoduchá vstupně výstupní periferie je mapovaná od adresy 0xffffc100.
SPILED_REG_LED_LINE
lui t0, 0xffffc ori t0, t0, 0x100 addi t1, zero, 5 sw t1, 4(t0) slli t1, t1, 1 sw t1, 4(t0) slli t1, t1, 1 sw t1, 4(t0) slli t1, t1, 1 ebreak
- Zjistěte co udělá tento program
lui t0, 0xffffc ori t0, t0, 0x100 addi t1, zero, 0 addi t2, zero, 0 la s0, n lw s0,0(s0) cykl1: slli t1, t1, 1 ori t1, t1, 1 addi t2,t2,1 sw t1, 4(t0) bne s0,t2, cykl1 ebreak .data n: .word 5
- Zjistěte co dělá tento program, pomocí informací o mapovaných periferiích.
li t0, 0xffffc000 // base address into memory mapped I/O area addi t1, zero, 48 addi t6, zero, 1234 addi t2, zero, 10 loop: lw t3, 0x08(t0) andi t3, t3, 1 beq t3, zero, loop sw t1, 0x0c(t0) addi t1, t1, 1 addi t2, t2, -1 bne t2, zero, loop ebreak
Kompletní popis periferií implementovaných v simulátoru QtMips naleznete na stránce třetího cvičení v odstavci periferie mapované do paměťového adresního prostoru případně přímo v souboru README.md přímo z projektu. Součástí třetího cvičení je i ukázka překladu z jazyka C do assembleru s rozborem generovaného kódu. Nalézá se tam také archiv s programem. Program naleznete in v adresáři /opt/apo/qtmips_binrep. Program se shodnou funkcí pro desku MZ_APO naleznete v adresáři /opt/apo/binrep/mzapo_binrep. Porovnání analýzy kódu zkompilovaného pro architekturu ARM naleznete na konci dnešního cvičení.
/opt/apo/qtmips_binrep
/opt/apo/binrep/mzapo_binrep
Obvodové řešení V/V adaptéru již na PCI a modernějších sběrnicích není prakticky realizovatelné. Pro pochopení problematiky (před návrhem V/V adaptéru pro PCI) je však jednoduché obvodové řešení např. na sběrnici typu ISA vhodné.
Adresový dekodér:
Jednoduchý V/V adaptér:
lspci
lspci -xxx
Na přednáškách jste viděli příklad jednotlivých bloků adaptéru na PCI sběrnici, včetně řídicího konečného automatu. Rozšiřte tento návrh o možnost konfiguračního čtení a konfiguračního zápisu. (Časový diagram konfiguračního čtení:)