Trong STM32 (ST Vi điện tử) và gia đình Kinetis (Freescale), tôi chỉ làm việc với gia đình bộ xử lý STM32 và do đó, tôi sẽ có thể chi tiết trải nghiệm của mình với STM32 và hy vọng rằng ai đó có thể làm điều tương tự cho Kinetis, vì vậy bạn có thể tương phản hai. Danh sách này có thể không đầy đủ, và chỉ đơn giản dựa trên kinh nghiệm của tôi.
PROS:
ST cung cấp một bộ thư viện khổng lồ cho mỗi bộ xử lý của họ mà bạn nhận được miễn phí. Các thư viện này chứa một danh sách lớn các chức năng cần thiết để thực hiện hầu hết các mức độ cơ bản thấp giao tiếp với phần cứng và có thể làm cho cuộc sống của bạn đơn giản hơn rất nhiều.
ví dụ: void GPIO_Init (GPIO_TypeDef * GPIOx, GPIO_InitTypeDef * GPIO_InitSturation) Điều này khởi tạo ngoại vi GPIOx theo các tham số đã chỉ định trong GPIO_InitSturation.
Chỉ cần điền cấu trúc GPIO (và có các dự án ví dụ để hướng dẫn bạn qua quy trình này) và gọi hàm GPIO_init. Điều này giúp bạn tiết kiệm ít nhất 4-5 lần đăng ký và tìm ra mỗi bit nên là gì.
Bộ vi điều khiển của họ có chức năng Đọc bảo vệ, có thể giúp bạn bảo vệ IP của mình ở một mức độ nào đó, nếu không hoàn toàn. Có hàng tấn vi điều khiển ngoài kia, điều đó thực sự không làm tốt điều này.
Họ có một nhóm các bộ điều khiển vi mô công suất thấp, dòng L1 của họ, có nhiều mức tính năng tiết kiệm năng lượng khác nhau có thể được bật / tắt khi cần.
Mặc dù có nhiều nhà sản xuất hiện đang thực hiện các phiên bản lõi ARM CM3 của họ, các chip dòng F của ST đã có một vài sửa đổi và mặc dù không hoàn toàn không có lỗi, nhưng hiện tại chúng đã khá hoàn thiện.
Hầu như tất cả các biến thể tôi đã làm việc đều có hàng tấn Timers và các thiết bị ngoại vi khác và bạn không bao giờ có thể có đủ những biến thể đó. :)
Để giúp bạn bắt đầu, họ có một số dự án ví dụ có thể được lập trình vào bảng đánh giá của họ, họ hầu như luôn cung cấp cho bạn miễn phí. Mặc dù tôi nghĩ rằng hầu hết các nhà sản xuất khác sẽ làm như vậy.
Nhược điểm:
Mặc dù các thư viện được đề cập ở trên chắc chắn giúp ích rất nhiều, tuy nhiên một số tên hàm không trực quan và phải mất một thời gian để bạn hiểu được các quy ước đặt tên của chúng. Điều này không đúng với toàn bộ thư viện, nhưng có một chút mã, không được bình luận tốt, và bạn sẽ thực sự phải đọc nó để tìm hiểu xem nó đang làm gì.
Nếu bạn đang sử dụng thư viện của họ và muốn bật kiểm tra MISRA cho dự án của mình, bạn sẽ nhận được vô số lỗi / cảnh báo vì mã của họ dường như không tuân thủ MISRA. Bạn sẽ cần tìm cách loại trừ các thư viện của họ khỏi kiểm tra MISRA của bạn. Có nhiều cách để giải quyết vấn đề này, nhưng chúng đòi hỏi một chút công việc để làm điều đó.
Tài liệu của ST cho các bộ xử lý mà tôi đã làm việc hơi kém. Bảng dữ liệu của họ không được viết tốt lắm. Thông tin không có trong một tài liệu trung tâm / chính. Có những gì họ gọi là hướng dẫn tham khảo, hàng tấn ghi chú ứng dụng và ít nhất một bảng dữ liệu. Đôi khi bạn phải thực sự truy tìm các tài liệu này để tìm thông tin bạn đang theo dõi.
Chúng thường mô tả các cổng GPIO và một cài đặt được đề xuất cho một trong các bit
có thể được mô tả 50 trang sau.
Đó là tất cả những gì tôi có thể nghĩ đến vào lúc này, hy vọng điều này mang đến cho bạn một chút ý tưởng về các sản phẩm STM32. Tôi sẽ thêm nhiều hơn, nếu tôi có thể nghĩ bất cứ điều gì khác.
Một gợi ý sẽ là lấy một bảng đánh giá cho cả hai loại vi điều khiển (Kinetis một và STM32), có các thiết bị ngoại vi mà bạn đang theo đuổi và chơi với chúng.
Điều đó sẽ mang lại cho bạn cảm giác thực sự tốt cho cái nào phù hợp với nhu cầu của bạn nhất.