Compare commits

...
Author SHA1 Message Date
Meysam Parvizi 20c8f8cc29 Add CI/CD Flow
Make `OS fundamentals` as required
2023-08-23 16:36:08 +03:30
Meysam Parvizi a59bd2cb43 Update README.md 2023-08-23 15:50:25 +03:30
Meysam Parvizi b28b7727dc Update README.md 2023-08-20 01:05:39 +03:30
Meysam Parvizi 52e857b600 Update README.md 2023-08-19 09:21:14 +03:30
Meysam Parvizi 5abfa08d9c Update README.md 2023-08-18 16:57:33 +03:30
Meysam Parvizi 6834f00c8a Update README.md 2023-08-17 14:12:25 +03:30
Meysam Parvizi 12f2d5f0f0 Update README.md 2023-08-16 19:50:24 +03:30
Meysam Parvizi 2f3e688e8e Update README.md 2023-08-16 18:58:28 +03:30
Meysam Parvizi 3aa4cd5554 Update README.md 2023-08-16 14:27:17 +03:30
Meysam Parvizi 77546b3d26 Update README.md 2023-08-16 14:23:28 +03:30
Meysam Parvizi fae8ddcc4a Update README.md
Fix typos
2023-08-16 14:15:54 +03:30
Meysam Parvizi 4dc83b5e73 Update README.md 2023-08-15 19:52:40 +03:30
Meysam Parvizi 4c1be44151 Update README.md
Add Bare-Metal vs RTOS
2023-08-15 15:57:15 +03:30
Meysam Parvizi 92228a79a9 Update README.md 2023-08-15 14:59:42 +03:30
Meysam Parvizi 6dd86addb4 Update README.md
Add 'The Definitive Guide to ARM' books
2023-08-15 01:38:37 +03:30
Meysam Parvizi 69012842fc Update README.md 2023-08-14 22:53:17 +03:30
Meysam Parvizi 8a00f9f519 Update README.md 2023-08-14 22:14:31 +03:30
Meysam Parvizi d64d8fdfb4 Update README.md 2023-08-14 22:10:37 +03:30
Meysam Parvizi ca19b1bb7c Update README.md
Add resources for Embedded Linux Security
2023-08-14 16:24:11 +03:30
Meysam Parvizi 19f2f2b0cb Update README.md
Add some resources for C++
2023-08-13 19:06:31 +03:30
Meysam Parvizi 7ceee1f7c5 Update README.md 2023-08-13 04:27:03 +03:30
Meysam Parvizi 140697feb5 Update README.md
Add TinyML book
2023-08-13 03:18:14 +03:30
Meysam Parvizi 98c52b4c46 Update README.md 2023-08-13 02:07:07 +03:30
Meysam Parvizi f2c659ea95 Update README.md 2023-08-13 01:16:11 +03:30
Meysam Parvizi c3ec72d8c7 Update README.md
Add Coursera and edX courses
2023-08-13 01:15:26 +03:30
Meysam Parvizi 88243467d6 Minorest minor change 2023-08-12 17:21:40 +03:30
Meysam Parvizi f57a1baac6 Update README.md 2023-08-12 17:16:27 +03:30
Meysam Parvizi 6b210b76f6 Update README.md
Add GoogleTest
2023-08-12 17:09:33 +03:30
Meysam Parvizi 97885a21c3 Update README.md
Add some resources for CAN
2023-08-12 17:08:08 +03:30
Meysam Parvizi e962f25474 Update README.md
Add U8g2
2023-08-12 17:02:49 +03:30
2 changed files with 58 additions and 20 deletions
Binary file not shown.
+58 -20
View File
@@ -1,6 +1,6 @@
# Embedded Systems Engineering Roadmap
This roadmap is designed to assist beginners aspiring to build a career as an Embedded Engineer / Developer. To provide comprehensive guidance, I have carefully selected the topics based on current open job requirements and organized them according to my personal experience.
This roadmap is designed to assist beginners aspiring to build a career as an Embedded Engineer / Developer. To provide comprehensive guidance, the topics have been carefully selected based on current job requirements and organized according to personal experience.
Becoming an embedded engineer requires a broad understanding of both software and hardware. If you are starting on this journey, you must be highly motivated and passionate to pursue this path. The field of embedded systems demands a solid understanding of hardware functionality. But, as the well-known saying goes, "Hardware is hard!". So, patience and passion are the essential qualities that will help you overcome the various challenges encountered along this journey.
@@ -24,9 +24,13 @@ Often, the computer is relatively **invisible to the user**, without obvious app
#### 🎥 Courses and YouTube Contents
- [Coursera - Introduction to Embedded Systems Software and Development Environments](https://www.coursera.org/learn/introduction-embedded-systems)
- [Coursera - Embedded Software and Hardware Architecture](https://www.coursera.org/learn/embedded-software-hardware)
- [Fastbit Embedded Brain Academy](https://fastbitlab.com/)
- [edX - Embedded Systems - Shape The World: Microcontroller Input/Output](https://learning.edx.org/course/course-v1:UTAustinX+UT.6.10x+3T2022/home)
- [edX - Embedded Systems - Shape The World: Multi-Threaded Interfacing](https://www.edx.org/learn/computer-programming/the-university-of-texas-at-austin-embedded-systems-shape-the-world-multi-threaded-in)
- [Quantum Leaps, LLC (YouTube Channel)](https://www.youtube.com/@StateMachineCOM)
- [DigiKey (YouTube Channel](https://www.youtube.com/@digikey)
- [DigiKey (YouTube Channel)](https://www.youtube.com/@digikey)
- [element14 presents (YouTube Channel)](https://www.youtube.com/@element14presents)
- [Ben Eater (YouTube Channel)](https://www.youtube.com/@BenEater)
- [Phil’s Lab (YouTube Channel)](https://www.youtube.com/@PhilsLab)
@@ -45,7 +49,9 @@ Often, the computer is relatively **invisible to the user**, without obvious app
#### 🕹️ Arduino
If you do not have any background in programming embedded systems, Arduino boards and libraries are the best choice for you to start and learn the basics. Just keep in mind that most of the Arduino libraries are developed only for learning purposes and are not are not optimized to be used in industry. Additionally, the Arduino takes care of most of the low-level operations and manipulation of registers that you, as an embedded engineer, should be able to handle yourself. If you want to become a professional embedded developer, you must be able to effectively use industry-standard APIs and frameworks provided and approved by microcontroller vendors. For example, CMSIS for ARM Cortex, STM32Cube for STM32, ESP-IDF for Espressif microcontrollers, etc.
If you do not have any background in programming the embedded systems, Arduino boards and libraries are the best choice for you to start and learn the basics. Just keep in mind that most of the Arduino libraries are developed for learning purposes and are not optimized to be used in industry.
Additionally, the [Arduino Core](https://github.com/arduino/ArduinoCore-API) takes care of most of the low-level operations and manipulation of registers that you, as an embedded engineer, should be able to handle yourself. If you want to become a professional embedded developer, you must be able to effectively use industry-standard APIs and frameworks provided and approved by microcontroller vendors. For example, CMSIS for ARM Cortex, STM32Cube for STM32, ESP-IDF for Espressif microcontrollers, etc.
- [Getting Started with Arduino](https://docs.arduino.cc/learn/starting-guide/getting-started-arduino)
- [New Arduino Tutorials](https://youtube.com/playlist?list=PLGs0VKk2DiYw-L-RibttcvK-WBZm8WLEP)
@@ -56,6 +62,8 @@ If you do not have any background in programming embedded systems, Arduino board
PlatformIO is a cross-platform, cross-architecture, multiple framework, professional tool for embedded systems engineers and for software developers who write applications for embedded products.
PlatformIO is not yet extensively adopted in industrial and large-scale projects, however, it is an excellent choice for individuals working on smaller projects. This is because it greatly reduces the need to install frameworks and setup build and debug tools, allowing you to concentrate on programming.
- [PlatformIO - A professional collaborative platform for embedded development](https://platformio.org/)
#### 👨‍🏫 Educational Websites
@@ -68,7 +76,7 @@ PlatformIO is a cross-platform, cross-architecture, multiple framework, professi
- [Random Nerd Tutorials | Learn ESP32, ESP8266, Arduino, and Raspberry Pi](https://randomnerdtutorials.com/)
- [ControllersTech](https://controllerstech.com/)
#### 🗺️ Other Useful Roadmaps
#### 🗺️ Other Helpful Roadmaps
- [Embedded Systems Skill Tree](https://github.com/sjpiper145/MakerSkillTree/tree/main/Embedded%20Systems%20Skill%20Tree)
- [PCB Design Skill Tree](https://github.com/sjpiper145/MakerSkillTree/tree/main/PCB%20Design%20Skill%20Tree)
@@ -102,15 +110,16 @@ _________________
#### Basic Math & Calculus
- [Khan Academy - Calculus 1](https://www.khanacademy.org/math/calculus-1)
- [Calculus - Robert T Smith, Roland Minton](https://www.mheducation.com/highered/product/calculus-smith-minton/M9780073383118.html)
- [Calculus For Dummies - Mark Ryan](https://a.co/d/cyvZqE1)
- [Thomas' Calculus](https://a.co/d/gFcCC37)
#### Electrical Circuits Basics
- [Lessons in Electric Circuits](https://www.allaboutcircuits.com/textbook/)
- [Fundamentals of Electric Circuits - Charles K. Alexander, Matthew Sadiku](https://www.amazon.com/dp/1260226409?ref_=cm_sw_r_cp_ud_dp_Q11YHXNY2BK530RQZC4S)
- [Grob’s Basic Electronics - Mitchel E. Schultz](https://a.co/d/g1g73HV)
- [Make: Electronics: Learning by Discovery - Charles Platt](https://a.co/d/fbRoM1R)
- [The Art of Electronics - Paul Horowitz, Winfield Hill](https://artofelectronics.net/)
- [💎 Make: Electronics: Learning by Discovery - Charles Platt](https://a.co/d/fbRoM1R)
- [💎 The Art of Electronics - Paul Horowitz, Winfield Hill](https://artofelectronics.net/)
#### Electronic Components
@@ -125,9 +134,11 @@ _________________
- [Build an 8-bit computer from scratch](https://eater.net/8bit/)
- [Computer Organization and Design: ARM Edition - David A. Patterson, John L. Hennessy](https://github.com/AbderrhmanAbdellatif/ComputerOrganization/blob/master/%5BThe%20Morgan%20Kaufmann%20Series%20in%20Computer%20Architecture%20and%20Design%5D%20David%20A.%20Patterson%2C%20John%20L.%20Hennessy%20-%20Computer%20Organization%20and%20Design_%20The%20Hardware%20Software%20Interface_%20ARM%20Edition%20(2016%2C%20Morgan%20Kaufmann).pdf)
- [Digital Design and Computer Architecture: ARM Edition - Sarah Harris, David Harris](https://a.co/d/4otoVvI)
- [💎 Digital Design and Computer Architecture: ARM Edition - Sarah Harris, David Harris](https://a.co/d/4otoVvI)
- [💎 Digital Design and Computer Architecture: RISC-V Edition - Sarah Harris, David Harris](https://a.co/d/61l7Jtb)
- [Embedded Systems Architecture - Tammy Noergaard](https://www.oreilly.com/library/view/embedded-systems-architecture/9780123821966/)
- [The Definitive Guide to ARM® Cortex®-M0 and Cortex-M0+ Processors - Joseph Yiu](https://www.oreilly.com/library/view/the-definitive-guide/9780128032787/)
- [The Definitive Guide to ARM® Cortex®-M3 and Cortex®-M4 Processors - Joseph Yiu](https://www.oreilly.com/library/view/the-definitive-guide/9780124080829/)
_________________
### Using Test Equipment
@@ -174,6 +185,8 @@ _________________
- [Robert Feranec YouTube Channel](https://www.youtube.com/@RobertFeranec)
- [PCB Design for EMI & SI - Phil's Lab #64](https://www.youtube.com/watch?v=VtzPL8wQ8-E)
- [PCB Design for Advanced Users](https://youtube.com/playlist?list=PL3aaAq2OJU5EWfYT_Z93tc9pBF_Sidba_)
- [9 Simple Tricks to Improve EMC / EMI on Your Boards - Practical examples (with Min Zhang)](https://www.youtube.com/watch?v=Lf51sx6sC0I)
- [Many EMC Tips to Help You Design Better PCB Boards (with Keith Armstrong)](https://www.youtube.com/watch?v=gHF5JyJF-N4)
#### Soldering
@@ -213,7 +226,7 @@ _________________
#### Algorithms & Data Structures
- [Grokking Algorithms - Aditya Y. Bhargava ](https://www.manning.com/books/grokking-algorithms)
- [💎 Grokking Algorithms - Aditya Y. Bhargava ](https://www.manning.com/books/grokking-algorithms)
- [Introduction to Algorithms - Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein](http://mitpress.mit.edu/9780262367509/introduction-to-algorithms/)
- [Collection of various algorithms in mathematics, machine learning, computer science, physics, etc implemented in C for educational purposes](https://github.com/TheAlgorithms/C)
- [Udemy – Embedded Systems State Machines & Data Structures](https://www.udemy.com/course/embedded-systems-state-machines-data-structures-like-a-pro/)
@@ -223,6 +236,7 @@ _________________
#### Design Patterns
- [Design Patterns for Embedded Systems in C - Bruce Powel Douglass](https://www.oreilly.com/library/view/design-patterns-for/9781856177078/)
- [Making Embedded Systems: Design Patterns for Great Software - Elecia White](https://www.oreilly.com/library/view/making-embedded-systems/9781449308889/)
#### State Machines / UML
@@ -245,12 +259,14 @@ _________________
- [W3Schools C Tutorial](https://www.w3schools.com/c/index.php)
- [C Programming for Beginners | Full Course](https://www.youtube.com/watch?v=ssJY5MDLjlo)
- [C Programming Tutorials](https://www.youtube.com/playlist?list=PLA1FTfKBAEX4hblYoH6mnq0zsie2w6Wif)
- [The C Programming Language - Brian W. Kernighan, Dennis M. Ritchie ](https://www.amazon.com/dp/0131103628?ref_=cm_sw_r_cp_ud_dp_KRZ8M1WTXWVG0HMSRBXA)
- [💎 The C Programming Language - Brian W. Kernighan, Dennis M. Ritchie ](https://www.amazon.com/dp/0131103628?ref_=cm_sw_r_cp_ud_dp_KRZ8M1WTXWVG0HMSRBXA)
- [C How to Program - Paul Deitel, Harvey Deitel ](https://deitel.com/c-how-to-program-9-e/)
- [Effective C - An Introduction to Professional C Programming - Robert C. Seacord](https://nostarch.com/Effective_C)
#### C++
- [Modern C++ in Embedded Development: (Don't Fear) The ++](https://www.embeddedrelated.com/showarticle/1532.php)
- [C++ On Embedded Systems](https://blog.mbedded.ninja/programming/languages/c-plus-plus/cpp-on-embedded-systems/)
- [C++ Tutorial for Beginners - Full Course](https://www.youtube.com/watch?v=vLnPwxZdW4Y)
- [C++ YouTube Playlist by The Cherno](https://youtube.com/playlist?list=PLlrATfBNZ98dudnM48yfGUldqGD0S4FFb)
@@ -311,8 +327,8 @@ _________________
### Microcontrollers
- [Make: AVR Programming - Elliot Williams](https://www.oreilly.com/library/view/make-avr-programming/9781449356484/)
- [Mastering STM32 - Carmine Noviello](https://leanpub.com/mastering-stm32-2nd)
- [💎 Make: AVR Programming - Elliot Williams](https://www.oreilly.com/library/view/make-avr-programming/9781449356484/)
- [💎 Mastering STM32 - Carmine Noviello](https://leanpub.com/mastering-stm32-2nd)
- [Getting Started with STM32 and Nucleo](https://youtube.com/playlist?list=PLEBQazB0HUyRYuzfi4clXsKUSgorErmBv)
- [Bare Metal Embedded Programming: Theory and Practice Using STM32](https://www.youtube.com/playlist?list=PL4cGeWgaBTe155QQSQ72DksLIjBn5Jn2Z)
- [Beginning STM32: Developing with FreeRTOS, libopencm3 and GCC - Warren Gay](https://link.springer.com/book/10.1007/978-1-4842-3624-6)
@@ -377,6 +393,7 @@ _________________
#### GUI Design
- [U8glib library for monochrome displays, version 2](https://github.com/olikraus/u8g2)
- [LVGL](https://lvgl.io/)
- [TouchGFX](https://support.touchgfx.com/4.20/docs/introduction/welcome)
@@ -469,7 +486,10 @@ _________________
- [CAN Bus: Serial Communication - How It Works?](https://www.youtube.com/watch?v=JZSCzRT9TTo&t=21s)
- [CAN Bus: A Beginners Guide Part 1](https://www.youtube.com/watch?v=YBrU_eZM110)
- [CAN Bus: A Beginners Guide Part 2](https://www.youtube.com/watch?v=z5CVljiLhvc)
- [Improving my electric longboard with a CAN Bus! What can the CAN Bus do? EB#44](https://www.youtube.com/watch?v=PL0TPdrhMuI)
- [CAN Bus, OBD2 & J1939 Explained](https://www.youtube.com/playlist?list=PLpV68vjf4Xo4vZ_SjJ6tTlomYm-k18vDZ)
- [J1939 Explained - A Simple Intro [v2.0 | 2021]](https://www.youtube.com/watch?v=vlqxu9ojbHg)
- [Unified Diagnostic Services (UDS) Explained - A Simple Intro [2022]](https://www.youtube.com/watch?v=CV_B8tJgI5E)
#### Network
@@ -546,15 +566,16 @@ _________________
- [FreeRTOS vs Linux for Embedded Systems](https://www.bytesnap.com/news-blog/freertos-vs-linux-embedded-systems/)
- [Introduction to Embedded Linux](https://youtube.com/playlist?list=PLEBQazB0HUyTpoJoZecRK6PpDG31Y7RPB)
- [Linux From Scratch - step-by-step instructions for building your own custom Linux system](https://www.linuxfromscratch.org/)
##### Linux Kernel
- [Practical System Programming with C: Pragmatic Example Applications in Linux and Unix-Based Operating Systems - Sri Manikanta Palakollu](https://link.springer.com/book/10.1007/978-1-4842-6321-1)
- [The Linux Programming Interface - Michael Kerrisk](https://man7.org/tlpi/)
- [💎 The Linux Programming Interface - Michael Kerrisk](https://man7.org/tlpi/)
##### Linux Device Drivers
- [Linux Device Drivers - Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman](https://lwn.net/Kernel/LDD3/)
- [💎 Linux Device Drivers - Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman](https://lwn.net/Kernel/LDD3/)
- [Mastering Linux Device Driver Development - John Madieu](https://www.packtpub.com/product/mastering-linux-device-driver-development/9781789342048)
##### U-Boot
@@ -579,6 +600,8 @@ _________________
#### Real-Time OS
- [Bare-metal and RTOS Based Embedded Systems](https://microcontrollerslab.com/difference-bare-metal-and-rtos-based-embedded-systems/)
- [The Pros and Cons of RTOS vs Bare Metal: Which Will You Choose?](https://medium.com/@lanceharvieruntime/the-pros-and-cons-of-rtos-vs-bare-metal-which-will-you-choose-756e33ba6df7)
- [FreeRTOS vs Linux for Embedded Systems](https://www.bytesnap.com/news-blog/freertos-vs-linux-embedded-systems/)
- [Real-Time Systems Concepts](https://micrium.atlassian.net/wiki/spaces/osiidoc/pages/163855/Real-Time+Systems+Concepts)
- [RTOS](https://www.youtube.com/playlist?list=PLPW8O6W-1chyrd_Msnn4LD6LBs2slJITs)
@@ -592,7 +615,7 @@ _________________
- [Getting Started With STM32 and Nucleo Part 3: FreeRTOS - How To Run Multiple Threads w/ CMSIS-RTOS](https://www.youtube.com/watch?v=CdpgqpuPSyQ)
- [Hands-On RTOS with Microcontrollers: Building real-time embedded systems using FreeRTOS, STM32 MCUs, and SEGGER debug tools - Brian Amos](https://a.co/d/11MSPlo)
- [Beginning STM32: Developing with FreeRTOS, libopencm3 and GCC - Warren Gay](https://link.springer.com/book/10.1007/978-1-4842-3624-6)
- [SAFE**RTOS** - Safety Critical Real-Time OS](https://www.freertos.org/FreeRTOS-Plus/Safety_Critical_Certified/SafeRTOS.html)
- [SafeRTOS - Safety Critical Real-Time OS](https://www.freertos.org/FreeRTOS-Plus/Safety_Critical_Certified/SafeRTOS.html)
##### Zephyr
@@ -606,7 +629,7 @@ _________________
- [Micriμm OS](https://www.silabs.com/developers/micrium)
- [µC/OS-III Documentation](https://micrium.atlassian.net/wiki/spaces/osiiidoc/overview)
- [µC/OS-III Books](https://weston-embedded.com/micrium-books)
- [µC/OS-II Documentation](https://micrium.atlassian.net/wiki/spaces/osiidoc/overview)
- [💎 µC/OS-II Documentation (Previously published as a book titled "MicroC/OS-II: The Real-Time Kernel")](https://micrium.atlassian.net/wiki/spaces/osiidoc/overview)
##### NuttX
@@ -655,6 +678,8 @@ _________________
#### Controls Systems / PID Control
- [Understanding Control Systems](https://youtube.com/playlist?list=PLn8PRpmsu08q8CE0pbZ-cSrMm_WYJfVGd)
- [Control Systems - CircuitBread (YouTube Playlist)](https://www.youtube.com/playlist?list=PLfYdTiQCV_p4YZNJWExM-5_g0fk9bHDL8)
- [What is a PID Controller? | DigiKey](https://www.youtube.com/watch?v=tFVAaUcOm4I)
- [PID Controller Explained](https://www.youtube.com/watch?v=fv6dLTEvl74)
- [Understanding PID Control](https://youtube.com/playlist?list=PLn8PRpmsu08pQBgjxYFXSsODEF3Jqmm-y)
- [PID Controller Implementation in Software - Phil's Lab #6](https://www.youtube.com/watch?v=zOByx3Izf5U)
@@ -690,11 +715,13 @@ _________________
### Testing
- [Test Driven Development for Embedded C - James Grenning](https://www.amazon.com/Driven-Development-Embedded-Pragmatic-Programmers/dp/193435662X)
- [What is DevOps in an Embedded Device Company?](https://www.linkedin.com/pulse/what-devops-embedded-device-company-john-macdonald/)
- [Intro to CI/CD](https://youtu.be/1nxGcfIm-TU)
#### Unit Testing
- [Unit Testing for C (especially Embedded Software)](http://www.throwtheswitch.org/unity)
- [GoogleTest - Google Testing and Mocking Framework](https://github.com/google/googletest)
- [Embedded C/C++ Unit Testing with Mocks](https://interrupt.memfault.com/blog/unit-test-mocking)
- [Unit Testing Principles, Practices, and Patterns - Vladimir Khorikov](https://www.manning.com/books/unit-testing)
@@ -711,8 +738,9 @@ _________________
### Embedded AI
#### AI/ML Basics
#### AI & ML Basics
- [A beginner's guide to artificial intelligence and machine learning](https://developer.ibm.com/articles/cc-beginner-guide-machine-learning-ai-cognitive/)
- [Udemy – Getting Started with Embedded AI | Edge AI](https://www.udemy.com/course/getting-started-with-embedded-ai-hands-on-experience/)
- [Intro to Edge AI: Machine Learning + IoT – Maker.io Tutorial | Digi-Key Electronics](https://www.youtube.com/watch?v=Ejld8XZmvwE)
@@ -726,9 +754,14 @@ _________________
- [Intro to TinyML Part 1: Training a Neural Network for Arduino in TensorFlow | Digi-Key Electronics](https://www.youtube.com/watch?v=BzzqYNYOcWc)
- [Intro to TinyML Part 2: Deploying a TensorFlow Lite Model to Arduino | Digi-Key Electronics](https://www.youtube.com/watch?v=dU01M61RW8s)
- [Coursera - Introduction to Embedded Machine Learning](https://www.coursera.org/learn/introduction-to-embedded-machine-learning)
- [TinyML: Getting Started with TensorFlow Lite for Microcontrollers | Digi-Key Electronics](https://youtu.be/gDFWCxrJruQ)
- [TinyML: Getting Started with STM32 X-CUBE-AI | Digi-Key Electronics](https://youtu.be/crJcDqIUbP4)
- [edX - Fundamentals of TinyML](https://www.edx.org/learn/machine-learning/harvard-university-fundamentals-of-tinyml)
- [edX - Applications of TinyML](https://www.edx.org/learn/tinyml/harvard-university-applications-of-tinyml)
- [edX - Deploying TinyML](https://www.edx.org/learn/tinyml/harvard-university-deploying-tinyml)
- [edX - MLOps for Scaling TinyML](https://www.edx.org/learn/computer-programming/harvard-university-mlops-for-scaling-tinyml)
- [TinyML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers - Pete Warden, Daniel Situnayake](https://tinymlbook.com/)
_________________
### Embedded Security
@@ -740,11 +773,14 @@ _________________
- [Encryption - Symmetric Encryption vs Asymmetric Encryption - Cryptography - Practical TLS](https://www.youtube.com/watch?v=o_g-M7UBqI8)
- [Public and Private Keys - Signatures & Key Exchanges - Cryptography - Practical TLS](https://youtu.be/_zyKvPvh808)
- [Understanding AES Encryption Mechanics: BMPS](https://youtu.be/OnhtzFJW_4I)
- [Understanding Cryptography: A Textbook for Students and Practitioners - Christof Paar, Jan Pelzl](https://link.springer.com/book/10.1007/978-3-642-04101-3)
- [💎 Understanding Cryptography: A Textbook for Students and Practitioners - Christof Paar, Jan Pelzl](https://link.springer.com/book/10.1007/978-3-642-04101-3)
- [Cryptography and Network Security: Principles and Practice - William Stallings](https://www.pearson.com/en-us/subject-catalog/p/cryptography-and-network-security-principles-and-practice/P200000003477/9780135764213)
- [Serious Cryptography: A Practical Introduction to Modern Encryption - Jean-Philippe Aumasson](https://nostarch.com/seriouscrypto)
- [MOOC - Security Part2: Basics of cryptography](https://youtube.com/playlist?list=PLnMKNibPkDnFSFh57UFTZLpy-7lZiwTHh)
- [MOOC - Security Part3 : STM32 security features](https://youtube.com/playlist?list=PLnMKNibPkDnFzux3PHKUEi14ftDn9Cbm7)
- [Introduction to encryption for embedded Linux developers](https://sergioprado.blog/introduction-to-encryption-for-embedded-linux-developers/)
- [A hands-on approach to symmetric-key encryption](https://sergioprado.blog/a-hands-on-approach-to-symmetric-key-encryption/)
- [Asymmetric-Key Encryption and Digital Signatures in Practice](https://sergioprado.blog/asymmetric-key-encryption-and-digital-signatures-in-practice/)
#### Secure Boot & Secure Firmware Update
@@ -755,6 +791,8 @@ _________________
- [TPM (Trusted Platform Module) - Computerphile](https://www.youtube.com/watch?v=RW2zHvVO09g)
- [Securing Embedded Linux Systems with TPM 2.0 - Philip Tricca, Intel](https://www.youtube.com/watch?v=0qu9R7Tlw9o)
- [TPM: Basic applications to embedded devices](https://witekio.com/blog/tpm-basic-applications-to-embedded-devices/)
- [Introduction to Embedded Linux Security - part 1](https://sergioprado.blog/introduction-embedded-linux-security-part-1/)
- [Introduction to Embedded Linux Security - part 2](https://sergioprado.blog/introduction-embedded-linux-security-part-2/)
## History