Cảnh báo, một lời giải thích dài dòng sắp được đưa ra. Tôi muốn xóa một số quan niệm sai lầm mà tôi nghĩ rằng bạn đang có.
Arduino thực sự là hai điều.
- Một bộ sưu tập các thư viện C / C ++ được biên dịch với avr-gcc và
- Một chương trình phần mềm khởi động nhỏ đã được lập trình trước đó trên chip từ nhà máy.
Vâng, Arduino IDE về cơ bản kết thúc avr-gcc - trình biên dịch AVR C. Các dự án của bạn, hoặc "bản phác thảo", kết hợp các thư viện Arduino đã đề cập và được biên dịch với avr-gcc. Tuy nhiên, không ai trong số này có bất cứ điều gì liên quan đến việc bất cứ điều gì được viết lên bảng. Làm thế nào những bản phác thảo này được triển khai là một chút khác nhau so với bình thường.
Arduino IDE giao tiếp với Arduino của bạn qua chip usb-to-serial trên bo mạch và nó khởi tạo một chế độ lập trình mà bộ nạp khởi động hiểu và gửi chương trình mới của bạn tới chip nơi bộ nạp khởi động sẽ đặt nó ở một vị trí đã biết và sau đó chạy nó . Không có "thư viện avr nào thực sự viết" - đó chỉ là Arduino IDE mở một cổng nối tiếp và nói chuyện với bộ nạp khởi động - đây cũng là cách các thông báo gỡ lỗi của bạn được in ra IDE trong thời gian chạy.
Bất kỳ IDE thay thế nào cũng sẽ phải có khả năng thực hiện giao tiếp nối tiếp này với bộ nạp khởi động. Arduino rất dễ dàng vì tất cả các thư viện họ đã cung cấp cho bạn và chương trình một chạm và chạy từ IDE. Tôi thực sự không nghĩ rằng nó trở nên dễ dàng hơn, hoặc thân thiện với người dùng hơn. Họ đã trừu tượng hóa tất cả các chi tiết của bộ điều khiển vi mô AVR và quy trình xây dựng / triển khai.
Sự thay thế sẽ là một cái gì đó giống như avr-studio (cũng sử dụng avr-gcc cho trình biên dịch của nó) và một lập trình viên ICSP (là một phần cứng bổ sung mà bạn phải mua). Bạn không được cung cấp nhiều hơn một số tệp tiêu đề định nghĩa đăng ký và một số macro hữu ích. Bạn cũng không được cung cấp bất kỳ bộ tải khởi động nào trên chip AVR của mình, nó chỉ là một bản trống. Bất cứ điều gì bạn muốn làm với vi điều khiển, bạn sẽ phải đi sâu và tìm hiểu về các thiết bị ngoại vi và thanh ghi phần cứng của nó và di chuyển byte xung quanh trong C. Bạn muốn in một thông báo gỡ lỗi trở lại PC? Viết thói quen UART cho print () trước và mở terminal trên máy tính của bạn.
Một bước thấp hơn so với điều này bạn đang viết mã trong trình soạn thảo văn bản và gọi avr-gcc và avr-dude (công cụ dòng lệnh lập trình) từ Makefile hoặc dòng lệnh.
Một bước thấp hơn từ đó và bạn đang viết lắp ráp trong một trình soạn thảo văn bản và gọi avr-lắp ráp và avr-dude.
Tôi không chắc chắn mình sẽ đi đâu với điều này, tôi chỉ nghĩ rằng IDE và Arduino hiện tại hoàn toàn là thiên tài và hoàn hảo cho người mới bắt đầu - tuyên bố nổi tiếng của họ là thân thiện với người dùng. Có lẽ không phải là câu trả lời bạn đang tìm kiếm, tìm hiểu luồng công việc và làm cho nó trở nên thú vị với nó.