Embedded Programming
- architectures
- von Neumann, Harvard
- RISC, CISC
- microprocessor, microcontroller
- GPU, TPU
- FPGA, TinyFPGA, ASICs, difference
- memory
- registers (instructions)
- SRAM (fast)
- DRAM (big)
- EEPROM (non-volatile)
- FLASH (programs, strings)
- fuse (configuration)
- peripherals
- ports
- A/D
- comparator
- D/A
- timer/counter/PWM
- USART
- USB
- …
- word size
- 8
- 16
- 32
- 64
- families
- Articles
- vendors
- packages
- DIP
- SOT
- SOIC
- TSSOP
- TQFP
- LQFP
- BGA
- in-system development
- ISP (AVR)
- UPDI (AVR 0,1-series)
- software
-
pyupdi install: pip3 install intelhex pylint pyserial
program: python3 pyupdi.py -d your_processor -c your_port -b your_baud_rate -f your_hex -v
-
hardware
-
- software
- JTAG (ARM)
- software
- [OpenOCD]j(http://openocd.org/)
- EDBG program: edbg -b -t target_type -pv -f binary_file read fuses: edbg -b -t target_type -F r,*,file_name write fuses: edbg -b -t target_type -F w,high_bit:low_bit,bit_value
- hardware
- software
- bootloader (all)
- assembly language
- hex file
- instruction set, opcodes
- mnemonics, directives, expressions
- avr-as
- inline
- C
- IDE
- boards
- Arduino
- clocks
- types
- RC (10%, 1% calibrated)
- ceramic (0.5%)
- quartz (50 ppm)
- PLL
- Crystal, Resonator, difference
- types
- host communication
- ATtiny412
- hello.t412.blink components traces interior
timing blink.ino video - hello.t412.echo components traces interior
UART echo.ino video - Pinout (for Arduino IDE)
- hello.t412.blink components traces interior
- ATtiny45
- hello.ftdi.45 components traces interior pin re-use
ports port.c port.make port.ino port.write.ino
echo.ino echo.serial.ino video - Pinout (for Arduino IDE)
- hello.ftdi.45 components traces interior pin re-use
- ATtiny1614
- hello.t1614.echo components traces interior
echo.ino video - Pinout (for Arduino IDE)
- hello.t1614.echo components traces interior
- ATtiny44
- hello.ftdi.44 components traces interior
- Pinout (for Arduino IDE)
- ATSAMD11C
- Interpreters
- ESP8266
- ESP32
- Operating Systems
- Systems
- debugging
- hardware
- Atmel ICE
- inspect, reflow solder joints
- check component orientation, values
- verify data sheets
- confirm connector orientation
- measure supply voltages
- probe I/O signals
- software
- blink LED
- add print statements
- use embedded debugger
- hardware
- assignment
- individual assignment:
- read a microcontroller data sheet
- program your board to do something,
- with as many different programming languages and programming environments as possible
- individual assignment: