
ARM Cortex-M 프로세서 프로그래밍
홍영기
CORTEX-M 프로세서를 체계적으로 학습하고 싶으신가요? 임베디드 시스템의 가장 중요한 토픽 2가지 어셈블리어와 인터럽트를 확실히 정리해드립니다.
Basic
ARM Architecture, Cortex, 임베디드
Do you believe that simply using an RTOS ensures real-time processing? Watch this lecture to confirm. We'll provide insights into tricky interrupts, priorities, mutual exclusion, and porting.
How to implement hard real-time
Operating interrupts reliably and efficiently
Overcoming system performance degradation caused by frequent mutual exclusion
How to make task prioritization decisive
Test if my task runs in real-time.
Porting Know-how
FreeRTOS summarized in one lecture!
Check out everything from concepts to practical know-how.
RTOS is an abbreviation for real-time operating system .
So that you can get the work done within a limited time.
It is an operating system that has been created.
RTOS is an operating system developed for real-time applications. It is used in embedded products in various fields including automotive, home appliances, medical, aerospace, defense, industrial control, and automation, as well as in environments where high performance and reliability are essential .
Even tasks requiring high levels (Hard-Realtime) can process results within a limited time through a real-time operating system.
As it is applied to various fields, RTOS also has various types and license forms. FreeRTOS is the best real-time operating system (RTOS) for microcontrollers and small microprocessors. FreeRTOS source code is distributed free of charge, so you can download FreeRTOS and start developing.
FreeRTOS is typically flashed into memory as a single image compiled with all the components needed for an embedded application.
Regardless of the microprocessor used, embedded application developers can use the same standardized interface to the FreeRTOS kernel and all FreeRTOS software libraries.
The FreeRTOS kernel is designed to be small, simple, and easy to use. A typical RTOS kernel binary image size is 4-9K bytes .
In general, FreeRTOS-based applications have the advantage of being much simpler than Linux-based systems.
Freeertos.org provides a series of detailed tutorials and guides on using the FreeRTOS kernel, including a quick start guide (click) . By supporting tickless interrupts, the microcontroller can remain in a DEEP SLEEP sleep state until an interrupt occurs or the RTOS kernel switches the task to a ready state.
Amazon has implemented a number of software libraries based on the FreeRTOS kernel that enable IoT devices to securely connect to its cloud . When Amazon FreeRTOS is deployed on IoT devices, they can securely connect to cloud services such as AWS IoT Core and be updated remotely using the OTA update feature.
It is a well-known fact that FreeRTOS has a free and source code-based kernel .
So what's the real benefit of having access to the kernel's source?
The fact that the kernel I use provides source code means that users can look into its contents whenever they want. However, if our ultimate goal is to drive a car called RTOS well, wouldn't it be more helpful for me to spend more time and effort on things like following turn signals, complying with crosswalk safety obligations, observing the rearview mirrors, and not accelerating too quickly, rather than focusing on learning the structure or principles of internal combustion engine vehicles?
You can also analyze the kernel source code to improve the kernel performance, but I can't recommend it because every code modification comes with responsibility. Rather, I think it is valuable to find and fix problems in my application by using the kernel source code, or to gain a better understanding of how the kernel works.
From now on, we will summarize the essential information that we need to know to properly operate a car called FreeRTOS.
All of the above are the core topics of this lecture. Now, let's get into the details.
Even if you build a house with the same materials, a house built by a certain carpenter will be safe and not shaken by strong winds or water leaks, while a house built by another carpenter will drip from the ceiling even when it rains a little, and in the winter, it will not be well insulated and will result in high heating costs. What is the difference? Just because you use an RTOS does not automatically guarantee the real-time performance of the program or product you create. This applies not only to FreeRTOS, but to all RTOSes. This lecture will teach you what efforts are needed to guarantee or achieve hard real-time.
We will look at examples of how our stereotypes can negatively impact the products or programs we create, and explore solutions to address them.
Wait a minute. You know that Mutex causes system performance degradation, right? Let's find out how to compensate for it or find an alternative.
Anyone who has ever tried to prioritize tasks knows that it can be difficult. I will talk about the pitfalls of giving high priority to important tasks and suggest alternatives.
If necessary, you may need a measuring instrument or equivalent equipment in addition to a debugger. Of course, you can develop and test without these equipment, but it will be easier to identify problems and prepare countermeasures. I will tell you how to check whether the task I created is running in hard real time.
When the hardware performance of the product I made is upgraded, it naturally requires porting work. I will share my long-time experience and know-how so that I can port the kernel myself without the help of others.
I created this course with your time as precious as my own.
After 13 years of teaching RTOS on-site, I decided to create online lectures to meet more learners. I will meet you as an online lecture that optimizes the content of 4 days of on-site lectures into 8 hours .
First time with RTOS
Beginner learning
For FreeRTOS based products
For those who are thinking about optimization
Lightweight OS for the product
Those who wish to apply
IoT (Internet of Things)
developer
👉 For those who want to kill two birds with one stone: hard real-time and stability of the product
👉 For those who want to compare and review with the Linux operating system
👉 Anyone who wants to increase their understanding of the operating system
👉 For those who do not have time to attend offline classes
Please check your player knowledge!
Main history
etc
Q. Can someone who doesn't know the C language take this course?
This course is good for engineers as well as non-majors and those interested in RTOS embedded products. However, if you do not know the C language, you may have difficulty understanding the parts related to practical training in class.
Q. Can intermediate level students also take this course?
The course is designed to cover not only those who are new to RTOS but also intermediate users who are already using RTOS. With 15 years of experience teaching RTOS programming at Seoul National University, Samsung Electronics, LG Electronics, Hyundai Mobis, LS Industrial Systems, and the Agency for Defense Development, I have covered the difficult parts and important topics of RTOS programming in depth.
Q. Do you also cover the Internet of Things (IoT) as a class topic?
FreeRTOS is used in a variety of IoT devices, but this course focuses on one topic: the RTOS kernel.
Q. There are various types of STM32 boards for practice. Is any of them okay?
In the video, the class is currently conducted based on the STM32 Nucleo64 f103rb board.
If you want to practice on a different STM32 board, watch the video '(Appendix) Follow the lecture with my Nucleo board' and then modify the source code of the practice example file (freeRTOS_tutorials) to fit your desired board and use this lecture, or ask the instructor to modify the source code to fit your desired board (free of charge. Usually takes 1-2 days. Apply in the Q&A corner.)
Q. Is FreeRTOS any good?
That's a very good question. And a difficult one. I have 12 years of experience developing embedded systems, and my experience spans firmware, RTOS, and embedded Linux.
To the question of which OS is better, I have prepared the following official answer:
(1) Free/Paid (2) Source code/Binary (3) Has many users (4) Development environment support
These are the important factors to consider when choosing an RTOS.
FreeRTOS gets almost full marks for items 1, 2, and 3 above. I wouldn't say FreeRTOS is the best OS, but I would at least recommend it.
Q. I am using VxWorks. Will this course help me?
Although the course title is FreeRTOS Programming, this course is designed to focus on the essence (core) of RTOS. Also, as you can see from my resume, I have already used various RTOSs.
This lecture covers the common knowledge that you need to know, frequently used skills, and misunderstandings or prejudices that users tend to have, regardless of the RTOS you use. I believe you will find it helpful.
Please check before taking the class! (License)
Linux Shell Script Master
Linux Shell Coding
Experience powerful features.
Who is this course right for?
RTOS beginner
Those wishing to apply lightweight OS to products.
Those needing Operating System study.
For FreeRTOS-based product optimization concerns
Product hard real-time and stability seekers.
Need to know before starting?
C language
3,192
Learners
215
Reviews
262
Answers
4.7
Rating
5
Courses
인하대학교 공과대학에서 전자공학 학사 학위를 받았으며 임베디드 시스템용 소프트웨어 개발자로써 수년간의 경력을 쌓았습니다. 임베디드 시스템 및 프로그래밍을 위한 전문 강사로도 활동 중입니다. 아이폰 3GS 등장과 같은 시기에 맥(북)에 입문하였고, 그때부터 맥(북) 자동화에 관심을 갖게 되었습니다. '맥(북)에서 사용할 수 있는 시리 리모트', '키보드마에스트로를 이용한 구글번역기' 같은 오픈 소스를 깃허브(https://github.com/guileschool) 에 두고 개발 및 유지보수하고 있습니다. 오픈 소스 하드웨어 '비글본블랙' 에도 많은 관심을 가지고 있습니다. 맥(북) 자동화를 이용하여 생산성을 높일 수 있는 컴퓨터를 사용하는 모든 분야에 관심을 가지고 있고, 이를 필요로 하는 사람들을 돕고 있습니다.
강의 요청 및 기타 문의사항은 guileschool@gmail.com으로 보내주세요 :)
All
206 lectures ∙ (9hr 21min)
Course Materials:
6. Task
02:13
8. Task status
01:34
9. What is a kernel?
01:08
10. Preemptive kernel
03:28
13. Priority scheduling
03:42
14. Interrupt
02:58
15. Blocking IO
03:31
16. Non-blocking IO
04:26
17. The Kernel Clock
02:06
18. An RTOS is:
05:33
20. Types of RTOS
04:13
23. Task type
01:58
24. Porting - Start
01:02
30. Porting - CMSIS
00:59
33. Porting - printf
04:08
34. Porting - LED On
00:20
All
65 reviews
4.7
65 reviews
Reviews 1
∙
Average Rating 5.0
Reviews 4
∙
Average Rating 5.0
5
FreeRTOS의 주요 기능을 아주 쉽게 실습할 수 있도록 실습 파일과 강의 영상에 엄청난 정성이 들어가 있습니다. 일반인이 시중에서 접할 수 있는 최고의 FreeRTOS 강의가 아닐까 싶습니다. 집중해서 들어야 하는 부분과 그렇지 않은 부분을 명확하게 구분해주시고, 다양한 사례를 들어서 설명해주셔서 이해하기 정말 쉬운 강의입니다. 졸업 프로젝트에서 FreeRTOS를 활용할 때 레퍼런스 문서를 n회독 하며 얼마나 고생했는지 생각납니다. 이 강의를 좀 더 빠르게 만났더라면 좋았을 걸 이라고 생각했습니다. 좋은 강의 제공해주셔서 정말 감사합니다.
Embedded June님! 프로그래밍 언어에서 반복되는 부분은 루프문이나 함수로 만들듯이, 10여개 정도되는 실습 예제에서 반복적으로 사용되는 소스파일, 그리고 내가 보고싶은 소스(eg. task.c, FreeRTOSConfig.h)를 빠르게 확인할 수 있도록 주의를 기울였습니다. 그 부분이 도움이 되셨다니 오히려 제가 감사합니다. 더욱 알찬강의로 다시 뵙기를 원합니다 ㅎㅎㅎ~~
Reviews 3
∙
Average Rating 5.0
Reviews 1
∙
Average Rating 5.0
Reviews 1
∙
Average Rating 5.0
$144.10
Check out other courses by the instructor!
Explore other courses in the same field!