Bạn có thể nghe nói rằng rỉ sét là một ngôn ngữ lập trình hệ thống có khá nhiều thứ sau đây. Nó có ý định là nhanh như C, nhưng có các tính năng như bộ nhớ được đảm bảo và an toàn luồng, generics và nó ngăn chặn các lỗi phân đoạn. Nghe có vẻ giống như một hệ thống nhúng, phải không? [Jorge Aparicio] đã thất vọng vì CPU lựa chọn của anh ấy, một cánh tay STM32 Cortex-M không có sự hỗ trợ riêng cho rỉ sét.
Rõ ràng, bạn có thể dễ dàng ràng buộc chức năng C thành một chương trình rỉ sét nhưng đó không phải là những gì anh ta đã theo đuổi. Vì vậy, ông đặt ra để xây dựng các chương trình rỉ sét thuần túy có thể truy cập phần cứng của thiết bị và ông đã ghi nhận nỗ lực.
Bài đăng không chỉ hiển thị cho bạn các công cụ bạn cần và các phiên bản phần mềm mà còn sử dụng OpenOCD, [Jorge] thậm chí còn quản lý để thực hiện một số sửa lỗi. Kỹ thuật này dường như khá thường áp dụng, như anh ta nói rằng anh ta đã thực hiện cùng một mẹo trên sáu bộ điều khiển khác nhau từ ba nhà cung cấp khác nhau không có vấn đề gì. Bạn phải định cấu hình dự án bằng cách thay đổi một số giá trị trong một mẫu.
Mặc dù đó không phải là một hướng dẫn gỉ, theo cùng với mã [Jorge] và những lời giải thích của anh ta sẽ cung cấp cho bạn một ý tưởng khá hay về những gì rỉ sét trông như thế nào. Ông cũng thể hiện một công cụ gọn gàng, bảng điều khiển GDB. Để xây dựng API đến các vùng bộ nhớ đặc biệt của ARM, [Jorge] sử dụng một công cụ có tên SVD2RUST để xử lý các tệp SVD của nhà cung cấp. Chúng thường được sử dụng để lập trình và thử nghiệm JTAG, vì vậy chúng tôi nghĩ rằng đó là một cách mới lạ để tự động xây dựng hỗ trợ cho bộ xử lý.
Rất nhiều ngôn ngữ cung cấp các tính năng an toàn có xu hướng biên dịch mã chất béo. [Jorge] hiển thị một ví dụ LED nhấp nháy và tháo rời nó và nó trông khá nhỏ gọn khoảng 127 byte. Sau đó, anh ta trừu tượng hóa các sổ đăng ký hẹn giờ và mã thực tế là cùng kích thước tương tự khi được biên dịch.
Chúng tôi bao phủ rỉ sét một thời gian ngắn một lúc. Chúng tôi cũng đã thấy rỉ sét trên một số thiết bị wifi gần đây hơn.