You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1.3 KiB

Oktatóanyag 03 - UART1, Auxilary mini UART

Ezúttal a hírhedt Helló Világ példát vesszük elő. Előbb az UART1-re írjuk meg, mivel azt egyszerűbb programozni, mivel fix órafrekvenciája van.

FIGYELEM: qemu nem irányítja át alapból az UART1-et a terminálra, csak az UART0-át!

Gpio.h

Van egy új fejléc fájlunk. Ebben definiáljuk az MMIO címét, és a GPIO vezérlő szavainak címeit. Ez egy nagyon népszerű fejléc lesz, majd minden eszközhöz kelleni fog.

Uart.h, uart.c

Egy nagyon minimális változat.

uart_init() inicializálja az UART csipet, és soros vonalat leképezi a GPIO lábakra.

uart_send(c) kiküld egy karatert a soros vonalra.

uart_getc() fogad egy karatert. A kocsivissza karakter (13) automatikusan újsor karakterré (10) konvertálódik.

uart_puts(s) kiír egy szöveget. Újsor karakternél kiküld egy kocsivissza karatert is (13 + 10).

Main

Először is meg kell hívni az uart inicializáló kódját. Aztán kiküldjük, "Helló Világ!". Ha beszereztél USB soros kábelt, akkor ennek meg kell jelennie a minicom ablakában. Ezután minden, minicom-ban leütött karaktert visszaküld és kiír. Ha nem kapcsoltad ki a helyi visszhangot (local echo), akkor ez azt jelenti, hogy minden leütött karaktert duplán fog kiírni a minicom.