Hướng dẫn Thiết lập Hoàn chỉnh Chuỗi Công cụ Tock: Từ Rustup đến Tockloader

Tock là một hệ điều hành nhúng mã nguồn mở, được thiết kế cho các vi điều khiển tiêu thụ năng lượng thấp. Bài viết này cung cấp hướng dẫn chi tiết để thiết lập môi trường phát triển Tock, bắt đầu từ việc cài đặt rustup cho đến cấu hình tockloader, giúp người mới bắt đầu nhanh chóng làm quen với việc phát triển Tock.

Chuẩn bị Môi trường Phát triển Tock

Trước khi bắt đầu cấu hình chuỗi công cụ Tock, cần hiểu rõ các yêu cầu cơ bản của môi trường phát triển. Phát triển Tock chủ yếu dựa vào ngôn ngữ Rust và các công cụ liên quan, cùng với một số công cụ hỗ trợ để biên dịch nhân và nạp chương trình.

Các Thành phần Cốt lõi trong Phát triển Tock

  • Rust: Nhân Tock và các ứng dụng chủ yếu được phát triển bằng Rust.
  • rustup: Công cụ quản lý phiên bản Rust, dùng để cài đặt và quản lý môi trường Rust.
  • tockloader: Công cụ chuyên dụng của Tock, dùng để nạp nhân và ứng dụng lên bo mạch phát triển.

Bước 1: Cài đặt Môi trường Rust

Rust là nền tảng cho việc phát triển Tock. Cần sử dụng rustup để cài đặt một phiên bản Rust cụ thể.

Cài đặt rustup

Mở terminal và chạy lệnh sau để cài đặt rustup:


curl https://sh.rustup.rs -sSf | sh

Sau khi cài đặt hoàn tất, khởi động lại terminal hoặc chạy lệnh sau để kích hoạt biến môi trường:


source $HOME/.cargo/env

Cài đặt Phiên bản Rust Chỉ định

Tock yêu cầu sử dụng một phiên bản Rust nightly cụ thể. Chạy lệnh sau để cài đặt phiên bản cần thiết:


rustup install nightly-2024-01-01
rustup default nightly-2024-01-01

Bước 2: Cài đặt Tockloader

tockloader là một công cụ quan trọng trong phát triển Tock, dùng để nạp nhân và ứng dụng lên bo mạch phát triển.

Sử dụng Pip để Cài đặt Tockloader

tockloader là một ứng dụng Python, có thể cài đặt bằng pip:


# Hệ thống Linux
pip3 install --user tockloader

# Hệ thống MacOS
pip3 install tockloader

Bước 3: Biên dịch Nhân Tock

Tock cung cấp các cấu hình nhân riêng cho từng loại bo mạch phát triển. Cần truy cập vào thư mục tương ứng của bo mạch để biên dịch.

Chọn Bo mạch và Biên dịch

Ví dụ với bo mạch nrf52840dk:


cd tock/boards/nordic/nrf52840dk
make

Sau khi biên dịch, tệp ảnh nhân sẽ được tạo ra trong thư mục này.

Bước 4: Nạp Nhân lên Bo mạch

Sau khi biên dịch, cần nạp nhân lên bo mạch phát triển. Phương thức nạp có thể khác nhau tùy thuộc vào bo mạch.

Sử dụng JLink để Nạp

Nếu bo mạch hỗ trợ JLink, có thể sử dụng lệnh sau để nạp:


make flash

Sử dụng OpenOCD để Nạp

Một số bo mạch yêu cầu sử dụng OpenOCD để nạp. Trước tiên, cần cài đặt OpenOCD:


# Hệ thống Debian/Ubuntu
sudo apt-get update && sudo apt-get install openocd

# Hệ thống MacOS
brew install open-ocd

Sau đó, thực hiện lệnh nạp:


make flash

Bước 5: Cài đặt Ứng dụng

Sau khi nhân đã được nạp, có thể sử dụng tockloader để cài đặt ứng dụng.

Cài đặt Ứng dụng Mẫu

Ví dụ với ứng dụng blink, chạy lệnh sau:


tockloader install --board nrf52dk --jlink blink

tockloader sẽ tự động tải ứng dụng từ kho trực tuyến và cài đặt nó lên bo mạch.

Khắc phục Sự cố Thường gặp

Vấn đề Quyền Truy cập

Trên hệ thống Linux, có thể gặp vấn đề về quyền truy cập cổng nối tiếp hoặc thiết bị JLink. Có thể giải quyết bằng cách thêm quy tắc udev:


groups $(whoami) | grep -q dialout || sudo usermod -a -G dialout $(whoami)

Cần khởi động lại hệ thống sau khi thêm quy tắc để có hiệu lực.

Cập nhật Chuỗi Công cụ

Tock sẽ cập nhật định kỳ các phiên bản Rust cần thiết. Chạy lệnh sau để cập nhật chuỗi công cụ:


make update

Sau các bước trên, bạn đã hoàn thành việc thiết lập chuỗi công cụ Tock, từ cài đặt rustup đến cấu hình tockloader. Giờ đây, bạn có thể bắt đầu phát triển hệ điều hành Tock.

Thẻ: Tock Rust embedded Microcontrollers rustup

Đăng vào ngày 5 tháng 11 lúc 09:41