====== Programming in Assembler for IoT and Embedded Systems ====== | **Study level** | Bachelor | | **ECTS credits** | 4 | | **Study forms** | Hybrid or fully online | | **Module aims** | To give detailed description on programming of AVR microcontrollers in assembly language | | **Pre-requirements** | Basic knowledge on computer programming, knowledge on microcontrollers architecture including AVR family | | **Learning outcomes** | After completing this module, the student:\\ - knows the instruction set of AVR core\\ - knows the principles of writing assembler programs for AVR platform\\ - can write simple assembler program for AVR | | **Topics** | - AVR microcontrollers architecture\\ - addressing modes\\ - instruction set for AVR RISC core\\ - assembler programming tools or AVR\\ - variables, program and data memory location\\ - procedures, argument passing, functions | | **Type of assessment** | Evaluation test | | **Blended learning** | Student can attend classes or self-learn with video and reading materials provided. | | **References to literature** | 1. Elliot Williams, AVR Programming: Learning to Write Software for Hardware, Make Community, LLC, 2014\\ 2. Panayotis M Papazoglou, An Educational Guide to the AVR Microcontroller Programming: AVR Programming Demystified, Createspace Independent Publishing Platform, 2018\\ 3. Boxall John, Avr Workshop: A Hands-On Introduction with 60 Projects, No Starch Pr, 2022 | | **Lab equipment** | AVR-based evaluation boards, Arduino boards | | **Virtual lab** | https://iot.aei.polsl.pl | | **MOOC course** | https://multiasm.eu/mooc/course/view.php?id=13 |