Zhrnutie na Architektúra ARM Cortex-M3 a základy programovania

Architektúra ARM Cortex-M3 a základy programovania | Komplexný sprievodca

Úvod

Programovanie je tvorba inštrukcií, ktoré počítač vykonáva za účelom riešenia úloh. Tento materiál pokrýva základné koncepty: úrovne programovacích jazykov, typy programového vybavenia, polia, cykly, vetvenie a základné programové príklady vhodné pre samoukov (Not attending student).

Strojový kód, jazyk symbolických inštrukcií a vyššie jazyky

Definícia: Strojový kód je binárny kód priamo vykonávaný procesorom.

Strojový kód

  • Najnižšia úroveň abstrakcie; zložený z bitov (0 a 1).
  • Priamo vykonávaný hardware-om, rýchly, ale ťažko čitateľný pre človeka.
  • Špecifický pre konkrétnu procesorovú architektúru.

Príklad (ilustračné bity):

  • 01001000 10000011 11000000 00000001

Jazyk symbolických inštrukcií (assembly)

Definícia: Assembly je nízkoúrovňový jazyk, kde každá inštrukcia zodpovedá jednej strojovej inštrukcii.

  • Používa skratky ako MOV, ADD, JUMP pre ľahšie čítanie.
  • Vyžaduje znalosť architektúry počítača.
  • Prekladá sa pomocou assemblera do strojového kódu.

Príklad (assembly):

  • MOV AX, 1
  • ADD AX, 2

Vyššie programovacie jazyky

Definícia: Vyššie jazyky (napr. Python, Java, C++) poskytujú abstrakcie ako funkcie, triedy a cykly, čo zjednodušuje vývoj.

  • Čitateľné pre ľudí, nezávislé od architektúry.
  • Vyžadujú kompiláciu alebo interpretáciu do strojového kódu.

Príklad (C):

  • int sucet = 1 + 2;
💡 Vedeli ste?Fun fact: Vyššie jazyky zvyšujú produktivitu vývojára, pretože jeden príkaz často reprezentuje mnoho inštrukcií strojového kódu.

Porovnanie úrovní

VlastnosťStrojový kódJSI (assembly)Vyšší jazyk
Čitateľnosťžiadnanízkavysoká
Náročnosť písaniaveľmi vysokávysokánízka
Rýchlosť vykonanianajrýchlejšírýchlypomalší
Prenositeľnosťžiadnažiadnavysoká
Príklad01001000MOV AX, 1int a = 1

Preklad do strojového kódu

  • Assembler: prekladá JSI do strojového kódu.
  • Kompilátor: prekladá celý zdroj vyššieho jazyka pred spustením (napr. C).
  • Interpret: prekladá a vykonáva kód riadok po riadku (napr. Python, PHP).

Zhrnutie jednou vetou: Strojový kód je binárny jazyk procesora, JSI používa symbolické skratky a vyššie jazyky poskytujú abstrakcie pre ľudí; všetky sa nakoniec preložia do strojového kódu.

Programové prostriedky počítača (softvér)

Definícia: Programové prostriedky sú softvérové komponenty, ktoré umožňujú fungovanie počítača a aplikácií.

Hlavné typy

  • Operačný systém: riadi hardvér a poskytuje rozhranie pre aplikácie (napr. Linux, Windows, macOS).
  • Aplikačný softvér: programy pre konkrétne úlohy (spracovanie textu, tabuľky, úprava obrázkov).
  • Programovací jazyk: nástroj pre tvorbu softvéru (Python, Java).
  • Vývojové prostredie (IDE): nástroje na písanie, ladenie a správu kódu (Visual Studio, Eclipse).
  • Databázový systém: správa veľkých množín dát (MySQL, MS SQL Server).
💡 Vedeli ste?Fun fact: Operačný systém spravuje aj zdieľanie prostriedkov medzi procesmi, čo zabraňuje konfliktom pri prístupe k hardvéru.

Polia (jedno- a viacrozmerné)

Definícia: Jednorozmerné pole je zoznam hodnôt rovnakého typu uložených za sebou; viacrozmerné pole je pole polí (najčastejšie dvojrozmerné tabuľky).

Jednorozmerné pole

  • Pristupujeme cez jeden index, ktorý začína od nuly.
  • Na prechádzanie používame jeden cyklus.

Dvojrozmerné pole

  • Predstavíme si ho ako tabuľku s $r$ riadkami a $c$ stĺpcami; počet prvkov je $r \cdot c$.
  • Prístup cez dva indexy: prvý pre riadok, druhý pre stĺpec.
  • Na prechádzanie potrebujeme dva vnorené cykly: vonkajší pre riadky, vnútorný pre stĺpce.

Príklad: Pole s 5 riadkami a 6 stĺpcami má $5 \cdot 6 = 30$ prvkov.

Zhrnutie jednou vetou: Jednorozmerné pole je zoznam prechádzaný jedným cyklom, dvojrozmerné pole je tabuľka prechádzaná dvoma vnorenými cyklami.

Cykly: FOR, WHILE, DO WHILE

Definícia: Cykly sú riadiace štruktúry, ktoré opakujú blok kódu podľa podmienky.

FOR

  • Používame, keď vieme presný počet opakovaní.
  • Zvyčajn
Zaregistruj sa pre celé zhrnutie
KartičkyTest znalostíZhrnutiePodcastMyšlienková mapa
Začni zadarmo

Už máš účet? Prihlásiť sa

Programovanie - základy

Klíčová slova: Architektúra počítačov, Programovanie

Klíčové pojmy: Strojový kód je binárny a špecifický pre architektúru, Assembly používa symbolické inštrukcie pre každú strojovú inštrukciu, Vyššie jazyky poskytujú abstrakcie a sú prenosné, Assembler, kompilátor a interpret prekladajú kód rôznymi spôsobmi, Operačný systém riadi hardvér a poskytuje rozhranie pre aplikácie, Jednorozmerné pole používa jeden index; dvojrozmerné dva indexy, FOR pre známy počet opakovaní, WHILE pre neznámy, DO WHILE vykoná aspoň raz, If/else vetvenie rozhoduje podľa podmienok, switch porovnáva s konkrétnymi hodnotami, Používať float na výpočet priemeru, ak očakávame desatinné hodnoty, Break v switch zabraňuje prepadnutiu do ďalších case blokov, Polia prechádzame vnorenými cyklami podľa počtu rozmerov

## Úvod Programovanie je tvorba inštrukcií, ktoré počítač vykonáva za účelom riešenia úloh. Tento materiál pokrýva základné koncepty: úrovne programovacích jazykov, typy programového vybavenia, polia, cykly, vetvenie a základné programové príklady vhodné pre samoukov (Not attending student). ## Strojový kód, jazyk symbolických inštrukcií a vyššie jazyky > **Definícia:** Strojový kód je binárny kód priamo vykonávaný procesorom. ### Strojový kód - Najnižšia úroveň abstrakcie; zložený z bitov (0 a 1). - Priamo vykonávaný hardware-om, rýchly, ale ťažko čitateľný pre človeka. - Špecifický pre konkrétnu procesorovú architektúru. Príklad (ilustračné bity): - 01001000 10000011 11000000 00000001 ### Jazyk symbolických inštrukcií (assembly) > **Definícia:** Assembly je nízkoúrovňový jazyk, kde každá inštrukcia zodpovedá jednej strojovej inštrukcii. - Používa skratky ako MOV, ADD, JUMP pre ľahšie čítanie. - Vyžaduje znalosť architektúry počítača. - Prekladá sa pomocou assemblera do strojového kódu. Príklad (assembly): - MOV AX, 1 - ADD AX, 2 ### Vyššie programovacie jazyky > **Definícia:** Vyššie jazyky (napr. Python, Java, C++) poskytujú abstrakcie ako funkcie, triedy a cykly, čo zjednodušuje vývoj. - Čitateľné pre ľudí, nezávislé od architektúry. - Vyžadujú kompiláciu alebo interpretáciu do strojového kódu. Príklad (C): - int sucet = 1 + 2; Fun fact: Vyššie jazyky zvyšujú produktivitu vývojára, pretože jeden príkaz často reprezentuje mnoho inštrukcií strojového kódu. ### Porovnanie úrovní | Vlastnosť | Strojový kód | JSI (assembly) | Vyšší jazyk | |---|---:|---:|---:| | Čitateľnosť | žiadna | nízka | vysoká | | Náročnosť písania | veľmi vysoká | vysoká | nízka | | Rýchlosť vykonania | najrýchlejší | rýchly | pomalší | | Prenositeľnosť | žiadna | žiadna | vysoká | | Príklad | 01001000 | MOV AX, 1 | int a = 1 | ### Preklad do strojového kódu - Assembler: prekladá JSI do strojového kódu. - Kompilátor: prekladá celý zdroj vyššieho jazyka pred spustením (napr. C). - Interpret: prekladá a vykonáva kód riadok po riadku (napr. Python, PHP). Zhrnutie jednou vetou: Strojový kód je binárny jazyk procesora, JSI používa symbolické skratky a vyššie jazyky poskytujú abstrakcie pre ľudí; všetky sa nakoniec preložia do strojového kódu. ## Programové prostriedky počítača (softvér) > **Definícia:** Programové prostriedky sú softvérové komponenty, ktoré umožňujú fungovanie počítača a aplikácií. ### Hlavné typy - **Operačný systém**: riadi hardvér a poskytuje rozhranie pre aplikácie (napr. Linux, Windows, macOS). - **Aplikačný softvér**: programy pre konkrétne úlohy (spracovanie textu, tabuľky, úprava obrázkov). - **Programovací jazyk**: nástroj pre tvorbu softvéru (Python, Java). - **Vývojové prostredie (IDE)**: nástroje na písanie, ladenie a správu kódu (Visual Studio, Eclipse). - **Databázový systém**: správa veľkých množín dát (MySQL, MS SQL Server). Fun fact: Operačný systém spravuje aj zdieľanie prostriedkov medzi procesmi, čo zabraňuje konfliktom pri prístupe k hardvéru. ## Polia (jedno- a viacrozmerné) > **Definícia:** Jednorozmerné pole je zoznam hodnôt rovnakého typu uložených za sebou; viacrozmerné pole je pole polí (najčastejšie dvojrozmerné tabuľky). ### Jednorozmerné pole - Pristupujeme cez jeden index, ktorý začína od nuly. - Na prechádzanie používame jeden cyklus. ### Dvojrozmerné pole - Predstavíme si ho ako tabuľku s $r$ riadkami a $c$ stĺpcami; počet prvkov je $r \cdot c$. - Prístup cez dva indexy: prvý pre riadok, druhý pre stĺpec. - Na prechádzanie potrebujeme dva vnorené cykly: vonkajší pre riadky, vnútorný pre stĺpce. Príklad: Pole s 5 riadkami a 6 stĺpcami má $5 \cdot 6 = 30$ prvkov. Zhrnutie jednou vetou: Jednorozmerné pole je zoznam prechádzaný jedným cyklom, dvojrozmerné pole je tabuľka prechádzaná dvoma vnorenými cyklami. ## Cykly: FOR, WHILE, DO WHILE > **Definícia:** Cykly sú riadiace štruktúry, ktoré opakujú blok kódu podľa podmienky. ### FOR - Používame, keď vieme presný počet opakovaní. - Zvyčajn