mirror of
https://github.com/m3y54m/Embedded-Engineering-Roadmap.git
synced 2026-10-04 21:07:58 +03:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
41aaad321c | ||
|
|
a9a9fe2b3b | ||
|
|
555a712bde | ||
|
|
bd93464d91 | ||
|
|
134f8bdca7 | ||
|
|
5fbbb7ca96 | ||
|
|
024624d2e5 | ||
|
|
365dbadc7e | ||
|
|
3d34739037 | ||
|
|
fe82ac1193 | ||
|
|
6543b32216 | ||
|
|
15285e0be4 | ||
|
|
4ce9c26fb1 | ||
|
|
1bd6094cbe | ||
|
|
5ca196ca8c | ||
|
|
8ccca8e12b | ||
|
|
3cd1bcd62d | ||
|
|
25276210a1 | ||
|
|
00089ee209 | ||
|
|
c3481aa490 | ||
|
|
3e905d0cf4 | ||
|
|
5c5174d573 | ||
|
|
07a45ef82e | ||
|
|
d04ed29536 | ||
|
|
127a0d090e | ||
|
|
8284b9dced | ||
|
|
0f0ad015b1 | ||
|
|
91547a59d7 | ||
|
|
40acf885c9 | ||
|
|
800ea9fdf7 | ||
|
|
1f5e15bb92 | ||
|
|
2f7d00da83 | ||
|
|
d3d989456f | ||
|
|
2c77977f38 | ||
|
|
62207b9762 | ||
|
|
092bcbf49c | ||
|
|
3ac8f30ea5 | ||
|
|
d11e0d6098 | ||
|
|
e493fe33fe |
@@ -0,0 +1,13 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
||||
patreon: # Replace with a single Patreon username
|
||||
open_collective: # Replace with a single Open Collective username
|
||||
ko_fi: # Replace with a single Ko-fi username
|
||||
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
||||
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||
liberapay: # Replace with a single Liberapay username
|
||||
issuehunt: # Replace with a single IssueHunt username
|
||||
otechie: # Replace with a single Otechie username
|
||||
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
|
||||
custom: ['https://www.buymeacoffee.com/m3y54m']
|
||||
Binary file not shown.
@@ -1,8 +1,8 @@
|
||||
# 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, the topics have been carefully selected based on current job requirements and organized according to my personal experience.
|
||||
This roadmap is designed to help beginners aspiring to build a career as an **Embedded Engineer/Developer**, as well as assist current practitioners in expanding their skills.
|
||||
|
||||
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.
|
||||
You should know that becoming an embedded engineer requires a broad understanding of both software and hardware. If you really want to pursue this career you must be highly motivated and passionate about it. As well as programming and software development skills, embedded systems demand a solid understanding of hardware functionality. However, as the well-known saying goes, "Hardware is hard!". So if you still know nothing about embedded systems, a hard yet exciting journey awaits you. But don't panic and be patient for the challenges you may encounter along this journey. By dedicating enough time and effort practicing and doing projects you will soon find yourself as a real embedded engineer! 😀
|
||||
|
||||
## What is an Embedded System?
|
||||
|
||||
@@ -33,47 +33,68 @@ used in an aircraft or rapid transit system.
|
||||
>
|
||||
> In some cases, embedded systems are **part of a larger system** or product, as in the case of an antilock braking system in a car.
|
||||
|
||||
## Roadmap
|
||||
## 🗺️ The Roadmap
|
||||
|
||||
The roadmap is divided into three main sections: **SOFTWARE**, **HARDWARE**, and **SOFT SKILLS**.
|
||||
|
||||
The hardware and software sections overlap in many embedded job roles. Different job titles, such as "Embedded Software Engineer / Developer," "Firmware Engineer / Developer," and "Embedded Linux Software Engineer / Developer," tend to focus more on software. On the other hand, job roles like "Embedded Hardware Engineer" and "Hardware Design Engineer" primarily focus on hardware. Additionally, there are positions like "Embedded Systems Engineer" that require a good understanding of both hardware and software. It's crucial to understand that each company in the embedded industry may have specific requirements for a job role, regardless of its title.
|
||||
The hardware and software sections overlap in many embedded job roles. Different job titles, such as "Embedded Software Engineer/Developer," "Firmware Engineer/Developer," and "Embedded Linux Engineer/Developer," tend to focus more on software. On the other hand, job roles like "Embedded Hardware Engineer" and "Hardware Design Engineer" primarily focus on hardware. Additionally, there are positions like "Embedded Systems Engineer" that require a good understanding of both hardware and software. It's importnat to understand that each company in the embedded industry may have specific requirements for a job role, regardless of its title.
|
||||
|
||||
With this in mind, the roadmap is designed to cover topics necessary for an "Embedded Systems Engineer" role. If you are aiming for an embedded software position, you should focus more on software skills in the roadmap. Conversely, if you are interested in an embedded hardware job, you should prioritize hardware skills.
|
||||
With this in mind, the roadmap is designed to cover topics necessary for a typical "Embedded Systems Engineer" role. If you are aiming for an embedded software position, you should focus more on software skills in the roadmap. Conversely, if you are interested in an embedded hardware job, you should prioritize hardware skills and put more time on learning electronics.
|
||||
|
||||
In the embedded industry, all job roles require some soft skills, which cannot be acquired solely through reading or watching videos. Soft skills are developed through communication with others and facing various work challenges. Improving soft skills is not a one-size-fits-all approach. It varies depending on your individual characteristics and involves being aware of your own strengths and weaknesses. Enhancing these skills takes time and effort.
|
||||
Just like many other job roles, an embedded engineer requires some soft skills that cannot be acquired solely through reading or watching videos. Soft skills are developed through communication with people and facing various work challenges. Improving soft skills is not a one-size-fits-all approach. It will vary based on one's individual traits and requires self-awareness of your strengths and areas for growth. Enhancing these skills takes time and effort.
|
||||
|
||||
**Remember that the importance of individual software and hardware skills can differ depending on the specific needs of the company or role.**
|
||||
> [!NOTE]
|
||||
> **Remember that the importance of individual software and hardware skills can differ depending on the specific requirements of the company and the job role.**
|
||||
|
||||

|
||||
|
||||
## Learning Resources
|
||||
## 😕 Don't Know Where to Start!
|
||||
|
||||
### ⭐️ Featured Material
|
||||
If you feel overwhelmed by the extensive list of topics in the roadmap, you're not alone. Before delving too deeply, let's ease into it with some simple starter projects. Learning embedded systems engineering takes time and effort. Don't get discouraged if you don't understand something right away. Keep practicing and you will eventually get there.
|
||||
|
||||
#### 🔎 Searching is Your Super Power!
|
||||
|
||||
- [Google](https://www.google.com)
|
||||
- [Bing](https://www.bing.com/)
|
||||
- [DuckDuckGo](https://duckduckgo.com/)
|
||||
|
||||
#### ⚒️ Projects
|
||||
### ⚒️ Projects
|
||||
|
||||
Engaging in hands-on projects is the most effective approach to learning. Rather than solely relying on theoretical knowledge from books or articles, undertaking projects allows for practical learning experiences. Even a seemingly basic project has the potential to teach you more than aimless reading. You can refer to books, articles, and courses when faced with difficulties in understanding the problems in a real-world project.
|
||||
|
||||
Don't try to build a complex project right away. Start with small, manageable projects to get your feet wet.
|
||||
|
||||
- [Random Nerd Tutorials | Learn ESP32, ESP8266, Arduino, and Raspberry Pi](https://randomnerdtutorials.com/)
|
||||
- [51 STM32 Projects & Tutorials for Beginners and Up - Hackster.io](https://www.hackster.io/stm32/projects)
|
||||
- [STM32 (STM32F103C8) Projects & Tutorials](https://circuitdigest.com/stm32-projects-and-tutorials)
|
||||
- [ElectronicWings Projects](https://www.electronicwings.com/projects)
|
||||
- [STM32 Firmware - Phil’s Lab (YouTube Playlist)](https://youtube.com/playlist?list=PLXSyc11qLa1a4Tqbz228dPZfMrs-KRpzA)
|
||||
- [Raspberry Pi Based Embedded Project Ideas](https://www.rs-online.com/designspark/raspberry-pi-based-embedded-project-ideas)
|
||||
- [Embedded Linux On ARM | Projects](https://www.emertxe.com/embedded-systems/embedded-linux-on-arm/elarm-projects/)
|
||||
|
||||
#### 🎥 Courses and YouTube Contents
|
||||
### ❓ Search and Ask Questions!
|
||||
|
||||
Use search engines to find the answers to your questions.
|
||||
|
||||
- [Google](https://www.google.com)
|
||||
- [Bing](https://www.bing.com/)
|
||||
- [DuckDuckGo](https://duckduckgo.com/)
|
||||
|
||||
If you can't find what you're looking for using search engines, AI chatbots can also provide assistance. Keep in mind that AI may provide incorrect answers in some cases. It's best to confirm any answers with more reliable references.
|
||||
|
||||
- [Bing Chat](https://www.bing.com/chat)
|
||||
- [Bard](https://bard.google.com)
|
||||
- [ChatGPT](https://chat.openai.com)
|
||||
- [Poe - Fast, Helpful AI Chat](https://poe.com)
|
||||
|
||||
If you have reservations about relying on AI advice alone, you can also ask real people your questions:
|
||||
|
||||
- [Electrical Engineering Stack Exchange](https://electronics.stackexchange.com/)
|
||||
- [Reddit · r/embedded](https://www.reddit.com/r/embedded/)
|
||||
|
||||
### 🎥 Courses and YouTube Contents
|
||||
|
||||
You may have heard that YouTube is a university. And it's true - there is an immense amount of invaluable free content on embedded systems available on YouTube. You'll also find some excellent free courses through Coursera and EdX. Additionally, Udemy offers some high-quality paid course options.
|
||||
|
||||
- [DigiKey (YouTube Channel)](https://www.youtube.com/@digikey)
|
||||
- [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/)
|
||||
- [Quantum Leaps, LLC (YouTube Channel)](https://www.youtube.com/@StateMachineCOM)
|
||||
- [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)
|
||||
@@ -81,31 +102,7 @@ Engaging in hands-on projects is the most effective approach to learning. Rather
|
||||
- [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)
|
||||
|
||||
#### 🛠️ IDEs
|
||||
|
||||
- [Keil MDK & µVision](https://www.keil.com/)
|
||||
- [IAR Embedded Workbench](https://www.iar.com)
|
||||
- [STM32CubeIDE](https://www.st.com/en/development-tools/stm32cubeide.html)
|
||||
- [Microchip Studio for AVR® and SAM Devices](https://www.microchip.com/en-us/tools-resources/develop/microchip-studio)
|
||||
- [MPLAB® X IDE](https://www.microchip.com/en-us/tools-resources/develop/mplab-x-ide)
|
||||
- [MCUXpresso IDE](https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools-/mcuxpresso-integrated-development-environment-ide:MCUXpresso-IDE)
|
||||
|
||||
#### 👨💻 VS Code Extensions
|
||||
|
||||
- [Cortex-Debug](https://marketplace.visualstudio.com/items?itemName=marus25.cortex-debug)
|
||||
- [STM32 VS Code Extension](https://marketplace.visualstudio.com/items?itemName=stmicroelectronics.stm32-vscode-extension)
|
||||
- [Espressif IDF](https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension)
|
||||
- [MCUXpresso for VS Code](https://marketplace.visualstudio.com/items?itemName=NXPSemiconductors.mcuxpresso)
|
||||
|
||||
##### PlatformIO
|
||||
|
||||
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 - A professional collaborative platform for embedded development](https://platformio.org/)
|
||||
|
||||
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.
|
||||
|
||||
#### 🕹️ Arduino
|
||||
### 🕹️ Arduino
|
||||
|
||||
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.
|
||||
|
||||
@@ -116,7 +113,7 @@ Additionally, the [Arduino Core](https://github.com/arduino/ArduinoCore-API) tak
|
||||
- [Arduino in a commercial product?](https://www.youtube.com/watch?v=c5LzsqeSCAc)
|
||||
- [Arduino Project to Product (YouTube Playlist)](https://www.youtube.com/playlist?list=PLEBQazB0HUyQd6Fsf5NQ75M9llbi1_j_8)
|
||||
|
||||
#### 👨🏫 Educational Websites
|
||||
### 👨🏫 Educational Websites
|
||||
|
||||
- [DeepBlueMbedded](https://deepbluembedded.com/)
|
||||
- [💎 Interrupt Blog by Memfault](https://interrupt.memfault.com/blog/)
|
||||
@@ -127,30 +124,52 @@ Additionally, the [Arduino Core](https://github.com/arduino/ArduinoCore-API) tak
|
||||
- [SparkFun Learn: Learn at SparkFun Electronics](https://learn.sparkfun.com/)
|
||||
- [Adafruit Learning System](https://learn.adafruit.com/)
|
||||
- [STM32 World](https://stm32world.com)
|
||||
- [Random Nerd Tutorials | Learn ESP32, ESP8266, Arduino, and Raspberry Pi](https://randomnerdtutorials.com/)
|
||||
- [ControllersTech](https://controllerstech.com/)
|
||||
|
||||
#### 🗺️ Other Helpful Roadmaps
|
||||
### 🗺️ Other Helpful Roadmaps
|
||||
|
||||
- [Embedded Artistry Beginners Roadmap](https://embeddedartistry.com/beginners/)
|
||||
- [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)
|
||||
- [FPGA / ASIC Engineering Roadmap](https://github.com/m3y54m/FPGA-ASIC-Roadmap)
|
||||
|
||||
#### ❓ Ask Questions
|
||||
### 🛠️ IDEs
|
||||
|
||||
- [Electrical Engineering Stack Exchange](https://electronics.stackexchange.com/)
|
||||
- [Keil MDK & µVision](https://www.keil.com/)
|
||||
- [IAR Embedded Workbench](https://www.iar.com)
|
||||
- [STM32CubeIDE](https://www.st.com/en/development-tools/stm32cubeide.html)
|
||||
- [Microchip Studio for AVR® and SAM Devices](https://www.microchip.com/en-us/tools-resources/develop/microchip-studio)
|
||||
- [MPLAB® X IDE](https://www.microchip.com/en-us/tools-resources/develop/mplab-x-ide)
|
||||
- [MCUXpresso IDE](https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools-/mcuxpresso-integrated-development-environment-ide:MCUXpresso-IDE)
|
||||
|
||||
_________________
|
||||
### 👨💻 VS Code Extensions
|
||||
|
||||
**⚠️ Note:** It is not necessary to read or watch all of the following materials, but it is important to study enough to have at least a basic understanding of the required topics. Of course, the more you study and practice, the more your knowledge will grow. This continuous learning process will gradually improve your skills and make you a better engineer.
|
||||
- [Cortex-Debug](https://marketplace.visualstudio.com/items?itemName=marus25.cortex-debug)
|
||||
- [STM32 VS Code Extension](https://marketplace.visualstudio.com/items?itemName=stmicroelectronics.stm32-vscode-extension)
|
||||
- [Espressif IDF](https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension)
|
||||
- [MCUXpresso for VS Code](https://marketplace.visualstudio.com/items?itemName=NXPSemiconductors.mcuxpresso)
|
||||
|
||||
Some of the resources mentioned here will just be used as references. Refer to them only when you need them.
|
||||
### 🐜 PlatformIO
|
||||
|
||||
**Symbols Guide:**
|
||||
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.
|
||||
|
||||
👶 indicates easy-to-understand and beginner-friendly resources. Refer to them if you do not have prior knowledge in a topic.
|
||||
- [PlatformIO - A professional collaborative platform for embedded development](https://platformio.org/)
|
||||
|
||||
💎 indicates well-known references that have truly invaluable and comprehensive content. Refer to them if you want to deepen your understanding of a topic.
|
||||
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.
|
||||
|
||||
## 📚 Learning Resources
|
||||
|
||||
> [!WARNING]
|
||||
> It is not necessary to read all the books, articles, or watch all the videos you see here. If you try to do so, you will finally get tired and disappointed. You cannot study all the available content here in a reasonable time because it may take years. It is important to study enough to have at least a basic understanding of the required topics. Of course, the more time you dedicate to studying and doing projects, the more profound your knowledge and expertise will become.
|
||||
>
|
||||
> Some of the resources mentioned here will just be used as references. Refer to them only when you need them.
|
||||
|
||||
> [!TIP]
|
||||
> **Symbols Guide:**
|
||||
>
|
||||
> 👶 indicates easy-to-understand and beginner-friendly resources. Refer to them if you do not have prior knowledge in a topic.
|
||||
>
|
||||
> 💎 indicates well-known references that have truly invaluable and comprehensive content. Refer to them if you want to deepen your understanding of a topic.
|
||||
_________________
|
||||
|
||||
### Soft Skills
|
||||
@@ -203,10 +222,10 @@ _________________
|
||||
- [👶 💎 Digital Design and Computer Architecture: RISC-V Edition - Sarah Harris, David Harris](https://a.co/d/61l7Jtb)
|
||||
- [Computer Organization and Embedded Systems - Carl Hamacher, Zvonko Vranesic, Safwat Zaky, Naraig Manjikian](https://a.co/d/2lt4Svf)
|
||||
- [Embedded Systems Architecture - Tammy Noergaard](https://www.oreilly.com/library/view/embedded-systems-architecture/9780123821966/)
|
||||
- [Embedded Systems Architecture - Daniele Lacamera](https://www.packtpub.com/product/embedded-systems-architecture-second-edition/9781803239545)
|
||||
- [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/)
|
||||
- [Build an 8-bit computer from scratch](https://eater.net/8bit/)
|
||||
- [Embedded Systems Architecture - Daniele Lacamera](https://www.packtpub.com/product/embedded-systems-architecture-second-edition/9781803239545)
|
||||
|
||||
_________________
|
||||
|
||||
@@ -243,7 +262,7 @@ _________________
|
||||
- [Electronic Circuit Design - IFE - TU Graz (YouTube Playlist)](https://www.youtube.com/playlist?list=PLLpZ1DoEuR9tbV8r8bMSI94znm6pRB905)
|
||||
- [Microcontroller-Based Hardware Design With Altium Designer (YouTube Playlist)](https://www.youtube.com/playlist?list=PL3aaAq2OJU5HcbClqrOhqBDozF7HmxV-s)
|
||||
|
||||
#### PCB Design
|
||||
#### PCB Design / EMC
|
||||
|
||||
- [Altium Academy YouTube Channel](https://www.youtube.com/@AltiumAcademy)
|
||||
- [Robert Feranec YouTube Channel](https://www.youtube.com/@RobertFeranec)
|
||||
@@ -259,7 +278,7 @@ _________________
|
||||
- [Many EMC Tips to Help You Design Better PCB Boards (with Keith Armstrong)](https://www.youtube.com/watch?v=gHF5JyJF-N4)
|
||||
- [LearnEMC - EMC Resources](https://learnemc.com/emc-resources)
|
||||
|
||||
#### Soldering
|
||||
#### Soldering / Rework
|
||||
|
||||
- [👶 How To Solder - Electronics with Becky Stern | Digi-Key Electronics](https://www.youtube.com/watch?v=sS4v2hIFp9I)
|
||||
- [👶 HOW TO SOLDER! (Beginner's Guide)](https://www.youtube.com/watch?v=3jAw41LRBxU)
|
||||
@@ -272,37 +291,16 @@ _________________
|
||||
|
||||
### FPGA Design
|
||||
|
||||
- [FPGA / ASIC Engineering Roadmap](https://github.com/m3y54m/FPGA-ASIC-Roadmap)
|
||||
- [What are FPGAs?](https://hackaday.io/project/27550-the-hobbyists-guide-to-fpgas/log/68114-what-are-fpgas)
|
||||
- [FPGA vs. Microcontroller: How to choose the right one for your project](https://www.youtube.com/watch?v=jblpHUCPQYs)
|
||||
- [Introduction to FPGA (YouTube Playlist)](https://youtube.com/playlist?list=PLEBQazB0HUyT1WmMONxRZn9NmQ_9CIKhb)
|
||||
- [FPGA Fundamentals - Nandland](https://nandland.com/fpga-101/)
|
||||
- [Udemy – FPGA Embedded Design, Part 1 - Verilog](https://www.udemy.com/course/fpga-embedded-design-verilog/)
|
||||
- [Udemy – FPGA Embedded Design, Part 2 - Basic FPGA Training](https://www.udemy.com/course/fpga-embedded-design-fpgas/)
|
||||
- [Udemy – FPGA Embedded Design, Part 3 - EDA Tools](https://www.udemy.com/course/fpga-embedded-design-eda-tools/)
|
||||
- [Udemy – FPGA Embedded Design, Part 4 - Microprocessor Design](https://www.udemy.com/course/fpga-embedded-design-cpu/)
|
||||
- [💎 Coursera – FPGA Design for Embedded Systems Specialization](https://www.coursera.org/specializations/fpga-design)
|
||||
- [💎 A Hands-On Guide to Designing Embedded Systems - Adam Taylor, Dan Binnun, Saket Srivastava](https://www.amazon.com/Hands-Guide-Designing-Embedded-Systems/dp/1630816833)
|
||||
|
||||
_________________
|
||||
|
||||
### Software Development Life Cycle (SDLC) Models
|
||||
|
||||
- [What is the software development life cycle?](https://www.coderus.com/the-software-development-lifecycle/)
|
||||
- [Embedded Product Development Life Cycle: Four Main Steps](https://www.sam-solutions.com/blog/embedded-product-development-life-cycle/)
|
||||
|
||||
#### Agile / SCRUM
|
||||
|
||||
- [Does agile work with embedded software?](https://www.embedded.com/does-agile-work-with-embedded-software/)
|
||||
- [Scrum for embedded software: Good – but for reasons other than what your manager thinks](https://www.elektrobit.com/trends/scrum-for-embedded-software/)
|
||||
- [What Is Scrum: A Guide to the Most Popular Agile Framework](https://www.scrumalliance.org/about-scrum)
|
||||
- [Jira - Issue & Project Tracking Software](https://confluence.atlassian.com/jira)
|
||||
|
||||
#### V-Model (V-cycle)
|
||||
|
||||
- [What is the V model for software development](https://x-engineer.org/v-model-software-development/)
|
||||
- [V Model In Software Engineering: Ultimate Guideline](https://biplus.com.vn/v-model-in-software-engineering/)
|
||||
|
||||
_________________
|
||||
|
||||
### Programming Fundamentals
|
||||
|
||||
#### Algorithms & Data Structures
|
||||
@@ -330,7 +328,9 @@ _________________
|
||||
#### Memory Management
|
||||
|
||||
- [Understanding the C runtime memory model](https://www.youtube.com/watch?v=3F3lp_F2YpQ)
|
||||
- [Pointers and dynamic memory - stack vs heap](https://www.youtube.com/watch?v=_8-ht2AKyH4)
|
||||
- [Dynamic Memory Allocation | C Programming Tutorial](https://www.youtube.com/watch?v=R0qIYWo8igs)
|
||||
- [Dynamic memory allocation in C - malloc calloc realloc free](https://www.youtube.com/watch?v=xDVC3wKjS64&t=140s)
|
||||
- [What is Memory Leak in C/C++? How can we avoid?](https://aticleworld.com/what-is-memory-leak-in-c-c-how-can-we-avoid/)
|
||||
|
||||
_________________
|
||||
@@ -345,6 +345,7 @@ _________________
|
||||
- [💎 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)
|
||||
- [Embedded C Coding Standard](https://barrgroup.com/embedded-systems/books/embedded-c-coding-standard)
|
||||
- [newlib C Library Documentation](https://sourceware.org/newlib/docs.html)
|
||||
- [The GNU C Library (glibc)](https://www.gnu.org/software/libc/documentation.html)
|
||||
- [From Zero to main(): Bare metal C](https://interrupt.memfault.com/blog/zero-to-main-1)
|
||||
@@ -356,6 +357,7 @@ _________________
|
||||
- [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++ by The Cherno (YouTube Playlist)](https://youtube.com/playlist?list=PLlrATfBNZ98dudnM48yfGUldqGD0S4FFb)
|
||||
- [💎 Real-Time C++: Efficient Object-Oriented and Template Microcontroller Programming - Christopher Kormanyos](https://link.springer.com/book/10.1007/978-3-662-62996-3)
|
||||
- [Effective Modern C++ - Scott Meyers](https://www.oreilly.com/library/view/effective-modern-c/9781491908419/)
|
||||
|
||||
#### Assembly
|
||||
@@ -400,50 +402,6 @@ _________________
|
||||
|
||||
_________________
|
||||
|
||||
### Build Tools
|
||||
|
||||
#### GCC & Make
|
||||
|
||||
- [GCC and Make - Compiling, Linking and Building C/C++ Applications](https://www3.ntu.edu.sg/home/ehchua/programming/cpp/gcc_make.html)
|
||||
- [A Shallow Dive into GNU Make](https://interrupt.memfault.com/blog/gnu-make-guidelines#a-shallow-dive-into-gnu-make)
|
||||
- [The Best and Worst GCC Compiler Flags For Embedded](https://interrupt.memfault.com/blog/best-and-worst-gcc-clang-compiler-flags)
|
||||
- [Building STM32 projects from scratch with cross platform tools like Make, CMake and arm-gcc compiler toolchain (YouTube Playlist)](https://www.youtube.com/playlist?list=PLEg2mgYz66IOcHRvvUDf9O1ZCGy58M1Bt)
|
||||
- [From Zero to main(): Demystifying Firmware Linker Scripts](https://interrupt.memfault.com/blog/how-to-write-linker-scripts-for-firmware)
|
||||
- [Bare Metal - From zero to blink](https://www.linuxembedded.fr/2021/02/bare-metal-from-zero-to-blink)
|
||||
|
||||
#### CMake
|
||||
|
||||
- [CMake Tutorial](https://cmake.org/cmake/help/latest/guide/tutorial/index.html)
|
||||
- [How to CMake Good (YouTube Playlist)](https://youtube.com/playlist?list=PLK6MXr8gasrGmIiSuVQXpfFuE1uPT615s)
|
||||
|
||||
#### Bash Scripting
|
||||
|
||||
- [Bash scripting cheatsheet](https://devhints.io/bash)
|
||||
- [Bash Scripting Tutorial for Beginners](https://www.youtube.com/watch?v=tK9Oc6AEnR4)
|
||||
|
||||
#### Docker
|
||||
|
||||
- [Docker Docs](https://docs.docker.com/get-started/)
|
||||
- [Docker Cheat Sheet](https://dockerlabs.collabnix.com/docker/cheatsheet/)
|
||||
- [👶 Docker for Dummies](https://dev.to/stevenmcgown/docker-for-dummies-2bff)
|
||||
- [Introduction to Docker for the Embedded Developer](https://www.youtube.com/watch?v=Fz7ou-VBk-w)
|
||||
- [Intro to CI/CD Part 1: Getting Started with Docker | Digi-Key Electronics](https://youtu.be/1nxGcfIm-TU)
|
||||
- [A Modern C Development Environment](https://interrupt.memfault.com/blog/a-modern-c-dev-env)
|
||||
_________________
|
||||
|
||||
### Version Control
|
||||
|
||||
#### Git
|
||||
|
||||
- [👶 Git Tutorial for Beginners: Learn Git in 1 Hour](https://www.youtube.com/watch?v=8JJ101D3knE)
|
||||
- [Git for Professionals Tutorial - Tools & Concepts for Mastering Version Control with Git](https://www.youtube.com/watch?v=Uszj_k0DGsg)
|
||||
|
||||
#### SVN (Subversion)
|
||||
|
||||
- [Apache® Subversion®](https://subversion.apache.org/)
|
||||
|
||||
_________________
|
||||
|
||||
### Microcontrollers
|
||||
|
||||
- [What Is a Microcontroller? The Defining Characteristics and Architecture of a Common Component](https://www.allaboutcircuits.com/technical-articles/what-is-a-microcontroller-introduction-component-characteristics-component/)
|
||||
@@ -535,23 +493,9 @@ _________________
|
||||
- [SLEEP Mode in STM32F103 || CubeIDE || Low Power Mode || Current Consumption](https://www.youtube.com/watch?v=2rKcsGkCG0s)
|
||||
- [STOP MODE in STM32 || CubeIDE || Low Power Mode](https://www.youtube.com/watch?v=UtQhc4XV8k4)
|
||||
|
||||
#### 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)
|
||||
|
||||
#### Functional Safety
|
||||
|
||||
- [Microchip University - Introduction to Functional Safety](https://mu.microchip.com/introduction-to-functional-safety)
|
||||
- [Udemy – Functional Safety According to ISO 26262 - Crash Course](https://www.udemy.com/course/iso-26262-crash-course/)
|
||||
- [A Guide to MISRA C Coding Standards - MISRA C and MISRA C++](https://www.perforce.com/resources/qac/misra-c-cpp)
|
||||
- [A Firmware Development Standard by Jack Ganssle](http://www.ganssle.com/fsm.htm)
|
||||
- [Safety-critical Embedded systems: How to prepare for software development](https://www.nagarro.com/en/blog/embedded-software-development-safety-critical-systems)
|
||||
|
||||
_________________
|
||||
|
||||
### Simulation / Emulation Tools
|
||||
### Hardware Simulation / Emulation Tools
|
||||
|
||||
- [👶 Wokwi - Online ESP32, STM32, Arduino Simulator](https://wokwi.com/)
|
||||
|
||||
@@ -573,6 +517,80 @@ _________________
|
||||
|
||||
_________________
|
||||
|
||||
### Memory Technologies & File Systems
|
||||
|
||||
- [Memory Options for Embedded Systems: How to Select the Right Memory Configuration](https://www.qt.io/embedded-development-talk/memory-options-for-embedded-systems-how-to-select-the-right-memory-configuration)
|
||||
|
||||
#### Flash Memory
|
||||
|
||||
- [NAND and eMMC: All You Need to Know About Flash Memory](https://www.makeuseof.com/tag/nand-emmc-need-know-flash-memory/)
|
||||
|
||||
##### NOR / NAND
|
||||
|
||||
- [QSPI in STM32 || Write and Read || N25Q](https://www.youtube.com/watch?v=xIfh_uYy-OU)
|
||||
- [QSPI in STM32 || Boot from EXT Memory || XIP || N25Q](https://www.youtube.com/watch?v=gAyuF20ok8c)
|
||||
- [Flash Memory in Embedded Linux Systems](https://www.youtube.com/watch?v=hdwMvwJIV-Y)
|
||||
|
||||
##### eMMC
|
||||
|
||||
- [What is a eMMC? Intro, Comparing to Other Storage, and Upgrading. SSD, M.2](https://www.youtube.com/watch?v=vGatKmqYxEA)
|
||||
|
||||
##### SD Card
|
||||
|
||||
- [Interfacing with an SD Card](https://www.youtube.com/watch?v=g40tUdjZ-Sk)
|
||||
|
||||
#### EEPROM
|
||||
|
||||
- [Using EEPROM with Arduino - Internal & External](https://www.youtube.com/watch?v=ShqvATqXA7g)
|
||||
|
||||
#### SRAM / DRAM
|
||||
|
||||
- [SRAM vs DRAM: Difference Between SRAM & DRAM Explained](https://www.enterprisestorageforum.com/hardware/sram-vs-dram/)
|
||||
- [What is SRAM?](https://www.youtube.com/watch?v=kU2SsUUsftA)
|
||||
- [SDRAM Hardware & Firmware Tutorial (STM32) - Phil's Lab #80](https://www.youtube.com/watch?v=h28D4AaPSjg)
|
||||
- [SDRAM in STM32 || MT48LC4](https://www.youtube.com/watch?v=QnDenqvzwyE)
|
||||
|
||||
#### File Systems
|
||||
|
||||
- [Flash filesystems](https://hugh712.gitbooks.io/embeddedsystem/content/flash_filesystems.html)
|
||||
- [Block filesystems](https://hugh712.gitbooks.io/embeddedsystem/content/block_filesystems.html)
|
||||
- [Understanding the UBI File System in Embedded Devices](https://serhack.me/articles/understanding-ubi-file-system-embedded-devices-reolink/)
|
||||
- [UBI File System](https://docs.kernel.org/filesystems/ubifs.html)
|
||||
- [JFFS : The Journalling Flash File System](https://sourceware.org/jffs2/jffs2-html/)
|
||||
- [Preventing Filesystem Corruption In Embedded Linux](https://www.embeddedts.com/assets/preventing-filesystem-corruption-in-embedded-linux)
|
||||
- [LittleFS - A high-integrity embedded file system](https://os.mbed.com/blog/entry/littlefs-high-integrity-embedded-fs/)
|
||||
- [SPIFS - Wear-leveled SPI flash file system for embedded devices](https://github.com/pellepl/spiffs)
|
||||
- [EEPROM File System (EEFS)](opensource.gsfc.nasa.gov/projects/eefs/index.php)
|
||||
|
||||
_________________
|
||||
|
||||
### Sensors & Actuators
|
||||
|
||||
- [💎 Coursera - Embedding Sensors and Motors Specialization](https://www.coursera.org/specializations/embedding-sensors-motors)
|
||||
|
||||
#### Sensors
|
||||
|
||||
- [Calibrating Sensors](https://learn.adafruit.com/calibrating-sensors)
|
||||
- [DHT11 vs DHT22 vs LM35 vs DS18B20 vs BME280 vs BMP180](https://randomnerdtutorials.com/dht11-vs-dht22-vs-lm35-vs-ds18b20-vs-bme280-vs-bmp180/)
|
||||
- [Getting Started With STM32 and Nucleo Part 2: How to Use I2C to Read Temperature Sensor TMP102](https://www.youtube.com/watch?v=isOekyygpR8)
|
||||
- [GPS Module and STM32 || NEO 6M || Get coordinates, Date, Time, Speed, etc.](https://www.youtube.com/watch?v=tq_RoaPLahk)
|
||||
- [Interface MPU6050/GY-521 with STM32 || LCD 20x4 || CubeMx || HAL || SW4STM](https://www.youtube.com/watch?v=xxphp9wDnHA)
|
||||
- [Arduino with PIR Motion Sensor](https://randomnerdtutorials.com/arduino-with-pir-motion-sensor/)
|
||||
- [Complete Guide for Ultrasonic Sensor HC-SR04 with Arduino](https://randomnerdtutorials.com/complete-guide-for-ultrasonic-sensor-hc-sr04/)
|
||||
- [Electronic Basics #15: Temperature Measurement (Part 1) || NTC, PT100, Wheatstone Bridge](https://youtu.be/1U4fep_qAeo?si=Q2FF__EXONN-xN5M)
|
||||
|
||||
#### Actuators
|
||||
|
||||
- [Adafruit Motor Selection Guide](https://learn.adafruit.com/adafruit-motor-selection-guide)
|
||||
- [DC Motor Speed Controller PWM With Potentiometer Using STM32](https://www.youtube.com/watch?v=8QpegVuV_AQ)
|
||||
- [All About Stepper Motors](https://learn.adafruit.com/all-about-stepper-motors)
|
||||
- [Using Servos With CircuitPython and Arduino](https://learn.adafruit.com/using-servos-with-circuitpython)
|
||||
- [Electronic Basics #25: Servos and how to use them](https://youtu.be/J8atdmEqZsc?si=bH_xoIwnAsNU5_lD)
|
||||
- [Electronic Basics #24: Stepper Motors and how to use them](https://youtu.be/bkqoKWP4Oy4?si=kvhwykmFZ0UnLDJ7)
|
||||
- [Electronic Basics #18: DC & Brushless DC Motor + ESC](https://youtu.be/UteZJ_7C4Mg?si=uADPmCaucyWXd8Xe)
|
||||
|
||||
_________________
|
||||
|
||||
### Interfaces, Protocols & Communication Technologies
|
||||
|
||||
#### Basic Protocols
|
||||
@@ -739,7 +757,7 @@ _________________
|
||||
- [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 Protocols
|
||||
#### Network Protocols / Socket Programming
|
||||
|
||||
- [Networking Fundamentals - Practical Networking (YouTube Playlist)](https://www.youtube.com/playlist?list=PLIFyRwBY_4bRLmKfP1KnZA6rZbRHtxmXi)
|
||||
- [TCP vs UDP - Explaining Facts and Debunking Myths - TCP Masterclass](https://www.youtube.com/watch?v=jE_FcgpQ7Co)
|
||||
@@ -765,62 +783,6 @@ _________________
|
||||
|
||||
_________________
|
||||
|
||||
### Memory Technologies
|
||||
|
||||
- [Memory Options for Embedded Systems: How to Select the Right Memory Configuration](https://www.qt.io/embedded-development-talk/memory-options-for-embedded-systems-how-to-select-the-right-memory-configuration)
|
||||
|
||||
#### NOR / NAND Flash
|
||||
|
||||
- [QSPI in STM32 || Write and Read || N25Q](https://www.youtube.com/watch?v=xIfh_uYy-OU)
|
||||
- [QSPI in STM32 || Boot from EXT Memory || XIP || N25Q](https://www.youtube.com/watch?v=gAyuF20ok8c)
|
||||
- [Flash Memory in Embedded Linux Systems](https://www.youtube.com/watch?v=hdwMvwJIV-Y)
|
||||
|
||||
#### eMMC
|
||||
|
||||
- [What is a eMMC? Intro, Comparing to Other Storage, and Upgrading. SSD, M.2](https://www.youtube.com/watch?v=vGatKmqYxEA)
|
||||
|
||||
#### SD Card
|
||||
|
||||
- [Interfacing with an SD Card](https://www.youtube.com/watch?v=g40tUdjZ-Sk)
|
||||
|
||||
#### EEPROM
|
||||
|
||||
- [Using EEPROM with Arduino - Internal & External](https://www.youtube.com/watch?v=ShqvATqXA7g)
|
||||
|
||||
#### SRAM / DRAM
|
||||
|
||||
- [SRAM vs DRAM: Difference Between SRAM & DRAM Explained](https://www.enterprisestorageforum.com/hardware/sram-vs-dram/)
|
||||
- [What is SRAM?](https://www.youtube.com/watch?v=kU2SsUUsftA)
|
||||
- [SDRAM Hardware & Firmware Tutorial (STM32) - Phil's Lab #80](https://www.youtube.com/watch?v=h28D4AaPSjg)
|
||||
- [SDRAM in STM32 || MT48LC4](https://www.youtube.com/watch?v=QnDenqvzwyE)
|
||||
|
||||
_________________
|
||||
|
||||
### Sensors & Actuators
|
||||
|
||||
#### Sensors
|
||||
|
||||
- [Calibrating Sensors](https://learn.adafruit.com/calibrating-sensors)
|
||||
- [DHT11 vs DHT22 vs LM35 vs DS18B20 vs BME280 vs BMP180](https://randomnerdtutorials.com/dht11-vs-dht22-vs-lm35-vs-ds18b20-vs-bme280-vs-bmp180/)
|
||||
- [Getting Started With STM32 and Nucleo Part 2: How to Use I2C to Read Temperature Sensor TMP102](https://www.youtube.com/watch?v=isOekyygpR8)
|
||||
- [GPS Module and STM32 || NEO 6M || Get coordinates, Date, Time, Speed, etc.](https://www.youtube.com/watch?v=tq_RoaPLahk)
|
||||
- [Interface MPU6050/GY-521 with STM32 || LCD 20x4 || CubeMx || HAL || SW4STM](https://www.youtube.com/watch?v=xxphp9wDnHA)
|
||||
- [Arduino with PIR Motion Sensor](https://randomnerdtutorials.com/arduino-with-pir-motion-sensor/)
|
||||
- [Complete Guide for Ultrasonic Sensor HC-SR04 with Arduino](https://randomnerdtutorials.com/complete-guide-for-ultrasonic-sensor-hc-sr04/)
|
||||
- [Electronic Basics #15: Temperature Measurement (Part 1) || NTC, PT100, Wheatstone Bridge](https://youtu.be/1U4fep_qAeo?si=Q2FF__EXONN-xN5M)
|
||||
|
||||
#### Actuators
|
||||
|
||||
- [Adafruit Motor Selection Guide](https://learn.adafruit.com/adafruit-motor-selection-guide)
|
||||
- [DC Motor Speed Controller PWM With Potentiometer Using STM32](https://www.youtube.com/watch?v=8QpegVuV_AQ)
|
||||
- [All About Stepper Motors](https://learn.adafruit.com/all-about-stepper-motors)
|
||||
- [Using Servos With CircuitPython and Arduino](https://learn.adafruit.com/using-servos-with-circuitpython)
|
||||
- [Electronic Basics #25: Servos and how to use them](https://youtu.be/J8atdmEqZsc?si=bH_xoIwnAsNU5_lD)
|
||||
- [Electronic Basics #24: Stepper Motors and how to use them](https://youtu.be/bkqoKWP4Oy4?si=kvhwykmFZ0UnLDJ7)
|
||||
- [Electronic Basics #18: DC & Brushless DC Motor + ESC](https://youtu.be/UteZJ_7C4Mg?si=uADPmCaucyWXd8Xe)
|
||||
|
||||
_________________
|
||||
|
||||
### Operating Systems
|
||||
|
||||
#### Operating System Fundamentals
|
||||
@@ -832,27 +794,104 @@ _________________
|
||||
- [💎 Modern Operating Systems - Andrew S. Tanenbaum, Herbert Bos](https://www.pearson.com/en-us/subject-catalog/p/modern-operating-systems/P200000003295)
|
||||
- [Writing an OS in Rust - Philipp Oppermann's blog](https://os.phil-opp.com/)
|
||||
|
||||
#### Real-Time Operating Systems
|
||||
|
||||
##### RTOS Basics
|
||||
|
||||
- [Bare-metal and RTOS Based Embedded Systems](https://microcontrollerslab.com/difference-bare-metal-and-rtos-based-embedded-systems/)
|
||||
- [RTOS vs. Bare Metal: Navigating Performance, Complexity, and Efficiency](https://weston-embedded.com/support/media-articles/119-rtos-vs-bare-metal-navigating-performance-complexity-and-efficiency)
|
||||
- [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 Fundamentals](https://www.freertos.org/implementation/a00002.html)
|
||||
- [A Simple Scheduler via an Interrupt-driven Actor Model](https://interrupt.memfault.com/blog/hardware-actor-scheduler)
|
||||
- [ARM Cortex-M RTOS Context Switching](https://interrupt.memfault.com/blog/cortex-m-rtos-context-switching)
|
||||
- [RTOS (YouTube Playlist)](https://www.youtube.com/playlist?list=PLPW8O6W-1chyrd_Msnn4LD6LBs2slJITs)
|
||||
- [Beyond the RTOS (YouTube Playlist)](https://www.youtube.com/playlist?list=PLPW8O6W-1chytjkg63-tM7MI0BvGxxPIP)
|
||||
|
||||
##### FreeRTOS
|
||||
|
||||
- [FreeRTOS - Market leading RTOS](https://www.freertos.org)
|
||||
- [👶 Introduction to RTOS (YouTube Playlist)](https://www.youtube.com/playlist?list=PLEBQazB0HUyQ4hAPU1cJED6t3DU0h34bz)
|
||||
- [💎 Mastering the FreeRTOS Real Time Kernel - a Hands On Tutorial Guide](https://www.freertos.org/Documentation/RTOS_book.html)
|
||||
- [👶 FreeRTOS Simplified: A Beginner's Guide to Develop and Debug FreeRTOS Applications](https://mu.microchip.com/freertos-simplified)
|
||||
- [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)
|
||||
- [SafeRTOS - Safety Critical Real-Time OS](https://www.freertos.org/FreeRTOS-Plus/Safety_Critical_Certified/SafeRTOS.html)
|
||||
|
||||
##### Zephyr
|
||||
|
||||
- [Zephyr® Project](https://www.zephyrproject.org/)
|
||||
- [Zephyr: Tutorial for Beginners](https://maksimdrachov.github.io/zephyr-rtos-tutorial/)
|
||||
- [Why We Moved from FreeRTOS to Zephyr RTOS](https://www.zephyrproject.org/why-we-moved-from-freertos-to-zephyr-rtos/)
|
||||
- [nRF Connect SDK](https://academy.nordicsemi.com/courses/nrf-connect-sdk-fundamentals/)
|
||||
- [ESP32 on Zephyr OS (YouTube Playlist)](https://www.youtube.com/playlist?list=PLEQVp_6G_y4iFfemAbFsKw6tsGABarTwp)
|
||||
|
||||
##### μC/OS / Micriμm OS
|
||||
|
||||
- [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 (Previously published as a book titled "MicroC/OS-II: The Real-Time Kernel")](https://micrium.atlassian.net/wiki/spaces/osiidoc/overview)
|
||||
|
||||
##### NuttX
|
||||
|
||||
- [NuttX - The Apache Software Foundation](https://nuttx.apache.org/)
|
||||
- [NuttX Documentation](https://nuttx.apache.org/docs/latest/)
|
||||
- [Getting Started to NuttX (YouTube Playlist)](https://www.youtube.com/playlist?list=PLd73yQk5Fd8JEsVD-lhwYRQKVu6glfDa8)
|
||||
|
||||
##### RT-Thread
|
||||
|
||||
- [RT-Thread | An Open Source Embedded Real-time Operating System](https://www.rt-thread.io/)
|
||||
- [RT-Thread document center](https://www.rt-thread.io/document/site/)
|
||||
- [RT-Thread Beginners Guide (YouTube Playlist)](https://youtube.com/playlist?list=PLXUV89C_M3G5KVw2IerI-pqApdSM_IaZo)
|
||||
|
||||
##### Mbed OS
|
||||
|
||||
- [Mbed OS](https://os.mbed.com/mbed-os/)
|
||||
- [Mbed OS Documentation](https://os.mbed.com/docs/mbed-os/)
|
||||
|
||||
##### QNX
|
||||
|
||||
- [BlackBerry QNX: Embedded OS, Support, and Services](https://blackberry.qnx.com/en)
|
||||
- [QNX Product Documentation](https://www.qnx.com/developers/docs/index.html)
|
||||
|
||||
##### VxWorks
|
||||
|
||||
- [VxWorks | Industry Leading RTOS for Embedded Systems](https://www.windriver.com/products/vxworks)
|
||||
- [VxWorks Documentation](https://docs.windriver.com/category/os_vxworks?labelkey=os_vxworks)
|
||||
- [VxWORKS-RTOS - Kumar M (YouTube Playlist)](https://www.youtube.com/playlist?list=PLyp1I7W35-q34sYWBlBg8xgoqsizZ57P7)
|
||||
|
||||
##### Azure RTOS (ThreadX)
|
||||
|
||||
- [Azure RTOS - Making embedded IoT development and connectivity easy](https://azure.microsoft.com/en-us/services/rtos/)
|
||||
- [Microsoft Azure RTOS documentation](https://learn.microsoft.com/en-us/azure/rtos/)
|
||||
- [Azure RTOS ThreadX](https://github.com/azure-rtos/threadx)
|
||||
|
||||
|
||||
#### Embedded Linux
|
||||
|
||||
- [What Is Embedded Linux?](https://www.windriver.com/solutions/learning/embedded-linux)
|
||||
- [FreeRTOS vs Linux for Embedded Systems](https://www.bytesnap.com/news-blog/freertos-vs-linux-embedded-systems/)
|
||||
- [Linux Basics (LPIC 1)](https://linux1st.com/)
|
||||
- [👶 Introduction to Embedded Linux (YouTube Playlist)](https://youtube.com/playlist?list=PLEBQazB0HUyTpoJoZecRK6PpDG31Y7RPB)
|
||||
- [Mastering Embedded Linux Series - George Hilliard's blog](https://www.thirtythreeforty.net/series/mastering-embedded-linux/)
|
||||
- [💎 Mastering Embedded Linux Programming - Chris Simmonds](https://www.packtpub.com/product/mastering-embedded-linux-programming-third-edition/9781789530384)
|
||||
- [💎 Coursera - Advanced Embedded Linux Development Specialization](https://www.coursera.org/specializations/advanced-embedded-linux-development)
|
||||
- [Linux From Scratch - step-by-step instructions for building your own custom Linux system](https://www.linuxfromscratch.org/)
|
||||
- [Automotive Grade Linux (AGL)](https://docs.automotivelinux.org/)
|
||||
- [Real Time Linux and `PREEMPT_RT` Patch](https://wiki.linuxfoundation.org/realtime/start)
|
||||
|
||||
##### Linux Kernel
|
||||
|
||||
- [👶 Writing a Simple Linux Kernel Module](https://blog.sourcerer.io/writing-a-simple-linux-kernel-module-d9dc3762c234)
|
||||
- [The Linux Kernel - David A Rusling](https://tldp.org/LDP/tlk/)
|
||||
- [💎 The Linux Programming Interface - Michael Kerrisk](https://man7.org/tlpi/)
|
||||
- [The Linux Kernel - David A Rusling](https://tldp.org/LDP/tlk/)
|
||||
- [How Linux Works - Brian Ward](https://nostarch.com/howlinuxworks3)
|
||||
- [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)
|
||||
|
||||
##### Linux Device Drivers
|
||||
|
||||
- [👶 Writing a Simple Linux Kernel Module](https://blog.sourcerer.io/writing-a-simple-linux-kernel-module-d9dc3762c234)
|
||||
- [💎 Linux Device Drivers - Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman](https://lwn.net/Kernel/LDD3/)
|
||||
- [The Linux Kernel Module Programming Guide](https://sysprog21.github.io/lkmpg/)
|
||||
- [Mastering Linux Device Driver Development - John Madieu](https://www.packtpub.com/product/mastering-linux-device-driver-development/9781789342048)
|
||||
@@ -902,120 +941,6 @@ _________________
|
||||
##### Qt Framework
|
||||
|
||||
- [Qt Documentation](https://doc.qt.io/)
|
||||
- [Introduction to Qt / QML (YouTube Playlist)](https://www.youtube.com/playlist?list=PL6CJYn40gN6hUXoYdyn4DHUTXfcVDJcfB)
|
||||
|
||||
#### Real-Time OS
|
||||
|
||||
##### RTOS Basics
|
||||
|
||||
- [Bare-metal and RTOS Based Embedded Systems](https://microcontrollerslab.com/difference-bare-metal-and-rtos-based-embedded-systems/)
|
||||
- [RTOS vs. Bare Metal: Navigating Performance, Complexity, and Efficiency](https://weston-embedded.com/support/media-articles/119-rtos-vs-bare-metal-navigating-performance-complexity-and-efficiency)
|
||||
- [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 Fundamentals](https://www.freertos.org/implementation/a00002.html)
|
||||
- [A Simple Scheduler via an Interrupt-driven Actor Model](https://interrupt.memfault.com/blog/hardware-actor-scheduler)
|
||||
- [ARM Cortex-M RTOS Context Switching](https://interrupt.memfault.com/blog/cortex-m-rtos-context-switching)
|
||||
- [RTOS (YouTube Playlist)](https://www.youtube.com/playlist?list=PLPW8O6W-1chyrd_Msnn4LD6LBs2slJITs)
|
||||
- [Beyond the RTOS (YouTube Playlist)](https://www.youtube.com/playlist?list=PLPW8O6W-1chytjkg63-tM7MI0BvGxxPIP)
|
||||
|
||||
##### FreeRTOS
|
||||
|
||||
- [FreeRTOS - Market leading RTOS](https://www.freertos.org)
|
||||
- [👶 Introduction to RTOS (YouTube Playlist)](https://www.youtube.com/playlist?list=PLEBQazB0HUyQ4hAPU1cJED6t3DU0h34bz)
|
||||
- [Mastering the FreeRTOS Real Time Kernel - a Hands On Tutorial Guide](https://www.freertos.org/Documentation/RTOS_book.html)
|
||||
- [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)
|
||||
- [SafeRTOS - Safety Critical Real-Time OS](https://www.freertos.org/FreeRTOS-Plus/Safety_Critical_Certified/SafeRTOS.html)
|
||||
|
||||
##### Zephyr
|
||||
|
||||
- [Zephyr® Project](https://www.zephyrproject.org/)
|
||||
- [Why We Moved from FreeRTOS to Zephyr RTOS](https://www.zephyrproject.org/why-we-moved-from-freertos-to-zephyr-rtos/)
|
||||
- [nRF Connect SDK](https://academy.nordicsemi.com/courses/nrf-connect-sdk-fundamentals/)
|
||||
- [ESP32 on Zephyr OS (YouTube Playlist)](https://www.youtube.com/playlist?list=PLEQVp_6G_y4iFfemAbFsKw6tsGABarTwp)
|
||||
|
||||
##### μC/OS / Micriμm OS
|
||||
|
||||
- [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 (Previously published as a book titled "MicroC/OS-II: The Real-Time Kernel")](https://micrium.atlassian.net/wiki/spaces/osiidoc/overview)
|
||||
|
||||
##### NuttX
|
||||
|
||||
- [NuttX - The Apache Software Foundation](https://nuttx.apache.org/)
|
||||
- [NuttX Documentation](https://nuttx.apache.org/docs/latest/)
|
||||
- [Getting Started to NuttX (YouTube Playlist)](https://www.youtube.com/playlist?list=PLd73yQk5Fd8JEsVD-lhwYRQKVu6glfDa8)
|
||||
|
||||
##### RT-Thread
|
||||
|
||||
- [RT-Thread | An Open Source Embedded Real-time Operating System](https://www.rt-thread.io/)
|
||||
- [RT-Thread document center](https://www.rt-thread.io/document/site/)
|
||||
- [RT-Thread Beginners Guide (YouTube Playlist)](https://youtube.com/playlist?list=PLXUV89C_M3G5KVw2IerI-pqApdSM_IaZo)
|
||||
|
||||
##### Mbed OS
|
||||
|
||||
- [Mbed OS](https://os.mbed.com/mbed-os/)
|
||||
- [Mbed OS Documentation](https://os.mbed.com/docs/mbed-os/)
|
||||
|
||||
##### QNX
|
||||
|
||||
- [BlackBerry QNX: Embedded OS, Support, and Services](https://blackberry.qnx.com/en)
|
||||
- [QNX Product Documentation](https://www.qnx.com/developers/docs/index.html)
|
||||
|
||||
##### VxWorks
|
||||
|
||||
- [VxWorks | Industry Leading RTOS for Embedded Systems](https://www.windriver.com/products/vxworks)
|
||||
- [VxWorks Documentation](https://docs.windriver.com/category/os_vxworks?labelkey=os_vxworks)
|
||||
- [VxWORKS-RTOS - Kumar M (YouTube Playlist)](https://www.youtube.com/playlist?list=PLyp1I7W35-q34sYWBlBg8xgoqsizZ57P7)
|
||||
|
||||
##### Azure RTOS (ThreadX)
|
||||
|
||||
- [Azure RTOS - Making embedded IoT development and connectivity easy](https://azure.microsoft.com/en-us/services/rtos/)
|
||||
- [Microsoft Azure RTOS documentation](https://learn.microsoft.com/en-us/azure/rtos/)
|
||||
- [Azure RTOS ThreadX](https://github.com/azure-rtos/threadx)
|
||||
|
||||
_________________
|
||||
|
||||
### Digital Signal Processing
|
||||
|
||||
#### DSP Fundamentals & Filter Design
|
||||
|
||||
- [💎 The Scientist and Engineer's Guide to Digital Signal Processing - Steven W. Smith](https://www.dspguide.com/pdfbook.htm)
|
||||
- [FIR Filter Design and Software Implementation - Phil's Lab #17](https://www.youtube.com/watch?v=uNNNj9AZisM)
|
||||
- [IIR Filters - Theory and Implementation (STM32) - Phil's Lab #32](https://www.youtube.com/watch?v=QRMe02kzVkA)
|
||||
- [Digital Signal Processing (ECSE-4530) Lectures, Fall 2014 (YouTube Playlist)](https://youtube.com/playlist?list=PLuh62Q4Sv7BUSzx5Jr8Wrxxn-U10qG1et)
|
||||
- [Udemy – Digital Signal Processing (DSP) From Ground Up in C](https://www.udemy.com/course/digital-signal-processing-dsp-from-ground-uptm-in-c/)
|
||||
- [Real-Time Digital Signal Processing: Fundamentals, Implementations and Applications - Sen M. Kuo, Bob H. Lee, Wenshun Tian](https://www.wiley.com/en-us/Real+Time+Digital+Signal+Processing%3A+Fundamentals%2C+Implementations+and+Applications%2C+3rd+Edition-p-9781118414323)
|
||||
- [Real-Time Digital Signal Processing from MATLAB to C with the TMS320C6x DSPs - Thad B. Welch, Cameron H.G. Wright, Michael G. Morrow](https://www.routledge.com/Real-Time-Digital-Signal-Processing-from-MATLAB-to-C-with-the-TMS320C6x/Welch-Wright-Morrow/p/book/9780367736453)
|
||||
- [Schaum's Outline of Signals and Systems - Hwei P. Hsu](https://www.mhprofessional.com/schaum-s-outline-of-signals-and-systems-fourth-edition-9781260454246-usa)
|
||||
- [💎 Digital Signal Processing - John G. Proakis, Dimitris K. Manolakis](https://a.co/d/75P5PiE)
|
||||
|
||||
#### Discrete Fourier Transform / FFT
|
||||
|
||||
- [Discrete Fourier Transform - Simple Step by Step](https://www.youtube.com/watch?v=mkGsMWi_j4Q)
|
||||
- [The Fast Fourier Transform (FFT): Most Ingenious Algorithm Ever?](https://youtu.be/h7apO7q16V0)
|
||||
- [The FFT Algorithm - Simple Step by Step](https://www.youtube.com/watch?v=htCj9exbGo0)
|
||||
- [STM32 Fast Fourier Transform (CMSIS DSP FFT) - Phil's Lab #111](https://youtu.be/d1KvgOwWvkM)
|
||||
|
||||
#### Controls Systems / PID Control
|
||||
|
||||
- [Understanding Control Systems (YouTube Playlist)](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 (YouTube Playlist)](https://youtube.com/playlist?list=PLn8PRpmsu08pQBgjxYFXSsODEF3Jqmm-y)
|
||||
- [PID Controller Implementation in Software - Phil's Lab #6](https://www.youtube.com/watch?v=zOByx3Izf5U)
|
||||
- [💎 Control Systems Engineering - Norman S. Nise](https://www.wiley.com/en-us/Control+Systems+Engineering%2C+8th+Edition-p-9781119474227)
|
||||
- [💎 Modern Control Systems - Richard C. Dorf, Robert H. Bishop](https://www.pearson.com/en-us/subject-catalog/p/modern-control-systems/P200000003484/9780137307098)
|
||||
|
||||
#### MATLAB / Simulink
|
||||
|
||||
- [MATLAB Tutorials: Getting Started with MATLAB (YouTube Playlist)](https://youtube.com/playlist?list=PL7CAABC40B2825C8B)
|
||||
- [Getting Started with Simulink (YouTube Playlist)](https://youtube.com/playlist?list=PL484BA2AD3AE4C2D0)
|
||||
- [Udemy – MATLAB/SIMULINK Bible|Go From Zero to Hero!](https://www.udemy.com/course/matlabsimulink-biblego-from-zero-to-hero/)
|
||||
|
||||
_________________
|
||||
|
||||
@@ -1046,6 +971,71 @@ _________________
|
||||
|
||||
_________________
|
||||
|
||||
### Build Tools
|
||||
|
||||
#### GCC & Make
|
||||
|
||||
- [GCC and Make - Compiling, Linking and Building C/C++ Applications](https://www3.ntu.edu.sg/home/ehchua/programming/cpp/gcc_make.html)
|
||||
- [A Shallow Dive into GNU Make](https://interrupt.memfault.com/blog/gnu-make-guidelines#a-shallow-dive-into-gnu-make)
|
||||
- [The Best and Worst GCC Compiler Flags For Embedded](https://interrupt.memfault.com/blog/best-and-worst-gcc-clang-compiler-flags)
|
||||
- [Building STM32 projects from scratch with cross platform tools like Make, CMake and arm-gcc compiler toolchain (YouTube Playlist)](https://www.youtube.com/playlist?list=PLEg2mgYz66IOcHRvvUDf9O1ZCGy58M1Bt)
|
||||
- [From Zero to main(): Demystifying Firmware Linker Scripts](https://interrupt.memfault.com/blog/how-to-write-linker-scripts-for-firmware)
|
||||
- [Bare Metal - From zero to blink](https://www.linuxembedded.fr/2021/02/bare-metal-from-zero-to-blink)
|
||||
|
||||
#### CMake
|
||||
|
||||
- [CMake Tutorial](https://cmake.org/cmake/help/latest/guide/tutorial/index.html)
|
||||
- [How to CMake Good (YouTube Playlist)](https://youtube.com/playlist?list=PLK6MXr8gasrGmIiSuVQXpfFuE1uPT615s)
|
||||
|
||||
#### Bash Scripting
|
||||
|
||||
- [Bash scripting cheatsheet](https://devhints.io/bash)
|
||||
- [Bash Scripting Tutorial for Beginners](https://www.youtube.com/watch?v=tK9Oc6AEnR4)
|
||||
|
||||
#### Docker
|
||||
|
||||
- [Docker Docs](https://docs.docker.com/get-started/)
|
||||
- [Docker Cheat Sheet](https://dockerlabs.collabnix.com/docker/cheatsheet/)
|
||||
- [👶 Docker for Dummies](https://dev.to/stevenmcgown/docker-for-dummies-2bff)
|
||||
- [Introduction to Docker for the Embedded Developer](https://www.youtube.com/watch?v=Fz7ou-VBk-w)
|
||||
- [Intro to CI/CD Part 1: Getting Started with Docker | Digi-Key Electronics](https://youtu.be/1nxGcfIm-TU)
|
||||
- [A Modern C Development Environment](https://interrupt.memfault.com/blog/a-modern-c-dev-env)
|
||||
_________________
|
||||
|
||||
### Software Development Life Cycle (SDLC) Models
|
||||
|
||||
- [What is the software development life cycle?](https://www.coderus.com/the-software-development-lifecycle/)
|
||||
- [Embedded Product Development Life Cycle: Four Main Steps](https://www.sam-solutions.com/blog/embedded-product-development-life-cycle/)
|
||||
|
||||
#### Agile / SCRUM
|
||||
|
||||
- [Does agile work with embedded software?](https://www.embedded.com/does-agile-work-with-embedded-software/)
|
||||
- [Scrum for embedded software: Good – but for reasons other than what your manager thinks](https://www.elektrobit.com/trends/scrum-for-embedded-software/)
|
||||
- [What Is Scrum: A Guide to the Most Popular Agile Framework](https://www.scrumalliance.org/about-scrum)
|
||||
- [An agile guide to scrum meetings](https://www.atlassian.com/agile/scrum/ceremonies)
|
||||
- [What is scaled agile framework? (SAFe)](https://www.atlassian.com/agile/agile-at-scale/what-is-safe)
|
||||
- [Jira - Issue & Project Tracking Software](https://confluence.atlassian.com/jira)
|
||||
|
||||
#### V-Model (V-cycle)
|
||||
|
||||
- [What is the V model for software development](https://x-engineer.org/v-model-software-development/)
|
||||
- [V Model In Software Engineering: Ultimate Guideline](https://biplus.com.vn/v-model-in-software-engineering/)
|
||||
|
||||
_________________
|
||||
|
||||
### Version Control
|
||||
|
||||
#### Git
|
||||
|
||||
- [👶 Git Tutorial for Beginners: Learn Git in 1 Hour](https://www.youtube.com/watch?v=8JJ101D3knE)
|
||||
- [Git for Professionals Tutorial - Tools & Concepts for Mastering Version Control with Git](https://www.youtube.com/watch?v=Uszj_k0DGsg)
|
||||
|
||||
#### SVN (Subversion)
|
||||
|
||||
- [Apache® Subversion®](https://subversion.apache.org/)
|
||||
|
||||
_________________
|
||||
|
||||
### Testing
|
||||
|
||||
- [Embedded Testing](https://artoftesting.com/embedded-testing)
|
||||
@@ -1073,56 +1063,39 @@ _________________
|
||||
- [Exclave: Hardware Testing in Mass Production, Made Easier](https://www.bunniestudios.com/blog/?p=5450)
|
||||
- [Regression Testing of Embedded Systems](https://www.parasoft.com/blog/regression-testing-of-embedded-systems/)
|
||||
|
||||
|
||||
#### CI/CD Pipelines
|
||||
|
||||
- [Intro to CI/CD Part 1: Getting Started with Docker | Digi-Key Electronics](https://youtu.be/1nxGcfIm-TU)
|
||||
- [Intro to CI/CD Part 2: Getting Started with GitHub Actions | Digi-Key Electronics](https://youtu.be/8pyqbYDYkRs)
|
||||
- [How to Build a Continuous Integration and Delivery Process for Embedded Software](https://medium.com/jumperiot/how-to-build-a-continuous-integration-and-delivery-flow-for-embedded-software-b0b5bf220a2)
|
||||
- [A guide to continuous delivery in embedded development](https://www.embedded.com/a-guide-to-continuous-delivery-in-embedded-development/)
|
||||
- [Continuous Delivery for Embedded Systems • Mike Long • GOTO 2015](https://www.youtube.com/watch?v=DcFe6cEvnGQ)
|
||||
- [Continuous Integration & Continuous Delivery for Embedded Systems (Whitepaper)](https://www.parasoft.com/white-paper/ci-cd-for-embedded-systems/)
|
||||
- [What is DevOps in an Embedded Device Company?](https://www.linkedin.com/pulse/what-devops-embedded-device-company-john-macdonald/)
|
||||
|
||||
#### SIL / HIL Testing
|
||||
|
||||
- [Hardware-in-Loop and Software-in-Loop Testing](https://roboticsknowledgebase.com/wiki/system-design-development/In-Loop-Testing/)
|
||||
- [Embedded CI/CD with HIL Testing (YouTube Playlist)](https://youtube.com/playlist?list=PL4cGeWgaBTe1uwiqIAc6fwPzPpvgPZI2J)
|
||||
|
||||
#### Industry Standards & Certifications
|
||||
#### Standards & Certifications
|
||||
|
||||
- [Intro to Embedded Development: Styles and Standards](https://www.allaboutcircuits.com/technical-articles/embedded-programming-styles-and-standards/)
|
||||
- [Safety Standards and Certifications for Embedded Systems Development](https://www.linkedin.com/pulse/safety-standards-certifications-embedded-systems-development/)
|
||||
- [Microchip University - An Introduction To The ISA/IEC 62443 Standard](https://mu.microchip.com/an-introduction-to-the-isaiec-62443-standard)
|
||||
- [Exploring EMC Basics & Standards](https://www.youtube.com/watch?v=duhBkhlH-WY)
|
||||
|
||||
_________________
|
||||
##### Functional Safety
|
||||
|
||||
### Embedded AI
|
||||
- [Microchip University - Introduction to Functional Safety](https://mu.microchip.com/introduction-to-functional-safety)
|
||||
- [Udemy – Functional Safety According to ISO 26262 - Crash Course](https://www.udemy.com/course/iso-26262-crash-course/)
|
||||
- [A Guide to MISRA C Coding Standards - MISRA C and MISRA C++](https://www.perforce.com/resources/qac/misra-c-cpp)
|
||||
- [A Firmware Development Standard by Jack Ganssle](http://www.ganssle.com/fsm.htm)
|
||||
- [Safety-critical Embedded systems: How to prepare for software development](https://www.nagarro.com/en/blog/embedded-software-development-safety-critical-systems)
|
||||
- [IEC 61508 - Functional safety of electrical/electronic/programmable electronic safety-related systems](https://webstore.iec.ch/publication/5515)
|
||||
- [ISO 26262-1:2018 - Road vehicles - Functional safety](https://www.iso.org/standard/68383.html)
|
||||
- [DO-178C - Software Considerations in Airborne Systems and Equipment Certification](https://en.wikipedia.org/wiki/DO-178C)
|
||||
|
||||
- [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)
|
||||
|
||||
#### 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/)
|
||||
- [👶 Introduction to Machine Learning for Coders!](https://course18.fast.ai/ml)
|
||||
- [Machine Learning Crash Course with TensorFlow APIs - Google](https://developers.google.com/machine-learning/crash-course/)
|
||||
|
||||
#### TensorFlow Lite
|
||||
|
||||
- [Getting Started with TensorFlow and Keras – Maker.io | Digi-Key Electronics](https://www.youtube.com/watch?v=HCG3hFe1KYY)
|
||||
- [Intro to TensorFlow Lite Part 1: Wake Word Feature Extraction – Maker.io | Digi-Key Electronics](https://www.youtube.com/watch?v=0fn7pj7Dutc)
|
||||
- [Intro to TensorFlow Lite Part 2: Speech Recognition Model Training – Maker.io | Digi-Key Electronics](https://www.youtube.com/watch?v=yv_WVwr6OkI)
|
||||
|
||||
#### tinyML
|
||||
|
||||
- [👶 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
|
||||
@@ -1168,10 +1141,99 @@ _________________
|
||||
- [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/)
|
||||
|
||||
_________________
|
||||
|
||||
### AUTOSAR Architecture
|
||||
|
||||
- [AUTOSAR Basics | AUTOSAR Tutorial | Architecture | Automotive](https://www.youtube.com/watch?v=7b5BY1IAfwY)
|
||||
- [Introduction to AUTOSAR](https://www.youtube.com/watch?v=NfZI8wvgZPo)
|
||||
|
||||
_________________
|
||||
|
||||
### Edge AI & TinyML
|
||||
|
||||
- [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)
|
||||
|
||||
#### 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/)
|
||||
- [👶 Introduction to Machine Learning for Coders!](https://course18.fast.ai/ml)
|
||||
- [Machine Learning Crash Course with TensorFlow APIs - Google](https://developers.google.com/machine-learning/crash-course/)
|
||||
|
||||
#### TensorFlow Lite
|
||||
|
||||
- [Getting Started with TensorFlow and Keras – Maker.io | Digi-Key Electronics](https://www.youtube.com/watch?v=HCG3hFe1KYY)
|
||||
- [Intro to TensorFlow Lite Part 1: Wake Word Feature Extraction – Maker.io | Digi-Key Electronics](https://www.youtube.com/watch?v=0fn7pj7Dutc)
|
||||
- [Intro to TensorFlow Lite Part 2: Speech Recognition Model Training – Maker.io | Digi-Key Electronics](https://www.youtube.com/watch?v=yv_WVwr6OkI)
|
||||
|
||||
#### TinyML
|
||||
|
||||
- [👶 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/)
|
||||
|
||||
_________________
|
||||
|
||||
### 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)
|
||||
- [Introduction to Qt / QML (YouTube Playlist)](https://www.youtube.com/playlist?list=PL6CJYn40gN6hdNC1IGQZfVI707dh9DPRc)
|
||||
|
||||
_________________
|
||||
|
||||
### Digital Signal Processing
|
||||
|
||||
#### DSP Basics & Filter Design
|
||||
|
||||
- [💎 The Scientist and Engineer's Guide to Digital Signal Processing - Steven W. Smith](https://www.dspguide.com/pdfbook.htm)
|
||||
- [FIR Filter Design and Software Implementation - Phil's Lab #17](https://www.youtube.com/watch?v=uNNNj9AZisM)
|
||||
- [IIR Filters - Theory and Implementation (STM32) - Phil's Lab #32](https://www.youtube.com/watch?v=QRMe02kzVkA)
|
||||
- [Digital Signal Processing (ECSE-4530) Lectures, Fall 2014 (YouTube Playlist)](https://youtube.com/playlist?list=PLuh62Q4Sv7BUSzx5Jr8Wrxxn-U10qG1et)
|
||||
- [Udemy – Digital Signal Processing (DSP) From Ground Up in C](https://www.udemy.com/course/digital-signal-processing-dsp-from-ground-uptm-in-c/)
|
||||
- [Real-Time Digital Signal Processing: Fundamentals, Implementations and Applications - Sen M. Kuo, Bob H. Lee, Wenshun Tian](https://www.wiley.com/en-us/Real+Time+Digital+Signal+Processing%3A+Fundamentals%2C+Implementations+and+Applications%2C+3rd+Edition-p-9781118414323)
|
||||
- [Real-Time Digital Signal Processing from MATLAB to C with the TMS320C6x DSPs - Thad B. Welch, Cameron H.G. Wright, Michael G. Morrow](https://www.routledge.com/Real-Time-Digital-Signal-Processing-from-MATLAB-to-C-with-the-TMS320C6x/Welch-Wright-Morrow/p/book/9780367736453)
|
||||
- [Schaum's Outline of Signals and Systems - Hwei P. Hsu](https://www.mhprofessional.com/schaum-s-outline-of-signals-and-systems-fourth-edition-9781260454246-usa)
|
||||
- [💎 Digital Signal Processing - John G. Proakis, Dimitris K. Manolakis](https://a.co/d/75P5PiE)
|
||||
|
||||
#### Discrete Fourier Transform / FFT
|
||||
|
||||
- [Discrete Fourier Transform - Simple Step by Step](https://www.youtube.com/watch?v=mkGsMWi_j4Q)
|
||||
- [The Fast Fourier Transform (FFT): Most Ingenious Algorithm Ever?](https://youtu.be/h7apO7q16V0)
|
||||
- [The FFT Algorithm - Simple Step by Step](https://www.youtube.com/watch?v=htCj9exbGo0)
|
||||
- [STM32 Fast Fourier Transform (CMSIS DSP FFT) - Phil's Lab #111](https://youtu.be/d1KvgOwWvkM)
|
||||
|
||||
#### Controls Systems / PID Control
|
||||
|
||||
- [Understanding Control Systems (YouTube Playlist)](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 (YouTube Playlist)](https://youtube.com/playlist?list=PLn8PRpmsu08pQBgjxYFXSsODEF3Jqmm-y)
|
||||
- [PID Controller Implementation in Software - Phil's Lab #6](https://www.youtube.com/watch?v=zOByx3Izf5U)
|
||||
- [💎 Control Systems Engineering - Norman S. Nise](https://www.wiley.com/en-us/Control+Systems+Engineering%2C+8th+Edition-p-9781119474227)
|
||||
- [💎 Modern Control Systems - Richard C. Dorf, Robert H. Bishop](https://www.pearson.com/en-us/subject-catalog/p/modern-control-systems/P200000003484/9780137307098)
|
||||
|
||||
#### MATLAB / Simulink
|
||||
|
||||
- [MATLAB Tutorials: Getting Started with MATLAB (YouTube Playlist)](https://youtube.com/playlist?list=PL7CAABC40B2825C8B)
|
||||
- [Getting Started with Simulink (YouTube Playlist)](https://youtube.com/playlist?list=PL484BA2AD3AE4C2D0)
|
||||
- [Udemy – MATLAB/SIMULINK Bible|Go From Zero to Hero!](https://www.udemy.com/course/matlabsimulink-biblego-from-zero-to-hero/)
|
||||
|
||||
## History
|
||||
|
||||
The idea of creating this roadmap came from [vazeri / Embedded-Engineering-RoadMap-2018](https://github.com/vazeri/Embedded-Engineering-RoadMap-2018) which was well designed but had some flaws and not updated for years.
|
||||
I took that idea, changed the structure of the roadmap and tried to improve it. The initial results can be accessed in [m3y54m / Embedded-Engineering-Roadmap-Archived](https://github.com/m3y54m/Embedded-Engineering-Roadmap-Archived) which is now archived. Early versions of the roadmap were created using [Balsamiq Wireframes](https://balsamiq.com) which is not suitable for these types of diagrams. So I decided to use Microsoft Visio instead and redrew the whole diagram.
|
||||
At first this was meant to be my personal reading list but as the list gradually became bigger and bigger, I wondered why not share it with others. So I did research on current job postings for embedded engineering roles, selecting the most frequent skills and including them on a roadmap. In order to make the roadmap more comprehensive I also added some basic skills and finally came up with what you see here.
|
||||
|
||||
The idea of creating this roadmap came from [vazeri / Embedded-Engineering-RoadMap-2018](https://github.com/vazeri/Embedded-Engineering-RoadMap-2018) which was well designed but had some flaws and not updated for years. I took that idea, changed the structure of the roadmap and tried to improve it. The initial results can be accessed in [m3y54m / Embedded-Engineering-Roadmap-Archived](https://github.com/m3y54m/Embedded-Engineering-Roadmap-Archived) which is now archived. Early versions of the roadmap were created using [Balsamiq Wireframes](https://balsamiq.com) which is not suitable for these types of diagrams. So I decided to use Microsoft Visio instead and redrew the whole diagram.
|
||||
|
||||
## Copyright
|
||||
|
||||
|
||||
Reference in New Issue
Block a user