Datorteknik

Kurs om datorer på lågnivå, från hårdvara.

Ludde127 2023-01-18
L

Kursbeskrivning

Syfte

  • Ge en introduktion till hur ett datorsystem fungerar på maskinspråk nivå och hårdvarunivå

Mål

  • Förstå ett datorsystems funktion och dess ingående delar.
  • Förstå samspelet mellan hårdvara maskinspråk och högnivåspråk
  • Förstå gunder för operativsystem och kommunikation med omvärlden.
  • Ha viss färdighet och erfarenhet i programmering på lågnivå.

Slutbetyg

  • För att få slutbeyg 3 krävs godkänt på
    • hemlaborationer
    • Duggor
  • För att få slutbetyg 4 krävs allt för 3 och godkänt på campuslaborationer.
  • För slutbeyg 5 krävs det innan plus 5a på tentamen.

Campuslaborationer

  • Campuslaborationer sker två och två.
  • Schemalagd tid , anmäl på canvas.
  • Material finns på canvas - 4 laborationsuppgifter.
  • Godkänt: Demonstration

Endianness

Endianness defines the order of bytes of a word of digital data in memory.

Big-endian (BE)

The most significant byte of the word is stored at the smallest memory address.

Little-endian (LE)

The most significant byte of the word is stored at the largest memory address.

Bi-endianness

Is supported by different architectures and features the abillity to switch between endianness.

MIPS

Instructionset

MIPS

Lesson 1

Labs

  1. Introduction to the lab environment
  2. I/O handling, USART protocol
  3. Machine language and assembly programming
  4. Interrupt handling

Using Atmel Studio 7

https://apps.lu.se/

Programs are ran on a PCB with Atmel Microcontroller. EEPROM

Lab1

  • Learn how to setup
  • Understand design flow
  • write run and debug c
  • Different supported data types are stored in memory.
  • POINTERS :C

Workflow

  1. Source code
  2. Object files .o
  3. Executable .elf
  4. Hex file .hex

Runs forever.

Supported datatypes on the Atmel microcontroller

  • char
  • unsigned char
  • int8_t
  • uint8_t
  • int16_t
  • uint16_
  • int
  • unsigned int

Pointers

  • Data type where the value of the variable points to a memory address.
  • Capability of modifying the contents in memory where the pointers point to.
  • Specific syntax check C guide.
  • Points to some point in the memory.
  • Define with int i3, i4, *ip1, *ip2; ip1=&i3 makes ip1 point to i3.