Compare commits

..
162 Commits
Author SHA1 Message Date
Meysam 0738fcbd8f Merge pull request #83 from 3omargaad/patch-2
Added Embedded Systems Arm Course Resource
2026-10-04 02:39:49 +02:00
Omar Gaad efa2b58a71 Added Embedded Systems Arm Course Resource 2026-10-03 20:28:18 +01:00
Meysam a9f4eac5c9 Merge pull request #82 from dchithinh/add-qemu-embedded-linux-guide
docs: add ARM embedded Linux QEMU guide
2026-07-23 12:55:55 +03:30
Thinh Do fbc2bbe074 docs: add ARM embedded Linux QEMU guide 2026-07-20 15:54:31 +07:00
Meysam ede541e217 Merge pull request #80 from 3omargaad/patch-1
Update README.md
2026-07-12 17:29:19 +03:30
Omar Gaad 3f84cb4946 Update README.md
Spelling Correction: changed "Assoication" to Association
2026-07-12 15:38:44 +03:00
Meysam 0bc41bf6ac Merge pull request #79 from colonelblacc/add-interactive-skill-tree
docs: add interactive embedded systems skill tree link
2026-07-11 02:20:47 +03:30
colonelblac 37334a10d8 docs: add interactive embedded systems skill tree link 2026-07-11 03:18:37 +05:30
Meysam c43065728c Update README.md 2026-06-20 17:41:03 +03:30
Meysam 399e9072d8 Merge pull request #76 from AntonioBerna/feature/add-protocols
add embedded protocols 🚀
2026-05-10 21:47:40 +02:00
AntonioBerna b43ee3b3c9 add embedded protocols 2026-05-10 16:58:43 +02:00
Meysam 9b0589de9a Merge pull request #74 from AntonioBerna/chore/add-coursera-stm32-deep-dive
docs: add Coursera ARM Cortex STM32 Deep Dive course
2026-04-25 22:02:07 +02:00
AntonioBerna 6d2434c093 docs: add Coursera ARM Cortex STM32 Deep Dive course 2026-04-25 14:04:58 +02:00
Meysam ce19924102 Merge pull request #73 from AntonioBerna/add-new-ref-links
Add curated links across relevant roadmap sections
2026-04-12 14:26:12 +02:00
AntonioBerna e42e802909 Add curated links across relevant roadmap sections 2026-04-11 16:34:26 +02:00
Meysam c6fb798231 Merge pull request #71 from AntonioBerna/chore/add-learning-resources-links
docs: add suggested learning resources links
2026-03-16 19:56:35 +01:00
AntonioBerna 4d72f70ac1 added new link 2026-03-16 17:31:56 +01:00
AntonioBerna 287aba4c37 docs: add suggested learning resources links 2026-03-16 02:28:48 +01:00
Meysam 363e2182dc Merge pull request #70 from AntonioBerna/docs/add-bare-metal-cpp
docs: add Bare Metal C++ guide to C++ section
2026-03-13 03:33:18 +01:00
Meysam a51558de95 Merge pull request #69 from AntonioBerna/docs/add-osek-resources
docs: add OSEK OS resources to AUTOSAR section
2026-03-13 03:32:47 +01:00
AntonioBerna 3243a38153 docs: add Bare Metal C++ guide to C++ section
- Add 'Bare Metal C++' online book by Alexey Rybachuk
2026-03-10 13:47:18 +01:00
AntonioBerna 8e983933b6 docs: add OSEK OS resources to AUTOSAR section
Closes #65

- Add OSEK OS Overview article from autosartoday.com
- Add OSEK/VDX OS Specification 2.2.3 (official PDF)
- Add OSEK/VDX OIL Specification 2.4.1 (official PDF)
2026-03-10 13:45:33 +01:00
Meysam d1265280e0 Merge pull request #67 from AntonioBerna/docs/add-embedded-rust-esp32-italian-course
docs: add Italian embedded Rust ESP32 course
2026-02-23 00:16:33 +01:00
Meysam 1698faccbf Merge pull request #66 from AntonioBerna/docs/add-sccb-and-awesome-electronics
docs: add SCCB spec and awesome-electronics
2026-02-23 00:16:00 +01:00
AntonioBerna 10a1359485 docs: add Italian embedded Rust ESP32 course 2026-02-13 18:31:22 +01:00
AntonioBerna c341c849cd docs: add SCCB spec and awesome-electronics 2026-02-13 18:14:47 +01:00
Meysam Parvizi 4f4058ca04 Merge pull request #62 from Javatti/master
Add 2 Courses of Udemy website for PCB Design
2025-12-15 22:21:42 +03:30
mohammad javad 982dc5e439 Merge branch 'm3y54m:master' into master 2025-12-02 14:32:54 +03:30
javad 407857803c add 2 course source
+ Add 2 cources with titles : "Advanced Hardware and PCB Design Masterclass 2022" and  "High-Speed Board Design Course System On Module" in Udemy  for PCB Design
2025-12-02 14:30:37 +03:30
Meysam Parvizi bfbf6715da Update README.md 2025-11-24 01:07:29 +03:30
Meysam Parvizi 655c4393f5 Update README.md 2025-11-24 01:02:10 +03:30
Meysam Parvizi 3ec8d86998 Merge pull request #61 from Javatti/master
Update README.md
2025-11-12 23:30:42 +03:30
javad 09b6b687cc Update README.md
Change a wrong address link YouTube for Ethernet Course
2025-11-12 10:19:35 +03:30
Meysam Parvizi 8cdcebd74f Update README.md 2025-10-06 20:24:29 +03:30
Meysam Parvizi 4db7a2607d Update README.md 2025-10-06 20:19:58 +03:30
Meysam Parvizi 0cbb009e31 Merge pull request #58 from VivanPanda/master
Add ArduinoMap resource to roadmap list
2025-09-26 10:55:51 +03:30
VivanPanda f9ef67a2f2 Add ArduinoMap resource to README 2025-09-26 07:50:38 +04:00
Meysam Parvizi 40cd50535d Update README.md 2025-09-18 20:33:55 +02:00
Meysam Parvizi c36274440b Improve static analysis workflow for Markdown linting 2025-09-05 10:03:06 +02:00
Meysam Parvizi dd63c2f1f0 Merge pull request #56 from AntonioBerna/feature/fix-code-of-conduct-error
Fix code of conduct workflow error 🚀
2025-09-05 10:50:05 +03:30
Meysam Parvizi d8573c8602 Update CONTRIBUTING.md 2025-09-05 10:38:32 +03:30
Antonio Bernardini e733e52cc0 fix code of conduct workflow error 🚀 2025-09-03 15:13:45 +02:00
Meysam Parvizi 2b3afb9077 Update CONTRIBUTING.md 2025-08-31 21:15:18 +03:30
Meysam Parvizi 4d43e82a8e Fix Markdown lint check errors 2025-08-31 17:11:46 +02:00
Meysam Parvizi 92344eff24 Update README.md 2025-08-31 18:10:47 +03:30
Meysam Parvizi 80a11187b7 Update README.md 2025-08-31 18:08:57 +03:30
Meysam Parvizi a9689ce9cc Update CONTRIBUTING.md 2025-08-31 17:54:57 +03:30
Meysam Parvizi 08fdaa683f Add CODE_OF_CONDUCT.md 2025-08-31 16:47:12 +03:30
Meysam Parvizi 0c11d5077f Add CONTRIBUTING.md with contributor guidelines 2025-08-31 16:47:05 +03:30
Meysam Parvizi d2fba71fdb Merge pull request #49 from Electrostat-Lab/cpp-resources
README.md: added resources by Stroustrup (C++ Creator)
2025-08-31 15:51:49 +03:30
Pavly Gerges (pavl_g) 4866358427 Update README.md 2025-07-27 13:57:09 -05:00
Pavly Gerges (pavl_g) ef2003e1c2 README.md: C++ publications section 2025-07-27 06:21:26 -05:00
Meysam Parvizi f6036f707d Merge pull request #55 from lzzzam/add_career_section
Update README.md
2025-07-25 22:12:42 +03:30
Meysam Parvizi 7a9a4349f0 Merge pull request #54 from barnabywalters/patch-1
Linked to USB in a nutshell
2025-07-25 22:11:06 +03:30
zambutol 6396c68a9a Update README.md
Add Career development section and link to best job board to land an embedded job
2025-07-23 13:34:41 +02:00
Barnaby Walters 7886954208 Linked to USB in a nutshell 2025-07-22 17:40:36 +02:00
Meysam Parvizi ccebf9e07e Merge pull request #53 from AntonioBerna/feature/fix-markdownlist-workflow
Fix markdownlist workflow 🎉
2025-05-15 22:48:02 +02:00
Antonio Bernardini bb2bdbf59a Fix markdownlist workflow 🎉 2025-05-10 00:57:20 +02:00
Meysam Parvizi 65ae1f8a4c Merge pull request #50 from AntonioBerna/feature/hw-simulation
Added new resources about circuit simulations 🚀
2025-05-10 00:18:18 +02:00
Meysam Parvizi 06e65e9636 Merge pull request #51 from liweisu59/master
Update README.md
2025-05-10 00:10:43 +02:00
Meysam Parvizi 79436daa42 Merge pull request #52 from liweisu59/patch-1
Update README.md
2025-05-10 00:09:42 +02:00
Antonio Bernardini f9bda303ab added new Android/IOS simulation app ⚡ 2025-04-30 23:33:04 +02:00
Liwei Su 7acecc07ea Update README.md
Add books about learning assembly related to arm
2025-04-30 11:57:51 +08:00
Liwei Su 3948044dbf Update README.md
Add book Practical UML Statecharts in C/C++ by Miro Samek for "State Machine" Section
2025-04-29 14:57:23 +08:00
Antonio Bernardini ce429616af Added new resources about circuit simulations 🚀 2025-04-28 07:33:09 +02:00
Pavly Gerges (pavl_g) bb299c97b8 README.md: typo correction 2025-04-14 06:49:31 -05:00
Pavly Gerges (pavl_g) 4f57e7322a README.md: added resources by Stroustrup (C++ Creator) 2025-04-14 06:44:59 -05:00
Meysam Parvizi 887acbf64d Update README.md 2025-04-14 00:18:08 +03:30
Meysam Parvizi dc2738a8cd Update README.md 2025-04-14 00:15:17 +03:30
Meysam Parvizi db7f1edbf8 Update README.md 2025-04-14 00:13:29 +03:30
Meysam Parvizi 73a7e40067 Merge pull request #48 from Electrostat-Lab/discrete-maths
[New Section] Discrete Mathematics for Embedded Engineers
2025-04-12 08:58:12 +02:00
Pavly Gerges (pavl_g) 9529ffefe4 README.md: typos and optimizations 2025-04-12 01:44:39 -05:00
Pavly Gerges (pavl_g) f2bd5403f5 README.md: advanced topics section 2025-04-12 01:39:48 -05:00
Pavly Gerges (pavl_g) faf2d121be Update README.md 2025-04-11 17:50:23 -05:00
Pavly Gerges (pavl_g) 17022df5e7 README.md: extracted some resources to basic maths section and moved advanced topics to the appendix 2025-04-11 17:48:11 -05:00
Pavly Gerges (pavl_g) 1bf34b4646 README.md: clearly defined goals of learning discrete mathematics 2025-04-11 10:34:22 -05:00
Pavly Gerges (pavl_g) 1ccad2d532 README.md: re-enforced listing by introducing the subject bullet-in 🔵 2025-04-11 10:32:45 -05:00
Pavly Gerges (pavl_g) da209028b1 README.md: added Guide to Discrete Mathematics by Gerard O'Regan 2025-04-11 10:28:41 -05:00
Pavly Gerges (pavl_g) 9dd36557a5 README.md: text correction and resources redirects 2025-04-10 18:00:26 -05:00
Pavly Gerges (pavl_g) e4afd0f6e9 README.md: introduced section for discrete mathematics 2025-04-10 16:15:53 -05:00
Meysam Parvizi 468a3e48e9 Update README.md 2025-04-07 08:54:24 +02:00
Meysam Parvizi bb8188ed79 Merge pull request #46 from lendzeg/master
Added 2 resources for C programming and Zephyr
2025-04-04 15:45:08 +02:00
Meysam Parvizi 144e1b0fa8 Merge pull request #45 from AntonioBerna/master
Added a new resource for learning ESP-IDF using tutorials 🚀
2025-04-04 15:44:44 +02:00
Nelson Rodriguez 260fe82159 Added:
- Coursera - C Programming with Linux Specialization 
- Introduction to Zephyr - Digikey
2025-04-03 11:11:57 -05:00
AntonioBerna 73f33549d5 Added a new resource for learning ESP-IDF using tutorials 🚀 2025-04-02 02:55:05 +02:00
Meysam Parvizi a1d90150e2 Merge pull request #44 from abakosh/update_link
Update  Inline Assembly Language  resource in README.md
2025-02-17 09:00:58 +01:00
abakosh cb9502e460 Update Inline Assembly Language resource in README.md 2025-02-07 16:31:04 +01:00
Meysam Parvizi 7c4b025264 Update README.md 2025-01-15 22:00:47 +01:00
Meysam Parvizi cf6060c9f5 Update README.md 2025-01-05 14:07:48 +01:00
Meysam Parvizi a71d798b6f Update README.md 2024-12-27 13:27:47 +01:00
Meysam Parvizi 0876545bfa Update README.md
Add embeddedrelated.com links
2024-12-26 20:09:20 +01:00
Meysam Parvizi bf47fa9812 Update README.md
Adding resource - Making Embedded Systems: Design Patterns for Great Software - Audiobook (#41)
2024-12-26 19:22:56 +01:00
Meysam Parvizi fcc0e6f4da Merge pull request #43 from AntonioBerna/feature/learn-c
Closes #42 ⚡
2024-12-26 19:11:17 +01:00
AntonioBerna 675d7ba4a0 added Learn C Programming and OOP with Dr. Chuck resource, closes #42 2024-12-16 15:48:35 +01:00
Meysam Parvizi 55f5f21e0a Update README.md 2024-11-28 22:31:04 +01:00
Meysam Parvizi 8a5db76a73 Update README.md 2024-11-28 22:28:16 +01:00
Meysam Parvizi 1e4123b58a Merge pull request #40 from AntonioBerna/master
Added something resources 🎉
2024-11-28 21:11:19 +01:00
AntonioBerna 74f9bc837b added yt playlist 🚀 2024-11-28 00:27:43 +01:00
AntonioBerna d4e968e341 added a new Rusy resource 🦀 2024-11-28 00:18:00 +01:00
Meysam Parvizi b9648c1a9e Update README.md 2024-11-14 08:24:57 +01:00
Meysam Parvizi 6b4b93fb95 Merge pull request #38 from ScottGibb/add-static-analysis
Added Markdownlint and static analysis
2024-11-12 20:11:22 +01:00
Scott Gibb 39baabe911 replaced workflow 2024-11-11 15:59:51 +00:00
Scott Gibb f2c0b113a1 Correcting workflow error 2024-11-11 15:58:48 +00:00
Scott Gibb 83d70447a6 Added Markdownlint and static analysis 2024-11-11 15:56:50 +00:00
Meysam Parvizi fb30c35787 Update README.md 2024-11-10 15:49:22 +01:00
Meysam Parvizi 1f7274bd3b Update README.md 2024-11-10 02:17:17 +01:00
Meysam Parvizi 16cace6831 Merge pull request #35 from AntonioBerna/master
added some utilities 🚀
2024-11-09 19:41:12 +01:00
AntonioBerna 88556f05dd added some utilities 🚀 2024-11-09 15:31:26 +01:00
Meysam Parvizi 2adfc55547 Update README.md 2024-10-31 09:01:40 +01:00
Meysam Parvizi 21a28a5628 Merge pull request #34 from lyrakisk/patch-1
Add "The Elements of Computing Systems" to computer architecture
2024-10-31 08:41:48 +01:00
Konstantinos Lyrakis 04a6ddc56f Update README.md 2024-10-30 22:45:48 +01:00
Meysam Parvizi 04666a1778 Update README.md 2024-10-30 10:30:36 +01:00
Meysam Parvizi bd4d1fabd1 Update README.md for GTest resources 2024-10-30 10:27:44 +01:00
Meysam Parvizi 522ac5cd6b Added Modern C book (#32) 2024-10-22 22:47:27 +02:00
Meysam Parvizi 4b23d44b5b Merge pull request #29 from AntonioBerna/master
Update 🔗 RTOS Fundamentals link 🔥
2024-09-12 03:34:48 +02:00
AntonioBerna 6b1b5e37a3 Update 🔗 RTOS Fundamentals link 🔥 2024-09-12 01:30:39 +02:00
Meysam Parvizi b64be6582a Update FUNDING.yml 2024-09-03 03:17:52 +02:00
Meysam Parvizi 13e2b8f0e3 Merge pull request #26 from rrxmzl/patch-1
Paul McWhorter update new series of videos for arduino
2024-08-11 14:55:46 +03:30
rrxmzl d534a7981a Paul McWhorter update new series of videos for arduino 2024-08-11 14:55:01 +08:00
Meysam Parvizi 302ad1cf7b Merge pull request #25 from ScottGibb/patch-1
Adding Bootlin For Yocto/Linux Development
2024-08-02 11:55:54 +03:30
Scott Gibb 57ea594a3a Update README.md
Add Bootlin Link
2024-08-02 09:21:39 +01:00
Meysam Parvizi a046909c32 Merge pull request #24 from francisrstokes/francisrstokes-new-youtube-channel
Added new youtubechannel to the courses and youtube section
2024-07-31 00:05:21 +03:30
Francis Stokes 4b90facad3 Added new youtubechannel to the courses and youtube section 2024-07-30 15:26:14 +02:00
Meysam Parvizi 853cad223d Update FUNDING.yml 2024-07-23 08:39:06 +03:30
Meysam Parvizi 0bc4ce88bb Merge pull request #23 from AntonioBerna/master
added new resource about Algorithms & Data Structures 🔥
2024-07-15 10:50:12 +03:30
AntonioBerna 4a9566d917 added new resource about Algorithms & Data Structures 🔥 2024-07-15 07:18:43 +02:00
Meysam Parvizi 71fdc4b068 Merge pull request #22 from AntonioBerna/master
Added rustlings link - small exercises to get you used to reading and writing Rust code 🔥
2024-07-12 11:16:44 +03:30
AntonioBerna 8fa251fddf Added rustlings link - small exercises to get you used to reading and writing Rust code 🔥 2024-07-11 22:16:16 +02:00
Meysam Parvizi 4bb7b1908f Merge pull request #21 from AntonioBerna/master
Added new unit testing tool for embedded 🎉
2024-07-01 11:21:00 +03:30
AntonioBerna 63d3632f9d Added new unit testing tool for embedded 🎉 2024-07-01 05:16:15 +02:00
Meysam Parvizi b68f6e5902 Update README.md 2024-06-24 13:14:03 +03:30
Meysam Parvizi fb4d604bdc Merge pull request #20 from AntonioBerna/master
Added new link contains projects about Embedded Engineering 🔥
2024-06-23 14:21:57 +03:30
AntonioBerna 02b7d51af0 Added new link contains projects about Embedded Engineering 🔥 2024-06-23 02:52:32 +02:00
Meysam Parvizi f919ec4963 Merge pull request #19 from AntonioBerna/master
added new tool for improve PCBs design using AI 🎉
2024-06-07 13:16:40 +03:30
AntonioBerna 42be5a3cff added new tool for improve PCBs design using AI 🎉 2024-06-06 13:04:45 +02:00
Meysam Parvizi 7e812ea832 Update README.md (#18)
Added a link to "Operating System development tutorials in Rust on the Raspberry Pi"
2024-06-04 17:31:17 +03:30
Meysam Parvizi 8eb6b979d8 Update README.md 2024-05-14 16:15:19 +03:30
Meysam Parvizi 374bcc818e Update README.md 2024-04-02 22:12:08 +03:30
Meysam Parvizi 420d375700 Update README.md 2024-03-13 20:05:33 +03:30
Meysam Parvizi 70d9a7da14 Update README.md 2024-03-12 11:56:00 +03:30
Meysam Parvizi 2254f0845c Update README.md 2024-03-12 10:22:27 +03:30
Meysam Parvizi 086066b83a Update README.md 2024-03-07 11:47:43 +03:30
Meysam Parvizi 52c087ccbd Update README.md 2024-03-02 15:38:30 +03:30
Meysam Parvizi 42aea2bcf1 Update README.md 2024-02-27 01:39:29 +03:30
Meysam Parvizi 5f2112a51f Update README.md 2024-02-23 16:32:43 +03:30
Meysam Parvizi c0c61ee0ee Update FUNDING.yml 2024-02-21 17:03:47 +03:30
Meysam Parvizi 74d1409f73 Update FUNDING.yml 2024-02-21 17:02:50 +03:30
Meysam Parvizi 670eaaa6c2 Update README.md 2024-02-21 01:07:52 +03:30
Meysam Parvizi 18772b293c Update README.md 2024-02-08 20:28:18 +03:30
Meysam Parvizi 269bcb7595 Update README.md 2024-02-05 15:51:52 +03:30
Meysam Parvizi 79911f668b Update README.md 2024-01-31 18:59:03 +03:30
Meysam Parvizi 7bb76db5fa Update README.md 2024-01-31 18:56:54 +03:30
Meysam Parvizi 33b34ab8c2 Update README.md 2024-01-20 22:16:10 +03:30
Meysam Parvizi 4fe59cd3a1 Update README.md 2023-12-30 15:25:12 +03:30
Meysam Parvizi 7415c0d4f3 Update README.md 2023-12-30 15:14:23 +03:30
Meysam Parvizi c29d43b8c5 Update README.md 2023-12-30 14:25:09 +03:30
Meysam Parvizi 36bead8d9c Update README.md 2023-12-29 17:00:27 +03:30
Meysam Parvizi 13d85a2f45 Update README.md 2023-12-24 18:01:15 +03:30
Meysam Parvizi 4895841f30 Update README.md 2023-12-23 18:13:51 +03:30
Meysam Parvizi f64f741c49 Update README.md 2023-12-23 17:56:03 +03:30
Meysam Parvizi e8fbc9cf79 Update README.md 2023-12-23 17:53:33 +03:30
Meysam Parvizi 05d948f6de Update README.md 2023-12-23 15:52:50 +03:30
5 changed files with 344 additions and 56 deletions
+32
View File
@@ -0,0 +1,32 @@
name: Static Analysis
on:
push:
pull_request:
workflow_dispatch:
jobs:
markdownlint:
name: Markdown Lint Check
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install markdownlint-cli
run: npm install -g markdownlint-cli
- name: Run markdownlint
run: |
echo "🔍 Checking Markdown files..."
if find . -name "*.md" -not -path "./node_modules/*" -not -path "./.git/*" | head -1 | grep -q .; then
find . -name "*.md" -not -path "./node_modules/*" -not -path "./.git/*" -print0 | xargs -0 markdownlint --config .markdownlint.json || markdownlint **/*.md
echo "✅ Markdown lint check completed successfully"
else
echo "ℹ️ No Markdown files found to check"
fi
+5
View File
@@ -0,0 +1,5 @@
{
"MD026": false,
"default": true,
"line-length": false
}
+41
View File
@@ -0,0 +1,41 @@
# Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socioeconomic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to a positive environment for our community include:
- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
- The use of sexualized language or imagery and unwelcome sexual attention or advances
- Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or electronic address, without explicit permission
- Other conduct which could reasonably be considered inappropriate in a professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
## Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [insert contact method here]. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances.
## Attribution
This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at [https://www.contributor-covenant.org/version/1/4/](https://www.contributor-covenant.org/version/1/4/).
For more details, visit the [Open Source Initiative](https://opensource.org/).
+32
View File
@@ -0,0 +1,32 @@
# Contributing
Contributions from everyone are welcomed. To keep the roadmap practical, accessible, and high quality, the following guidelines should be followed:
## 1. Prioritize Beginner-Friendliness
- Resources and explanations understandable for beginners should be added.
- Advanced or specialized topics are welcomed and their inclusion can enrich the roadmap, but they should be explicitly labeled as advanced so beginners are not overwhelmed when choosing resources.
## 2. Resource Selection Policy
- Free and open resources are preferred to maximize accessibility.
- Paid resources may be included only if they clearly offer more value than existing free options; low-quality paid/free content should not be promoted.
- The list should not be spammed with every publication from the same author or creator solely due to their reputation or personal preference. Each resource should be added for a clear reason, with usefulness especially for beginners prioritized.
- Resources should be up-to-date, reliable, and organized under relevant headings.
## 3. Clarity & Structure
- Clear and direct language should be used. Unnecessary jargon should be avoided. If technical terms are used, simple explanations should be added.
- Bullet points and lists should be used for readability and structure.
## 4. Technical Accuracy
- The correctness and relevance of all information and links should be verified.
- If uncertainty exists, feedback should be requested in the pull request.
## 5. Roadmap Alignment
- Contributions should match the topics and structure of the roadmap.
- Areas where contributors have experience or genuine interest should be focused on.
- If a new topic is thought to make the roadmap more complete, it may be suggested. New topics should be proposed thoughtfully, considering their usefulness and relevance for other learners.
+234 -56
View File
@@ -5,12 +5,11 @@
[![GitHub watchers](https://img.shields.io/github/watchers/m3y54m/Embedded-Engineering-Roadmap?style=plastic)](https://github.com/m3y54m/Embedded-Engineering-Roadmap/watchers) [![GitHub watchers](https://img.shields.io/github/watchers/m3y54m/Embedded-Engineering-Roadmap?style=plastic)](https://github.com/m3y54m/Embedded-Engineering-Roadmap/watchers)
[![GitHub contributors](https://img.shields.io/github/contributors/m3y54m/Embedded-Engineering-Roadmap?style=plastic)](https://github.com/m3y54m/Embedded-Engineering-Roadmap/graphs/contributors) [![GitHub contributors](https://img.shields.io/github/contributors/m3y54m/Embedded-Engineering-Roadmap?style=plastic)](https://github.com/m3y54m/Embedded-Engineering-Roadmap/graphs/contributors)
[![GitHub tag (with filter)](https://img.shields.io/github/v/tag/m3y54m/Embedded-Engineering-Roadmap?style=plastic&label=latest)](https://github.com/m3y54m/Embedded-Engineering-Roadmap/releases/latest) [![GitHub tag (with filter)](https://img.shields.io/github/v/tag/m3y54m/Embedded-Engineering-Roadmap?style=plastic&label=latest)](https://github.com/m3y54m/Embedded-Engineering-Roadmap/releases/latest)
[![GitHub release (by tag)](https://img.shields.io/github/downloads/m3y54m/Embedded-Engineering-Roadmap/latest/total?style=plastic)](https://github.com/m3y54m/Embedded-Engineering-Roadmap/releases/latest)
[![GitHub all releases](https://img.shields.io/github/downloads/m3y54m/Embedded-Engineering-Roadmap/total?style=plastic&label=total%20downloads)](https://github.com/m3y54m/Embedded-Engineering-Roadmap/releases) [![GitHub all releases](https://img.shields.io/github/downloads/m3y54m/Embedded-Engineering-Roadmap/total?style=plastic&label=total%20downloads)](https://github.com/m3y54m/Embedded-Engineering-Roadmap/releases)
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. 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.
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! 😀 Embedded engineering demands a solid understanding of hardware functionality as well as software development and programming skills. If you really want to pursue this career you must be highly motivated and passionate about it. As the well-known saying goes, "Hardware is hard!". But don't panic and be patient for the challenges you may encounter along this exciting 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? ## ❓ What is an Embedded System?
@@ -53,40 +52,54 @@ It's crucial to note that each company in the embedded industry may have unique
The roadmap provides a comprehensive guide to the essential topics for a typical "Embedded Systems Engineer" role. By delving into both software and hardware aspects, you can develop the necessary skills to thrive in this dynamic field. However, if you have a clear preference for software or hardware, you can tailor your learning path accordingly. The roadmap provides a comprehensive guide to the essential topics for a typical "Embedded Systems Engineer" role. By delving into both software and hardware aspects, you can develop the necessary skills to thrive in this dynamic field. However, if you have a clear preference for software or hardware, you can tailor your learning path accordingly.
> [!NOTE] 🔗 For more information about the history behind this roadmap, read this article: [Embedded Systems Roadmap: Bridging the Gap](https://interrupt.memfault.com/blog/embedded-systems-roadmap-bridging-the-gap)
<!-- markdownlint-disable MD028 -->
> [!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.** > **Remember that the importance of individual software and hardware skills can differ depending on the specific requirements of the company and the job role.**
> [!TIP]
> [!TIP]
> To differentiate between the types of learning resources and the quality of their content, specific symbols are used before each item. > To differentiate between the types of learning resources and the quality of their content, specific symbols are used before each item.
> >
> **Resource types:** > **Resource types:**
>
> - 📘 : Books > - 📘 : Books
> - 🎞️ : Videos > - 🎞️ : Videos
> - 📝 : Write-ups, articles, and blog posts > - 📝 : Write-ups, articles, and blog posts
> - 🔗 : Other links that do not fit into any of the above categories > - 🔗 : Other links that do not fit into any of the above categories
> >
> **Content quality symbols:** > **Content quality symbols:**
>
> - 👶 : Easy-to-understand and beginner-friendly resources. Refer to them if you do not have prior knowledge in a topic. > - 👶 : Easy-to-understand and beginner-friendly resources. Refer to them if you do not have prior knowledge in a topic.
> - 💎 : Well-known references that have truly invaluable and comprehensive content. Refer to them if you want to deepen your understanding of a topic. > - 💎 : Well-known references that have truly invaluable and comprehensive content. Refer to them if you want to deepen your understanding of a topic.
<!-- markdownlint-enable MD028 -->
> [!IMPORTANT]
> **This repository is not affiliated with or financially supported by any content creator, publisher, or organization. We do not endorse or recommend any specific paid resources. Both free and paid resources are included to provide a range of options, allowing you to choose what best suits your needs and preferences.**
## 😕 Don't Know Where to Start! ## 😕 Don't Know Where to Start!
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. **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.**
### ⚒️ 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. 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 hours of aimless reading. You can refer to books, articles, and courses when faced with difficulties in understanding the problems in real-world projects.
Don't try to build a complex project right away. Start with small, manageable projects to get your feet wet. 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/) - [🔗 Random Nerd Tutorials | Learn ESP32, ESP8266, Arduino, and Raspberry Pi](https://randomnerdtutorials.com/)
- [🔗 Last Minute Engineers](https://lastminuteengineers.com/)
- [🔗 51 STM32 Projects & Tutorials for Beginners and Up - Hackster.io](https://www.hackster.io/stm32/projects) - [🔗 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) - [🔗 STM32 (STM32F103C8) Projects & Tutorials](https://circuitdigest.com/stm32-projects-and-tutorials)
- [🔗 ElectronicWings Projects](https://www.electronicwings.com/projects) - [🔗 ElectronicWings Projects](https://www.electronicwings.com/projects)
- [🔗 STM32 Firmware - Phil’s Lab (YouTube Playlist)](https://youtube.com/playlist?list=PLXSyc11qLa1a4Tqbz228dPZfMrs-KRpzA) - [🔗 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) - [🔗 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/) - [🔗 Embedded Linux On ARM | Projects](https://www.emertxe.com/embedded-systems/embedded-linux-on-arm/elarm-projects/)
- [🔗 Embedded System Project Series - Artful Bytes (YouTube Playlist)](https://www.youtube.com/playlist?list=PLS_iNJJVTtiRV0DZRDcTHnvAuDrKGPN40)
- [🔗 ESP32 ESP-IDF Tutorials & IoT Protocols](https://esp32tutorials.com/)
- [🔗 flip-card](https://github.com/Nicholas-L-Johnson/flip-card)
### 🔎 Search and Ask! ### 🔎 Search and Ask!
@@ -98,23 +111,32 @@ Use search engines to find the answers to your questions.
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. 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) - [🔗 DuckDuckGo AI Chat](https://duckduckgo.com/?q=DuckDuckGo&ia=chat)
- [🔗 Bard](https://bard.google.com) - [🔗 Microsoft Copilot](https://copilot.microsoft.com)
- [🔗 Google Gemini](https://gemini.google.com)
- [🔗 ChatGPT](https://chat.openai.com) - [🔗 ChatGPT](https://chat.openai.com)
- [🔗 Claude AI](https://claude.ai/chats)
- [🔗 Poe - Fast, Helpful AI Chat](https://poe.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: If you have reservations about relying on AI advice alone, you can also ask your questions from real people:
- [🔗 Electrical Engineering Stack Exchange](https://electronics.stackexchange.com/) - [🔗 Electrical Engineering Stack Exchange](https://electronics.stackexchange.com/)
- [🔗 Reddit · r/embedded](https://www.reddit.com/r/embedded/) - [🔗 Reddit · r/embedded](https://www.reddit.com/r/embedded/)
### ✳️ Career Development
As an embedded systems engineer, it's essential to stay up-to-date with industry trends, best practices, and new technologies to advance your career. Here are some resources to help you achieve your career goals:
- [🔗 EmbeddedJobs](https://embedded.jobs/jobs) - A job board focused exclusively on Embedded Systems job market.
### 🎥 Courses and YouTube Contents ### 🎥 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. You may have heard that YouTube is a university. And it's true - there is an extensive 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) - [🎞️ 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 - 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) - [🎞️ Coursera - Embedded Software and Hardware Architecture](https://www.coursera.org/learn/embedded-software-hardware)
- [🎞️ Coursera - ARM Cortex STM32 Deep Dive: Mastering Embedded Systems](https://www.coursera.org/learn/arm-cortex-stm32-deep-dive-mastering-embedded-systems)
- [🎞️ Fastbit Embedded Brain Academy](https://fastbitlab.com/) - [🎞️ Fastbit Embedded Brain Academy](https://fastbitlab.com/)
- [🎞️ Modern Embedded Systems Programming Course (YouTube Playlist)](https://www.youtube.com/playlist?list=PLPW8O6W-1chwyTzI3BHwBLbGQoPFxPAPM) - [🎞️ Modern Embedded Systems Programming Course (YouTube Playlist)](https://www.youtube.com/playlist?list=PLPW8O6W-1chwyTzI3BHwBLbGQoPFxPAPM)
- [🎞️ element14 presents (YouTube Channel)](https://www.youtube.com/@element14presents) - [🎞️ element14 presents (YouTube Channel)](https://www.youtube.com/@element14presents)
@@ -123,14 +145,18 @@ You may have heard that YouTube is a university. And it's true - there is an imm
- [🎞️ Embedded Systems - Jacob Sorber (YouTube Playlist)](https://www.youtube.com/playlist?list=PL9IEJIKnBJjEcPAz6fss-Hx0TLytCOMVC) - [🎞️ Embedded Systems - Jacob Sorber (YouTube Playlist)](https://www.youtube.com/playlist?list=PL9IEJIKnBJjEcPAz6fss-Hx0TLytCOMVC)
- [🎞️ 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: 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) - [🎞️ 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)
- [🎞️ edX - Embedded Systems Essentials with Arm: Getting Started](https://learning.edx.org/course/course-v1:ArmEducation+EDARMXES1.6x+3T2020/home?utm_source=braze&utm_medium=email&utm_campaign=enrollmentconfirmation&utm_content=English+Email+-+Experiment&utm_term=experiment)
- [🎞️ Low Byte Productions](https://www.youtube.com/@lowbyteproductions)
### 🕹️ 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. 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 should be able to effectively use industry-standard APIs and SDKs provided and approved by microcontroller vendors. For example, CMSIS for ARM Cortex, STM32Cube for STM32, ESP-IDF for Espressif microcontrollers, etc. Additionally, the [Arduino Core](https://github.com/arduino/ArduinoCore-API) takes care of most of the low-level hardware-associated operations that you, as an embedded engineer, should be able to handle yourself or at least have a clear understanding of. If you want to become a professional embedded developer, you should be able to effectively use industry-standard APIs and SDKs provided and approved by microcontroller vendors, such as CMSIS for ARM Cortex-M microcontrollers, STM32Cube for STM32, ESP-IDF for Espressif microcontrollers, etc.
- [🔗 Getting Started with Arduino](https://docs.arduino.cc/learn/starting-guide/getting-started-arduino) - [🔗 Getting Started with Arduino](https://docs.arduino.cc/learn/starting-guide/getting-started-arduino)
- [🔗 ArduinoMap (Open-source Arduino course)](https://arduinomap.me/)
- [🎞️ All New Arduino R4 WiFi LESSONS for Absolute Beginners (YouTube Playlist)](https://www.youtube.com/playlist?list=PLGs0VKk2DiYyn0wN335MXpbi3PRJTMmex)
- [🎞️ New Arduino Tutorials (YouTube Playlist)](https://youtube.com/playlist?list=PLGs0VKk2DiYw-L-RibttcvK-WBZm8WLEP) - [🎞️ New Arduino Tutorials (YouTube Playlist)](https://youtube.com/playlist?list=PLGs0VKk2DiYw-L-RibttcvK-WBZm8WLEP)
- [🎞️ Arduino in a commercial product?](https://www.youtube.com/watch?v=c5LzsqeSCAc) - [🎞️ 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) - [🎞️ Arduino Project to Product (YouTube Playlist)](https://www.youtube.com/playlist?list=PLEBQazB0HUyQd6Fsf5NQ75M9llbi1_j_8)
@@ -138,8 +164,11 @@ Additionally, the [Arduino Core](https://github.com/arduino/ArduinoCore-API) tak
### 👨‍🏫 Educational Websites ### 👨‍🏫 Educational Websites
- [🔗 DeepBlueMbedded](https://deepbluembedded.com/) - [🔗 DeepBlueMbedded](https://deepbluembedded.com/)
- [🔗 Digital Electronics Deeds](https://www.digitalelectronicsdeeds.com/index.html)
- [🔗💎 Interrupt Blog by Memfault](https://interrupt.memfault.com/blog/) - [🔗💎 Interrupt Blog by Memfault](https://interrupt.memfault.com/blog/)
- [🔗💎 EmbeddedRelated.com](https://www.embeddedrelated.com/)
- [🔗 ElectronicWings - Hardware Developers Community](https://www.electronicwings.com/) - [🔗 ElectronicWings - Hardware Developers Community](https://www.electronicwings.com/)
- [🔗 EduTecnica (Italian)](https://www.edutecnica.it/)
- [🔗 Microchip University](https://mu.microchip.com/) - [🔗 Microchip University](https://mu.microchip.com/)
- [🔗 Nordic Developer Academy](https://academy.nordicsemi.com/) - [🔗 Nordic Developer Academy](https://academy.nordicsemi.com/)
- [🔗 Electronics Tutorials](https://www.electronics-tutorials.ws) - [🔗 Electronics Tutorials](https://www.electronics-tutorials.ws)
@@ -147,11 +176,14 @@ Additionally, the [Arduino Core](https://github.com/arduino/ArduinoCore-API) tak
- [🔗 Adafruit Learning System](https://learn.adafruit.com/) - [🔗 Adafruit Learning System](https://learn.adafruit.com/)
- [🔗 STM32 World](https://stm32world.com) - [🔗 STM32 World](https://stm32world.com)
- [🔗 ControllersTech](https://controllerstech.com/) - [🔗 ControllersTech](https://controllerstech.com/)
- [🔗 Embedded Systems News - CNX Software](https://www.cnx-software.com/)
- [🔗 News - PioLabs](https://piolabs.com/)
### 🗺️ Other Helpful Roadmaps ### 🗺️ Other Helpful Roadmaps
- [🔗 Embedded Artistry Beginners Roadmap](https://embeddedartistry.com/beginners/) - [🔗 Embedded Artistry Beginners Roadmap](https://embeddedartistry.com/beginners/)
- [🔗 Embedded Systems Skill Tree](https://github.com/sjpiper145/MakerSkillTree/tree/main/Embedded%20Systems%20Skill%20Tree) - [🔗 Embedded Systems Skill Tree](https://github.com/sjpiper145/MakerSkillTree/tree/main/Embedded%20Systems%20Skill%20Tree)
- [🔗 Interactive Embedded Systems Skill Tree (with progress tracking & sync)](https://colonelblacc.github.io/Embedded-Systems-SkillTree)
- [🔗 PCB Design Skill Tree](https://github.com/sjpiper145/MakerSkillTree/tree/main/PCB%20Design%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) - [🔗 FPGA / ASIC Engineering Roadmap](https://github.com/m3y54m/FPGA-ASIC-Roadmap)
@@ -198,7 +230,7 @@ _________________
### ✳️ Electronics ### ✳️ Electronics
#### 🔵 Basic Math & Calculus #### 🔵 Basic Calculus
- [🎞️ Khan Academy - Calculus 1](https://www.khanacademy.org/math/calculus-1) - [🎞️ Khan Academy - Calculus 1](https://www.khanacademy.org/math/calculus-1)
- [📘👶 Calculus For Dummies - Mark Ryan](https://a.co/d/cyvZqE1) - [📘👶 Calculus For Dummies - Mark Ryan](https://a.co/d/cyvZqE1)
@@ -214,6 +246,7 @@ _________________
#### 🔵 Electronics Fundamentals #### 🔵 Electronics Fundamentals
- [🔗👶💎 Build Electronic Circuits - Øyvind Nydal Dahl](https://www.build-electronic-circuits.com/)
- [🎞️👶 Electronic Basics - GreatScott! (YouTube Playlist)](https://youtube.com/playlist?list=PLAROrg3NQn7cyu01HpOv5BWo217XWBZu0) - [🎞️👶 Electronic Basics - GreatScott! (YouTube Playlist)](https://youtube.com/playlist?list=PLAROrg3NQn7cyu01HpOv5BWo217XWBZu0)
- [📘👶 Make: Electronics: Learning by Discovery - Charles Platt](https://a.co/d/fbRoM1R) - [📘👶 Make: Electronics: Learning by Discovery - Charles Platt](https://a.co/d/fbRoM1R)
- [📘👶💎 Electronic Devices: Conventional Current Version - Thomas Floyd, David Buchla, Steven Wetterling](https://a.co/d/1dsS0vx) - [📘👶💎 Electronic Devices: Conventional Current Version - Thomas Floyd, David Buchla, Steven Wetterling](https://a.co/d/1dsS0vx)
@@ -227,18 +260,19 @@ _________________
- [🔗👶 Tiny Tapeout > Digital Design Guide](https://tinytapeout.com/digital_design/) - [🔗👶 Tiny Tapeout > Digital Design Guide](https://tinytapeout.com/digital_design/)
- [📘💎 Digital Design - Morris Mano, Michael Ciletti](https://a.co/d/c3tBaoc) - [📘💎 Digital Design - Morris Mano, Michael Ciletti](https://a.co/d/c3tBaoc)
- [📘👶💎 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) - [📘👶💎 Digital Design and Computer Architecture: RISC-V Edition - Sarah Harris, David Harris](https://a.co/d/61l7Jtb)
- [📘👶 Digital Fundamentals - Thomas L. Floyd](https://a.co/d/2lgJKNX) - [📘👶 Digital Fundamentals - Thomas L. Floyd](https://a.co/d/2lgJKNX)
#### 🔵 Computer Architecture #### 🔵 Computer Architecture
Computer architecture is the backbone of embedded systems, governing the hardware and software interactions. Embedded developers need a grasp of computer architecture to design, develop, and debug embedded software effectively. Expertise in ARM and RISC-V, two prevalent instruction set architectures (ISAs) in embedded systems, is paramount for embedded developers. ARM is the dominant ISA, while RISC-V's open-source nature and flexibility are gaining traction. Computer architecture is the backbone of embedded systems, governing the hardware and software interactions. Embedded developers need a grasp of computer architecture to design, develop, and debug embedded software effectively. Expertise in ARM and RISC-V, two prevalent instruction set architectures (ISAs) in embedded systems, is paramount for embedded developers. ARM is the dominant ISA, while RISC-V's open-source nature and flexibility are gaining traction.
- [📘👶💎 Computer Organization and Design: ARM Edition - David A. Patterson, John L. Hennessy](https://a.co/d/8YPUXG7) - [📘👶💎 Computer Organization and Design: ARM Edition - David A. Patterson, John L. Hennessy](https://a.co/d/8YPUXG7)
- [📘👶💎 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) - [📘👶💎 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) - [📘👶 The Elements of Computing Systems - Noam Nisan, Shimon Schocken](https://a.co/d/cX6jkLl)
- [📘 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 - 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) - [📘 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®-M0 and Cortex-M0+ Processors - Joseph Yiu](https://www.oreilly.com/library/view/the-definitive-guide/9780128032787/)
@@ -249,12 +283,12 @@ _________________
### ✳️ Using Test Equipment ### ✳️ Using Test Equipment
Embedded systems often require specialized test equipment to verify their functionality and performance. This equipment includes multimeters, oscilloscopes, logic analyzers, function generators, power supplies, and other tools that allow engineers to measure signals, inject stimuli, and monitor the behavior of embedded systems. Embedded systems often require specialized test equipment to verify their functionality and performance. This equipment includes multimeters, oscilloscopes, logic analyzers, function generators, power supplies, and other tools that allow engineers to measure signals, inject stimuli, and monitor the behavior of embedded systems.
#### 🔵 Multimeter #### 🔵 Multimeter
- [🎞️👶 Learn How to Use a Multimeter!](https://youtu.be/4lAyzRxsbDc) - [🎞️👶 Learn How to Use a Multimeter!](https://youtu.be/4lAyzRxsbDc)
- [📝👶 How to Use a Multimeter ](https://learn.sparkfun.com/tutorials/how-to-use-a-multimeter/all) - [📝👶 How to Use a Multimeter](https://learn.sparkfun.com/tutorials/how-to-use-a-multimeter/all)
#### 🔵 Logic / Protocol Analyzer #### 🔵 Logic / Protocol Analyzer
@@ -288,19 +322,29 @@ Breadboarding is a hands-on approach to prototyping circuits, providing a versat
#### 🔵 PCB Design / EMC #### 🔵 PCB Design / EMC
- [🎞️ Altium Academy YouTube Channel](https://www.youtube.com/@AltiumAcademy) - [🎞️💎 Altium Academy YouTube Channel](https://www.youtube.com/@AltiumAcademy)
- [🎞️ Robert Feranec YouTube Channel](https://www.youtube.com/@RobertFeranec) - [🎞️💎 Robert Feranec YouTube Channel](https://www.youtube.com/@RobertFeranec)
- [🎞️👶 Altium Tutorials for Beginners - Robert Feranec (YouTube Playlist)](https://www.youtube.com/playlist?list=PLXvLToQzgzdduBaD4horowdWgcG5uGUW4) - [🎞️👶 Altium Tutorials for Beginners - Robert Feranec (YouTube Playlist)](https://www.youtube.com/playlist?list=PLXvLToQzgzdduBaD4horowdWgcG5uGUW4)
- [🎞️👶 Create PCBs for Rapid Prototyping - DigiKey (YouTube Playlist)](https://www.youtube.com/playlist?list=PLEBQazB0HUyRVK1RpHIjyjuTxn5srz6XM) - [🎞️👶 Create PCBs for Rapid Prototyping - DigiKey (YouTube Playlist)](https://www.youtube.com/playlist?list=PLEBQazB0HUyRVK1RpHIjyjuTxn5srz6XM)
- [🎞️👶💎 PCB Design for Beginners - Altium Academy (YouTube Playlist)](https://www.youtube.com/playlist?list=PL3aaAq2OJU5EsYtNwTPHNO3RHNJN34FbO)
- [🎞️ How to Make a Raspberry Pi Compute Module 4 Carrier Board - DigiKey (YouTube Playlist)](https://www.youtube.com/playlist?list=PLEBQazB0HUyRwjr761b-MLNEu8FA8WKSG) - [🎞️ How to Make a Raspberry Pi Compute Module 4 Carrier Board - DigiKey (YouTube Playlist)](https://www.youtube.com/playlist?list=PLEBQazB0HUyRwjr761b-MLNEu8FA8WKSG)
- [🎞️ How To Learn PCB Design (My Thoughts, Journey, and Resources) - Phil's Lab #87](https://youtu.be/aODkA2mrimQ) - [🎞️💎 How To Learn PCB Design (My Thoughts, Journey, and Resources) - Phil's Lab #87](https://youtu.be/aODkA2mrimQ)
- [🎞️👶 KiCad 6 STM32 PCB Design Full Tutorial - Phil's Lab #65](https://youtu.be/aVUqaB0IMh4) - [🎞️👶 KiCad 6 STM32 PCB Design Full Tutorial - Phil's Lab #65](https://youtu.be/aVUqaB0IMh4)
- [🎞️👶 Intro to KiCad - DigiKey (YouTube Playlist)](https://www.youtube.com/watch?v=vaCVh2SAZY4&list=PLEBQazB0HUyR24ckSZ5u05TZHV9khgA1O) - [🎞️👶 Intro to KiCad - DigiKey (YouTube Playlist)](https://www.youtube.com/watch?v=vaCVh2SAZY4&list=PLEBQazB0HUyR24ckSZ5u05TZHV9khgA1O)
- [🎞️ PCB Design for EMI & SI - Phil's Lab #64](https://www.youtube.com/watch?v=VtzPL8wQ8-E) - [🎞️💎 PCB Design for EMI & SI - Phil's Lab #64](https://www.youtube.com/watch?v=VtzPL8wQ8-E)
- [🎞️ PCB Design for Advanced Users (YouTube Playlist)](https://youtube.com/playlist?list=PL3aaAq2OJU5EWfYT_Z93tc9pBF_Sidba_) - [🎞️💎 PCB Design for Advanced Users (YouTube Playlist)](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) - [🎞️💎 PCB Knowledge [PCB Production Tips By PCBWay] (YouTube Playlist)](https://www.youtube.com/playlist?list=PLzxdr3n97eVtHuh7gnDzMubuO836kvfu7)
- [🎞️ Many EMC Tips to Help You Design Better PCB Boards (with Keith Armstrong)](https://www.youtube.com/watch?v=gHF5JyJF-N4) - [🎞️💎Udemy – High-Speed Board Design Course System On Module -EsteemPCB](https://www.udemy.com/course/highspeed_board_design_course)
- [🎞️💎Udemy – Advanced Hardware and PCB Design Masterclass 2022](https://www.udemy.com/course/advanced-hardware-design-course)
- [🎞️💎 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)
- [🔗 LearnEMC - EMC Resources](https://learnemc.com/emc-resources) - [🔗 LearnEMC - EMC Resources](https://learnemc.com/emc-resources)
- [🔗 A Better Way to Build PCBs - Flux AI](https://www.flux.ai/p/)
- [🔗 Monosketch](https://monosketch.io/)
- [🔗 EasyEDA](https://easyeda.com/it)
- [🔗 Fritzing](https://fritzing.org/)
- [🔗 Cirkit Designer](https://www.cirkitstudio.com/)
- [🔗 withdiode](https://www.withdiode.com/)
#### 🔵 Soldering / Rework #### 🔵 Soldering / Rework
@@ -331,6 +375,14 @@ _________________
Mastering programming fundamentals and software development principles is essential for a successful embedded design. Embedded systems demand efficient code, optimized data management, reusable design patterns, and effective memory management to function effectively in resource-constrained environments. Embedded developers must possess a strong foundation in these core concepts to create reliable and performant embedded systems. Mastering programming fundamentals and software development principles is essential for a successful embedded design. Embedded systems demand efficient code, optimized data management, reusable design patterns, and effective memory management to function effectively in resource-constrained environments. Embedded developers must possess a strong foundation in these core concepts to create reliable and performant embedded systems.
#### 🔵 Basic Discrete Mathematics
- [🎞️ Coursera - Introduction to Discrete Mathematics for Computer Science Specialization](https://www.coursera.org/specializations/discrete-mathematics)
- [📘👶 Open Access Discrete Mathematics Books by LibreTexts](https://math.libretexts.org/Bookshelves/Combinatorics_and_Discrete_Mathematics)
- [📘👶 Essential Discrete Mathematics for computer science by Lewis HARRY., Zax R. ACM DL](https://dl.acm.org/doi/book/10.5555/3388468)
- [📘👶 Guide to Discrete Mathematics - Gerard O'Regan, Springer](https://link.springer.com/book/10.1007/978-3-030-81588-2)
- [📘💎 Bridge to Abstract Mathematics, AMS](https://bookstore.ams.org/view?ProductCode=TEXT/22)
#### 🔵 Algorithms & Data Structures #### 🔵 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)
@@ -339,21 +391,25 @@ Mastering programming fundamentals and software development principles is essent
- [🎞️ Udemy – Embedded Systems State Machines & Data Structures](https://www.udemy.com/course/embedded-systems-state-machines-data-structures-like-a-pro/) - [🎞️ Udemy – Embedded Systems State Machines & Data Structures](https://www.udemy.com/course/embedded-systems-state-machines-data-structures-like-a-pro/)
- [🔗 Data Structures in C](https://www.sanfoundry.com/c-programming-examples-data-structures/) - [🔗 Data Structures in C](https://www.sanfoundry.com/c-programming-examples-data-structures/)
- [🎞️ Data Structures - Full Course Using C and C++](https://www.youtube.com/watch?v=B31LgI4Y4DQ) - [🎞️ Data Structures - Full Course Using C and C++](https://www.youtube.com/watch?v=B31LgI4Y4DQ)
- [🔗 Hello Algo](https://www.hello-algo.com/en/)
#### 🔵 Design Patterns #### 🔵 Design Patterns
- [📝 Practical Design Patterns: Opaque Pointers and Objects in C](https://interrupt.memfault.com/blog/opaque-pointers) - [📝 Practical Design Patterns: Opaque Pointers and Objects in C](https://interrupt.memfault.com/blog/opaque-pointers)
- [📘💎 Design Patterns for Embedded Systems in C - Bruce Powel Douglass](https://www.oreilly.com/library/view/design-patterns-for/9781856177078/) - [📘💎 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/) - [📘💎 Making Embedded Systems: Design Patterns for Great Software - Elecia White](https://www.oreilly.com/library/view/making-embedded-systems/9781449308889/)
- [🎧💎 Making Embedded Systems: Design Patterns for Great Software - Elecia White (Audio Book)](https://www.audiobooks.com/audiobook/making-embedded-systems-design-patterns-for-great-software/814297)
- [🔗 Design Patterns - Refactoring Guru](https://refactoring.guru/design-patterns)
#### 🔵 State Machines #### 🔵 State Machines
- [📝 Programming embedded systems the easy way – with state machines](https://www.embedded.com/programming-embedded-systems-the-easy-way-with-state-machines/) - [📝 Programming embedded systems the easy way – with state machines](https://www.embedded.com/programming-embedded-systems-the-easy-way-with-state-machines/)
- [🎞️ State Machines (YouTube Playlist)](https://www.youtube.com/playlist?list=PLPW8O6W-1chxym7TgIPV9k5E8YJtSBToI) - [🎞️💎 State Machines (YouTube Playlist)](https://www.youtube.com/playlist?list=PLPW8O6W-1chxym7TgIPV9k5E8YJtSBToI)
- [🎞️ Event-Driven Programming (YouTube Playlist)](https://www.youtube.com/playlist?list=PLPW8O6W-1chx8Y7Oq2gOE0NUPXmQxu2Wr) - [🎞️💎 Event-Driven Programming (YouTube Playlist)](https://www.youtube.com/playlist?list=PLPW8O6W-1chx8Y7Oq2gOE0NUPXmQxu2Wr)
- [🎞️ Udemy - Embedded System Design using UML State Machines](https://www.udemy.com/course/embedded-system-design-using-uml-state-machines/) - [🎞️💎 Udemy - Embedded System Design using UML State Machines](https://www.udemy.com/course/embedded-system-design-using-uml-state-machines/)
- [📝 “Input-Driven” vs. Event-Driven State Machines](https://www.state-machine.com/input-driven-vs-event-driven-state-machines) - [📝 “Input-Driven” vs. Event-Driven State Machines](https://www.state-machine.com/input-driven-vs-event-driven-state-machines)
- [📝 State Machines for Event-Driven Systems](https://barrgroup.com/embedded-systems/how-to/state-machines-event-driven-systems) - [📝 State Machines for Event-Driven Systems](https://barrgroup.com/embedded-systems/how-to/state-machines-event-driven-systems)
- [📘 Practical UML Statecharts in C/C++ by Miro Samek](https://www.amazon.sg/Practical-UML-Statecharts-Event-Driven-Programming/dp/0750687061)
#### 🔵 Memory Management #### 🔵 Memory Management
@@ -367,7 +423,7 @@ Mastering programming fundamentals and software development principles is essent
_________________ _________________
### ✳️ Programming Languages ### ✳️ Programming Languages
Low-level languages like C and assembly provide direct hardware access, enabling efficient code optimization for resource-constrained embedded systems. System-level languages like C++ and Rust offer a higher level of abstraction for complex embedded applications, while Python is often employed for testing embedded systems due to its simplicity. Low-level languages like C and assembly provide direct hardware access, enabling efficient code optimization for resource-constrained embedded systems. System-level languages like C++ and Rust offer a higher level of abstraction for complex embedded applications, while Python is often employed for testing embedded systems due to its simplicity.
@@ -380,30 +436,55 @@ Low-level languages like C and assembly provide direct hardware access, enabling
- [🎞️💎 Microchip University - C Programming Callbacks](https://mu.microchip.com/c-programming-callbacks) - [🎞️💎 Microchip University - C Programming Callbacks](https://mu.microchip.com/c-programming-callbacks)
- [🎞️👶 C Programming for Beginners | Full Course](https://www.youtube.com/watch?v=ssJY5MDLjlo) - [🎞️👶 C Programming for Beginners | Full Course](https://www.youtube.com/watch?v=ssJY5MDLjlo)
- [🎞️ C Programming Tutorials (YouTube Playlist)](https://www.youtube.com/playlist?list=PLA1FTfKBAEX4hblYoH6mnq0zsie2w6Wif) - [🎞️ C Programming Tutorials (YouTube Playlist)](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/) - [🔗👶 C by Example](https://www.cbyexample.com/)
- [📘👶 The Little Book of C](https://little-book-of.github.io/c/books/en-US/book.html)
- [📘 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) - [📘 Effective C - An Introduction to Professional C Programming - Robert C. Seacord](https://nostarch.com/Effective_C)
- [📘 Modern C - Jens Gustedt](https://gustedt.gitlabpages.inria.fr/modern-c/)
- [🔗 Embedded C Coding Standard](https://barrgroup.com/embedded-systems/books/embedded-c-coding-standard) - [🔗 Embedded C Coding Standard](https://barrgroup.com/embedded-systems/books/embedded-c-coding-standard)
- [🔗 newlib C Library Documentation](https://sourceware.org/newlib/docs.html) - [🔗 newlib C Library Documentation](https://sourceware.org/newlib/docs.html)
- [🔗 The GNU C Library (glibc)](https://www.gnu.org/software/libc/documentation.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) - [📝 From Zero to main(): Bare metal C](https://interrupt.memfault.com/blog/zero-to-main-1)
- [📝 From Zero to main(): Bootstrapping libc with Newlib](https://interrupt.memfault.com/blog/boostrapping-libc-with-newlib) - [📝 From Zero to main(): Bootstrapping libc with Newlib](https://interrupt.memfault.com/blog/boostrapping-libc-with-newlib)
- [📝 Introduction to Nintendo DS Programming](https://www.patater.com/files/projects/manual/manual.html)
- [🎞️👶 Learn C Programming and OOP with Dr. Chuck](https://www.youtube.com/watch?v=PaPN51Mm5qQ)
- [📘 Extreme C - Kamran Amini](https://www.packtpub.com/free-ebook/extreme-c/9781789343625)
- [🎞️👶 Coursera - C Programming with Linux Specialization](https://www.coursera.org/specializations/c-programming-linux)
#### 🔵 C++ #### 🔵 C++
- [📝 Modern C++ in Embedded Development: (Don't Fear) The ++](https://www.embeddedrelated.com/showarticle/1532.php) - [📝 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++ On Embedded Systems](https://blog.mbedded.ninja/programming/languages/c-plus-plus/cpp-on-embedded-systems/)
- [📝💎 Bare Metal C++ - Alexey Rybachuk](https://arobenko.github.io/bare_metal_cpp/)
- [🎞️💎 C++ in Constrained Environments - Bjarne Stroustrup - CppCon 2022](https://www.youtube.com/watch?v=2BuJjaGuInI)
- [🎞️👶 C++ Tutorial for Beginners - Full Course](https://www.youtube.com/watch?v=vLnPwxZdW4Y) - [🎞️👶 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) - [🎞️ C++ by The Cherno (YouTube Playlist)](https://youtube.com/playlist?list=PLlrATfBNZ98dudnM48yfGUldqGD0S4FFb)
- [🎞️👶💎 Udemy - Beginning C++ Programming - From Beginner to Beyond](https://www.udemy.com/course/beginning-c-plus-plus-programming/)
- [🎞️💎 CppCon Conferences - YouTube](https://www.youtube.com/@CppCon/playlists)
- [📘💎 A Tour of C++ (3rd Edition) - Bjarne Stroustrup](https://www.stroustrup.com/tour3.html)
- [📘💎 The C++ programming Language (C++11) - Bjarne Stroustrup](https://www.stroustrup.com/4th.html)
- [📘💎 Programming -- Principles and Practice Using C++ (3rd Edition) - Bjarne Stroustrup](https://www.stroustrup.com/programming.html)
- [📘💎 Real-Time C++: Efficient Object-Oriented and Template Microcontroller Programming - Christopher Kormanyos](https://link.springer.com/book/10.1007/978-3-662-62996-3) - [📘💎 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/) - [📘 Effective Modern C++ - Scott Meyers](https://www.oreilly.com/library/view/effective-modern-c/9781491908419/)
##### Additional resources from Bjarne Stroustrup, creator of C++
- [🎞️👶 The Essence of C++ by Bjarne Stroustrup - YouTube](https://www.youtube.com/watch?v=86xWVb4XIyE)
- [🎞️👶💎 Delivering Safe C++ by Bjarne Stroustrup - CppCon 2023](https://www.youtube.com/watch?v=I8UvQKvOSSw)
- [🎞️👶💎 The Design of C++ by Bjarne Stroustrup Computer History - YouTube](https://www.youtube.com/watch?v=69edOm889V4)
- [📘 The Design and Evolution of C++ - Bjarne Stroustrup](https://www.stroustrup.com/dne.html)
- [📘💎 Papers on C++ by Bjarne Stroustrup - Stroustrup's Website](https://www.stroustrup.com/papers.html)
- [🔗 Papers on C++ by Bjarne Stroustrup - ACM DL](https://dl.acm.org/keyword/C%2B%2B?expand=all&ContribRoleAndId=author%3A10.1145%2Fcontrib-81100106139)
#### 🔵 Assembly #### 🔵 Assembly
- [📝👶 Introduction to ARM Assembly Basics](https://azeria-labs.com/writing-arm-assembly-part-1/) - [📝👶 Introduction to ARM Assembly Basics](https://azeria-labs.com/writing-arm-assembly-part-1/)
- [🎞️ Udemy – ARM GNU Assembly Programming From Ground Up](https://www.udemy.com/course/arm-gnu-assembly-programming-from-ground-uptm/) - [🎞️ Udemy – ARM GNU Assembly Programming From Ground Up](https://www.udemy.com/course/arm-gnu-assembly-programming-from-ground-uptm/)
- [🎞️ Assembly Language Programming with ARM – Full Tutorial for Beginners](https://www.youtube.com/watch?v=gfmRrPjnEw4) - [🎞️ Assembly Language Programming with ARM – Full Tutorial for Beginners](https://www.youtube.com/watch?v=gfmRrPjnEw4)
- [📝 How to Use Inline Assembly Language in C Code](https://gcc.gnu.org/onlinedocs/gcc/extensions-to-the-c-language-family/how-to-use-inline-assembly-language-in-c-code.html) - [📝 How to Use Inline Assembly Language in C Code](https://gcc.gnu.org/onlinedocs/gcc/Using-Assembly-Language-with-C.html)
- [📘 Raspberry Pi Assembly Language Programming : ARM Processor Coding](https://www.amazon.com/Raspberry-Assembly-Language-Programming-Processor/dp/1484252861)
- [🔗 Battery info program for x86-64 Linux laptops in 298 bytes of machine code](https://github.com/meribold/btry)
#### 🔵 Python #### 🔵 Python
@@ -418,6 +499,7 @@ Low-level languages like C and assembly provide direct hardware access, enabling
- [🔗 MicroPython 101 | Arduino Documentation](https://docs.arduino.cc/micropython-course/) - [🔗 MicroPython 101 | Arduino Documentation](https://docs.arduino.cc/micropython-course/)
- [🔗 CircuitPython](https://circuitpython.org/) - [🔗 CircuitPython](https://circuitpython.org/)
- [📝 The Pros and Cons of Designing Embedded Systems with MicroPython](https://www.designnews.com/electronics-test/pros-and-cons-designing-embedded-systems-micropython) - [📝 The Pros and Cons of Designing Embedded Systems with MicroPython](https://www.designnews.com/electronics-test/pros-and-cons-designing-embedded-systems-micropython)
- [📝 Programming the ESP32 with MicroPython](https://wolles-elektronikkiste.de/en/programming-the-esp32-with-micropython)
#### 🔵 Rust #### 🔵 Rust
@@ -426,10 +508,13 @@ Low-level languages like C and assembly provide direct hardware access, enabling
- [🎞️ The Future of Programming: Rust (YouTube Playlist)](https://www.youtube.com/playlist?list=PLc7W4b0WHTAUAEAguiqpNa5H0QqXJIJI6) - [🎞️ The Future of Programming: Rust (YouTube Playlist)](https://www.youtube.com/playlist?list=PLc7W4b0WHTAUAEAguiqpNa5H0QqXJIJI6)
- [🔗 Community Rust support projects for STM32 microcontrollers](https://github.com/stm32-rs) - [🔗 Community Rust support projects for STM32 microcontrollers](https://github.com/stm32-rs)
- [🔗 Rust on ESP Community](https://github.com/esp-rs) - [🔗 Rust on ESP Community](https://github.com/esp-rs)
- [🎞️ Embedded Rust su ESP32 (Italian) - YouTube Playlist](https://www.youtube.com/playlist?list=PLT--ndZEB54ek5_Zv6x6WCioh5m35zh5i)
- [📝 Rust on STM32: Getting started](https://jonathanklimt.de/electronics/programming/embedded-rust/rust-on-stm32-2/) - [📝 Rust on STM32: Getting started](https://jonathanklimt.de/electronics/programming/embedded-rust/rust-on-stm32-2/)
- [📝 From Zero to main(): Bare metal Rust](https://interrupt.memfault.com/blog/zero-to-main-rust-1) - [📝 From Zero to main(): Bare metal Rust](https://interrupt.memfault.com/blog/zero-to-main-rust-1)
- [📝 Writing an OS in Rust - Philipp Oppermann's blog](https://os.phil-opp.com/) - [📝 Writing an OS in Rust - Philipp Oppermann's blog](https://os.phil-opp.com/)
- [📝 Kernel Driver with Rust in 2022](https://not-matthias.github.io/posts/kernel-driver-with-rust/) - [📝 Kernel Driver with Rust in 2022](https://not-matthias.github.io/posts/kernel-driver-with-rust/)
- [🔗 Rustlings - Small exercises to get you used to reading and writing Rust code!](https://rustlings.cool/)
- [🔗 Learn Rust the Effective Way](https://www.rustfinity.com/)
#### 🔵 Zig #### 🔵 Zig
@@ -447,12 +532,13 @@ Microcontrollers are integrated circuits (ICs) that combine a microprocessor, me
Some popular microcontroller families include AVR, PIC, STM32, MSP430, nRF, and ESP32. Choosing the right microcontroller involves assessing application requirements, processing power, memory needs, and input/output capabilities. Consider ease of use, cost, reliability, availability, and future expansion. Some popular microcontroller families include AVR, PIC, STM32, MSP430, nRF, and ESP32. Choosing the right microcontroller involves assessing application requirements, processing power, memory needs, and input/output capabilities. Consider ease of use, cost, reliability, availability, and future expansion.
- [📝 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/) - [📝 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/)
- [📝 How to Choose the Right Microcontroller for Your Application ](https://www.allaboutcircuits.com/technical-articles/how-to-choose-the-right-microcontroller-for-your-application/) - [📝 How to Choose the Right Microcontroller for Your Application](https://www.allaboutcircuits.com/technical-articles/how-to-choose-the-right-microcontroller-for-your-application/)
- [📝 How to Read a Microcontroller Datasheet: Introduction and First Steps](https://www.allaboutcircuits.com/technical-articles/how-to-read-a-microcontroller-datasheet-introduction-and-first-steps2/) - [📝 How to Read a Microcontroller Datasheet: Introduction and First Steps](https://www.allaboutcircuits.com/technical-articles/how-to-read-a-microcontroller-datasheet-introduction-and-first-steps2/)
- [📘👶 Make: AVR Programming - Elliot Williams](https://www.oreilly.com/library/view/make-avr-programming/9781449356484/) - [📘👶 Make: AVR Programming - Elliot Williams](https://www.oreilly.com/library/view/make-avr-programming/9781449356484/)
- [🎞️👶💎 NewbieHack - Microcontroller Tutorial - A Beginners Guide (AVR)](https://www.youtube.com/playlist?list=PLE72E4CFE73BD1DE1) - [🎞️👶💎 NewbieHack - Microcontroller Tutorial - A Beginners Guide (AVR)](https://www.youtube.com/playlist?list=PLE72E4CFE73BD1DE1)
- [🎞️👶 Getting Started with STM32 and Nucleo (YouTube Playlist)](https://youtube.com/playlist?list=PLEBQazB0HUyRYuzfi4clXsKUSgorErmBv) - [🎞️👶 Getting Started with STM32 and Nucleo (YouTube Playlist)](https://youtube.com/playlist?list=PLEBQazB0HUyRYuzfi4clXsKUSgorErmBv)
- [📘💎 Mastering STM32 - Carmine Noviello](https://leanpub.com/mastering-stm32-2nd) - [📘💎 Mastering STM32 - Carmine Noviello](https://leanpub.com/mastering-stm32-2nd)
- [📘💎 Developing IoT Projects with ESP32 - Vedat Ozan Oner](https://www.packtpub.com/product/developing-iot-projects-with-esp32-second-edition/9781803237688)
- [🎞️👶 Intro to Raspberry Pi Pico and RP2040 (YouTube Playlist)](https://www.youtube.com/playlist?list=PLEBQazB0HUyQO6rJxKr2umPCgmfAU-cqR) - [🎞️👶 Intro to Raspberry Pi Pico and RP2040 (YouTube Playlist)](https://www.youtube.com/playlist?list=PLEBQazB0HUyQO6rJxKr2umPCgmfAU-cqR)
- [🔗 Getting started with STM32: STM32 step-by-step](https://wiki.st.com/stm32mcu/wiki/Category:Getting_started_with_STM32_:_STM32_step_by_step) - [🔗 Getting started with STM32: STM32 step-by-step](https://wiki.st.com/stm32mcu/wiki/Category:Getting_started_with_STM32_:_STM32_step_by_step)
- [🎞️ Getting Started With AVR (YouTube Playlist)](https://www.youtube.com/playlist?list=PLtQdQmNK_0DRhBWYZ32BEILOykXLpJ8tP) - [🎞️ Getting Started With AVR (YouTube Playlist)](https://www.youtube.com/playlist?list=PLtQdQmNK_0DRhBWYZ32BEILOykXLpJ8tP)
@@ -466,6 +552,7 @@ Some popular microcontroller families include AVR, PIC, STM32, MSP430, nRF, and
- [📘💎 Embedded Systems Design using the MSP430FR2355 LaunchPad - Brock J. LaMeres](https://link.springer.com/book/10.1007/978-3-030-40574-8) - [📘💎 Embedded Systems Design using the MSP430FR2355 LaunchPad - Brock J. LaMeres](https://link.springer.com/book/10.1007/978-3-030-40574-8)
- [📘💎 Building Embedded Systems: Programmable Hardware - Changyi Gu](https://link.springer.com/book/10.1007/978-1-4842-1919-5) - [📘💎 Building Embedded Systems: Programmable Hardware - Changyi Gu](https://link.springer.com/book/10.1007/978-1-4842-1919-5)
- [🔗 Awesome Embedded: A curated list of awesome embedded programming](https://github.com/nhivp/Awesome-Embedded) - [🔗 Awesome Embedded: A curated list of awesome embedded programming](https://github.com/nhivp/Awesome-Embedded)
- [🔗 Awesome Electronics: A curated list of electronics resources](https://github.com/kitspace/awesome-electronics)
#### 🔵 GPIO #### 🔵 GPIO
@@ -484,16 +571,24 @@ Some popular microcontroller families include AVR, PIC, STM32, MSP430, nRF, and
#### 🔵 Timers / Counters #### 🔵 Timers / Counters
- [📝 Introduction to Microcontroller Timers: Periodic Timers](https://www.allaboutcircuits.com/technical-articles/introduction-to-microcontroller-timers-periodic-timers/)
- [📝 AVR Timer programming](https://exploreembedded.com/wiki/AVR_Timer_programming)
- [🎞️ STM32 TIMERS (YouTube Playlist)](https://www.youtube.com/playlist?list=PLfIJKC1ud8gjLZBzjE3kKBMDEH_lUc428) - [🎞️ STM32 TIMERS (YouTube Playlist)](https://www.youtube.com/playlist?list=PLfIJKC1ud8gjLZBzjE3kKBMDEH_lUc428)
#### 🔵 PWM #### 🔵 PWM (Pulse Width Modulation)
- [🎞️ What is PWM?](https://www.youtube.com/watch?v=B_Ysdv1xRbA) - [🎞️ What is PWM?](https://www.youtube.com/watch?v=B_Ysdv1xRbA)
- [📝 Pulse-width Modulation (PWM) Timers in Microcontrollers](https://www.allaboutcircuits.com/technical-articles/introduction-to-microcontroller-timers-pwm-timers/)
- [🎞️ STM32 Guide #3: PWM + Timers](https://www.youtube.com/watch?v=AjN58ceQaF4) - [🎞️ STM32 Guide #3: PWM + Timers](https://www.youtube.com/watch?v=AjN58ceQaF4)
#### 🔵 RTC (Real Time Clock)
- [📝 Real Time Clocks (RTCs) in Microcontroller Timers](https://www.allaboutcircuits.com/technical-articles/introduction-to-microcontroller-timers-real-time-clocks/)
#### 🔵 Watchdog #### 🔵 Watchdog
- [📝 A Guide to Watchdog Timers for Embedded Systems](https://interrupt.memfault.com/blog/firmware-watchdog-best-practices) - [📝 A Guide to Watchdog Timers for Embedded Systems](https://interrupt.memfault.com/blog/firmware-watchdog-best-practices)
- [📝 Watchdog Timers in Microcontrollers](https://www.allaboutcircuits.com/technical-articles/watchdog-timers-microcontroller-timers/)
- [🎞️ The Watchdog Timer on Arduino](https://www.youtube.com/watch?v=AzZBgH67mgE) - [🎞️ The Watchdog Timer on Arduino](https://www.youtube.com/watch?v=AzZBgH67mgE)
- [🎞️ WATCHDOGS in STM32 || IWDG and WWDG || CubeIDE](https://www.youtube.com/watch?v=AelNsnpfbcM) - [🎞️ WATCHDOGS in STM32 || IWDG and WWDG || CubeIDE](https://www.youtube.com/watch?v=AelNsnpfbcM)
@@ -545,7 +640,11 @@ Embedded systems often communicate with other devices or external systems via in
#### 🔵 ‌Basic Protocols #### 🔵 ‌Basic Protocols
- [🎞️👶 Understanding Serial Protocols](https://www.youtube.com/watch?v=LEz5UCN3aHA) - [🎞️👶 Understanding Serial Protocols](https://www.youtube.com/watch?v=LEz5UCN3aHA)
- [🎞️👶 Serial Protocol Fundamentals](https://www.youtube.com/watch?v=yz7h5xd18OE)
- [📝👶 Understanding and Selecting in 2024: I2C, SPI, UART Explained](https://www.parlezvoustech.com/en/comparaison-protocoles-communication-i2c-spi-uart/)
- [📝👶 Basics of Wired Embedded Protocols](https://piolabs.com/blog/engineering/wired-embedded-protocols-basics.html)
- [🎞️ PROTOCOLS: UART - I2C - SPI - Serial communications #001](https://www.youtube.com/watch?v=IyGwvGzrqp8) - [🎞️ PROTOCOLS: UART - I2C - SPI - Serial communications #001](https://www.youtube.com/watch?v=IyGwvGzrqp8)
- [📝👶 Understanding and Selecting in 2024: I2C, SPI, UART Explained](https://www.parlezvoustech.com/en/comparaison-protocoles-communication-i2c-spi-uart/)
##### 🔶 UART ##### 🔶 UART
@@ -584,7 +683,6 @@ Embedded systems often communicate with other devices or external systems via in
- [🎞️ 1-Wire® Technology Overview](https://www.youtube.com/watch?v=CjH-OztKe00) - [🎞️ 1-Wire® Technology Overview](https://www.youtube.com/watch?v=CjH-OztKe00)
#### 🔵 Digital Audio Protocols #### 🔵 Digital Audio Protocols
##### 🔶 I2S ##### 🔶 I2S
@@ -598,16 +696,23 @@ Embedded systems often communicate with other devices or external systems via in
- [🔗 HUAWEI LGA Module - PCM Audio Design Guide](https://www.paoli.cz/out/media/HUAWEI%20LGA%20Module%20PCM%20Audio%20Design%20Guide-V100R001_04(1).pdf) - [🔗 HUAWEI LGA Module - PCM Audio Design Guide](https://www.paoli.cz/out/media/HUAWEI%20LGA%20Module%20PCM%20Audio%20Design%20Guide-V100R001_04(1).pdf)
- [📝 PCM Terminology and Concepts](https://larsimmisch.github.io/pyalsaaudio/terminology.html) - [📝 PCM Terminology and Concepts](https://larsimmisch.github.io/pyalsaaudio/terminology.html)
#### 🔵 Image & Video Protocols #### 🔵 Display & Camera Protocols
##### 🔶 SCCB
- [🔗 SCCB Specification (PDF)](https://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/f2021/jfw225_aei23_dsb298/jfw225_aei23_dsb298/SCCBSpec_AN.pdf)
- [📝 OmniVision OV5640 Software Application Notes (PDF)](https://dlscorp.com/wp-content/uploads/2018/04/OmniVision-OV5640-Software-Application-Notes.pdf)
##### 🔶 MIPI CSI-2 ##### 🔶 MIPI CSI-2
- [🔗 MIPI Camera Serial Interface 2](https://www.mipi.org/specifications/csi-2) - [🔗 MIPI Camera Serial Interface 2](https://www.mipi.org/specifications/csi-2)
- [🎞️ Tutorial: MIPI CSI-2](https://www.youtube.com/watch?v=8REu_h7bzHM) - [🎞️ Tutorial: MIPI CSI-2](https://www.youtube.com/watch?v=8REu_h7bzHM)
- [🔗 AN13573 - i.MX 8/RT MIPI DSI/CSI-2](https://www.nxp.com/docs/en/application-note/AN13573.pdf)
##### 🔶 MIPI DSI ##### 🔶 MIPI DSI
- [🔗 MIPI Display Serial Interface](https://www.mipi.org/specifications/dsi) - [🔗 MIPI Display Serial Interface](https://www.mipi.org/specifications/dsi)
- [🔗 AN4860 - Introduction to DSI host on STM32 MCUs and MPUs](https://www.st.com/resource/en/application_note/an4860-introduction-to-dsi-host-on-stm32-mcus-and-mpus-stmicroelectronics.pdf)
##### 🔶 HDMI ##### 🔶 HDMI
@@ -688,7 +793,7 @@ Embedded systems often communicate with other devices or external systems via in
- [🎞️👶 Microchip University - Ethernet Fundamentals](https://mu.microchip.com/ethernet-fundamentals) - [🎞️👶 Microchip University - Ethernet Fundamentals](https://mu.microchip.com/ethernet-fundamentals)
- [📝 How the Ethernet Protocol Works – A Complete Guide](https://www.freecodecamp.org/news/the-complete-guide-to-the-ethernet-protocol/) - [📝 How the Ethernet Protocol Works – A Complete Guide](https://www.freecodecamp.org/news/the-complete-guide-to-the-ethernet-protocol/)
- [🎞️ What is an Ethernet PHY?](https://www.youtube.com/watch?v=JH3cMYErmKI) - [🎞️ What is an Ethernet PHY?](https://www.youtube.com/watch?v=JH3cMYErmKI)
- [🎞️ The Data Link Layer, MAC Addressing, and the Ethernet Frame](https://youtu.be/_b4dXKB8Pt8) - [🎞️ The Data Link Layer, MAC Addressing, and the Ethernet Frame](https://www.youtube.com/watch?v=_b4dXKB8Pt8)
- [🎞️ Microchip University - Serializer/Deserializer (SerDes) Basics for Your Next Microchip Ethernet PHY Design](https://mu.microchip.com/serializerdeserializer-serdes-basics-for-your-next-microchip-ethernet-phy-design) - [🎞️ Microchip University - Serializer/Deserializer (SerDes) Basics for Your Next Microchip Ethernet PHY Design](https://mu.microchip.com/serializerdeserializer-serdes-basics-for-your-next-microchip-ethernet-phy-design)
- [🎞️ Microchip University - Ethernet Switch Fundamentals](https://mu.microchip.com/ethernet-switch-fundamentals) - [🎞️ Microchip University - Ethernet Switch Fundamentals](https://mu.microchip.com/ethernet-switch-fundamentals)
@@ -702,6 +807,8 @@ Embedded systems often communicate with other devices or external systems via in
- [🎞️ How does USB device discovery work?](https://www.youtube.com/watch?v=N0O5Uwc3C0o) - [🎞️ How does USB device discovery work?](https://www.youtube.com/watch?v=N0O5Uwc3C0o)
- [🎞️ MOOC - STM32 USB training (YouTube Playlist)](https://www.youtube.com/playlist?list=PLnMKNibPkDnFFRBVD206EfnnHhQZI4Hxa) - [🎞️ MOOC - STM32 USB training (YouTube Playlist)](https://www.youtube.com/playlist?list=PLnMKNibPkDnFFRBVD206EfnnHhQZI4Hxa)
- [🎞️ Microchip University - USB2 Hub Fundamentals](https://mu.microchip.com/usb2-hub-fundamentals) - [🎞️ Microchip University - USB2 Hub Fundamentals](https://mu.microchip.com/usb2-hub-fundamentals)
- [🔗 Beyond Logic - USB in a NutShell](https://www.beyondlogic.org/usbnutshell/usb1.shtml)
- [📝 USB for Software Developers: An introduction to writing userspace USB drivers](https://werwolv.net/posts/usb_for_sw_devs/)
##### 🔶 PCIe ##### 🔶 PCIe
@@ -714,6 +821,7 @@ Embedded systems often communicate with other devices or external systems via in
##### 🔶 CAN ##### 🔶 CAN
- [🎞️👶 Microchip University - CAN and CAN FD Protocol and Physical Layer Basics](https://mu.microchip.com/understanding-the-can-fd-protocol) - [🎞️👶 Microchip University - CAN and CAN FD Protocol and Physical Layer Basics](https://mu.microchip.com/understanding-the-can-fd-protocol)
- [📝👶 CAN bus in 2024: Operation, Advantages and Recent Developments](https://www.parlezvoustech.com/en/bus-can-2024-technologie-avantages-evolutions/)
- [🎞️👶 CAN Bus: Serial Communication - How It Works?](https://www.youtube.com/watch?v=JZSCzRT9TTo&t=21s) - [🎞️👶 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 1](https://www.youtube.com/watch?v=YBrU_eZM110)
- [🎞️👶 CAN Bus: A Beginners Guide Part 2](https://www.youtube.com/watch?v=z5CVljiLhvc) - [🎞️👶 CAN Bus: A Beginners Guide Part 2](https://www.youtube.com/watch?v=z5CVljiLhvc)
@@ -736,6 +844,7 @@ Embedded systems often communicate with other devices or external systems via in
- [🔗 lwIP - A Lightweight TCP/IP stack](https://savannah.nongnu.org/projects/lwip/) - [🔗 lwIP - A Lightweight TCP/IP stack](https://savannah.nongnu.org/projects/lwip/)
- [🔗 lwIP (ESP-IDF)](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/lwip.html) - [🔗 lwIP (ESP-IDF)](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/lwip.html)
- [🔗 Developing applications on STM32Cube with LwIP TCP/IP stack](https://www.st.com/resource/en/user_manual/um1713-developing-applications-on-stm32cube-with-lwip-tcpip-stack-stmicroelectronics.pdf) - [🔗 Developing applications on STM32Cube with LwIP TCP/IP stack](https://www.st.com/resource/en/user_manual/um1713-developing-applications-on-stm32cube-with-lwip-tcpip-stack-stmicroelectronics.pdf)
- [📝 Understanding Traceroute](https://tech.stonecharioteer.com/posts/2026/traceroute/)
#### 🔵 Cellular Communication #### 🔵 Cellular Communication
@@ -759,7 +868,7 @@ Embedded systems employ a combination of volatile (SRAM, DRAM, PSRAM) and non-vo
- [📝 NAND and eMMC: All You Need to Know About Flash Memory](https://www.makeuseof.com/tag/nand-emmc-need-know-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 ##### 🔶 NOR / NAND
- [🎞️ QSPI in STM32 || Write and Read || N25Q](https://www.youtube.com/watch?v=xIfh_uYy-OU) - [🎞️ 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) - [🎞️ QSPI in STM32 || Boot from EXT Memory || XIP || N25Q](https://www.youtube.com/watch?v=gAyuF20ok8c)
@@ -806,6 +915,13 @@ Embedded system development often involves simulating or emulating hardware envi
- [🔗👶 Wokwi - Online ESP32, STM32, Arduino Simulator](https://wokwi.com/) - [🔗👶 Wokwi - Online ESP32, STM32, Arduino Simulator](https://wokwi.com/)
- [🔗👶 SimulIDE Circuit Simulator](https://simulide.com/) - [🔗👶 SimulIDE Circuit Simulator](https://simulide.com/)
- [🔗👶 Digital logic designer and circuit simulator designed for educational purposes](https://github.com/hneemann/Digital)
- [🔗👶 EveryCircuit](https://everycircuit.com/)
- [🔗👶 Circuit Simulator Applet](https://www.falstad.com/circuit/)
- [🔗👶 Tinkercad](https://www.tinkercad.com/)
- [🔗👶 Voltsim](https://www.voltsimulator.com/)
- [🔗 Velxio - Arduino & Embedded Board Emulator](https://github.com/davidmonterocrespo24/velxio)
- [🔗 picoZ80](https://eaw.app/picoz80/)
#### 🔵 QEMU #### 🔵 QEMU
@@ -814,6 +930,8 @@ Embedded system development often involves simulating or emulating hardware envi
- [📝 QEMU Simulation - Blinky - STM32F767ZI Full Stack](https://longer-vision-robot.gitbook.io/stm32f767zi-full-stack/chapter-2.-programming-for-stm32/2.4-qemu-simulation-blinky) - [📝 QEMU Simulation - Blinky - STM32F767ZI Full Stack](https://longer-vision-robot.gitbook.io/stm32f767zi-full-stack/chapter-2.-programming-for-stm32/2.4-qemu-simulation-blinky)
- [📝 Emulating a Raspberry Pi in QEMU](https://interrupt.memfault.com/blog/emulating-raspberry-pi-in-qemu) - [📝 Emulating a Raspberry Pi in QEMU](https://interrupt.memfault.com/blog/emulating-raspberry-pi-in-qemu)
- [📝👶 Building an ARM Embedded Linux System in QEMU](https://github.com/dchithinh/mastering-embeded-linux-programming)
#### 🔵 Renode #### 🔵 Renode
- [🔗 Renode - GitHub Repo](https://github.com/renode/renode) - [🔗 Renode - GitHub Repo](https://github.com/renode/renode)
@@ -869,6 +987,7 @@ Digital signal processing (DSP) is a branch of engineering that deals with the p
- [📘 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) - [📘 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) - [📘 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) - [📘💎 Digital Signal Processing - John G. Proakis, Dimitris K. Manolakis](https://a.co/d/75P5PiE)
- [📘 Introduction to Computer Music](https://composerprogrammer.com/introductiontocomputermusic.pdf)
#### 🔵 Discrete Fourier Transform / FFT #### 🔵 Discrete Fourier Transform / FFT
@@ -881,12 +1000,15 @@ Digital signal processing (DSP) is a branch of engineering that deals with the p
- [🎞️ Understanding Control Systems (YouTube Playlist)](https://youtube.com/playlist?list=PLn8PRpmsu08q8CE0pbZ-cSrMm_WYJfVGd) - [🎞️ 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) - [🎞️ Control Systems - CircuitBread (YouTube Playlist)](https://www.youtube.com/playlist?list=PLfYdTiQCV_p4YZNJWExM-5_g0fk9bHDL8)
- [🎞️💎 Brian Douglas' Control Systems Lectures (YouTube Channel)](https://www.youtube.com/@BrianBDouglas)
- [📘💎 Control Systems Engineering - Norman S. Nise](https://www.wiley.com/en-us/Control+Systems+Engineering%2C+8th+Edition-p-9781119474227) - [📘💎 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) - [📘💎 Modern Control Systems - Richard C. Dorf, Robert H. Bishop](https://www.pearson.com/en-us/subject-catalog/p/modern-control-systems/P200000003484/9780137307098)
- [🔗 Kalman Filter](https://kalmanfilter.net/)
#### 🔵 PID Controller #### 🔵 PID Controller
- [🎞️👶 What is a PID Controller? | DigiKey](https://www.youtube.com/watch?v=tFVAaUcOm4I) - [🎞️👶 What is a PID Controller? | DigiKey](https://www.youtube.com/watch?v=tFVAaUcOm4I)
- [🎞️👶 How to Tune a PID Controller for an Inverted Pendulum | DigiKey](https://www.youtube.com/watch?v=hRnofMxEf3Q)
- [🎞️ PID Controller Explained](https://www.youtube.com/watch?v=fv6dLTEvl74) - [🎞️ PID Controller Explained](https://www.youtube.com/watch?v=fv6dLTEvl74)
- [🎞️ Understanding PID Control (YouTube Playlist)](https://youtube.com/playlist?list=PLn8PRpmsu08pQBgjxYFXSsODEF3Jqmm-y) - [🎞️ 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) - [🎞️ PID Controller Implementation in Software - Phil's Lab #6](https://www.youtube.com/watch?v=zOByx3Izf5U)
@@ -906,11 +1028,15 @@ Embedded systems can be programmed with either an operating system (OS) or direc
#### 🔵 Operating System Fundamentals #### 🔵 Operating System Fundamentals
- [📝👶 Putting the “You” in CPU](https://cpu.land/) - [📝👶 Putting the “You” in CPU](https://cpu.land/)
- [📝👶 Operating System in 1,000 Lines](https://operating-system-in-1000-lines.vercel.app/en/)
- [📘👶 The little book about OS development](https://littleosbook.github.io/) - [📘👶 The little book about OS development](https://littleosbook.github.io/)
- [📘👶 Operating Systems: From 0 to 1](https://github.com/tuhdo/os01/blob/master/Operating_Systems_From_0_to_1.pdf) - [📘👶 Operating Systems: From 0 to 1](https://github.com/tuhdo/os01/blob/master/Operating_Systems_From_0_to_1.pdf)
- [🔗 An operating system](https://github.com/roscopeco/anos)
- [📝 Porting Mac OS X to the Nintendo Wii](https://bryankeller.github.io/2026/04/08/porting-mac-os-x-nintendo-wii.html)
- [📘💎 Operating Systems: Three Easy Pieces - Remzi H Arpaci-Dusseau, Andrea C Arpaci-Dusseau](https://pages.cs.wisc.edu/~remzi/OSTEP/) - [📘💎 Operating Systems: Three Easy Pieces - Remzi H Arpaci-Dusseau, Andrea C Arpaci-Dusseau](https://pages.cs.wisc.edu/~remzi/OSTEP/)
- [📘💎 Modern Operating Systems - Andrew S. Tanenbaum, Herbert Bos](https://www.pearson.com/en-us/subject-catalog/p/modern-operating-systems/P200000003295) - [📘💎 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/) - [📝 Writing an OS in Rust - Philipp Oppermann's blog](https://os.phil-opp.com/)
- [🔗 Operating System development tutorials in Rust on the Raspberry Pi](https://github.com/rust-embedded/rust-raspberrypi-OS-tutorials)
#### 🔵 Real-Time Operating Systems #### 🔵 Real-Time Operating Systems
@@ -922,8 +1048,9 @@ Real-time operating systems (RTOS) are specialized operating systems designed to
- [📝 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) - [📝 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) - [📝 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/) - [📝 FreeRTOS vs Linux for Embedded Systems](https://www.bytesnap.com/news-blog/freertos-vs-linux-embedded-systems/)
- [🔗 tinyOS RTOS](https://github.com/cmc-labo/tinyos-rtos)
- [🔗 Real-Time Systems Concepts](https://micrium.atlassian.net/wiki/spaces/osiidoc/pages/163855/Real-Time+Systems+Concepts) - [🔗 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) - [🔗 RTOS Fundamentals](https://www.freertos.org/Documentation/01-FreeRTOS-quick-start/01-Beginners-guide/01-RTOS-fundamentals)
- [📝 A Simple Scheduler via an Interrupt-driven Actor Model](https://interrupt.memfault.com/blog/hardware-actor-scheduler) - [📝 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) - [📝 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) - [🎞️ RTOS (YouTube Playlist)](https://www.youtube.com/playlist?list=PLPW8O6W-1chyrd_Msnn4LD6LBs2slJITs)
@@ -943,10 +1070,12 @@ Real-time operating systems (RTOS) are specialized operating systems designed to
##### 🔶 Zephyr ##### 🔶 Zephyr
- [🔗 Zephyr® Project](https://www.zephyrproject.org/) - [🔗 Zephyr® Project](https://www.zephyrproject.org/)
- [📝💎 Getting Started With Zephyr](https://www.embeddedrelated.com/showarticle/1505.php)
- [🔗 Zephyr: Tutorial for Beginners](https://maksimdrachov.github.io/zephyr-rtos-tutorial/) - [🔗 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/) - [📝 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/) - [🔗 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) - [🎞️ ESP32 on Zephyr OS (YouTube Playlist)](https://www.youtube.com/playlist?list=PLEQVp_6G_y4iFfemAbFsKw6tsGABarTwp)
- [🎞️💎 Introduction to Zephyr - Digikey (YouTube Playlist)](https://www.youtube.com/playlist?list=PLEBQazB0HUyTmK2zdwhaf8bLwuEaDH-52)
##### 🔶 μC/OS / Micriμm OS ##### 🔶 μC/OS / Micriμm OS
@@ -989,7 +1118,6 @@ Real-time operating systems (RTOS) are specialized operating systems designed to
- [🔗 Microsoft Azure RTOS documentation](https://learn.microsoft.com/en-us/azure/rtos/) - [🔗 Microsoft Azure RTOS documentation](https://learn.microsoft.com/en-us/azure/rtos/)
- [🔗 Azure RTOS ThreadX](https://github.com/azure-rtos/threadx) - [🔗 Azure RTOS ThreadX](https://github.com/azure-rtos/threadx)
#### 🔵 Embedded Linux #### 🔵 Embedded Linux
Embedded Linux is a specialized version of the Linux operating system tailored for embedded systems. It's designed to operate on devices with resource constraints, such as limited memory, processing power, and power consumption. Embedded Linux is a specialized version of the Linux operating system tailored for embedded systems. It's designed to operate on devices with resource constraints, such as limited memory, processing power, and power consumption.
@@ -1006,7 +1134,6 @@ Embedded Linux is a specialized version of the Linux operating system tailored f
- [🔗 Android Open Source Project](https://source.android.com) - [🔗 Android Open Source Project](https://source.android.com)
- [🔗 Android Automotive](https://source.android.com/docs/automotive) - [🔗 Android Automotive](https://source.android.com/docs/automotive)
##### 🔶 Linux Kernel ##### 🔶 Linux Kernel
- [📘👶 Linux Kernel Development - Robert Love](https://www.oreilly.com/library/view/linux-kernel-development/9780768696974/) - [📘👶 Linux Kernel Development - Robert Love](https://www.oreilly.com/library/view/linux-kernel-development/9780768696974/)
@@ -1024,6 +1151,7 @@ Embedded Linux is a specialized version of the Linux operating system tailored f
##### 🔶 U-Boot ##### 🔶 U-Boot
- [🔗 The U-Boot Documentation](https://u-boot.readthedocs.io/en/latest/) - [🔗 The U-Boot Documentation](https://u-boot.readthedocs.io/en/latest/)
- [🔗 Barebox](https://www.barebox.org/doc/latest/index.html)
##### 🔶 Buildroot ##### 🔶 Buildroot
@@ -1041,6 +1169,7 @@ Embedded Linux is a specialized version of the Linux operating system tailored f
- [🎞️ Udemy – Embedded Linux using Yocto](https://www.udemy.com/course/embedded-linux-using-yocto/) - [🎞️ Udemy – Embedded Linux using Yocto](https://www.udemy.com/course/embedded-linux-using-yocto/)
- [📘💎 Embedded Linux Systems with the Yocto Project - Rudolf J.Streif](https://www.oreilly.com/library/view/embedded-linux-systems/9780133443301/) - [📘💎 Embedded Linux Systems with the Yocto Project - Rudolf J.Streif](https://www.oreilly.com/library/view/embedded-linux-systems/9780133443301/)
- [📘 Embedded Linux Development using Yocto Project Cookbook - Alex Gonzalez](https://www.oreilly.com/library/view/embedded-linux-development/9781788399210/) - [📘 Embedded Linux Development using Yocto Project Cookbook - Alex Gonzalez](https://www.oreilly.com/library/view/embedded-linux-development/9781788399210/)
- [📘 Bootlin Embedded Linux, Kernel, drivers, Yocto, Buildroot and Graphics Training](https://bootlin.com/training/)
##### 🔶 Multithreading & Parallel Processing ##### 🔶 Multithreading & Parallel Processing
@@ -1048,17 +1177,23 @@ Embedded Linux is a specialized version of the Linux operating system tailored f
- [📝 Multi-threading and Parallel Programming](https://dev.to/kwereutosu/multi-threading-and-parallel-programming-1l9m) - [📝 Multi-threading and Parallel Programming](https://dev.to/kwereutosu/multi-threading-and-parallel-programming-1l9m)
- [📝 Multitasking vs Multithreading vs Multiprocessing](https://medium.com/codex/multitasking-vs-multithreading-vs-multiprocessing-2b0087c861ae) - [📝 Multitasking vs Multithreading vs Multiprocessing](https://medium.com/codex/multitasking-vs-multithreading-vs-multiprocessing-2b0087c861ae)
- [📘💎 Programming with POSIX Threads - David Butenhof](https://a.co/d/9R6DswF) - [📘💎 Programming with POSIX Threads - David Butenhof](https://a.co/d/9R6DswF)
- [📘 C++ Concurrency in Action - Anthony Williams](https://www.manning.com/books/c-plus-plus-concurrency-in-action)
##### 🔶 High-Performance Computing (HPC)
- [🔗 Parallel Programming and Performance Optimization With OpenMP](https://passlab.github.io/OpenMPProgrammingBook/index.html) - [🔗 Parallel Programming and Performance Optimization With OpenMP](https://passlab.github.io/OpenMPProgrammingBook/index.html)
- [🎞️ Introduction to OpenMP - Tim Mattson (Intel) (YouTube Playlist)](https://youtube.com/playlist?list=PLLX-Q6B8xqZ8n8bwjGdzBJ25X2utwnoEG) - [🎞️ Introduction to OpenMP - Tim Mattson (Intel) (YouTube Playlist)](https://youtube.com/playlist?list=PLLX-Q6B8xqZ8n8bwjGdzBJ25X2utwnoEG)
- [🔗 OpenCL Tutorials](https://www.intel.com/content/www/us/en/developer/articles/training/opencl-tutorials.html) - [🔗 OpenCL Tutorials](https://www.intel.com/content/www/us/en/developer/articles/training/opencl-tutorials.html)
- [🔗 CUDA C++ Programming Guide](https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html) - [🔗 CUDA C++ Programming Guide](https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html)
- [📘 C++ Concurrency in Action - Anthony Williams](https://www.manning.com/books/c-plus-plus-concurrency-in-action) - [🔗 Mvidia](https://jaso1024.com/mvidia/)
- [🔗 Every GPU That Mattered](https://sheets.works/data-viz/every-gpu)
##### 🔶 Inter-Process Communication (IPC) ##### 🔶 Inter-Process Communication (IPC)
- [📝 Inter Process Communication (IPC)](https://www.scaler.com/topics/operating-system/inter-process-communication-in-os/) - [📝 Inter Process Communication (IPC)](https://www.scaler.com/topics/operating-system/inter-process-communication-in-os/)
- [📝 What Is Inter-Process Communication In Linux?](https://www.scaler.com/topics/ipc-in-linux/) - [📝 What Is Inter-Process Communication In Linux?](https://www.scaler.com/topics/ipc-in-linux/)
- [🎞️ Udemy – Linux Inter Process Communication (IPC) from Scratch in C](https://www.udemy.com/course/linuxipc/) - [🎞️ Udemy – Linux Inter Process Communication (IPC) from Scratch in C](https://www.udemy.com/course/linuxipc/)
- [📘 Extreme C - Kamran Amini | Chapter 19: Single-Host IPC and Sockets](https://www.packtpub.com/free-ebook/extreme-c/9781789343625)
- [🎞️ Udemy – Multi-Threading and IPC with Qt 5 C++](https://www.udemy.com/course/multi-threading-and-ipc-with-qt-c-plus-plus/) - [🎞️ Udemy – Multi-Threading and IPC with Qt 5 C++](https://www.udemy.com/course/multi-threading-and-ipc-with-qt-c-plus-plus/)
- [📝 D-Bus Tutorial](https://dbus.freedesktop.org/doc/dbus-tutorial.html) - [📝 D-Bus Tutorial](https://dbus.freedesktop.org/doc/dbus-tutorial.html)
@@ -1087,12 +1222,12 @@ JTAG and SWD (Serial Wire Debug) are two popular interface protocols used for de
#### 🔵 GDB #### 🔵 GDB
GDB (GNU Debugger) is a powerful and versatile debugger for source-level and machine-level debugging. It supports a wide range of programming languages, including C, C++, Objective-C, Java, and Rust. GDB is a free and open-source software tool that is widely used by developers and researchers. GDB (GNU Debugger) is a powerful and versatile debugger for source-level and machine-level debugging. It supports a wide range of programming languages, including C, C++, Objective-C, Java, and Rust. GDB is a free and open-source software tool that is widely used by developers and researchers.
- [📝 Advanced GDB Usage](https://interrupt.memfault.com/blog/advanced-gdb) - [📝 Advanced GDB Usage](https://interrupt.memfault.com/blog/advanced-gdb)
- [📝 How do breakpoints even work?](https://interrupt.memfault.com/blog/cortex-m-breakpoints) - [📝 How do breakpoints even work?](https://interrupt.memfault.com/blog/cortex-m-breakpoints)
- [🔗 GNU GDB Debugger Command Cheat Sheet](http://www.yolinux.com/TUTORIALS/GDB-Commands.html) - [🔗 GNU GDB Debugger Command Cheat Sheet](http://www.yolinux.com/TUTORIALS/GDB-Commands.html)
- [🔗 gdbgui - A browser-based frontend to gdb (gnu debugger) ](https://www.gdbgui.com/) - [🔗 gdbgui - A browser-based frontend to gdb (gnu debugger)](https://www.gdbgui.com/)
- [🎞️ everyone needs to stop using print debugging (do THIS instead)](https://www.youtube.com/watch?v=3T3ZDquDDVg) - [🎞️ everyone needs to stop using print debugging (do THIS instead)](https://www.youtube.com/watch?v=3T3ZDquDDVg)
- [🎞️ GDB is REALLY easy! Find Bugs in Your Code with Only A Few Commands](https://www.youtube.com/watch?v=Dq8l1_-QgAc) - [🎞️ GDB is REALLY easy! Find Bugs in Your Code with Only A Few Commands](https://www.youtube.com/watch?v=Dq8l1_-QgAc)
- [📝 Introduction to ARM Semihosting](https://interrupt.memfault.com/blog/arm-semihosting) - [📝 Introduction to ARM Semihosting](https://interrupt.memfault.com/blog/arm-semihosting)
@@ -1112,7 +1247,7 @@ Build systems automate the process of compiling and linking source code into exe
#### 🔵 Compilers / GCC #### 🔵 Compilers / GCC
GCC (the GNU Compiler Collection) is a free and open-source compiler system that can compile programs for many different programming languages, including C, C++, Objective-C, Fortran, Ada, and Go. GCC is a popular choice for embedded systems development due to its open source nature, maturity, stability, portability, performance, and large community. On the other hand proprietary compilers like Keil and IAR offer toolchain support, target-specific optimizations, and customer support, which may be preferred for specific projects. GCC (the GNU Compiler Collection) is a free and open-source compiler system that can compile programs for many different programming languages, including C, C++, Objective-C, Fortran, Ada, and Go. GCC is a popular choice for embedded systems development due to its open source nature, maturity, stability, portability, performance, and large community. On the other hand proprietary compilers like Keil and IAR offer toolchain support, target-specific optimizations, and customer support, which may be preferred for specific projects.
- [📝 GCC and Make - Compiling, Linking and Building C/C++ Applications](https://www3.ntu.edu.sg/home/ehchua/programming/cpp/gcc_make.html) - [📝 GCC and Make - Compiling, Linking and Building C/C++ Applications](https://www3.ntu.edu.sg/home/ehchua/programming/cpp/gcc_make.html)
- [📝 The Best and Worst GCC Compiler Flags For Embedded](https://interrupt.memfault.com/blog/best-and-worst-gcc-clang-compiler-flags) - [📝 The Best and Worst GCC Compiler Flags For Embedded](https://interrupt.memfault.com/blog/best-and-worst-gcc-clang-compiler-flags)
@@ -1121,7 +1256,7 @@ GCC (the GNU Compiler Collection) is a free and open-source compiler system that
- [🔗 Keil MDK & µVision](https://www.keil.com/) - [🔗 Keil MDK & µVision](https://www.keil.com/)
- [🔗 IAR Embedded Workbench](https://www.iar.com) - [🔗 IAR Embedded Workbench](https://www.iar.com)
#### 🔵 Make & CMake #### 🔵 Make / CMake
CMake and Make are both tools for building software applications. CMake is a meta-build system that generates Makefiles, which are then used by Make to build the software. CMake is more versatile and cross-platform than Make, and it is becoming the more popular choice for modern software development. CMake and Make are both tools for building software applications. CMake is a meta-build system that generates Makefiles, which are then used by Make to build the software. CMake is more versatile and cross-platform than Make, and it is becoming the more popular choice for modern software development.
@@ -1130,6 +1265,7 @@ CMake and Make are both tools for building software applications. CMake is a met
- [🔗 CMake Tutorial](https://cmake.org/cmake/help/latest/guide/tutorial/index.html) - [🔗 CMake Tutorial](https://cmake.org/cmake/help/latest/guide/tutorial/index.html)
- [🎞️ How to CMake Good (YouTube Playlist)](https://youtube.com/playlist?list=PLK6MXr8gasrGmIiSuVQXpfFuE1uPT615s) - [🎞️ How to CMake Good (YouTube Playlist)](https://youtube.com/playlist?list=PLK6MXr8gasrGmIiSuVQXpfFuE1uPT615s)
- [📝👶 The most thoroughly commented embedded CMakeLists file](https://dnedic.github.io/blog/the-most-thoroughly-commented-embedded-cmakelists/) - [📝👶 The most thoroughly commented embedded CMakeLists file](https://dnedic.github.io/blog/the-most-thoroughly-commented-embedded-cmakelists/)
- [🔗 A lightweight build and workflow tool for C/C++](https://github.com/randerson112/craft)
#### 🔵 Bash Scripting #### 🔵 Bash Scripting
@@ -1140,7 +1276,7 @@ Bash scripting serves as a powerful tool in embedded systems development, enabli
#### 🔵 Docker #### 🔵 Docker
Docker containers provide a consistent and isolated environment for building software applications. This can help to improve the reproducibility of builds and reduce the risk of errors. Docker also makes it easier to share build environments, which can save time and effort for developers. Docker containers provide a consistent and isolated environment for building software applications. This can help to improve the reproducibility of builds and reduce the risk of errors. Docker also makes it easier to share build environments, which can save time and effort for developers.
- [🔗 Docker Docs](https://docs.docker.com/get-started/) - [🔗 Docker Docs](https://docs.docker.com/get-started/)
- [🔗 Docker Cheat Sheet](https://dockerlabs.collabnix.com/docker/cheatsheet/) - [🔗 Docker Cheat Sheet](https://dockerlabs.collabnix.com/docker/cheatsheet/)
@@ -1148,6 +1284,7 @@ Docker containers provide a consistent and isolated environment for building sof
- [🎞️ Introduction to Docker for the Embedded Developer](https://www.youtube.com/watch?v=Fz7ou-VBk-w) - [🎞️ 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) - [🎞️ 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) - [📝 A Modern C Development Environment](https://interrupt.memfault.com/blog/a-modern-c-dev-env)
_________________ _________________
### ✳️ Software Development Life Cycle (SDLC) Models ### ✳️ Software Development Life Cycle (SDLC) Models
@@ -1175,7 +1312,7 @@ _________________
### ✳️ Version Control Systems ### ✳️ Version Control Systems
Version control systems are essential tools for managing changes to code and other digital assets. They track changes over time, allowing developers to revert to previous versions, collaborate effectively, and identify potential conflicts. Popular version control systems include Git, Mercurial, and Subversion. Version control systems are essential tools for managing changes to code and other digital assets. They track changes over time, allowing developers to revert to previous versions, collaborate effectively, and identify potential conflicts. Popular version control systems include Git, Mercurial, and Subversion.
#### 🔵 Git #### 🔵 Git
@@ -1208,8 +1345,17 @@ Testing is an integral part of the embedded systems development process, ensurin
- [📝 Embedded C/C++ Unit Testing Basics](https://interrupt.memfault.com/blog/unit-testing-basics) - [📝 Embedded C/C++ Unit Testing Basics](https://interrupt.memfault.com/blog/unit-testing-basics)
- [📝 Embedded C/C++ Unit Testing with Mocks](https://interrupt.memfault.com/blog/unit-test-mocking) - [📝 Embedded C/C++ Unit Testing with Mocks](https://interrupt.memfault.com/blog/unit-test-mocking)
- [🔗 Unit Testing for C (especially Embedded Software)](http://www.throwtheswitch.org/unity) - [🔗 Unit Testing for C (especially Embedded Software)](http://www.throwtheswitch.org/unity)
- [🔗 GoogleTest - Google Testing and Mocking Framework](https://github.com/google/googletest) - [📝 How to Use Ceedling for Embedded Test-Driven Development](https://www.electronvector.com/how-to-use-ceedling-for-embedded-test-driven-development)
- [📘 Unit Testing Principles, Practices, and Patterns - Vladimir Khorikov](https://www.manning.com/books/unit-testing) - [📘 Unit Testing Principles, Practices, and Patterns - Vladimir Khorikov](https://www.manning.com/books/unit-testing)
- [🔗 Catch2 - A modern, C++-native, test framework for unit-tests](https://github.com/catchorg/Catch2)
- [🔗 pytest-embedded](https://docs.espressif.com/projects/pytest-embedded/en/latest/)
- [📝 Introduction to testing ESP32 code with Pytest](https://blog.gistre.epita.fr/posts/brice.parent-2023-09-11-introduction_to_testing_esp32_code_with_pytest/)
- [🔗 Pigweed](https://pigweed.dev/)
###### [🔸 GoogleTest - Google Testing and Mocking Framework](https://github.com/google/googletest)
- [🔗 GoogleTest User’s Guide](https://google.github.io/googletest/)
- [🎞️ GoogleTest And GoogleMock (GTest and GMock)](https://www.youtube.com/playlist?list=PLHn7_PzMqzs5JE58kw4nWiFELEkQek5G0)
##### 🔶 Integration Testing ##### 🔶 Integration Testing
@@ -1219,7 +1365,7 @@ Testing is an integral part of the embedded systems development process, ensurin
#### 🔵 CI/CD Pipelines #### 🔵 CI/CD Pipelines
Continuous Integration (CI) and Continuous Delivery (CD) are software development practices that automate the process of building, testing, and deploying software. CI/CD pipelines are designed to ensure that software changes are deployed quickly and reliably. Continuous Integration (CI) and Continuous Delivery (CD) are software development practices that automate the process of building, testing, and deploying software. CI/CD pipelines are designed to ensure that software changes are deployed quickly and reliably.
- [🎞️ Intro to CI/CD Part 1: Getting Started with Docker | Digi-Key Electronics](https://youtu.be/1nxGcfIm-TU) - [🎞️ 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) - [🎞️ Intro to CI/CD Part 2: Getting Started with GitHub Actions | Digi-Key Electronics](https://youtu.be/8pyqbYDYkRs)
@@ -1270,6 +1416,7 @@ Learning hardware hacking helps security professionals understand how embedded s
- [📘💎 Practical Hardware Pentesting - Jean-Georges Valle](https://a.co/d/dq4SeNH) - [📘💎 Practical Hardware Pentesting - Jean-Georges Valle](https://a.co/d/dq4SeNH)
- [🎞️ Hardware Hacking Tutorial (YouTube Playlist)](https://www.youtube.com/playlist?list=PLoFdAHrZtKkhcd9k8ZcR4th8Q8PNOx7iU) - [🎞️ Hardware Hacking Tutorial (YouTube Playlist)](https://www.youtube.com/playlist?list=PLoFdAHrZtKkhcd9k8ZcR4th8Q8PNOx7iU)
- [📘💎 The Hardware Hacking Handbook: Breaking Embedded Security with Hardware Attacks - Jasper van Woudenberg, Colin O'Flynn](https://a.co/d/gUIytFX) - [📘💎 The Hardware Hacking Handbook: Breaking Embedded Security with Hardware Attacks - Jasper van Woudenberg, Colin O'Flynn](https://a.co/d/gUIytFX)
- [🔗 The Official WiFi Pineapple Pager Payload Repository](https://github.com/hak5/wifipineapplepager-payloads)
#### 🔵 Cryptography #### 🔵 Cryptography
@@ -1332,7 +1479,6 @@ The Internet of Things (IoT) refers to a network of interconnected devices, whic
Edge AI refers to the ability of devices to perform machine learning tasks on their own, without the need to send data to a central server. This can be done by using small, specialized AI models that are embedded directly into the device. TinyML is a subset of Edge AI that focuses on developing these models for devices with very limited computing power, such as microcontrollers and sensors. Edge AI refers to the ability of devices to perform machine learning tasks on their own, without the need to send data to a central server. This can be done by using small, specialized AI models that are embedded directly into the device. TinyML is a subset of Edge AI that focuses on developing these models for devices with very limited computing power, such as microcontrollers and sensors.
- [🎞️ 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) - [🎞️ Intro to Edge AI: Machine Learning + IoT – Maker.io Tutorial | Digi-Key Electronics](https://www.youtube.com/watch?v=Ejld8XZmvwE)
#### 🔵 AI & ML Basics #### 🔵 AI & ML Basics
@@ -1370,6 +1516,38 @@ AUTOSAR, or AUTomotive Open System ARchitecture, is a global industry standard f
- [🎞️ AUTOSAR Basics | AUTOSAR Tutorial | Architecture | Automotive](https://www.youtube.com/watch?v=7b5BY1IAfwY) - [🎞️ AUTOSAR Basics | AUTOSAR Tutorial | Architecture | Automotive](https://www.youtube.com/watch?v=7b5BY1IAfwY)
- [🎞️ Introduction to AUTOSAR](https://www.youtube.com/watch?v=NfZI8wvgZPo) - [🎞️ Introduction to AUTOSAR](https://www.youtube.com/watch?v=NfZI8wvgZPo)
- [🎞️ Udemy - Autosar Architecture (Learn from Scratch with Demo)](https://www.udemy.com/course/autosar-architecture/) - [🎞️ Udemy - Autosar Architecture (Learn from Scratch with Demo)](https://www.udemy.com/course/autosar-architecture/)
- [📝 OSEK OS Overview](https://www.autosartoday.com/posts/osek_os_overview)
- [💎 🔗 OSEK/VDX Operating System Specification 2.2.3](https://www.osek-vdx.org/mirror/os223.pdf)
- [💎 🔗 OSEK/VDX OIL (OSEK Implementation Language) Specification 2.4.1](https://www.osek-vdx.org/mirror/oil241.pdf)
_________________
### ✳️ Appendix-A: Advanced Topics
#### 🔵 Discrete Mathematics
A common subject that is essential to Computer Science students and some Math/Electrical Engineering Majors based on the [Association For Computing Machinery Guidelines for CS/CE education](https://www.acm.org/education/curricula-recommendations). It houses the most essential subjects for _abstract mathematical modelling_ and _theory of computation_. Furthermore, it helps students to establish the essential engineering mindset that represents the common basis among all computer science and computer engineering domains. However, Logic, Theory of combinatorics, Coding Theory, and Theory of Computation are among the most essential subjects for Embedded Systems Engineers.
_**Goal of learning Discrete Mathematics:**_ Embedded Systems Engineers should be able to grasp most of these information sooner or later based on their subspeciality; as it explains the scientific and theoretical basis of computer engineering (e.g., Coding Theory for Audio/Video Encoding/Decoding and Data Transmission - Automata Theory for event control and data transmission - Logic for digital circuit design and switching algebra - $$\Pi$$ Calculus and Automata Theory for Concurrency Modelling).
_Discrete Mathematics_ is a multi-semester course that involves subjects about the theoretical mathematical basis of computer science, including but not limited to:
- Logic (Propositional, Quantificational and Normal Forms).
- Axiomatic Set Theory (Sets, Operations on sets, and Power Sets).
- Relation Sets and Function Theory (i.e., $$\lambda$$ Calculus).
- Theory of combinatorics.
- Matrix and Graph Theory.
- Theory of computation (i.e., Computational Automata Theory, Computational Complexity, and Computational Computability).
- Automata Theory (e.g., Finite-state Machines, Pushdown Automata, Turing Machines, and Cellular Automata).
- Process Modelling/Calculi (i.e., $$\pi$$ Calculus).
- Coding Theory.
- Division Theorem Modular Arithmetics (Parts of Number Theory).
- [📘💎 Discrete Mathematics and its applications by Rosen](https://dl.acm.org/doi/book/10.5555/579402)
- [📘💎 Discrete Mathematics with Applications by Susanna S. Epp](https://dl.acm.org/doi/book/10.5555/1941983)
- [📘💎 Switching and Finite Automata Theory, Cambrdige Press](https://dl.acm.org/doi/10.5555/1708070)
- [📘💎 Discrete Mathematical Structures by Bernard Kolman](https://www.pearson.com/en-us/subject-catalog/p/discrete-mathematical-structures-classic-version/P200000006227/9780137538782?srsltid=AfmBOooBdohmNtq7Wu42tHwSt7lUma46hBmKjqk8XJ8NNI6sf2-4-1kg)
- [📘💎 Invitation to Discrete Mathematics, Oxford University Press](https://global.oup.com/academic/product/invitation-to-discrete-mathematics-9780198570431?cc=eg&lang=en&)
- [📘💎 The Mathematics of Cellular Automata by Jane Hawkins, AMS](https://bookstore.ams.org/stml-108)
## History ## History
@@ -1383,7 +1561,7 @@ This work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 Inter
**Attribution** — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. **Attribution** — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
**ShareAlike** — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. **ShareAlike** — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.
## Acknowledgement ## Acknowledgement