Omid Ataollahi
Omid Ataollahi
خواندن ۳ دقیقه·۱ سال پیش

میکرو پایتون: نحوه کامپایل کردن سورس کد و تولید فایل‌های uf2

موقت: فعلاً ویرگول قاطی کرده و اجازه نمایش لینک‌ها و کدها را نمی‌دهد. (لینک گیتهاب را قرار داده‌ام که فعلا بتوانید استفاده کنید)



میکرو پایتون پروژه‌ای جهت برنامه‌نویسی برای رنج نسبتاً وسیعی از میکروکنترلرها می‌باشد و قصد رقابت با C و ++C را دارد. بدیهی است که در بعضی ویژگی‌ها هیچگاه به پای زبان C و ++C نمی‌رسد اما برتری‌های خاص خودش را دارد.

معایب: سرعت پایین‌ (به دلیل مفسری بودن زبان پایتون).
مزایا: کدنویسی بسیار سریع و آسان (و در نتیجه عیب‌یابی راحت).

در بسیاری از پروژه‌های صنعتی که از میکروکنترلرها استفاده می‌گردد نیاز به پردازش با سرعت بسیار بالا وجود ندارد اما در همه‌ی پروژه‌ها سرعت عمل در کدنویسی و امکان رفع عیوب و اضافه کردن قابلیت‌های جدید اهمیت زیادی دارد. پس زبان برنامه‌نویسی باید با توجه به نیازمندی‌های خاص هر پروژه انتخاب گردد.

میکروپایتون اقتباسی از CPython می‌باشد و تلاش می‌کند که با پیاده‌سازی سینتکس زبان پایتون، یک API سطح بالا بسازد تا برنامه‌نویس را از پیچیدگی‌های سخت‌افزار آسوده کند.

نحوه راه‌اندازی میکروپایتون بسیار آسان است که با سرچ کوتاهی می‌توان آن را انجام داد. این پروسه برای هر میکروکنترلر کمی متفاوت می‌باشد اما در کلیات بسیار شبیه می‌باشند.
سپس می‌توان با استفاده از REPL به آن متصل شد.


کامپایل میکرو پایتون:

چرا یک برنامه را کامپایل می‌کنیم وقتی که خروجیِ آماده‌شده را در دسترس‌مان قرار داده‌اند؟
معمولاً کامپایل کردن پروژه‌ها چند علت همیشگی دارد:
۱- نیاز به انجام تغییرات در پارامترهای زمان کامپایل
۲- نیاز به تغییر اصل سورس کد یا ماژول‌های متصل به آن (همانند این مقاله)
۳- یادگیری عمیق‌تر برنامه‌نویسی
۴- مشارکت در توسعه سورس‌کد

مثلاً در این موردِ به‌خصوص، کامپایل کردن سورس‌کد به هدف سخت‌تر نمودنِ دسترسی به کدها در میکروکنترلر (حفاظت بیشتر) است. زیرا بعد از اتمام پروژه‌های میکرو پایتون دسترسی به REPL وجود دارد (به وسیله Thonny IDE می‌توان به آسانی همه‌ی کدهای نوشته شده را دید).

یادآوری: در هیچ میکروکنترلری -حتی در پیشرفته‌ترین انواع آن و با وجود تمام مکانیزم‌های کنترلی- امنیت و حفاظت قطعی از کدها وجود ندارد. اما همیشه می‌توان ضریب اطمینان را کمی بهبود بخشید.

این آموزش با محوریت Raspberrypi Pico نوشته شده اما با اندکی تغییرات برای تمامی میکروکنترلرهای دیگر هم جوابگو می‌باشد. در این آموزش از یک لپتاپ با سیستم عامل لینوکس استفاده شده که اسم یوزر آن my-user می‌باشد و دسترسی root دارد. (می‌توان به جای لپتاپ از یک raspberrypi دیگر با سیستم عامل لینوکس هم استفاده کرد)

منبع آموزش زیر داکیومنت‌های رسمی رزبری‌پای برای میکروپایتون در پیکو صفحه ۴ (لینک) و این صفحه از فروم رزبری‌پای (لینک) بوده است:

https://gist.github.com/Omid888/8b0bf9bc1dde84250d188e5193ca52b7

توضیحات درباره نحوه عملکرد هر خط با کامنت داده شده است.

نکته ۱: در قسمت اختیاری می‌توان هر برنامه دیگری که قبلاً‌ با استفاده از REPL بر روی میکروکنترلر اجرا می‌شده‌ را قرار داد. (برنامه فعلی صرفاً جهت قرار دادن یک مثال بوده تا بتوان از سلامتِ کارِ انجام شده اطمینان حاصل کرد)

نکته۲: در چند خط انتهایی، نحوه غیر فعال کردنِ کاملِ REPL توضیح داده شده است.
این قسمت اختیاری می‌باشد. زیرا REPL دیگر چندان خطری ندارد اما برای امنیت بیشتر غیرفعال کردن آن توصیه می‌شود؛ مخصوصاً در صورتی‌که در مرحله production هستید.
اگر هنوز در مرحله debug نرم‌افزار به سر می‌برید قابلیت‌های REPL به کار خواهند آمد.

امیدوارم که مفید بوده باشد.


رزبری پای
شاید از این پست‌ها خوشتان بیاید