رونمایی از UTFS؛ سیستم‌فایل متن‌باز و سبک برای میکروکنترلرهای کوچک

سیستم‌فایل UTFS
16 بازدید
۱۴۰۵-۰۴-۰۸
3 دقیقه
  • نویسنده: Shadow
  • درباره نویسنده: سئوکار ساده! 🔗 مهندس الکترونیک⚡

به گفته: CNX Software – Embedded Systems News

سیستم‌فایل UTFS راهکاری متن‌باز و بسیار سبک برای میکروکنترلرهای کوچک است که با حذف تخصیص حافظه پویا و پیچیدگی‌های Wear Leveling، مدیریت داده‌ها در حافظه‌های EEPROM و Flash را تسهیل می‌کند. این ابزار با استفاده از ساختار متوالی و هدرهای کوچک، جایگزینی کارآمد برای روش‌های سنتی ذخیره‌سازی در سیستم‌های امبدد با منابع محدود است.

مجموعه CLI Systems از سیستم UTFS (μTFS) رونمایی کرده است؛ یک سیستم ذخیره‌سازی امبدد ساده و سبک که برای میکروکنترلر های کوچک طراحی شده است. برخلاف سیستم‌فایل‌های سنتی مانند FAT32 یا EXT4 و حتی گزینه‌های سبک‌تری مثل LittleFS و SPIFFS که در برد هایی مانند ESP32 استفاده می‌شوند، UTFS بسیار ساده‌تر است. این سیستم از حافظه پویا (Dynamic Memory) استفاده نمی‌کند و از ویژگی‌های پیچیده‌ای مانند wear leveling اجتناب می‌آورد که باعث می‌شود استفاده از آن در دستگاه‌هایی با منابع محدود بسیار آسان‌تر باشد.

UTFS برای حافظه‌های تخت (Flat) و با قابلیت آدرس‌دهی بایتی، مانند EEPROM خام، صفحات فلش پردازنده یا فلش‌های خارجی SPI/I2C طراحی شده است. این سیستم به فریمور های بدون سیستم‌عامل اجازه می‌دهد تا بلوک‌های داده نام‌گذاری شده («files») را به صورت پشت سر هم ذخیره کنند. به هر فایل یک هدر ثابت ۲۴ بایتی اضافه می‌شود که حاوی فراداده‌هایی مانند شناسه‌ها، اندازه‌ها و امضاهای تعریف‌شده توسط برنامه است.

مشخصات و ویژگی‌های UTFS

ویژگی توضیحات
اشغال فضا (Footprint) هدر ثابت ۲۴ بایتی برای هر فایل؛ مصرف صفر از حافظه Heap (بدون نیاز به malloc).
قالب (Format) چیدمان متوالی الهام‌گرفته از TAR
سازگاری رو به جلو (Forward Compatibility) به‌گونه‌ای که فایل‌ها می‌توانند بعداً بدون برهم زدن چیدمان حافظه موجود اضافه شوند (CAN).
استقلال از سخت‌افزار ذخیره‌سازی برای برقراری ارتباط با سخت‌افزار تنها نیاز به پیاده‌سازی (Port) دو تابع sys_read و sys_write دارد.
قابلیت اطمینان استفاده از امضاهای تعریف‌شده توسط برنامه (مانند 0xABCD) برای تشخیص حافظه خراب یا مقداردهی‌نشده هنگام اولین فراخوانی تابع utfs_load().
مجوز (License) متن‌باز تحت مجوز MIT؛ کاملاً آزاد و بدون محدودیت‌های قالب‌های انحصاری سازندگان.

بسیاری از پروژه‌های میکروکنترلر تمام داده‌ها را به صورت یک ساختار بزرگ در یک آدرس ثابت EEPROM ذخیره می‌کنند. این روش ساده است، اما اگر قالب داده‌ها بعداً تغییر کند، به یک مشکل تبدیل می‌شود، زیرا داده‌های قدیمی ممکن است دیگر قابل استفاده نباشند. از سوی دیگر، سیستم‌فایل‌های کامل مانند FatFs یا LittleFS ویژگی‌های پیشرفته‌ای را ارائه می‌دهند، اما به حافظه بیشتری نیاز دارند و اجرای آن‌ها روی دستگاه‌های کوچک سنگین است.

سیستم UTFS در صورت تغییر اندازه فایل‌ها در نسخه‌های مختلف فریمور، موقعیت داده‌ها را به طور خودکار تنظیم می‌کند (سمت چپ) و از یک آدرس پایه سفارشی برای همزیستی ایمن با داده‌های قدیمی استفاده می‌کند (سمت راست).

سیستم UTFS در صورت تغییر اندازه فایل‌ها در نسخه‌های مختلف فریمور، موقعیت داده‌ها را به طور خودکار تنظیم می‌کند (سمت چپ) و از یک آدرس پایه سفارشی برای همزیستی ایمن با داده‌های قدیمی استفاده می‌کند (سمت راست).

UTFS جایگاهی بین این دو رویکرد دارد. این سیستم شامل ویژگی‌های پیشرفته‌ای مانند wear leveling یا نوشتن‌های اتمی ایمن نیست؛ بنابراین اگر برق در حین ذخیره‌سازی قطع شود، داده‌ها ممکن است به صورت ناقص نوشته شوند، درست مانند نوشتن معمولی در EEPROM. در عوض، با ذخیره داده‌ها به صورت بلوک‌های نام‌گذاری شده مجزا، همه چیز را ساده نگه می‌دارد و مدیریت و به‌روزرسانی داده‌ها را در سیستم‌های کوچکی که منابع کافی برای یک سیستم‌فایل کامل ندارند، آسان‌تر می‌کند.

اطلاعات بیشتر، از جمله مثال‌های عملی برای برد هایی مانند Arduino Uno (ATmega328) که از EEPROM داخلی استفاده می‌کند و Microchip SAMD20 که از حافظه فلش داخلی بهره می‌برد، در صفحه CLI Systems قابل مشاهده است. برای استفاده از UTFS روی سخت‌افزارهای دیگر، کافی است API آن را به توابع خواندن و نوشتن دستگاه خود متصل کنید. کد منبع C99، مثال‌ها و مستندات کامل جهت ادغام در پروژه‌ها در مخزن GitHub مجموعه CLI Systems در دسترس است.

برنامه "Hello World" در UTFS

برنامه “Hello World” در UTFS

اطلاعات
16
0
0
اشتراک و حمایت
profile نویسنده: Shadow متخصص الکترونیک

سئوکار ساده! 🔗 مهندس الکترونیک⚡


مقالات بیشتر

slide

پالت | بازار خرید و فروش قطعات الکترونیک

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

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. جستجو در آیسی
family

سیسوگ‌شاپ | فروشگاه محصولات Quectel

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
family

سیکار | اولین مرجع متن باز ECU در ایران

بررسی و ارائه اطلاعات مربوط به ECU (واحد کنترل الکترونیکی) و نرم‌افزارهای متن باز مرتبط با آن برو به سیکار
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله

خانواده سیسوگ

سیسوگ‌شاپ

فروشگاه محصولات Quectel

پالت
سیسوگ فروم

محلی برای پاسخ پرسش‌های شما

سیسوگ جابز
سیسوگ
سیسوگ فروم
سی‌کار

اولین مرجع متن باز ECU در ایران

سیسوگ مگ
آی‌سی

موتور جستجوی قطعات الکترونیکی

سیسوگ آکادمی
پالت

بازار خرید و فروش قطعات الکترونیک

دیدگاه ها

become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله