AI PHÙ HỢP VỚI KHÓA HỌC NÀY?
![](https://vinalinux.com.vn/wp-content/uploads/2023/08/c.png)
Đã nắm vững kiến thức lập trình C, vi điều khiển
Để có thể hiểu được các kiến thức trong khóa học, các bạn cần phải nắm vững kỹ thuật lập trình C và lập trình Vi điều khiển. Đây là yêu cầu đầu vào bắt buộc.
![](https://vinalinux.com.vn/wp-content/uploads/2023/08/istockphoto-1174690002-612x612-1.jpg)
Định hướng trở thành lập trình viên Embedded
Những điểm chính của khóa học
1. Thời gian đào tạo
- > Tổng thời gian khoảng 5.5 tháng. Bao gồm 1 tháng chuẩn bị trước khóa học (họp vào tối thứ 6), 2.5 tháng đào tạo tập trung vào ngày chủ nhật, 2.5 tháng cho chương trình thực tập tại công ty Vinalinux hoặc làm project cuối khóa.
1. Đào tạo kỹ thuật lập trình embedded trên các thiết bị chạy Linux.
- > Các kiến thức cơ bản về hệ điều hành Linux như Memory management, scheduling, file system…
- > Device driver, device tree., d
- > Boot loader
- > Yocto
2. Chỉ tuyển sinh các bạn có mục tiêu rõ ràng về lập trình embedded.
- > Giải thích rõ ràng về mục đích của khoá học cho học viên nắm được.
- > Embedded Linux khác với Linux kernel.
3. Phần cứng.
- > Sẽ thực hành trên board BeagleBone Black. Đa số các khoá embedded Linux trên thế giới đều chọn board này. Học viên sau khi đăng ký được mua 1 mạch cũ với giá ưu đãi 600 nghìn, bảo hành 3 tháng..
4. Hỗ trợ việc làm
- > Tìm được việc làm sau khi hoàn thành khóa học.
- Tập trung đào tạo các kiến thức phổ biến nhất trong các dự án embedded Linux. Hỗ trợ học viên bổ sung kinh nghiệm thông qua chương trình thực tập tại công ty Vinalinux, project cuối khóa. Giới thiệu học viên đến các cty về embedded tại Việt Nam.
Giảng viên
Lưu An Phú
![](https://vinalinux.com.vn/wp-content/uploads/2024/12/2.png)
sn 1989
Đang làm việc trong team nghiên cứu và phát triển chip của Intel.
Có hơn 10 năm kinh nghiệm về Linux kernel
Founder của Embedded Linux VN
Thời gian học: Chủ nhật hàng tuần
Sáng: 9h – 11h15
Chiều: 13h30 – 16h
NỘI DUNG CHÍNH CỦA KHÓA HỌC
Buổi | Tên Topic kèm link bài đăng tham khảo |
1 | Làm quen với lập trình trên Linux. – Cách lập trình và debug trên command line. – Cách cấu hình vscode, gdb server để lập trình và debug từ xa. |
2 | Linux file system – Giới thiệu về hệ thống tổ chức file trong Linux – Cách lập trình thao tác với file. – Cách lập trình thao tác với các thành phần trong hệ điều hành thông qua file. |
3 | Lập trình với process – Bản chất của process trong hệ điều hành. – Cách tạo và hủy process trong hệ thống. – Tiến trình cha, tiến trình con. Cách sử lý zombie process. – |
4 | Lập trình multithread – Giới thiệu về bản chất của thread trong hệ điều hành. – Giới thiệu về cách hoạt động của bộ lập lịch. – Cách xử lý các lỗi đa luồng như deadlock, race condition. – Cách thao tác, quản lý thread. |
5 | IPC – Giới thiệu về các phương pháp giao tiếp liên tiến trình. – Giao tiếp liên tiến trình sử dụng các kỹ thuật khác nhau như Signal, Socket… – Xử lý bài toán race condition khi truyền nhận dữ liệu giữa nhiều tiến trình. |
6 | Shared memory – Giới thiệu về virtual memory, hệ thống phân trang bộ nhớ. – Virtual memory, physical memory. – Cách chia sẻ bộ nhớ giữa các tiến trình khác nhau. |
7 | Build image – Hướng dẫn build Linux image cho board Beaglebone Black. – Giới thiệu về các thành phần cơ bản của 1 image. – Cách setup crosscompile và native compile 1 chương trình. |
8 | helloword_kernel_module – Hướng dẫn crosscompile và native compile kernel module cho board. – Lập trình điều khiển button và đèn led bằng kernel module. |
9 | Debugging technic – Giới thiệu về kiến trúc của gdb và gdb server. – Cách cấu hình để debug trực tiếp trên board. – Cách cấu hình vscode để remote debug cho board. – Cách cấu hình để debug kernel, kernel module trên board. |
10 | Device tree – Vai trò của Device tree trong lập trình embedded. – Giới thiệu về tiêu chuẩn, ngữ pháp của device tree. – Giới thiệu về cách hệ điều hành khởi tạo thông tin hardware từ device tree. – Cách viết driver sử dụng thông tin trong device tree. |
11 | Character driver – Giới thiệu về character driver, là loại driver phổ biến nhất khi lập trình embedded Linux. – Luồng giao tiếp từ tầng application xuống hardware trên Linux. – Giới thiệu về template driver trên Linux, các bước tìm hiểu khi viết 1 driver bất kỳ. – Sử dụng character driver để điều khiển đèn led. |
12 | i2c driver – Giới thiệu về giao thức i2c. – Kiến trúc của i2c framework trong hệ điều hành. – Cách viết i2c driver cho màn hình SSD1306 Oled. |
13 | Pin muxing – Cách cấu hình chân pin trong vi điều khiển. – Cách cấu hình chân pin trong hệ điều hành. – Cách hệ điều hành quản lý và tự động cấu hình các chân pin khi khởi động. |
14 | Yocto – Giới thiệu về kiến trúc tổng quan của Yocto – Cách thực hiện các công việc hay gặp trên Yocto như sửa config, recipe, debugging… – Cách tạo image mới cho board Beaglebone Black trên Yocto. |
Uboot – Giới thiệu flow boot trên board BeagleBone Black từ khi cắm nguồn -> rom code -> boot loader -> hệ điều hành. – Tổ chức source code của uboot. – Cách sử dụng và tra cứu các command line của uboot. – Cách viết driver, device tree, command line cho uboot. – Giới thiệu về secuse boot, cách cấu hình secuse boot cho Beaglebone black. |
NỘI DUNG PHỤ CỦA KHÓA HỌC
Ngoài phần nội dung chính là các topic ở trên, khóa học có thêm 10 buổi meeting vào tối thứ 6 hàng tuần với nội dung là các topic sau:
Open talk![](https://vinalinux.com.vn/wp-content/uploads/2023/08/trending_flat_FILL0_wght400_GRAD0_opsz48.png)
- Kinh nghiệm làm nghề
- Review công ty, mức lương
- Cách tìm việc ở nước ngoài
Phỏng vấn thử![](https://vinalinux.com.vn/wp-content/uploads/2023/08/trending_flat_FILL0_wght400_GRAD0_opsz48.png)
- Kiến thức về C
- Vi điều khiển
- Hệ điều hành
Giải đáp![](https://vinalinux.com.vn/wp-content/uploads/2023/08/trending_flat_FILL0_wght400_GRAD0_opsz48.png)
- Các vấn đề cá nhân trong công việc
- Các lỗi về chuyên môn trong công việc
Bài tập
- Chữa bài tập
Project cuối khóa và chương trình thực tập tại công ty Vinalinux
Để đạt mục tiêu tìm được việc làm sau khóa học, học viên cần phải bổ sung kinh nghiệm về embedded Linux. Có 2 lựa chọn cho các bạn đăng ký là thực tập tại công ty Vinalinux và làm project cuối khóa. Thông tin cụ thể như sau:
1. Chương trình thực tập sinh tài năng tại công ty Vinalinux: Thực tập theo hình thức remote, mỗi bạn sẽ nghiên cứu về 1 chủ đề có tính ứng dụng cao trong hệ điều hành hoặc embedded. Ví dụ như Security, OS internal, compiler, debugging, embedded Android. Chương trình thực tập sinh sẽ tuyển thêm các bạn sinh viên xuất sắc từ các trường đại học. Dự kiến 1 năm 2 đợt với 5 – 7 bạn mỗi đợt. Trong đó có 3 slot cho học viên của khóa học, 2 slot cho các bạn sinh viên bên ngoài. Đây là 1 chương trình thực tập rất thử thách, hầu hết các bạn tốt nghiệp chương trình thực tập đều trở thành key member tại các cty khác.
2. Chương trình project cuối khóa: Phù hợp cho những người đã đi làm, không có nhiều thời gian. Học viên sẽ được gom nhóm và giao làm đề tài là 1 project mẫu. Sẽ có trợ giảng hướng dẫn các bạn đến khi hoàn thành pjoject. Thời gian dự kiến để hoàn thành khoảng 2 – 3 tháng.
CÁC KHÓA HỌC TƯƠNG TỰ
Udemy
Nên học kết hợp khoảng 2 – 3 khoá của udemy. Nếu chỉ học 1 khoá thì có thể sẽ không đủ kiến thức