
Lập trình bộ xử lý ARM Cortex-M
guileschool
Bạn có muốn học sâu về bộ xử lý CORTEX-M không? Chúng tôi sẽ giúp bạn chắc chắn nắm vững hai chủ đề quan trọng nhất của hệ thống nhúng là lắp ráp và ngắt quãng.
Cơ bản
ARM Architecture, Cortex, Embedded
Bạn từng cảm thấy bối rối vì chỉ sao chép, dán CMakeLists.txt mà chẳng hiểu tại sao nó chạy? Hãy tự chỉnh sửa và build ngay trong VSCode, làm chủ mọi thứ từ thiết kế target, đóng gói đến cross-build và gỡ lỗi từ xa.
18 học viên đang tham gia khóa học này
Độ khó Cơ bản
Thời gian Không giới hạn
Quy trình build CMake và cách khắc phục vấn đề về phiên bản, chính sách bằng cách phân biệt Configure, Generate và Build
Vòng lặp phát triển liền mạch từ cấu hình, xây dựng, kiểm thử đến gỡ lỗi trong VSCode (CMake Tools, clangd)
Thiết kế tập trung vào target, phân biệt PUBLIC / PRIVATE / INTERFACE và cấu hình đa mô-đun
Điều khiển cấu hình bản dựng bằng option, cache, configure_file, Generator Expression và preset
Quản lý phụ thuộc, kiểm thử và phân phối gói bằng find_package, FetchContent, CTest và CPack
Biên dịch chéo bằng tệp toolchain và sysroot, cùng gỡ lỗi từ xa bằng VSCode
Quy trình phát triển C/C++ trong VSCode, kết nối liền mạch các bước cấu hình, build, kiểm thử và gỡ lỗi. Thay vì học thuộc vị trí các nút, bạn sẽ có thể đọc và tự chỉnh sửa các tệp cấu hình cùng nhật ký thực tế.
Tóm tắt trong một câu
Tạo quy trình cấu hình · biên dịch · kiểm thử · gỡ lỗi chỉ với một chiếc PC, rồi tiếp tục từ thiết kế lấy mục tiêu làm trung tâm, kiểm thử và phân phối gói đến biên dịch chéo và gỡ lỗi từ xa. Nội dung chính gồm 25 chương, dài khoảng 5 giờ. Mỗi chương đều có bài tập.
Giới thiệu về phương thức sản xuất
Khóa học này được tạo bằng quy trình sản xuất ứng dụng AI. Phần thuyết minh sử dụng công nghệ tổng hợp giọng nói được huấn luyện từ giọng nói của chính giảng viên; AI cũng được dùng để soạn kịch bản và sản xuất đồ họa. Giảng viên có gần 20 năm kinh nghiệm trong lĩnh vực nhúng và đào tạo doanh nghiệp trực tiếp đảm nhiệm việc lên kế hoạch và kiểm duyệt nội dung. Tất cả kết quả thực hành đều được chạy và kiểm tra trong môi trường VSCode thực tế (trên PC và bo mạch Raspberry Pi thật).
BƯỚC 1
Liền mạch từ thiết lập đến gỡ lỗi
Chương 01 ~ 04
STEP 2
Thư viện, kiểm soát quá trình biên dịch, kiểm thử, gói phần mềm
Chương 05 ~ 19 · Chương 24 ~ 25
BƯỚC 3
Tệp toolchain, qemu, gdbserver
Chương 20 ~ 23 · Tùy chọn bo mạch
CMakeLists.txt được sao chép về sẽ sụp đổ ngay khi có thêm một thư viện, khi các tùy chọn build phân nhánh hoặc khi bắt đầu biên dịch chéo. Build được nhưng không biết vì sao lại được; khi không build được thì cũng chẳng biết phải sửa ở đâu.
Mục tiêu của khóa học này là tạo ra một hệ thống build vững chắc, được thiết kế dựa trên sự thấu hiểu nguyên lý.
Vấn đề không nằm ở Make mà là các quy tắc build rải rác. Khi dự án lớn dần, các tùy chọn trình biên dịch bị sao chép khắp nơi, còn các Makefile ở từng thư mục gọi lẫn nhau và trở nên rối rắm.
CMake cho phép bạn khai báo cần xây dựng những gì, còn CMake sẽ tạo các tệp build phù hợp với công cụ build và toolchain. Các dự án C/C++ mã nguồn mở lớn như LLVM, Qt, OpenCV và các IDE như VSCode, CLion đều dựa vào cách này để hiểu cấu trúc dự án.
01 Configure / Generate / Build, cache, Ninja, khả năng tương thích với CMake 4.x
02 Vòng lặp phát triển trên VSCode: CMake Tools, clangd, điểm dừng và Watch
03 Thư viện tĩnh và thư viện dùng chung cùng PUBLIC / PRIVATE / INTERFACE
04 add_subdirectory đa mô-đun và khả năng hiển thị ký hiệu
05 option, header cấu hình, Generator Expression, function, preset
06 Tạo mã và header trong quá trình build bằng Custom Commands
07 cài đặt, find_package, FetchContent
08 Kiểm thử bằng CTest·GoogleTest và đóng gói .deb bằng CPack
09 Cross-build bằng tệp toolchain và sysroot, chạy qemu
10 Thực hành tổng hợp từ phát triển từ xa qua Remote SSH, gỡ lỗi bằng gdbserver đến phát hành
Cùng đọc các tệp cấu hình và nhật ký Configure / Build thực tế để bạn có thể nhận ra cùng một quy trình ngay cả khi phiên bản công cụ thay đổi.
Nội dung bao gồm tệp toolchain, sysroot, qemu và gỡ lỗi từ xa bằng gdbserver. Ngay cả khi không có bo mạch, bạn vẫn có thể theo dõi toàn bộ quy trình bằng qemu trên PC.
Bỏ qua phần cài đặt và tìm nguyên nhân gây lỗi.
Kiểm tra cả các tệp được tạo ra, tệp nhị phân và các ký hiệu.
Tự giải rồi đối chiếu với lời giải.
Đọc toàn bộ quá trình build CMake ngay trong cửa sổ Output của VSCode
Kiểm tra cả compile_commands.json mà clangd đọc
Không cần chuẩn bị thiết bị từ trước. Tất cả bài thực hành đều được thực hiện trên một máy tính Ubuntu. Với các chương về biên dịch chéo và kết nối từ xa, bạn có thể thực hành trọn vẹn bằng qemu trên PC (Chương 20–22). Đến Chương 23, bạn sẽ đưa cùng dự án lên bo mạch Raspberry Pi 3B+ thực tế và thử gỡ lỗi từ xa. Ngay cả khi không có bo mạch, bạn vẫn có thể theo dõi và thực hành Chương 23.
Từ năm 2008, tôi đã đào tạo các nhà phát triển tại những doanh nghiệp và tổ chức như Samsung Electronics, LG Electronics, SK hynix và Hyundai Mobis. Điều khiến học viên tại các lớp học thực tế gặp khó khăn nhất, thật bất ngờ, không phải là code mà là quá trình build. Khóa học này được thiết kế để lần lượt tháo gỡ những khó khăn đó.
Khóa học dành cho những người có thể đọc CMakeLists.txt nhưng còn lúng túng khi tự thiết kế, cũng như những người thường xuyên mất thời gian vì các vấn đề build.
Hướng tới việc tự đọc và sửa các tệp cấu hình và nhật ký
Có thể áp dụng nguyên vẹn cho phần mềm máy chủ, máy tính để bàn, thư viện và thiết bị.
Ubuntu 22.04 LTS
CMake 3.22, Ninja (bao gồm cả các trường hợp tương thích với CMake 4.x)
gcc 11 (build-essential), gdb
VSCode + CMake Tools, clangd
aarch64-linux-gnu-gcc, qemu-user
gdbserver, gdb-multiarch, Remote - SSH
Raspberry Pi 3B+ trở lên là tùy chọn (nếu không có thì dùng qemu).
Những nội dung không được đề cập trong khóa học này
Windows・MSVC・Visual Studio Generator, macOS Xcode: Phần thực hành dựa trên Linux. Nguyên lý thì giống nhau.
Các trình quản lý gói như Conan·vcpkg: chúng ta sẽ tìm hiểu nguyên lý thông qua FetchContent·find_package.
CI (như GitHub Actions), CDash, báo cáo độ bao phủ: phần kiểm thử chỉ đề cập đến CTest và GoogleTest.
Yocto·Buildroot, nạp firmware MCU·gỡ lỗi: đây là các chủ đề chuyên biệt nên không được đề cập.
Các module C++20 và tính năng mới của CMake 4.x: bài thực hành sử dụng CMake 3.22. Chỉ các vấn đề tương thích với 4.x mới được đề cập ở Chương 03.
Q. Không có Raspberry Pi thì có khó tham gia khóa học không?
Không. Bạn có thể thực hiện toàn bộ bài thực hành chỉ với một máy tính. Các nội dung biên dịch chéo và phát triển từ xa (chương 20–22) được chạy bằng qemu trên máy tính. Chương 23 minh họa quy trình tương tự trên bo mạch Raspberry Pi 3B+ thực tế; nếu có bo mạch, bạn có thể làm theo.
Q. Có thể làm theo trên Mac hoặc Windows không?
Cú pháp CMake và quy trình build không phụ thuộc vào hệ điều hành. Phần thực hành dựa trên Ubuntu 22.04, vì vậy chúng tôi khuyến nghị dùng máy ảo hoặc WSL2. Không đề cập đến các trình tạo dự án Visual Studio hay Xcode.
Q. Có phù hợp với dự án C++ hoặc phát triển máy chủ và ứng dụng máy tính để bàn không?
Có. Đây là khóa học thực hành CMake tổng quát, không dành riêng cho lĩnh vực cụ thể nào. Các ví dụ chủ yếu dùng C, nhưng có cả chương kết hợp C/C++; thiết kế target, kiểm thử, cài đặt và đóng gói, cũng như preset đều có thể áp dụng nguyên vẹn cho các dự án C++.
Khóa học này dành cho ai?
Nhà phát triển đang muốn chuyển dự án C/C++ dựa trên Makefile sang CMake.
Người mới bắt đầu dùng CMake, thường sao chép CMakeLists.txt để sử dụng nhưng không hiểu nguyên lý hoạt động.
Nhà phát triển muốn sử dụng VSCode làm môi trường phát triển C/C++ tích hợp cả biên dịch và gỡ lỗi
Nhà phát triển muốn tìm hiểu toàn bộ quy trình, từ cấu hình thư viện đến kiểm thử và phát hành gói.
Người dùng CMake trình độ trung cấp muốn tìm hiểu cả biên dịch chéo, quản lý ABI và gỡ lỗi từ xa.
Cần biết trước khi bắt đầu?
Cú pháp cơ bản của C hoặc C++
Các lệnh cơ bản trong terminal Linux
Xác minh sự nghiệp
3,581
Học viên
262
Đánh giá
281
Trả lời
4.7
Xếp hạng
6
Các khóa học
Tôi đã học chuyên ngành Kỹ thuật Điện tử tại Đại học Inha và làm việc với tư cách là nhà phát triển phần mềm nhúng.
Từ năm 2008, tôi đã giảng dạy trực tiếp tại các cơ sở trong 18 năm. Tôi đã đào tạo các nhà phát triển tại những doanh nghiệp và tổ chức như Samsung Electronics, LG Electronics, SK hynix, Hyundai Mobis, LIG D&A, Đại học Quốc gia Seoul, đồng thời hệ thống hóa những kinh nghiệm đó thành giáo trình giảng dạy.
『RTOS』(2008), 『Linux Shell』(2018), 『FreeRTOS』(2019), 『Cortex-M』(2022), 『Hệ thống nhúng dựa trên bootloader』(2023)
Kênh YouTube Guileschool (https://www.youtube.com/@guileschool): Các bài giảng về hệ thống nhúng và phát triển phần mềm
Tôi cũng đã nghiên cứu về tự động hóa trên máy Mac được 15 năm. Tôi hướng dẫn cách giảm các công việc lặp đi lặp lại bằng Keyboard Maestro và AppleScript, đồng thời trực tiếp phát triển và bán plugin tự động hóa Greenlight cho Final Cut Pro. Các công cụ do tôi tự tạo được công khai trên GitHub (https://github.com/guileschool).
YouTube CaptainMacBot (https://www.youtube.com/@captainmacbot): Cách sử dụng AI và tự động hóa trên máy Mac
Vui lòng gửi yêu cầu về khóa học và các thắc mắc khác đến guileschool@gmail.com.
Tất cả
29 bài giảng ∙ (5giờ 16phút)
Tài liệu khóa học:
Hãy khám phá các khóa học khác của giảng viên!
Khám phá các khóa học khác trong cùng lĩnh vực!
Ưu đãi có thời hạn
49.500 ₫
50%
2.046.476 ₫