أولا - دور نظم التشغيل في التصاميم المدمجة

ويتزايد الطلب على النظم المدمجة للتنفيذ القابل للتنبؤ، وانخفاض درجة الحرارة، والتعامل المتزامن مع الأحداث المتعددة، ويوفر نظام التشغيل في الوقت الحقيقي إطارا لتلبية هذه المتطلبات دون إجبار المطورين على بناء منطق جدولي من الصفر، ومن بين الخيارات المتاحة، فإن نظام فريتروسوفوس يبرز ككرنيل خفيف الوزن، وذو المصدر المفتوح، وقد أصبح الخيار الأمثل في الواقع بالنسبة لأجهزة التحكم الدقيقة، والصغيرة.

وتتوسع هذه المادة في الدليل الأصلي لفريتروس، وتتعمق في هيكلها وتشكيلها وإدارة المهام وآليات التزامن والقدرات المتقدمة، وستتوفر لكم في نهاية المطاف فهم شامل لكيفية تعزيز نظام فريتروس في إنتاج البرامجيات المدمجة.

ما هو فريتروس؟

إن نظام فريتروس هو نظام تشغيلي قائم على السوق في الوقت الحقيقي مصمم خصيصا للنظم المدمجة، وقد أنشأه ريتشارد باري، وهو الآن يُحتفظ به تحت مظلة خدمات شبكة الأمازون (AWS) الحرة، ويكفل الدعم المستمر والمواءمة مع شبكة الإنترنت للنظم الإيكولوجية (IoT) ويوفر الكينال القليل من الاتصالات الوقائية المتعددة الأطقم، والتواصل بين مختلف الأطقم، والبرمجيات المتزامنة،

وتشمل الخصائص الرئيسية التي تجعل نظام فريتروس متبناه على نطاق واسع ما يلي:

  • Open source under MIT license:] no licensing fees, full source code availability, and permissive use in commercial products.
  • Portability:] Official ports for dozens of MCU structures (ARM Cortex-M, RISC —V, PIC, etc.) and toolchains (GCC, IAR, Keil, LLVM).
  • Minimal footprint:] The kernel can run in as little as 4 KB of ROM and 1 KB of RAM, making it suitable for cost-sensitive devices.
  • Deterministic behavior:] Scheduling overhead is constant and independent of the number of tasks, ensuring predictable timing.
  • Active community and commercial support:] Extensive documentation, forums, and professional services from the FreeRTOS team and partners.

وكثيرا ما يكون نظام فريتروس هو أول لقاء للمهندسين التابعين لمحطة تسوق المواد الارتجالية، ويرسم مفاهيمه مباشرة على نظم أكثر تعقيدا، مما يجعلها منصة تعلم ممتازة فضلا عن أساس الإنتاج - الجاهز.

المفاهيم الأساسية وأصول الكرنل

وقبل التخلّص من خطوات عملية، من الضروري فهم لبنات البناء الأساسية التي توفرها هيئة فريتروس.

المهام

وتتمثل المهام في عمليات تنفيذ مستقلة تتقاسم مع الوقت المحدد لوحدة منع التعذيب وفقاً لجدول زمني وقائي ذي أولوية، ولكل مهمة إطارها الخاص بها، وتدعم هيئة منع التعذيب عدداً غير محدود من المهام (محدداً بالذاكرة المتاحة فقط)، ويتبادل الجدول الزمني بين المهام القائمة على أولوياتها وولايتها (الجاهزة، والسير، والغلق، والتعليق).

Queues

ويمكن إصدار رسائل بين المهام وبين المقاطعات والمهام، وهي الآلية الرئيسية للاتصال فيما بين الأطراف، أما الاستفسارات المتعلقة بالنقل السريع فهي من طراز FIFO أو LIFO (الأخيرة عن طريق ) ويمكن أن تحمل بنود بيانات ثابتة الحجم، وترمي العمليات القائمة على أساس نوعي إلى أن تكون فعالة ومعطلة.

الظواهر الشبهية والموتكس

وتقدم شركة فريتوس خامات ثنائية، وتحسب السايمافورات، والثومات، وتعمل السايمافورات الثنائية كأعلام بسيطة تستخدم في الإشارة إلى المهام أو المتزامنة (مثلاً الإخطار بحدوث انقطاع) وتدير عمليات التكسير موارد متعددة، بينما توفر المتحولات الاستبعاد المتبادل مع آلية ذات أولوية متينة للميراث لمنع التحويل ذي الأولوية.

برمجيات

ويوفر الشبكــة موقــت للبرمجيــات التي تنفــذ وظيفة الاسترجاع عندما تنقضي فترة، ويمكن أن يكون التموين طلقــة واحدة )إطلاق النار مرة( أو تحميله على السيارات، ويديرون مهمة مخصصة لخدمة التوقيت، بحيث يجب أن يكون معالجوهم قصيرين وغير مقفلين.

مجموعات الأحداث

وتتيح مجموعات الأحداث مهمة الانتظار لتحديد مجموعة من النقاط المتعددة (الأحداث) التي تبسط السيناريوهات التي يتوقف فيها العمل على عدة ظروف غير مقصودة، مثل قراءة أجهزة الاستشعار وضغط زر المستخدم.

بدأت مع فريتروس

ويتطلب اعتماد نظام " فريتروس " تقييم معداتكم المستهدفة، والحصول على مصدر الكينل، وتشكيله ليتناسب مع القيود التي يفرضها تطبيقكم.

اختيار ملوثات صغيرة قابلة للمقارنة

وتوجد موانئ للشركة الشعبية تقريباً لكل أسرة من أفرادها، مؤكداً أن جهازك المختار لديه ما يكفي من حركة RAM وميض للآلة بالإضافة إلى مهامكم، فعلى سبيل المثال، يمكن لمؤسسة ARM Cortex-M0+ التي تضم 16 KB RAM أن تدير بعض المهام على نحو مريح، بينما يدعم العديد من أفرادها شركة Cortex-M4 التي تضم 256 KB RAM.

تحميل ودمج النفق

(أ) أحدث رموز مصادر نظام فورتو (فريتوس) متاحة من موقع () الرسمي لنظام فريتروس () أو عن طريق جيت هوب، ويشمل التوزيع الكنيل الأساسي ()، وملفات الطبقات المحمولة ()، ومشاريع مخفضة، ولبدء فعال، تنسخ [منهاج:3]، وكثير من مشاريع نموذجية محمولة.

Configuration: The File

ويخضع جميع سلوك الكيروني لرقابة .

  • : Set to 1 for preemptive scheduling (typical for real-time applications). Set to 0 for cooperative scheduling.
  • : The actual clock frequency of the CPU (used by the kernel for correct timing).
  • :] The frequency of the system tickr interrupt. Common values are 100 Hz (10 ms tick) or 1000 Hz (1 ms tick). Higher rates improve resolution but increase overhead.
  • : مجموع كمية RAM المتاحة للتخصيص الدينامي للذاكرة (يستخدمها ).
  • :] The stack size (in words) for the idle task and the default for new tasks if not specified. Ensure this is large enough for nested function calls and interrupt contexts.
  • : الحد الأقصى من طول أسماء المهام التي يمكن قراءة الإنسان (أدوات التنقيب).
  • : Set to 1 for 16bit tick counters (saves RAM but limits maximum tick value to 65535 – not recommended for long-running or high rate systems).

وبالإضافة إلى ذلك، اختار خطة إدارة الكعب عن طريق و].() وتشمل هذه النسيج خمسة عمليات تنفيذية للضرب (القفز من 1 إلى 5) مع مختلف المفاضلات في التجزؤ وسرعة التخصيص والرادف، وتستخدم معظم التطبيقات [() (الشكل الأول من حيث الحيازة) أو .

إنشاء المهام وإدارة دورة الحياة

إن إنشاء المهام أمر مباشر، ولكن تفاصيل التخمينات، والأولويات، والتحولات التي تمر بها الدولة تؤثر تأثيرا عميقا على موثوقية النظام.

باستخدام

A task is created by defining a function that never returns (a cycle is typical) and calling :

TaskHandle_t xHandle;
xTaskCreate(
 vTaskFunction, // Task function pointer
 "MyTask", // Name for debugging
 configMINIMAL_STACK_SIZE, // Stack size in words
 NULL, // Parameters passed to task
 2, // Priority (higher number = higher priority)
 &xHandle // Optional task handle
);

The function should initialize any needed peripherals and then enter its infinite cycle, performing its work, sleeping, or waiting for events.

أولويات العمل والبرمجيات

وتدعم مؤسسة " فريتروس " الأولويات من صفر (أقل) إلى (أعلى درجة) وتبدأ المهمة العالقة على سبيل الأولوية صفر. وسيؤدي الجدول الزمني الوقائي دائماً المهمة العليا على سبيل الأولوية، وإذا ما تشاطر مهمتان نفس الأولوية، فإنهما يتسعان زمنياً (في حوزة أرضية) ويعادل مدة واحدة، ويتجنبان إعطاء المهام غير الحرجة نفس الأولوية التي تتسم بها المهام الحاسمة؛

الدول الأطراف

وتوجد كل مهمة في إحدى هذه الولايات:

  • Running:] The task is currently implementing (only one task per CPU core).
  • Ready:] The task is able to run but a higher priorityity or equal‐priority task is currently implementing.
  • Blocked:] The task is waiting for an event (timeout, que message, semaphore, etc.) It consumes no CPU time.
  • Suspended:] The task is removed from the scheduler’s ready list, typically via . It can only be appealed explicitly.

والقفل هو الآلية الرئيسية لاستخدام وحدة منع الحمل بكفاءة: فبدلا من الاقتراع، تنتظر المهمة ببساطة حالة تسمح بأداء مهام ذات أولوية أقل.

Stack Sizing and Overrun Protection

ومن بين أكثر المصادر شيوعاً لأجهزة التنصت على الارتداد بالأجهزة الكهربية، حيث توفر الكينول فحوصتين اختياريتين: ، ويمكنها، عند تمكينها، اكتشاف التدفقات الزائدة في وقت تبديل السياق، وتخصيص أحجام الحزمة السخية أثناء التنمية واستخدام لمشاهدة الحد الأدنى من الحيز المجاني، وزيادة الحزمة حسب الحاجة قبل الإفراج.

ويتيح التخصيص الثابت (يستخدم ]) مزيداً من الرقابة بسماحك بتوفير الحزمة بنفسك، مما يتفادى تجزؤها ويتيح التنسيب في مناطق معينة من ذاكرة (مثلاً، الذاكرة المقترنة بدقة للمهام الحقيقية).

التواؤم والاتصال فيما بين الأطراف

ونادرا ما تعمل المهام بمعزل عن بعضها البعض؛ فهي بحاجة إلى تنسيق وتبادل البيانات، وتوفر نظام فريتروس عدة آليات، كل منها يناسب أنماطا معينة.

Queues for Data Passing

(ب) استخدام الاستفسارات لإرسال بيانات من مهمة (أو مقاطعة) إلى أخرى، وتخزن هذه الاستفسارات عدداً ثابتاً من الأصناف ذات الحجم، فعلى سبيل المثال، يمكن أن ترسل مهمة قراءة أجهزة الاستشعار عينات إلى مهمة قطع الأشجار.

  • - إرسال بند من مهمة (مقفل إذا كان كاملا).
  • - تلقي البند (القفل إذا كان فارغاً).
  • ISR-safe versions: and .

(د) التحقق دائماً من قيم العودة؛ ويمكن أن يكون هناك طابور كامل أو أن يكون النداء قد حان الوقت؛ وفي حالات الاسترداد، يشير العائد أو إلى ما إذا كان يلزم تغيير السياق.

الشبهات الثنائية مثل الإشارات البسيطة

فالسيمافيوريات الملزمة هي مثال على إبلاغ المهمة التي وقع فيها حدث، فعلى سبيل المثال، يمكن لمقاطعة تابعة للمنظمة العالمية للأرصاد الجوية أن " تعطي " نسيفوراً، ويمكن لمهمة انتظار أن " تأخذ " الحدث وتعالجه، وهذا الفصل يقطع روتينات الخدمة من منطق التطبيق.

المثبطات ذات الأولوية

وعندما تصل المهام المتعددة إلى مورد مشترك (مثلاً، أو وحدة خفض الانبعاثات أو هيكل البيانات)، تستخدم مادة متحولة بدلاً من مادة السايمفور الثنائي، وتشمل هذه المهام آلية للميراث ذات أولوية تُرفع مؤقتاً أولوية المهمة التي تُسند إلى أعلى أولوية لأي مهمة انتظار، وهذا يحول دون القيام بمهام ذات أولوية متوسطة إلى أجل غير مسمى بعرقلة مهمة ذات أولوية عالية (التحويل الأساسي).

العد التنازلي لإدارة الموارد

فعد السايمافورات يتتبع عدد الحالات المتاحة للمورد، فعلى سبيل المثال، يمكن إدارة مجموعة من خمس قنوات من قنوات إدارة الشؤون الإنسانية مع إدخال فرز سيمفوري إلى 5 قنوات، وهي مهمة " تأخذ " جهازاً سيمولياً لاقتناء قناة و " سائل " عند القيام بذلك، وهذا يحول دون الإفراط في التوزيع.

مجموعات الأحداث للتركيز المتعدد الأطراف

وإذا تعين على إحدى المهام الانتظار حتى وقوع عدة أحداث مستقلة، فإن مجموعات الأحداث أكثر كفاءة من السايمفات المتعددة، وتُحدَّد المباني بواسطة مهام أو ممثليها، ويمكن أن تحدد مهمة الانتظار قناعاً من القطع، وما إذا كان يجب تحديد كل منها أو أي منها، وتشمل هذه المهمة [(]]، ، والنظراء في مجال المسؤولية القانونية الدولية.

المعالجة المؤجلة: المعالجة المؤجلة

ومن أهم أنماط نظام فريتروس أن يبقي ممثلي الموظفين الدوليين ذوي الإعاقة قصيراً للغاية، بدلاً من القيام بعملية تجهيز معقدة داخل مقاطعة ما، يستخدم النهج التالي:

  1. Inside the ISR, gather minimal data and signal a task (via semaphore, queue, or task notification).
  2. فك المهمة، التي تحظى بأولوية طبيعية لأداء الرفع الثقيل.
  3. Use the “FromISR” versions of FreeRTOS API calls (, , etc.) and check the ]] parameter. If the unblocked task has a higher priority than the interrupted task, a context change is requested.

وهذا التأجيل في تجهيز المقاطعات (يسمى أيضاً معالج " القزم " ) يكفل استمرار استجابة النظام مع الحفاظ على إمكانية التنبؤ بالبطء، كما يدعم نظام فوردو حالات التوقف، ولكن يجب أن تكفلوا تشكيل المستويات ذات الأولوية للتوقف بشكل صحيح بالنسبة لمؤسسة إدارة المخاطر المؤسسية، فإن النسيج يتطلب استخدام أعلى مستوى من الأولويات يمكن الوصول إليه للمستخدمين في الوقت المحدد وأي نظام إيكسيد الكربون.

أفضل الممارسات في مجال تطبيقات الإنتاج المجاني

وإلى جانب الاستخدام الأساسي، تفصل عدة ممارسات نظاما مستقرا عن نظام هش.

Memory Management

اختيار التنفيذ الحاد الذي يطابق نمط تخصيصك. heap 4] هو عموماً تقصير جيد لأنه يدمج بين القطع الحرة المجاورة، وإذا كان تطبيقك ينشئ ويحذف المهام أو الأسئلة وكثيراً ما يتجنب [(FLT:2]]eap 2 (لا توجد نظم تجزؤ) حيث يؤدي الأمان إلى

رصد استخدام الكثافة باستخدام و].

استراتيجية الانتداب ذات الأولوية

تحديد الأولويات استنادا إلى الموعد النهائي لكل مهمة ودرجة حرجيتها، وهو مخطط نموذجي:

  • Highest priority:] Time —critical control cycles (e.g., motor PID, audio processing).
  • Medium priority:] Periodic data acquisition with moderate latency requirements.
  • Low priority:] Background tasks, user interface updates, logging.

تجنب القيام بمهام متعددة ذات أولوية واحدة إذا احتاجت جميعها إلى مواعيد نهائية ثابتة، لأن الوقت يمكن أن يؤدي إلى عدم الإنصاف، واستخدام العقبة للسماح بأداء مهام ذات أولوية أقل عند انتظار المهام ذات الأولوية العليا.

تحقيق الاستخدام الأمثل للقوة:

وتُستخدم أجهزة متنقلة كثيرة، وتُدعم هذه الأجهزة طريقة عبثية لا تُدغدغ، وتتوقف عن انقطاع الدقات الدورية عندما يكون النظام متعثراً، وتُحجب جميع المهام لفترة معروفة، ويمكن لوحدة التصنيع العسكري أن تدخل حالة نوم عميقة، ويُشكل ذلك بتحديد [(FLT:45] إلى حالة واحدة، وبتوفير الطلبات .

دال - الديون والتفصيل

وتشمل هذه الدراسة سمة إحصائية غير متفرغة (يمكن الحصول عليها من و]) توفر نسباً لتنفيذ المهام، مما يساعد على تحديد هوايات وأعشاب اليورانيوم المكلَّف بالأشعة المكلورة بالأشعة دون الحمراء، وبالإضافة إلى ذلك، فإن و] يؤديانجازات قابلة للقراءة البشرية إلى عائق خاص.

For deeper analysis, integrate FreeRTOS+Trace (now part of AWS IoT Device Tester). This tool records kernel events (context shiftes, queue operations, ISR entries) and displays them in a timeline, invaluable for diagnosing timing issues and priority inversions.

الترشيحات المتقدمة

الإخطارات المتعلقة بالمهام

وتوفر الإخطارات المتعلقة بالعمل بديلاً للثديين والثغرات عن الاشارات البسيطة، ولكل مهمة قيمة إبلاغ مبنية من 32 إلى 40 وحساب معلق للإخطار، ويمكن إرسال إخطار (عن طريق ] أو ) فتح مهمة الاستلام بقطع رأس من جسم منفصل من الكينول، وهذا أسرع ويستخدم أقل من أنماط الاتصال من المسيل.

"البافيرز" و "الرسائد"

وتسمح العوازل التي تُقدم في نظام فريتروس V10.0.0، بنقل البيانات المتغيرة بين المهام أو بين معهد بحوث الهجرة والتصحاح ومهمة بدون طابور ثابت، كما أن الحاجز في الرسالة هو عائق يحفظ أيضا حدود الرسائل، وهذه مفيدة للحالات التي لا يعرف فيها حجم البيانات مسبقا، مثل أكوام الربط الشبكي أو أجهزة الصالات القيادية.

Co —Routines (Legacy)

وتشمل هذه المبادرة أيضاً مسارات مشتركة، وهي مهام لا تُعدّ متأصلة تتقاسم كومة واحدة، ونادراً ما تُستخدم في التطبيقات الحديثة لأنها تُعقّد عمليات التشويه وتفتقر إلى الملامح الكاملة للمهام، ويوصى باستخدام مهام قياسية ما لم تكن شديدة التدريب على إدارة السجلات والمحفوظات (مثلاً، وحدة التنسيق الإداري 8 - من طراز MCU).

خاتمة

وتوفر هذه المبادرة قاعدة قوية وموثقة جيدا لبناء تطبيقات فعالة ومضمونة، كما أن دعمها لبذور التعددية الوقائية، وتركيب النسيج الغني، وخصائص متقدمة مثل العبث الدغدغ، وإخطارات المهام، تجعل من المناسب لكل شيء من أجهزة الاستشعار البسيطة إلى بوابات معقدة، وبفهم بارامترات تشكيلة النسيج، باتباع أفضل الممارسات لإدارة الذاكرة، والتكليف ذي الأولوية.

For further learning, consult the FreeRTOS Reference Manual] and explore the demo applications included in the source tree. many silicon supplierss, such as ]STMicroelectronics and NXP, provide microconter