Theo như msp430, nó là một kiến trúc tốt, các công cụ khá tốt hiện có mspgcc và mspgcc4 và llvm cho vấn đề đó. binutils mà không vá. Bạn có thể nhận được một bệ phóng với giá dưới 5 đô la với mức giá đó, hãy mua một ít (cuối cùng bạn sẽ gạch một cái gì đó hoặc rút ngắn nó ra và làm nó tan chảy, có một phụ tùng, đặc biệt ở mức giá này) ...
Tải xuống các công cụ, tất cả đều miễn phí, viết một vài dòng mã, tìm hiểu cách liên kết nó, xem mức độ lớn của nhị phân, cảm nhận về nhúng, dòng mã đến kích thước rom, v.v.
Làm thế nào để làm điều đó làm. Chỉ là về mọi cách bạn có thể tưởng tượng:
Một số công ty ủy thác đi xuống từ trên cao và bạn không thể làm gì khác ngoài việc nghỉ việc. Và bạn có thể không bao giờ biết tại sao nền tảng đó được chọn.
Đôi khi nhà thầu / khách hàng yêu thích ra lệnh cho nền tảng, đôi khi bạn có thể giáo dục / đàm phán, đôi khi không.
Một số người chỉ có một yêu thích, sợ những điều chưa biết, bất cứ điều gì. Lý do tương tự tại sao một số người chỉ mua một thương hiệu xe hơi, vì bố tôi đã làm và bố ông đã làm trước đó, và đó có thể là toàn bộ lý do.
Một số người tập trung vào các công cụ. Ở đây, một lần nữa bạn có những người trung thành với thương hiệu, giới hạn bản thân trong công ty biên dịch yêu thích của họ và bất kỳ mục tiêu nào họ hỗ trợ, hoặc công cụ nguồn mở yêu thích và những gì hỗ trợ. Yêu thích hệ điều hành nhúng và giới hạn cho các mục tiêu hỗ trợ.
Trong một số trường hợp, đó là về các công cụ nhưng theo một cách khác, theo thời gian, bạn có thể đã đầu tư rất nhiều tiền vào các hợp đồng hỗ trợ hàng năm với một nhà cung cấp (ví dụ như arm hoặc xilinx hoặc motorola) và có thể bạn thích sự hỗ trợ của họ và không muốn thay đổi hoặc ma quỷ bạn biết là tốt hơn ma quỷ bạn không. Hoặc có thể là do 5 dự án đang hoạt động khác trong công ty sử dụng điều này và chúng tôi đã có hợp đồng hỗ trợ và sẽ tiếp tục trả tiền cho năm đó sau năm bạn phải chọn một trong những giải pháp của nhà cung cấp đó.
Đôi khi nó là về tiết kiệm millipennies. Phần này rẻ hơn 1,5% so với phần đó, làm cho nó hoạt động với phần này, không quan tâm đến NRE, hãy nghĩ về việc tiết kiệm sản xuất về số lượng.
Đôi khi nó là về những tiêu cực. Một nhà cung cấp có thể đã lừa công ty của bạn bằng cách này hay cách khác. Không đáp ứng việc cung cấp các bộ phận được quảng cáo gây chậm trễ hoặc hủy sản phẩm của bạn. Lừa đảo và chuyển đổi (phí 50.000 đô la cho phần mềm không bao gồm phí 1200 đô la cho khóa cần thiết để mở khóa giấy phép, đó là một mục chi phí bổ sung. Ồ và đó là cho mỗi người dùng cho giấy phép nổi). Khi bạn ký NDA để xem hướng dẫn tham khảo của lập trình viên hoặc hướng dẫn thiết kế tham chiếu, bạn sẽ thấy kỹ thuật của họ đáng sợ đến mức nào và bạn có thể chọn đưa vào danh sách đen tất cả các sản phẩm của họ suốt đời. Lịch sử quá khứ với sự hỗ trợ công nghệ khủng khiếp. Bất kỳ lý do nào cũng có thể khiến bạn không bao giờ cho phép nhân viên bán hàng của họ ở cửa trước hoặc khiến bạn không bao giờ nhìn vào trang web của họ nữa.
Đôi khi nó liên quan đến hiệu suất, giao diện, v.v ... Trường hợp nói rằng bạn có một giao diện được nối bằng dây và cần kéo lên, thương hiệu vi điều khiển XYZ với giá 3 đô la cho mỗi phần có một bộ chân I / O có thể được sử dụng không yêu cầu phần cứng bên ngoài nào khác, thương hiệu ABC có một phần 3 đô la sẽ yêu cầu một bóng bán dẫn và điện trở bên ngoài để làm cho nó hoạt động ở mức tối thiểu. Ví dụ về msp430 của bạn, nói về tiêu thụ năng lượng, phần A chỉ có thể yêu cầu người dùng sử dụng một pin AAA và chạy trong nhiều tháng, phần B có thể cần hai pin AAA và chạy trong nhiều tuần.
Trường hợp hiếm nhất trong tất cả là thực sự làm kỹ thuật, khảo sát tất cả các nhà cung cấp, làm toán tiêu thụ năng lượng, giá trên mỗi đơn vị toán sản phẩm của bạn, mức độ lớn của một rom chúng ta cần và tần số để chạy chip, keo logic, trên và trên. Thông thường, ai đó (sếp / khách hàng / kỹ sư cao cấp) mất nhiều năm kinh nghiệm và bắn từ hông (thường sử dụng một hoặc nhiều điều trên) để chọn con đường (thường là một con đường tốt giúp tiết kiệm hàng tấn thời gian trong lịch trình và đô la) và kỹ thuật được thực hiện một lần để tinh chỉnh nền tảng đã chọn.
Đề nghị cá nhân của tôi là phải linh hoạt. Hầu hết các thương hiệu / gia đình vi điều khiển dưới một số hình thức hoặc thời trang có thể có trên một bảng eval với giá dưới 50 đô la. Sparkfun, olimex hoặc trực tiếp từ nhà cung cấp (ti cho msp430 hoặc stellaris, v.v.). Hãy thử một hoặc nhiều cái, cảm nhận về điểm chung và điểm khác biệt, công cụ, trình tải, mức độ khó để mở khóa, v.v. Bạn ít nhất nhận được hai điều từ điều này, một là khi bạn bị ép xuống một con đường từ trên cao hoặc khách hàng bạn có thể bắt đầu chạy, thứ hai là khi đến lượt bạn chọn nền tảng, bạn được giáo dục tốt hơn về những gì đang và không ở ngoài đó và có thể chọn nền tảng (từ được tải) đúng dựa trên vấn đề được giải quyết.
Ngay cả khi bạn không hoặc không thể ra ngoài và chi số tiền đó cho phần cứng, hầu hết đều có các công cụ mà bạn có thể tải xuống (miễn phí), trong trường hợp như microchip, giờ đây bạn có thể có trình biên dịch C (trước đây là Hi-tech) nhưng phải đăng ký (từ bỏ địa chỉ email của bạn). gcc thích nó hoặc ghét nó sẽ có trong tương lai của bạn, máy tính để bàn hoặc nhúng, làm bẩn tay bạn và học cách sử dụng nó như một trình biên dịch chéo. Hãy thử llvm quá, nó sẽ xuất hiện trong một thời gian và cung cấp cho gcc một số cạnh tranh nghiêm trọng. Dù sao thì viết hoặc tìm một số trình giả lập, mame có nhiều, gdb có một số, v.v. Tôi đã viết một cái gọi là ngón tay cái ở github, chỉ chế độ ngón tay cái ARM, tương tự như cortex-m3 trừ tôi không hỗ trợ ngón tay cái 2 (vẫn có thể tìm hiểu khá nhiều và có các chương trình chạy trên cả hai trước khi bạn chuyển sang chỉ phần cứng). Tôi đã đánh cắp một trình giả lập msp430 nhưng hơi bị đình trệ về điều đó. Bộ hướng dẫn nhỏ đến mức phần lớn công việc là một buổi tối hoặc có lẽ là một dự án thứ bảy. Tương tự với PIC, một buổi chiều dài và bạn có một trình mô phỏng tập lệnh để thực hành nhúng. Nếu không có gì khác, bạn chỉ có thể viết các chương trình biên dịch và liên kết để cảm nhận về cách thực hiện điều đó và mức độ lớn của các chương trình, làm thế nào để điều chỉnh các chương trình để tạo mã chặt chẽ hơn, v.v.
Theo như C vs lắp ráp, một số bộ hướng dẫn là C thân thiện và một số thì không. Một số trình biên dịch là trung bình và một số thực sự xấu và chỉ một số trình biên dịch thực sự tốt (và thường tốn vài nghìn đô la một lần hoặc mỗi năm để sử dụng). Như với hiệu suất ở bất cứ đâu nếu bạn muốn thực sự thúc đẩy nó, một hỗn hợp ngôn ngữ cấp cao (chỉ cần nói C) và trình biên dịch có thể được yêu cầu. Vì vậy, kỹ năng không phải là viết toàn bộ ứng dụng trong trình biên dịch chương trình, kỹ năng là xác định mã nào khiến bạn không đáp ứng thời gian / hiệu suất và sau đó biết cách giải quyết thông qua C, tùy chọn trình biên dịch, chọn trình biên dịch phù hợp hoặc trình biên dịch viết.
Tôi khuyên bạn nên biết trình biên dịch cho tất cả các nền tảng bạn chọn sử dụng, nếu không có kiến thức nào khác về nó như được nhúng, tôi khuyên bạn nên tháo rời thường xuyên (trong khi tìm ra vấn đề về hiệu suất của bạn). Nhiều nền tảng mà một số trình biên dịch được yêu cầu hoặc mong muốn cho mã khởi động.
Nếu bạn muốn tiết kiệm 10-20% giá mỗi đơn vị và muốn mua bộ vi điều khiển hoặc bộ tạo dao động rẻ hơn / chậm hơn, hoặc phần flash 32Kb thay vì phần flash 64KB và có thể trang trải chi phí phát triển với khối lượng bán hàng, và có lẽ một danh sách dài những thứ khác mà bạn rất có thể chọn để viết toàn bộ trong trình biên dịch, nhanh, công suất thấp, chi phí thấp, khách hàng hài lòng.
Tùy thuộc vào nền tảng của bạn cho đến nay, có lẽ bạn không nên lo lắng về việc viết trong tất cả các trình biên dịch và có thể về các khía cạnh kỹ thuật điện của nhúng với vi điều khiển, đọc sơ đồ, biết những gì bộ sưu tập mở, trạng thái tri, đẩy kéo, pwm, adc, dac, và một danh sách dài các điều khoản khác và làm thế nào để sử dụng chúng. bit banging i2c, spi, mdio, dallas một dây, v.v ... Sử dụng một phạm vi như một trình gỡ lỗi phần mềm. Mặc dù phạm vi có thể làm nổi bật mọi thứ cho bạn ngày hôm nay (một mục chi phí bổ sung), bạn sẽ có thể đánh mắt i2c và spi và một số giao thức khác mà không cần các điểm nổi bật.
Tôi cũng khuyên rằng đối với mỗi nền tảng bạn chơi cùng, hãy thoát khỏi hộp cát của ai đó (ví dụ như môi trường lập trình / ide Arduino). Viết mã khởi động đưa bộ xử lý từ thiết lập lại vào chương trình chính () của bạn, làm hết sức có thể để hiểu cách tải / lập trình đèn flash đến điểm có thể liên quan đến việc ghi trình tải của riêng bạn mặc dù các giá đỡ là ở đó Đó là tất cả về giáo dục cá nhân, bạn càng biết nhiều hơn và có thể rút ra khỏi túi sau của mình và sử dụng càng nhiều quyền kiểm soát đối với sự nghiệp của bạn và càng có nhiều số 0 ở cuối số trong bảng lương của bạn.
Dù bạn làm gì, KHÔNG, hãy cố gắng học x86 như trình biên dịch đầu tiên của bạn trên máy tính để bàn, chọn khá nhiều thứ khác và biên dịch chéo và mô phỏng, ARM, THUMB, MSP430, PIC, AVR, thậm chí 6502, 8051. x86 là một hướng dẫn khủng khiếp thiết lập và kết quả là đã được biến đổi và định hình theo nhiều cách, vi mã hóa, không mã hóa, đa lõi, trên và trên. Giữ các ngôn ngữ x86 đến cấp cao và hệ điều hành cồng kềnh. Sử dụng nó cho trình soạn thảo văn bản và trình biên dịch của bạn và nhắm mục tiêu một cái gì đó khác.
Xin lỗi vì câu trả lời dài ... hy vọng nó hữu ích.