راه اندازی و شروع کار با Zephyr RTOS
سیستم عامل Zephyr برای میکروکنترلر ها:
سیستم عامل Zephyr RTOS یک سیستمعامل متنباز برای میکروکنترلرها و دستگاههای جاسازیشده (Embedded) هست. این سیستمعامل خیلی سبکه و برای انواع مختلف میکروکنترلرها مثل ESP32، ARM Cortex و حتی x86 قابل استفاده است. به این معنی که خیلی از پروژههایی که میخواهید بسازید، میتونید با Zephyr انجام بدید. یکی از مزایای Zephyr اینه که از طراحیهای مدرن سیستمعامل پشتیبانی میکنه و یه بستر خوب برای توسعه نرمافزار روی سختافزارهای کوچک فراهم میکنه.
نصب و راه اندازی اولیه
وقتی میخواهید Zephyr RTOS رو نصب کنید، بهترین راه اینه که به داکیومنتهای رسمی Zephyr مراجعه کنید، چون همه چیز اونجا بهروز و کامل توضیح داده شده. اما اگر از ایران باشید، ممکنه با دانلود پکیجهای زیاد و حجیم مشکل داشته باشید، مخصوصاً برای سیستمعاملهایی مثل Zephyr که تعداد زیادی ابزار و کتابخانه داره. در این صورت، میتونید فقط پکیجهایی که مربوط به میکروکنترلر خودتون هست رو دانلود کنید. اینطوری سرعت دانلود و مدیریت فایلها خیلی بهتر میشه.
قدم اول: ساخت پوشه برای پروژه
اول از همه باید یه پوشه برای پروژه خودتون بسازید. این پوشه به عنوان محل ذخیرهسازی پروژه شما عمل میکنه. توی این پوشه، میخواهید یک پوشه جداگانه برای فایلهای دانلودی و مستندات بسازید. این کار کمک میکنه که همه چیز منظم بمونه.
1
2
3
mkdir myPrj
mkdir myPrj/documents
cd myPrj
قدم دوم: ایجاد محیط مجازی پایتون
برای نصب ابزارهایی که به پایتون نیاز دارن (مثل west)، بهتره که از محیط مجازی پایتون استفاده کنید. محیط مجازی پایتون به شما این امکان رو میده که همه پکیجها و ابزارها رو بهصورت جداگانه برای هر پروژه نصب کنید، بدون اینکه به پروژههای دیگه تداخل پیدا کنه.
1
2
3
virtualenv -p /usr/bin/python3.10 .venv
source .venv/bin/activate
pip install west
قدم سوم: دانلود پروژه Zephyr
حالا که محیط پایتون آماده شد، وقتشه که پروژه Zephyr رو از گیتهاب دانلود کنید. معمولاً بهترین کار اینه که نسخههای پایدار رو دانلود کنید تا مشکلات کمتری پیش بیاد. و پروژه رو در مسیر اصلی پروژه از حالت فشرده خارج کتید
1
2
wget https://github.com/zephyrproject-rtos/zephyr/archive/refs/tags/v3.7.1.tar.gz -P ./documents
tar -xf documents/v3.7.1.tar.gz -C .
قدم چهارم: پیکربندی west
بعد از اینکه Zephyr رو دانلود کردید، باید ابزار west رو تنظیم کنید. west به عنوان یک پکیج منیجر عمل میکنه که به شما کمک میکنه تا تمام ماژولها و ابزارهای مورد نیاز رو دانلود و مدیریت کنید. یکی از ویژگیهای خوب west اینه که میتونید دقیقاً مشخص کنید چه بخشهایی از Zephyr رو میخواهید و چه بخشهایی رو نه. مثلاً شما فقط به بخشهایی نیاز دارید که مربوط به ESP32-S3 هست.
برای این کار باید فایل پیکربندی west.yml رو ویرایش کنید و فقط ماژولهایی که به اونها نیاز دارید رو نگه دارید.
1
gedit zephyr-3.7.1/west.yml
چون پردازنده انتخابی ما esp32s3 از شرکت espressif و با پردازنده xtensa است . فقط ماژول های این دو را در فایل west.yml نگه میداریم. پس فایل ما به شکل زیر خواهد شد.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
manifest:
defaults:
remote: upstream
remotes:
- name: upstream
url-base: https://github.com/zephyrproject-rtos
- name: babblesim
url-base: https://github.com/BabbleSim
group-filter: [-babblesim, -optional]
#
# Please add items below based on alphabetical order
projects:
- name: hal_espressif
revision: 01fc4ec49b8b178d7aea765cdb8709311ee4c50b
path: modules/hal/espressif
west-commands: west/west-commands.yml
groups:
- hal
- name: hal_xtensa
revision: a2d658525b16c57bea8dd565f5bd5167e4b9f1ee
path: modules/hal/xtensa
groups:
- hal
self:
path: zephyr
west-commands: scripts/west-commands.yml
import: submanifests
قدم پنجم: درخواستهای west
حالا که فایل پیکربندی رو تنظیم کردید، میرید داخل پوشه Zephyr و دستور west init رو اجرا میکنید. این دستور به west میگه که همه فایلهای مورد نیاز رو دانلود کنه. بعد با دستور west update میتونید ماژولها رو از گیتهاب کلون کنید.
1
2
3
cd zephyr-3.7.1
west init -l .
west update
قدم ششم: نصب نیازمندیها
بعد از اینکه west رو تنظیم کردید، باید نیازمندیهای پایتون رو نصب کنید. این نیازمندیها در فایل requirements.txt موجود هست و میتونید با دستور pip install اونها رو نصب کنید.
برای اینکه پکیج cmake را export کنیم از دستور زیر استفاده میکنیم. این کمک میکنه که cmake بتونه پکیج های zephyr رو به پروژه اضافه کنه. بایکی از دستور زیر نیاز های west برای نصب و کامپایل برنامه رو دانلود میکنید.
1
2
3
west zephyr-export
pip install -r scripts/requirements.txt
west packages pip --install
قدم هفتم: نصب SDK
حالا برای اینکه بتونید با میکروکنترلر ESP32-S3 کار کنید، باید SDK مخصوص اون رو نصب کنید. دستور west sdk list به شما لیست SDKهای موجود رو نشون میده و بعد میتونید یکی از اونها رو نصب کنید. برای ESP32-S3، دستور نصب به شکل زیر میشه:
1
2
west sdk list
west sdk install -t xtensa-espressif_esp32s3_zephyr-elf
قدم هشتم: کپی پروژههای سمپل
برای اینکه از یک پروژه آماده استفاده کنید، میرید داخل پوشه پروژههای نمونه Zephyr. بعد پروژهای مثل “minimal” که سادهترین نمونههاست رو کپی میکنید به پوشه اصلی پروژه.
1
2
3
cd ..
cp -r zephyr/samples/basic/minimal .
cd minimal
قدم نهم: کامپایل پروژه
حالا که پروژه رو آماده کردید، میخواهید برنامه رو کامپایل کنید. برای این کار از دستور west build استفاده میکنید. این دستور پروژه رو کامپایل میکنه و آماده فلش شدن به میکروکنترلر میشه.
1
west build -p auto -b esp32s3_devkitc/esp32s3/procpu
قدم دهم: فلش کردن برنامه
بعد از اینکه کامپایل تموم شد، حالا باید برنامه رو روی میکروکنترلر ESP32-S3 فلش کنید. دستور west flash این کار رو انجام میده.
1
west flash
قدم یازدهم: دیباگ و مانیتورینگ
در نهایت، میخواهید ببینید که برنامه به درستی روی میکروکنترلر اجرا میشه یا نه. برای این کار میتونید از دستور west debug استفاده کنید تا خروجی سریال رو ببینید و مطمئن بشید که همه چیز درست کار میکنه.
1
west debug
با این توضیحات، امیدوارم همه مراحل نصب و راهاندازی Zephyr برای شما شفافتر شده باشه. این روند یه مقدار پیچیده به نظر میرسه، ولی وقتی یکبار این مراحل رو پیش برید، دفعههای بعد خیلی راحتتر میتونید از Zephyr استفاده کنید.
