Počáteční šablona pro tvorbu aplikace

Šablonu aplikace najdete na počítačích v laboratoři v adresáři

/opt/apo/mzapo_template

Další šablony, pro další platformy např. QtMips, naleznete na https://gitlab.fel.cvut.cz/b35apo/stud-support v adresari seminaries/binrep

Výhodnější je však šablonu nahrát z verzovacího systému a založit si poté pro projekt vlastní repozitář (viz stránka z dokumentace)

git clone https://gitlab.fel.cvut.cz/b35apo/mzapo_template.git

Součástí šablony jsou následující soubory

  • Makefile - pravidla pro sestavení a vzdálené spouštění aplikace
  • change_me.c - zdrojový kód s hlavní funkcí main - šablona určená k přejmenování
  • font_prop14x16.c - proporcionální font s maximální šířkou 14 a výškou 16 bodu
  • font_rom8x16.c - font s fixní šířkou
  • font_types.h - definice typu použitého pro popis fontu
  • mzapo_parlcd.h - deklarace funkcí pro nízkoúrovňový přístup k LCD display
  • mzapo_parlcd.c - implementace funkcí pro nízkoúrovňový přístup k LCD display
  • mzapo_phys.h - deklarace funkce pro mapování fyzického rozsahu adres do aplikačního procesu
  • mzapo_phys.c - implementace funkce pro mapování fyzického rozsahu adres do aplikačního procesu
  • mzapo_regs.h - definice bázových adres a registrů výukového návrhu MZ_APO
  • serialize_lock.h - definice zámku pro seřazení více aplikací tak, aby v danou chvíli běžela jen jedna
  • serialize_lock.c - implementace serializace - umožňuje jeden kit sdílet více uživateli

Podrobnější popis registrů návrhu lze nalézt v dokumentaci výukového kitu MZ_APO.

Pravidla Makefile pro sestavovací program je potřeba upravit pro vlastní aplikaci. Aplikace se bude skládat z jednoho nebo více zdrojových souborů v jazyce C (soubory s příponou *.c) a nebo v jazyce C++ (soubory s příponou *.cpp). Příkladem s hlavní funkci main je vzorový soubor change_me.c, který by měl být nahrazen, přejmenován za soubor specifický pro danou aplikaci.

Do proměnné SOURCES je nastaven seznam zdrojových souborů, viz následující část souboru Makefile

SOURCES = change_me.c mzapo_phys.c mzapo_parlcd.c
#SOURCES += font_prop14x16.c font_rom8x16.c

V první řádce je potřeba upravit jméno hlavního souboru aplikace. Pokud jsou využité fonty, je potřeba druhou řádku odkomentovat. Do seznamu je možné na těchto dvou řádkách nebo opakováním řádku s plus-rovná-se přidat i další potřebné soubory. Hlavičkové soubory (*.h) se do seznamu neuvádí.

Jméno žádaného binárního spustitelného souboru je nastavené v do proměnné TARGET_EXE.

Překlad je proveden prostým zavoláním sestavovacího programu

make

kdy je vyvoláno první nalezené pravidlo all.

Pro smazání generovaných souborů (objektové soubory, binární kód aplikace a automaticky generované závislosti) slouží cíl clean. Cíle lze i kombinovat

make clean all

Případná kompilace při změně a spuštění aplikace na vzdálené jednotce je provedeno při vyvolání cíle run

make TARGET_IP=192.168.202.xx run

Automatické přihlášení, přenos dat a spuštění aplikace na cílovém zařízení s danou IP adresou vyžaduje již zavedený privátní klíč v SSH agentovi pro dané sezení

ssh-add /opt/apo/zynq/ssh-connect/mzapo-root-key

Aplikace je nejdříve překopírovaná do podadresáře /tmp vytvořeného podle přihlašovacího jména uživatele a poté je aplikace spuštěné s tím, že standardní vstup i výstup je k dispozici na straně vývojářského počítače přes SSH spojení.

Aplikaci je možné na cílové platformě i ladit s využitím grafického ladícího programu Data Display Debugger

make TARGET_IP=192.168.202.xx debug

Soubory jsou dostupné i v GitLab FEL přes ssh (nutný nahraný public key):
git@gitlab.fel.cvut.cz:b35apo/mzapo_template.git

Případně přes https:

https://gitlab.fel.cvut.cz/b35apo/mzapo_template.git

Klíč pro přístup k vývojovému kitu je možné v prostředí Xfce aktivovat automaticky po přihlášení v nastavení automaticky spouštěných aplikací Setting manager > Session and startup > Application Autostart (Nastavení > Správce nastavení > Relace a spouštění > Automatický start aplikace). Přidejte položku, název vyplňte například na ssh-mz_apo, přidejte popis a příkaz
ssh-add /opt/zynq/ssh-connect/mzapo-root-key
courses/b35apo/semestral/template.txt · Last modified: 2024/02/02 18:41 (external edit)