#0 Modern Embedded Systems Programming: Getting Started

preview_player
Показать описание
This is an updated version of "lesson-zero" of the "Modern Embedded Systems Programming" video course. The updates include new development toolsets, new structure of the code projects, and new resources for the course.

Timeline:
🕑 0:07 *Introduction:* In this course, you'll learn how to program embedded microcontrollers the modern way, from the basics all the way to the contemporary modern embedded programming practice.

🕑 0:23 *Teaching Approach:* The unique approach of this course is to step down to the machine level frequently and show you exactly what happens inside your embedded microcontroller. This deeper understanding will allow you to apply the concepts more efficiently and with greater confidence. If you are looking for a practical, hands-on, well-structured, and in-depth course explaining the essential concepts in embedded programming, this free course is right for you.

🕑 0:40 *Instructor:* The course is designed and taught by Miro Samek -- an embedded software expert with over 30 years of experience. Miro enjoys teaching, and this video course, his books, articles, and conference talks helped many developers improve their skills, pass tough job interviews, and get hired for embedded programming positions.

🕑1:00 *Relevance:* The course started already in 2013, so a legitimate question is: "Is it still relevant?" The answer is YES, perhaps even more so than in 2013, for two main reasons:
1️⃣ Fundamental Concepts: This course focuses on the essential and fundamental concepts in embedded programming, which never go out of style.
2️⃣ ARM Cortex-M Architecture: This course focuses on the prevalent ARM Cortex-M architecture, which over the past decade became unquestionably dominant in the embedded MCU market. Familiarity with ARM Cortex-M is the most sought-after skill that employers are looking for.

🕑2:16 *Embedded Boards:* You need one of the following embedded boards:
2:21 TivaC LaunchPad
2:47 STM32 NUCLEO-C031C6
3:11 Simulator

🕑3:25 *Installing USB Drivers:*

🕑4:54 *Embedded Development Toolsets:* You need one of the following embedded development toolsets:
5:03 IAR Embedded Workbench for ARM
6:18 KEIL MDK (Microcontroller Development Kit)

🕑7:57 *Installing Device Family Pack in KEIL MDK* The first time you open a project in KEIL MDK, you need to install the "Device Family Pack" for the microcontroller used in the project.

🕑8:19 *Requesting and Installing the License in KEIL MDK*

🕑8:42 *Installing Missing Stellaris ICDI in KEIL MDK* The newer KEIL MDK versions no longer support the hardware debugger called "Stellaris ICDI" on the TivaC LaunchPad. But you can add this support as an MDK extension.

🕑9:41 *Course Projects:*
9:56 How to download the code projects for the lessons
10:20 The hierarchical structure of the code projects (NOTE: updated from what is shown in the videos)

------
End Notes:

Companion web page for this video course:

GitHub repository for projects for this video course:

---
Tiva LaunchPad board (a.k.a. EK-TM4C123GXL)

STM32 NUCLEO-C031C6:
----
IAR EWARM:

KEIL MDK v6 Community Edition
---
YouTube playlist of the course:
• Modern Embedded Systems Programming C...
Рекомендации по теме
Комментарии
Автор

Can I use either my Pi 4b, Arduino UNO or Node MCU, this I also have an ESP whatever its called...

PyJu
Автор

It's so encouraging to see such dedication to the embedded craft and the willingness to teach others, thank you for putting out videos throughout all these years, they are truly invaluable to the embedded community!

Vexown
Автор

Hello, Mr. Samek. Thank you for your dedication to sharing your knowledge and insight into this field. I have a BS in Computer Science, but no work when searching for work in software development. I learned about embedded systems from some good folks online, so I decided to search for information on the subject. Consequently, I've come across your YouTube channel and I've watched this video, now. I've learned that in this field, one works with low-level concepts and the CPU and hardware directly, which fascinates me greatly. My assembly and CPU architecture classes were some of my favorites during my studies and I'm very excited to learn more and gain some hands-on experience in this field. You have my thanks for all your efforts and dedication to this field and for sharing this with the world.

brianmagana
Автор

These videos are pure gold. I watched them in 2019 till RTOS. It really helped me to gain insights like never before. Really looking forward to revisit the older ones along with learning the new ones. Thank you Miro!

nikhilsp
Автор

Thank you for providing all this educational for free mr Samek, this will be valuable to many students like me!

paulspl
Автор

Thanks so much! for sharing your knowledge! Im Full stack Developer and always I asked how is the programming with embedded systems! I appreciate your help, thanks again!

Nardo
Автор

Thanx Miro, this shows you really want people to learn. More power to you.

KAPILDHYANI
Автор

This course helped me get to grips with the C language 😊

infocuslearning
Автор

Hey brother, quick heads up Keil changed the directory structures around again, and I don't want any other students to get stuck banging their heads against this. They are now (I believe since 5.39) installing Keil into the user's appdata directory, so when I installed Keil and then installed the Stellaris ICDI it had to be installed into


NOT C:\KeilV5 (this is the default I believe). This also is not in line with their instructions, their instructions say it should be able to be installed into but that does not work on Windows 10 or 11 (tested each), only installing straight into that Keil_v5 directory in appdata seems to work.

Thank you for the tutorials, I'll be sure to let you know of anything else I find along the way.

tylerhazleton
Автор

The effort, clarity, and value provided in the course are simply incredible. I do not have words but to say thank you.

autonomy
Автор

Thanke you Miro for your wonderful course. I think you are a wonderful teacher and your video really shows the amount of work that you have put in to this course. Truely amazing! I am following along with a NUCLEO F072RB. Most of the fun and challenge was porting the code to this board :). A giant step forward would be to see a new course in which you will present projects that use your wonderful QCP framework that will work together with middleware (sensors, communication stacks (USB, TCP, MODBUS) etc.)

segevlior
Автор

Thank you very much for your excellent courses, 🙌👏

hanswurst
Автор

I'll try my hand at going through this course on a linux machine. Seems like the tools are there.

And if it doesn't work out, that's what dual booting is for

madhavpatel
Автор

Oh my god, here we go again! thank you

henrypaul
Автор

Miro, you are my new best friend. Liked and subscribed.

crogersdev
Автор

Hi Miro. Please consider making an equivalent video on how to setup a development flow without an IDE - writing our own linker scripts, header files, etc from scratch and using only the free arm gcc compilers.

hulkavinci
Автор

Hi there! I am a complete beginner and want to learn more about embedded systems. You mentioned the TivaC LaunchPad and the STM32 NUCLEO-C031C6. What I do not get is whether I should buy both or choose one of them? Is the STM32 Nucleo board more of a popular choice nowadays? Thank you!

chinzhetee
Автор

If I use a cheaper board like Stm32f103c8t6 Arm + St-link V2, will it work for this course? (chatgpt's idea)
The mentioned boards are really expensive where I live, and the "combo" I mentioned is like 4x cheaper than any of these boards you mentioned

RegularUserOfficial
Автор

Hi, can I also use the NUCLEO-F303RE for this? As this is the development board readily available to me.

felipes
Автор

The IAR link is dead -- maybe just as well.
EDIT: Actually, it appears that more than just this link in the video description is truncated/garbled. Classic C-string buffer overflow... 🙂

ericbwertz