Embedded Systems (Firmware)
See WARG.
https://www.youtube.com/watch?v=I7kIcpWTulE&ab_channel=SkillLync
Microprocessor vs. Microcontroller vs. SoC
Microprocessor = IC that contains only a CPU
- Does not contain ROM, RAM, etc. which are necessary to perform a task
- External components are required to perform a task
CPU = microprocessor?
https://download.intel.com/newsroom/kits/40thanniversary/pdfs/What_is_a_Microprocessor.pdf
Microcontroller
- A Single IC mini-computer
- Microcontrollers are complete and self-sufficient
- Have RAM, ROM, Timers, Serial ports
Well suited for compact and embedded device.
SoC
- Advanced version of microcontroller or microprocessor
- Integrates well with advanced peripherals like GPU, WiFI module, or other coproessors
Firmware vs. Software
- Nowadays, it is harder to differentiate
Firmware
- Firmware refers to the software stored in read-only memory such as EPROM, or EEPROM
- Used as a low-level software that operates a specific, single-purpose device like TV, washing machine, A/C
- There is no OS in firmware so it is called bare metal
Firmware Application vs. Firmware Driver
Firmware Driver
- If we make use of any embedded components (like SD card), we need a driver to communicate with it
- It is also called a low-level driver which is written to update and configure specific registers of the peripheral
Firmware Application
- Makes use of the device by calling specific APIs of the firmware driver
- Specifies which register to modify, and the firmware driver will do it
Flash Memory vs. RAM?
- He has the drawing where the data is actually stored in RAM, but the code is stored in flash memory which is executed
Some good questions
- Why is register variable global declaration is not possible?
- Why can’t static variables be declared within a
struct
?