Khóa Học Lập Trình FreeRTOS – Chìa Khóa Trở Thành Kỹ Sư Nhúng Chuyên Nghiệp
Hoàn Thành Khóa Học, Sẵn Sàng Chinh Phục Mọi Thử Thách Phỏng Vấn Từ Các Doanh Nghiệp!
Khóa Học Lập Trình FreeRTOS – RTOS là gì?
RTOS (Real-Time Operating System) là hệ điều hành thời gian thực, được thiết kế để đảm bảo các tác vụ trong hệ thống có thể được xử lý trong mốc thời gian xác định trước. RTOS đặc biệt quan trọng trong những ứng dụng yêu cầu độ chính xác cao và phản hồi nhanh.
RTOS thường được sử dụng trong nhiều lĩnh vực:
- Ô tô và công nghiệp hàng hải
- Thiết bị y tế
- Hàng không vũ trụ, quốc phòng
- Điều khiển công nghiệp và tự động hóa
- Các thiết bị điện tử tiêu dùng và IoT
Điểm mạnh của RTOS là khả năng đáp ứng đúng hạn (deterministic response) và độ tin cậy cao trong môi trường thời gian thực.
FreeRTOS là gì?
FreeRTOS là một hệ điều hành thời gian thực mã nguồn mở, tối ưu cho vi điều khiển và vi xử lý nhúng cỡ nhỏ. Đây là một trong những RTOS phổ biến nhất hiện nay nhờ các đặc điểm sau:
- Mã nguồn mở & miễn phí: Có thể tải về từ FreeRTOS.org và sử dụng ngay.
- Nhẹ & đơn giản: Nhân FreeRTOS có kích thước nhị phân chỉ khoảng 4–9 KB, dễ tích hợp vào các hệ thống có tài nguyên hạn chế.
- Tính linh hoạt: Có thể chạy trên nhiều loại vi xử lý và vi điều khiển khác nhau với cùng giao diện chuẩn hóa.
- Dễ phát triển: Cung cấp nhiều thư viện, hướng dẫn chi tiết và ví dụ thực hành.
FreeRTOS thường được biên dịch thành một ảnh chương trình duy nhất, bao gồm nhân RTOS cùng tất cả thành phần cần thiết cho ứng dụng nhúng.
Ứng dụng và mở rộng của FreeRTOS
- Hệ thống nhúng đơn giản: FreeRTOS được ưa chuộng vì dễ triển khai, trong khi các hệ điều hành như Linux thường phức tạp hơn.
- Hỗ trợ chế độ ngủ sâu (Deep Sleep): Vi điều khiển có thể duy trì trạng thái tiết kiệm năng lượng và chỉ được đánh thức khi có ngắt hoặc khi tác vụ cần chuyển sang trạng thái hoạt động.
- Amazon FreeRTOS: Amazon đã mở rộng FreeRTOS bằng cách phát triển thêm các thư viện, cho phép thiết bị IoT:
- Kết nối an toàn với dịch vụ đám mây như AWS IoT Core.
- Cập nhật phần mềm từ xa thông qua OTA (Over-The-Air update).

Bạn sẽ học được 📚
Một sự thật hiển nhiên: FreeRTOS kernel là miễn phí và mã nguồn mở.
Vậy lợi ích thực sự của việc truy cập vào mã nguồn kernel là gì?
Trước hết, việc kernel cung cấp mã nguồn cho phép bạn xem chi tiết cách nó hoạt động bất cứ lúc nào. Tuy nhiên, nếu mục tiêu cuối cùng của chúng ta là “lái tốt chiếc xe mang tên RTOS”, thì việc tập trung nhiều hơn vào cách vận hành an toàn sẽ hữu ích hơn:
- Tuân thủ quy tắc lập lịch (giống như tín hiệu đèn giao thông).
- Bảo đảm an toàn khi đồng bộ tài nguyên chung (như quan sát gương chiếu hậu).
- Tránh “tăng tốc” quá mức khi tạo quá nhiều tác vụ hay ngắt không cần thiết.
Bạn có thể đi sâu vào phân tích mã nguồn kernel để tối ưu hiệu suất, nhưng cần cân nhắc vì mọi chỉnh sửa mã nhân đều kéo theo trách nhiệm bảo trì. Thay vào đó, hãy xem mã nguồn như một công cụ hỗ trợ quý giá để:
- Hiểu rõ hơn nguyên lý hoạt động của kernel.
- Tìm và khắc phục sự cố trong ứng dụng của chính bạn.
Từ bây giờ, chúng ta sẽ tóm tắt những kiến thức cần thiết để “lái xe FreeRTOS” một cách an toàn và hiệu quả, thay vì sa đà vào việc nghiên cứu cấu trúc động cơ bên trong.
Trong lĩnh vực hệ điều hành thời gian thực (RTOS), có một số vấn đề cơ bản mà bất kỳ kỹ sư nhúng nào cũng cần nắm rõ. Đây cũng chính là trọng tâm của bài giảng này.
6 Chủ đề cốt lõi trong RTOS ✅
- Cách triển khai thời gian thực cứng (Hard Real-Time)
- Vận hành ngắt một cách đáng tin cậy và hiệu quả
- Xử lý sự suy giảm hiệu năng do Mutex và loại trừ lẫn nhau
- Đảm bảo ưu tiên đúng cho các tác vụ quan trọng
- Xác minh tác vụ có thực sự hoạt động trong thời gian thực
- Kiến thức chuyên sâu về porting và chuyển giao hệ thống
Tất cả những điều trên là nền tảng để đảm bảo hệ thống RTOS vận hành an toàn, ổn định và đạt hiệu suất tối ưu. Hãy đi sâu vào từng chủ đề chi tiết dưới đây.
1. Thời gian thực cứng không tự động đạt được chỉ nhờ dùng RTOS
Một ngộ nhận phổ biến là chỉ cần sử dụng RTOS thì ứng dụng sẽ tự động đáp ứng thời gian thực. Thực tế thì không.
Giống như việc xây một ngôi nhà: cùng vật liệu nhưng tay nghề thợ mộc sẽ quyết định độ bền vững. Ngôi nhà tốt sẽ an toàn, chống gió, chống thấm và cách nhiệt tốt; ngược lại, ngôi nhà kém chất lượng sẽ dễ hỏng dù chỉ gặp mưa nhỏ.
Tương tự, hiệu suất thời gian thực không đến từ việc cài đặt RTOS đơn thuần, mà phụ thuộc vào cách bạn thiết kế và triển khai hệ thống.
2. Vận hành ngắt nhanh và đáng tin cậy
Ngắt là trái tim của hệ thống thời gian thực. Tuy nhiên, xử lý ngắt không đúng cách có thể gây ra độ trễ, xung đột và suy giảm hiệu năng.
Trong phần này, chúng ta sẽ tìm hiểu các nguyên tắc lập trình ISR (Interrupt Service Routine), cũng như những lỗi thường gặp và cách tối ưu để duy trì hệ thống ổn định.
3. Giảm thiểu tác động của Mutex
Mutex giúp đồng bộ tài nguyên dùng chung, nhưng nếu lạm dụng sẽ khiến hệ thống bị “nghẽn” và giảm hiệu năng.
Khi nào nên dùng Mutex?
Khi một tài nguyên chỉ có thể được truy cập bởi một tác vụ tại một thời điểm, Mutex là giải pháp phù hợp.
Khi nào cần thay thế Mutex?
- Dùng Semaphore để đồng bộ nhẹ nhàng hơn.
- Dùng Queue để truyền dữ liệu thay vì chia sẻ trực tiếp.
- Thiết kế lại luồng tác vụ để giảm thiểu tài nguyên dùng chung.
4. Ưu tiên tác vụ một cách hợp lý
Đặt mức ưu tiên cho tác vụ là vấn đề phức tạp hơn nhiều so với lý thuyết. Nếu tất cả đều được ưu tiên cao, hệ thống sẽ mất cân bằng. Nếu ưu tiên sai, tác vụ quan trọng có thể bị trì hoãn.
Các điểm cần lưu ý
- Nguyên tắc thiết lập mức ưu tiên rõ ràng.
- Tránh hiện tượng priority inversion bằng kỹ thuật kế thừa ưu tiên.
- Không “quá ưu tiên” dẫn đến mất hiệu quả toàn hệ thống.
5. Xác minh tác vụ có thực sự chạy theo thời gian thực
Lập trình chưa đủ, bạn còn cần kiểm chứng xem tác vụ có thực sự đáp ứng deadline thời gian thực hay không.
Việc này đôi khi yêu cầu đến công cụ đo lường ngoài (logic analyzer, oscilloscope) chứ không chỉ dựa vào debugger. Xác minh giúp bạn phát hiện sớm vấn đề và chuẩn bị giải pháp kịp thời.
6. Porting và chuyển giao hệ thống
Không phải ứng dụng nào cũng chạy mãi trên cùng một phần cứng. Khi phần cứng thay đổi, việc port kernel và các thành phần hệ thống sang nền tảng mới là không thể tránh khỏi.
Kinh nghiệm khi porting
- Xác định rõ những phần cần chỉnh sửa khi chuyển đổi phần cứng.
- Viết mã nguồn theo hướng dễ tái sử dụng và dễ bảo trì.
- Nắm vững cấu trúc của FreeRTOS để tự tin port mà không phụ thuộc vào bên ngoài.
Kết luận
✅ Việc sử dụng RTOS không đồng nghĩa với việc hệ thống sẽ tự động hoạt động đúng hạn. Điều quan trọng là nắm vững nguyên tắc, áp dụng đúng kỹ thuật và kiểm chứng thực tế. Sáu chủ đề trên chính là nền tảng để bạn phát triển ứng dụng RTOS ổn định, đáng tin cậy và đạt hiệu suất cao.
Kiến thức giảng dạy RTOS với hơn 13 năm kinh nghiệm 💡
Tôi đã dành hơn 13 năm giảng dạy RTOS trực tiếp tại lớp học. Từ kinh nghiệm đó, tôi quyết định xây dựng khóa học trực tuyến nhằm tiếp cận nhiều học viên hơn. Nội dung được tối ưu hóa từ chương trình 4 ngày giảng dạy trực tiếp thành 8 giờ học trực tuyến, giúp bạn tiết kiệm thời gian mà vẫn lĩnh hội được đầy đủ kiến thức cốt lõi.
Khóa học này phù hợp với ai? 🔑
- Người mới làm quen với RTOS, cần kiến thức nền tảng.
- Những ai phát triển sản phẩm dựa trên FreeRTOS.
- Nhà phát triển mong muốn tối ưu hóa hệ thống nhúng.
- Người tìm kiếm giải pháp hệ điều hành nhẹ cho sản phẩm.
- Các lập trình viên IoT (Internet of Things).
Khóa học cũng hữu ích cho:
- Người muốn vừa nắm vững thời gian thực cứng, vừa nâng cao độ ổn định sản phẩm.
- Người cần so sánh và đánh giá FreeRTOS với Linux.
- Người muốn hiểu sâu hơn về nguyên lý hoạt động của hệ điều hành.
- Người bận rộn, không có thời gian tham gia lớp học offline.
Lưu ý kiến thức tiên quyết: Bạn nên có nền tảng lập trình ngôn ngữ C để dễ dàng tiếp thu nội dung khóa học.
Điểm đặc biệt của khóa học ✨
- 180 video bài giảng ngắn gọn – được chia nhỏ thành từng chủ đề, giúp bạn dễ dàng tra cứu khi cần.
- Hoạt hình 2D sinh động – hỗ trợ trực quan trong việc hiểu các khái niệm phức tạp.
- Ví dụ thực tế kèm TO-DO – mỗi bài học đều có phần thực hành để bạn trực tiếp áp dụng kiến thức.
- Tinh gọn nội dung – tập trung vào kiến thức cốt lõi, loại bỏ các phần không cần thiết.
- Dễ tiếp thu – nội dung được thiết kế để bạn có thể học chỉ qua video, không cần đọc thêm hướng dẫn phức tạp.
Công cụ & phần cứng sử dụng trong khóa học 🧰

- Trình biên dịch: STM32CubeIDE.
- Bo mạch thực hành chính: Nucleo-64 F103RB (STMicroelectronics).
- Các bo mạch khác được hỗ trợ: DISCO_F429I, DISCO_F469I, NUCLEO_F401RE, NUCLEO_F767ZI, NUCLEO_L010RB.
- Tài liệu & ví dụ thực hành: gói
freeRTOS_tutorials.zip(bao gồm trong Phần 0: Bắt đầu với FreeRTOS).
Nếu bo mạch STM32 của bạn không có trong danh sách trên, bạn có thể tham khảo video “(Phụ lục) Thực hiện theo bài giảng với bo mạch Nucleo của tôi” để tự sửa đổi mã nguồn cho phù hợp. Ngoài ra, bạn cũng có thể yêu cầu giảng viên chỉnh sửa mã nguồn miễn phí (thời gian xử lý 1–2 ngày, đăng ký tại mục Hỏi & Đáp).
- 20 Phần
- 206 Bài Học
- Không Giới Hạn Thời Gian
- Phần 1. Bắt đầu với FreeRTOS5
- Phần 2. Giới thiệu về RTOS17
- 2.16. Nhiệm vụ – Task
- 2.27. Giao tiếp giữa các tác vụ
- 2.38. Trạng thái nhiệm vụ
- 2.49. Kernel là gì
- 2.510. Kernel độc quyền
- 2.611. Kernel không độc quyền
- 2.712. Lập lịch vòng tròn
- 2.813. Lập lịch ưu tiên
- 2.914. Ngắt quãng
- 2.1015. IO chặn
- 2.1116. IO không chặn
- 2.1217. Đồng hồ của hạt nhân
- 2.1318. RTOS là gì
- 2.1419. Đặc điểm của RTOS
- 2.1520. Các loại RTOS
- 2.1621. Giới thiệu về FreeRTOS
- 2.1722. Học FreeRTOS những gì
- Phần 3. Thực hành porting FreeRTOS13
- 3.123. Hình thức tác vụ
- 3.224. Bắt đầu chuyển mã
- 3.325. Tạo dự án mới – Porting
- 3.426. Thiết lập dự án Porting và CMSIS
- 3.527. Cách sử dụng tệp 포팅-IOC
- 3.628. Cách tìm hàm mong muốn trong Porting
- 3.729. Khởi tạo-osKernelStart
- 3.830. Chuyển đổi-CMSIS
- 3.931. Khả năng chuyển đổi độc lập với hệ điều hành (OS)
- 3.1032. Đang chuyển – startDefaultTask
- 3.1133. đang chuyển – printf
- 3.1234. Chuyển mã – Bật đèn LED
- 3.1335. Đang chuyển đổi – Hoàn tất
- Phần 4. Hướng dẫn sử dụng ví dụ thực hành4
- Phần 5. Tạo và vận hành tác vụ26
- 5.140. Hàm tạo xTaskCreate
- 5.241. Thực hành ví dụ về nhiệm vụ
- 5.342. Chương trình và bộ nhớ
- 5.443. Cấu trúc bộ nhớ logic của chương trình
- 5.544. Phân tích mã nguồn – Khởi đầu của kernel
- 5.645. Phân tích mã nguồn – xTaskCreate
- 5.746. Phân tích mã nguồn – Siêu tác vụ
- 5.847. Phân tích mã nguồn – Sơ đồ trạng thái tác vụ
- 5.948. Phân tích mã nguồn – vTaskDelete
- 5.1049. Phân tích mã nguồn – Lập lịch ưu tiên
- 5.1150. Phân tích mã nguồn – vTaskSuspend
- 5.1251. Phân tích mã nguồn – vTaskDelay
- 5.1352. Phân tích mã nguồn – vTaskPrioritySet
- 5.1453. Phân tích mã nguồn – Đa nhiệm
- 5.1554. Phân tích mã nguồn – Mối quan hệ giữa độ ưu tiên và thời gian thực thi
- 5.1655. Phân tích mã nguồn – Nguyên lý lập lịch ưu tiên
- 5.1756. Phân tích mã nguồn – Tầm quan trọng của hàm vTaskDelay
- 5.1857. Phân tích mã nguồn – FreeRTOSConfig
- 5.1958. Phân tích mã nguồn – Lập lịch Round Robin
- 5.2059. Phân tích mã nguồn – configUSE_TIME_SLICING
- 5.2160. Phân tích mã nguồn – xTaskIncrementTick
- 5.2261. Phân tích mã nguồn – configUSE_PREEMPTION
- 5.2362. Phân tích mã nguồn – printf và fflush
- 5.2463. Phân tích mã nguồn – configUSE_IDLE_HOOK
- 5.2564. Công việc và mức độ ưu tiên
- 5.2665. Phân tích xTaskCreate
- Phần 6. Tác vụ và bộ nhớ11
- 6.166. Tác vụ và bộ nhớ stack
- 6.267. Đặc điểm của bộ nhớ stack cho tác vụ
- 6.368. Phân mảnh bộ nhớ là gì
- 6.469. Phân bổ động bộ nhớ ngăn xếp tác vụ
- 6.570. Xác định kích thước của ngăn xếp tác vụ
- 6.671. Phân bổ tĩnh bộ nhớ stack tác vụ
- 6.772. Kiểm tra tràn ngăn xếp
- 6.873. Phân tích mã nguồn – configCHECK_FOR_STACK_OVERFLOW
- 6.974. Tràn bộ đệm ngăn xếp – Assertion
- 6.1075. Phân tích mã nguồn kernel – Bộ nhớ stack của tác vụ
- 6.1176. Tối ưu hóa kích thước bộ nhớ stack
- Phần 7. API hạt nhân liên quan đến tác vụ8
- Phần 8. Vùng găng và loại trừ lẫn nhau10
- 8.185. Vấn đề đồng thời
- 8.286. Vùng tới hạn
- 8.387. Tái nhập cảnh
- 8.488. Phương pháp loại trừ lẫn nhau – Cấm ngắt quãng
- 8.589. Phương pháp loại trừ lẫn nhau – Khóa bộ lập lịch
- 8.690. Phương pháp loại trừ lẫn nhau – Semaphore
- 8.791. Phương pháp loại trừ lẫn nhau – Phương pháp tốt nhất
- 8.892. nhiệm vụ BƯỚC VÀO_GIAI ĐOẠN QUAN TRỌNG
- 8.993. Độ ưu tiên tuyệt đối của FreeRTOS
- 8.1094. THỰC HÀNH 03_CRITICAL
- Phần 9. Chuyển đổi ngữ cảnh11
- 9.195. Thanh ghi con trỏ ngăn xếp và ngữ cảnh
- 9.296. Tối ưu hóa bộ nhớ TCB chuyển đổi ngữ cảnh
- 9.397. Chuyển đổi ngữ cảnh – CONTEXT SWITCH
- 9.498. Hai phương pháp chuyển đổi ngữ cảnh của FreeRTOS
- 9.599. Chuyển đổi ngữ cảnh – 2 phương pháp chuyển đổi ngữ cảnh nhìn từ mã nguồn kernel
- 9.6100. Phân tích hàm xử lý ngắt xPortPendSVHandler – chuyển đổi ngữ cảnh
- 9.7101. Mối quan hệ giữa ngắt và chiếm quyền điều khiển
- 9.8102. Chuyển đổi ngữ cảnh – Chuyển đổi ngữ cảnh bằng trình xử lý ngắt xPortSysTickHandler
- 9.9103. Tác vụ IDLE
- 9.10104. TICK biến xTickCount
- 9.11105. Kiểm tra phiên bản FreeRTOS
- Phần 10. Coroutine và ngắt quãng16
- 10.1106. Coroutine
- 10.2107. Ngắt nguy hiểm
- 10.3108. Ưu tiên tuyệt đối của FreeRTOS
- 10.4109. Thực hành – Ngắt hoãn lại
- 10.5110. Đã kiểm tra cải thiện hiệu năng DFI
- 10.6111. Phân tích mã nguồn chính DFI
- 10.7112. DFI – Hoàn tất
- 10.8113. Các kỹ thuật tối ưu hóa hiệu suất hệ thống
- 10.9114. Tìm hiểu về việc xác định mức độ ưu tiên của tác vụ trong RTOS qua các ví dụ
- 10.10115. Có thật là nhiệm vụ này nên được ưu tiên cao nhất không?
- 10.11116. Lỗi quyết định ưu tiên
- 10.12117. Nguyên lý phát nhạc của máy nghe nhạc MP3
- 10.13118. Phương pháp xác định ưu tiên theo thời gian hoàn thành
- 10.14119. Hiểu đúng về ngắt
- 10.15120. Hoàn thành phương pháp quyết định ưu tiên
- 10.16121. Bộ nhớ động của FreeRTOS
- Phần 11. Bộ đếm semaphore15
- 11.1122. Giao tiếp giữa các tác vụ
- 11.2123. Bộ đếm semaphore
- 11.3124. Tiến trình nhà sản xuất và tiến trình người tiêu dùng
- 11.4125. Semaphore FreeRTOS
- 11.5126. vSemaphoreCreateBinary
- 11.6127. Thực hành – Semaphore
- 11.7128. vSemaphoreDelete
- 11.8129. xSemaphoreCreateBinary
- 11.9130. vSemaphoreDelete
- 11.10131. xSemaphoreTake
- 11.11132. xSemaphoreTakeFromISR
- 11.12133. xSemaphoreCreateCounting
- 11.13134. Phân tích mã nguồn – Nguyên lý của boot
- 11.14135. Phân tích mã nguồn – xSemaphoreCreateBinary
- 11.15136. Phân tích mã nguồn – xSemaphoreCreateCounting
- Phần 12. IPC3
- Phần 13. Mutex6
- Phần 14. Cờ sự kiện6
- Phần 15. Trình điều khiển thiết bị5
- Phần 16. Hàng đợi tin nhắn6
- Phần 17. Hẹn giờ mềm4
- Phần 18. Công cụ gỡ lỗi và bế tắc6
- Phần 19. Lý thuyết Porting FreeRTOS7
- 19.1173. Tổng quan về Porting
- 19.2174. Chuẩn bị mã nguồn để porting FreeRTOS
- 19.3175. Porting RTOS là gì
- 19.4176. Nguyên tắc cốt lõi của việc chuyển nhân RTOS
- 19.5177. Cấu trúc mã nguồn kernel FreeRTOS
- 19.6178. Các loại điều chuyển hạt nhân RTOS khác nhau
- 19.7179. Các loại Porting Kernel RTOS khác nhau – Trường hợp Bo mạch STM32F469NI
- Phần 20. (Phụ lục) Theo dõi bài giảng bằng Nucleo Board của tôi27
- 20.1180. Hướng dẫn đầy đủ về Porting – Làm theo bài giảng với Nucleo Board của riêng bạn
- 20.2181. Ví dụ về porting và mã nguồn (DISCO F429I)
- 20.3182. Các trường hợp chuyển đổi và mã nguồn (DISCO F469I)
- 20.4183. Ví dụ về porting và mã nguồn (NUCLEO-64 F401RE)
- 20.5184. Ví dụ về porting và mã nguồn (NUCLEO-144 F767ZI)
- 20.6185. Các trường hợp chuyển đổi và mã nguồn (NUCLEO-64 L010RB)
- 20.7186. Tôi muốn dùng bo mạch Nucleo mà tôi có để theo kịp bài giảng. Hãy giúp tôi ~ Yêu cầu giảng viên porting.
- 20.8187. Trường hợp chuyển đổi và mã nguồn (NUCLEO F746ZG) < Yêu cầu của người dùng
- 20.9188. Trường hợp chuyển đổi và mã nguồn (NUCLEO-64 G491RE) < Yêu cầu của người dùng
- 20.10189. Các trường hợp chuyển đổi và mã nguồn (EVAL F769I) < Yêu cầu của người dùng
- 20.11190. Trường hợp chuyển đổi và mã nguồn (NUCLEO-64 L476RG) < Yêu cầu của người dùng
- 20.12191. Trường hợp chuyển đổi và mã nguồn (DISCO F746) < Yêu cầu của người dùng
- 20.13192. Trường hợp chuyển đổi và mã nguồn (NUCLEO-64 G071RB) < Yêu cầu của người dùng
- 20.14193. Trường hợp chuyển đổi và mã nguồn (NUCLEO-64 L552ZE) < Yêu cầu từ người dùng
- 20.15194. Ví dụ về porting và mã nguồn (NUCLEO-64 F429ZI) < Yêu cầu của người dùng
- 20.16195. Trường hợp chuyển đổi và mã nguồn (NUCLEO-64 L4R5ZI) < Yêu cầu của người dùng
- 20.17196. Trường hợp chuyển đổi và mã nguồn (DISCO F407) < Yêu cầu của người dùng
- 20.18197. Các trường hợp chuyển đổi và mã nguồn (NUCLEO-64 G070RB) < Yêu cầu của người dùng
- 20.19198. Ví dụ về porting và mã nguồn (NUCLEO H743ZI2) < Yêu cầu của người dùng
- 20.20199. Trường hợp Porting và Mã nguồn (NUCLEO H723ZG) < Yêu cầu của người dùng
- 20.21200. Ví dụ về chuyển đổi và mã nguồn (NUCLEO G431RB) < Yêu cầu của người dùng
- 20.22201. Ví dụ về chuyển đổi và mã nguồn (NUCLEO F446RE) < Yêu cầu của người dùng
- 20.23202. Trường hợp chuyển đổi và mã nguồn (NUCLEO L152RE) < Yêu cầu của người dùng
- 20.24203. Trường hợp Porting và Mã nguồn (NUCLEO F411RE) < Yêu cầu của người dùng
- 20.25204. Ví dụ về chuyển mã và mã nguồn (STM32H735G-DK) < Yêu cầu của người dùng
- 20.26205. 포팅 사례와 소스코드(NUCLEO F334R8) < 사용자요청
- 20.27206. 포팅 사례와 소스코드(NUCLEO F439) < 사용자요청

Tôi tốt nghiệp Đại học Inha, và đã tích lũy nhiều năm kinh nghiệm với tư cách là nhà phát triển phần mềm cho hệ thống nhúng. Đồng thời cũng hoạt động như một giảng viên chuyên môn về hệ thống nhúng và lập trình. Tôi hy vọng mọi người sẽ nhận được thật nhiều giá trị từ những kiến thức mà tôi truyền đạt
Hoàn Thành Khóa Học, Sẵn Sàng Chinh Phục Mọi Thử Thách Phỏng Vấn Từ Các Doanh Nghiệp!
Nhờ khóa học, mình đã làm chủ FreeRTOS và áp dụng vào dự án IoT chạy ổn định, hiệu quả hơn hẳn
Khóa Học Tương Tự
-
Các Trình Độ
-
313 Sinh viên
-
149 bài học
-
Các Trình Độ
-
313 Sinh viên
-
149 bài học
-
Các Trình Độ
-
149 Sinh viên
-
111 bài học
-
Các Trình Độ
-
149 Sinh viên
-
111 bài học
Đăng Ký Nhận Khuyến Mãi
Liên Hệ
Điện Thoại?
Địa Chỉ
VN : Keangnam, Nam Tu Liem, Ha noi, Viet Nam