Thời gian tốt để được di chuyển; 8 bit đang chết nhanh chóng; khi bạn có thể mua một bảng 5 đô la với (ví dụ) một STM32F103, một bộ vi điều khiển ARM 32 bit khá có khả năng (thậm chí có cả USB!), không có nghi ngờ gì đã thay đổi.
Bạn đã có một số câu trả lời xuất sắc nhưng chủ yếu tôi nói "quên lắp ráp" và gần như "quên quan tâm đến cách thức hoạt động của cpu ở mức độ thấp" - một ngày nào đó sẽ có một trường hợp góc mà bạn cần tìm hiểu sâu về nó (tối ưu hóa cụ thể hoặc để gỡ lỗi) nhưng lõi ARM chạy mã C đặc biệt tốt (theo thiết kế) và bạn khác nhau hiếm khi cần phải dấn sâu vào bên trong ruột.
Điều này không có nghĩa là bạn sẽ dành một khoảng thời gian nhất định để đập đầu vào các vấn đề với trình biên dịch (và đặc biệt là trình liên kết và tệp tạo tệp) che giấu các lỗi tối nghĩa với bạn nhưng tất cả đều có thể vượt qua.
Ý tưởng về cách thức hoạt động của ARM (tức là sách cpu ARM) dày đặc và không thú vị cho đến ngày bạn thực sự cần tối ưu hóa (và bạn sẽ ngạc nhiên khi bạn có đăng ký 32 bit và PLL của bạn ' d Đồng hồ CPU nằm trong vùng 100 mhz).
Tập lệnh ARM "skool cũ" dễ đọc hơn so với "Thumb2" mới hơn nhiều - đó là những gì bạn tìm thấy trên hầu hết các ARM cấp vi điều khiển hiện đại (Cortex) - nhưng lại là phần bên trong của các hướng dẫn ngôn ngữ lắp ráp Chủ yếu là mờ dần vào nền; nếu bạn có bộ công cụ phù hợp (đặc biệt là trình gỡ lỗi cấp nguồn tốt với các điểm dừng / bước đơn, v.v.), bạn hoàn toàn không quan tâm đến việc nó có phải là ARM không.
Khi bạn ở trong thế giới của các thanh ghi 32 bit và độ rộng bus dữ liệu 32 bit và mọi thứ bạn muốn có sẵn trên chip, bạn sẽ không bao giờ muốn quay lại CPU 8 bit nữa; về cơ bản thường không có hình phạt nào cho việc "làm cho nó dễ dàng" và viết mã để dễ đọc hơn hiệu quả.
Tuy nhiên ... thiết bị ngoại vi ... aye và đó là chà.
Bạn chắc chắn nhận được rất nhiều thứ để chơi trên các MCU hiện đại, và rất nhiều trong số đó là những thứ khá lạ mắt; bạn thường tìm thấy một thế giới tinh tế vượt xa, vượt xa các thiết bị ngoại vi trên chip AVR, PIC và 8051.
Một bộ đếm thời gian lập trình? Không, có tám! DMA? Làm thế nào về 12 kênh với chế độ ưu tiên và chế độ bùng nổ và chế độ chuỗi và tự động tải lại và .. và ... và ... và ...
I2C? I2S? Hàng chục lựa chọn muxing pin? Mười lăm cách khác nhau để lập trình lại flash trên chip? Chắc chắn rồi!
Nó thường có cảm giác như bạn đã đi từ nạn đói đến bữa tiệc với các thiết bị ngoại vi và điều phổ biến là có toàn bộ khối chip mà bạn sẽ ngưỡng mộ nhưng hầu như không sử dụng (do đó, gating đồng hồ).
Số lượng phần cứng trên chip (và các biến thể trong đó chỉ trong một dòng chip của nhà cung cấp) hiện nay khá khó hiểu. Một nhà cung cấp chip tất nhiên sẽ có xu hướng sử dụng lại các khối IP, vì vậy một khi bạn đã quen thuộc với một thương hiệu nào đó thì mọi chuyện sẽ trở nên dễ dàng hơn nhưng "ngày nay shit đã có craaaazy."
Nếu bất cứ điều gì các thiết bị ngoại vi và tương tác của chúng (và DMA và ngắt và phân bổ bus và và ...) đều phức tạp SO (và, đôi khi, không chính xác như được mô tả trong bảng dữ liệu) mà các kỹ sư thường có một phạm vi MCU ARM yêu thích và có xu hướng muốn gắn bó với nó đơn giản vì họ quen thuộc với các thiết bị ngoại vi và công cụ phát triển.
Các thư viện và công cụ phát triển tốt (tức là biên dịch nhanh + chu trình gỡ lỗi với trình gỡ lỗi thích hợp) và một tập hợp lớn các dự án mã ví dụ hoạt động là cực kỳ quan trọng đối với lựa chọn ARM MCU của bạn hiện nay. Có vẻ như hầu hết các nhà cung cấp hiện nay có bảng đánh giá cực kỳ rẻ (
Như tôi chắc chắn rằng bạn đã nhận thấy, một khi bạn vượt qua cấp vi điều khiển với ARM và vào cấp SOC (ví dụ SOC kiểu Raspberry Pi / etc) thì các quy tắc sẽ thay đổi hoàn toàn và đó là tất cả về loại Linux bạn sẽ sử dụng để chạy, bởi vì - với một vài ngoại lệ đáng tiếc - bạn sẽ nổi điên khi cố gắng làm bất cứ điều gì khác.
Về cơ bản; bất kể CPU nào (có thể) đã được chọn trước cho bạn trong hợp đồng biểu diễn này, hãy mua cho mình một số bảng đánh giá dựa trên Cortex siêu rẻ từ một số nhà cung cấp khác nhau (TI, STM, Freescale và hơn thế nữa) và có một hack xung quanh với mã mẫu được cung cấp.
Lời khuyên cuối cùng; một khi bạn tìm thấy một hoặc ba trang trong biểu dữ liệu mô tả các tùy chọn ghim pin cho chip số phần chính xác mà bạn đang làm việc, bạn có thể muốn in nó ra và dán lên tường. Phát hiện muộn trong một dự án rằng một sự kết hợp các thiết bị ngoại vi nhất định là không thể vì việc ghép pin không có gì thú vị và đôi khi thông tin đó bị chôn vùi, bạn thề rằng họ đang cố gắng che giấu nó :-)