Tìm hiểu C và nhận bảng phát triển vi điều khiển giá rẻ, như MSP430 hoặc ARM Cortex, và ít nhất là viết và tải một vài chương trình C.
Tôi có bằng khoa học máy tính và nền tảng phát triển phần mềm, chủ yếu là lập trình C ++ cho các trò chơi và bây giờ là các ứng dụng và trò chơi iOS, nhưng công việc cuối cùng của tôi là một hợp đồng EE bán chuyên nghiệp bắt đầu bằng việc lập trình phần mềm cho hệ thống ARM Cortex M3 , và sau đó kết thúc với tôi học cách làm một số thiết kế mạch cơ bản và bố trí bảng và thiết kế một vài bảng đơn giản. Vì vậy, về cơ bản tôi đã phải đối mặt với vấn đề sử dụng ngôn ngữ lập trình tốt nhất để kết nối thiết kế phần cứng / phần mềm với tư cách là người chịu trách nhiệm cho cả hai đầu của nó.
C hoàn toàn là ngôn ngữ bạn cần biết. Thật dễ dàng cho những người lập trình trong C ++ và thực sự không bao giờ phải giới hạn bản thân trong tính năng của C để nói "đó là điều tương tự" nhưng thực tế không phải vậy. Đặc biệt là cách C ++ đã phát triển và thu thập các tính năng, và cách các lập trình viên C ++ chính thống sử dụng các tính năng đó, thực sự là một điều khác biệt khi làm việc trên một ứng dụng C lớn tương đối so với ứng dụng C ++. SDK phần sụn của bạn sẽ là một loạt các thư viện C, mọi thứ khác phù hợp với MCU sẽ là thư viện C, bất kỳ HĐH nào có ý nghĩa trên MCU sẽ được viết bằng C, v.v.
Điều đó nói rằng, vì nhiều công cụ MCU ngoài kia kết thúc bằng cách sử dụng GCC làm trình biên dịch của chúng, bạn gần như chắc chắn sẽ có trình biên dịch C ++ nếu bạn đang sử dụng một gia đình MCU phong nha. Nhưng bạn phải rất cẩn thận về các tính năng bạn sử dụng, đặc biệt là những thứ từ thư viện tiêu chuẩn, vì rất dễ kết thúc với một nhị phân quá lớn để phù hợp với thiết bị của bạn. Tôi nghĩ rằng có một trường hợp tốt được tạo ra khi sử dụng C ++ trên các thiết bị nhúng, C ++ có khá nhiều tính năng hay, không có kích thước hoặc hình phạt tốc độ, bạn chỉ cần biết bạn đang làm gì và viết mã theo cách nào hơn nữa ở đầu phổ kiểu C so với đầu STL của phổ về mặt sử dụng tính năng thông minh.
Đừng quá chú ý đến những người nói rằng bạn có thể sử dụng Lua hoặc Python trên MCU với trình thông dịch được nhúng đúng blah, blah. Đó là sự thật, tôi đã thực hiện nó và điều đó thật thú vị, nhưng tại thời điểm này, nó dành cho các dự án đồ chơi và những thứ xuất hiện trên Hack a Day nhiều hơn. Tôi nghĩ rằng chúng ta sẽ thấy nhiều thứ như vậy vì Định luật Moore không ngừng áp dụng cho cả những bộ xử lý nhỏ nhất, đây là điều đã xảy ra với các trò chơi đã từng có rất nhiều sự lắp ráp, sau đó chúng được tổ chức với C và C ++ lâu hơn hơn mọi người khác, và bây giờ mọi thứ đều rất nhanh và năng suất của nhà phát triển rất quan trọng đến nỗi rất nhiều sự phát triển được thực hiện với các ngôn ngữ cấp cao hơn được nhúng hoặc trong một ngôn ngữ cấp cao hoàn toàn. Mặc dù vậy, sẽ mất vài năm trước khi bạn thấy các công ty tuyển dụng lập trình viên phần mềm với nền tảng Python và Lua.
Đừng dành quá nhiều thời gian cho việc lắp ráp. Không quen thuộc với các khái niệm này, nhưng không chắc bạn sẽ thấy mình làm được gì nhiều, nếu có bất kỳ chương trình lắp ráp nào. Giống như sự khôn ngoan thông thường này với các trò chơi và được nhúng rằng đó là sự lắp ráp "tốt để biết", thường được lặp đi lặp lại bởi những người không thực sự làm việc trong các lĩnh vực đó. Nhưng trong thực tế, rất có thể bạn sẽ không viết bất kỳ bản lắp ráp nào, và nếu bạn làm điều đó có thể sẽ chỉ là một vài dòng để tối ưu hóa hoặc một cái gì đó với phần cứng mà bạn không có API cho (nhưng bạn sẽ sau khi bạn viết một cái mà kết thúc một vài dòng lắp ráp). Tôi đã làm việc trên một số trò chơi và dự án thiết kế bo mạch / phần sụn đó và tổng số dòng lắp ráp mà tôi đã viết cho các dự án thương mại có lẽ là ở thanh thiếu niên thấp. Nó '