Chuyện là mình muốn học về lập trình nhúng, cụ thể là mảng sofrware , sau khi tìm hiểu thì mình thấy yêu cầu của mảng này là nắm vững C/C++, CTDLGT, shell script, linux.
Mình lúc mới tìm hiểu thì thấy nhiều người nói học nhúng thì nên học từ 8051 rồi AVR rồi học ARM, giờ mình lại đọc được nhiều ý kiến hơn, và sau khi học lập trình cho 8051 rồi mình thấy nó k có cái phần lập trình driver hay lập trình gì liên quan tới linux hết, mình chẳng biết học Embedded Linux n là như nào nữa, khó hiểu quá ạ. Mong mọi người cho ý kiến xem nên học như thế nào. Có nên học tiếp theo là AVR không, hay mua luôn board ARM về học ạ ?
Học Embedded Linux có cần học từ 8051, AVR rồi mới lên ARM không?
Bạn đang nhầm lẫn giữa 2 hướng, mình paste lại định nghĩa của a dương cho bạn hiểu
Lập trình nhúng với Linux là cái gì ?
Là lập trình cho 1 thiết bị điện tử mà trung tâm xử lý của nó là một VI XỬ LÝ thường là chip ARM và được cài trên nó 1 phiên bản OS họ Linux.
Chức năng chính của cái bo đó nghiêng về xử lý dữ liệu (wifi, ethernet, xử lý hình ảnh…)
Công việc chính là viết cái phần mềm hoặc driver cho chạy trên cái bo đó.
Vì viết ứng dụng cho hệ điều hành Linux nên tất nhiên phải biết những thứ tạo nên ứng dụng cho Linux.
Không cần biết nhiều về phần cứng vì thiết kế phần cứng đã có đội khác nó làm. Còn phần điều khiển phần cứng thì thông qua api của OS, Driver, thư viện, framework nó che đi hết rồi.
Nhúng với vi điều khiển là cái gì ?
Là lập trình cho thiết bị điện tử mà trung tâm xử lý của nó là một VI ĐIỀU KHIỂN. Nó ít khi được cài một OS, cùng lắm là RTOS, uClinux.
Chức năng chính của cái thiết bị đó là điều khiển các thiết bị khác. (Điều khiển robot, điều khiển động cơ, xi lanh…)
Công việc chính là tạo ra cái gọi là firmware để nạp vào bộ nhớ của con VĐK cho nó chạy.
Vì nó có vô vàn ứng dụng muôn hình vạn trạng nên thằng lập trình thường phải là thằng thiết kế luôn phần cứng. Nên nó phải biết điện tử. Sau khi có phần cứng, không có OS, driver, cùng lắm là có framework, lib nên muốn code được thì phải hiểu phần cứng, phải hiểu điện tử.