وحدة تحكم عالمية لإنترنت الأشياء. اختبار FatFs



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


تم تقديم وحدة K66BLEZ1 في هذه المقالة:
وحدة تحكم عالمية لإنترنت الأشياء. Breathing Life

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

تنظيم إخراج معلومات التصحيح.



لكي يعمل المثال الأصلي من SDK على لوحة K66BLEZ1 ، لا تحتاج إلى إجراء أي تغييرات عليه. ولكن هناك شيء واحد ، ولكن! لن يكون هناك إخراج إلى محطة التصحيح. نظرًا لأن لوحة الوحدة النمطية لا تحتوي على موصل خاص لإخراج التصحيح مع واجهة RS232.
تم تصميم تصحيح الوحدة النمطية للعمل الشاق من خلال واجهة SWD واستخدام تقنية Real Time Terminal (RTT) الموضحة في هذه المقالة. ومع ذلك ، قد لا يستهوي هذا الأسلوب لمالكي محولات تصحيح الأخطاء غير المتوافقة مع J-Link. لذلك ، لم أصحح رمز إخراج التصحيح في التطبيق ، ولكن أعدت توجيهه إلى UART4. هنا مرة أخرى ، لتجنب النماذج الأولية ، استفدت من J-Link. يتم إخراج إشارات RX و TX من محول منفذ COM الظاهري UART <-> الظاهري إلى هذا المحول على موصل SWD. استخدمتها. وهكذا ، ظهر الضبط الأول على لوحة الوحدة. يظهر في الرسم البياني أدناه باللون الأحمر.

(انقر للتكبير)


أي على لوحة K66BLEZ1 ، قم بلحام توصيل الإشارات الحمراء لموصل التصحيح بالإشارات الضرورية القادمة من وحدة التحكم الدقيقة.

(اضغط للتكبير)


فيما يلي رسم تخطيطي للمحول من موصل J-Link إلى موصل التصحيح للوحة K66BLEZ1 لفهم مصدر الإشارات من المحول.

(اضغط للتكبير)


تنظيم المشاريع.


لقد قمت بمشروعين في IAR Embedded Workbench لبيئة ARM 7.40.7 ،
أحدهما يكرر تمامًا مثال العمل مع FatFs من SDK من الشركة المصنعة.
من أجل نسخ أكثر ملاءمة للمشروع ، ودراسته وإعادة بنائه ، قمت باستخراج جميع الملفات المرتبطة بهذا المشروع من SDK ونقلها إلى بنية دليل أبسط أخرى مع عدد أقل من الملفات.

ثم قمت بتغيير إعدادات التصحيح UART في ملف board.h .
لأقصى قدر من رسوم الأداء في ملف sdcard_FatFs.c استبدال الدالة BOARD_BootClockRUN على BOARD_BootClockHSRUN ، أي اضبط تردد المعالج على 180 ميجاهرتز بدلاً من ذلك120 ميجا هرتز
يقع المشروع هنا ، ويستند

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

وصف الاختبار


نقوم بتجميع المشروع في IAR والبرنامج من خلال محول JTAG / SWD إلى وحدة التحكم الدقيقة MK66FN2M0VLQ18 على اللوحة.
بعد بدء البرنامج ، يتم عرض قائمة من النوع التالي في الوحدة الطرفية:

(انقر للتكبير) تعرض


القائمة تشغيل أحد الاختبارات الثلاثة والقدرة على تغيير العديد من معلمات الاختبار. يكتب

رقم الاختبار 1 بالتتابع عدد الملفات المحدد بالحجم المحدد. يتم تسجيل البيانات العشوائية التي تم الحصول عليها بواسطة وظيفة الراند. ويصاحب كل سجل قياس أوقات فتح الملف وتسجيله وإغلاقه.
ثم تتم قراءة الملفات بالتتابع ويتم فحص محتوياتها ، ويتم أيضًا قياس وقت فتح الملف وقراءته وإغلاقه.
إذا تم تعيين علامة Erase ، فسيتم بعد ذلك حذف الملفات ويتم قياس وقت حذف الملفات.
لثلاث مجموعات من العمليات: إنشاء الملف ، والقراءة العكسية والحذف ، يتم تلخيص الإحصاءات.
هكذا تبدو نافذة اختبار الكتابة والقراءة وحذف 5 ملفات بحجم 8192 باهت.

(انقر للتكبير)


يمكن تغيير عدد الملفات وحجمها بشكل تعسفي. إذا كانت القيم كبيرة جدًا ، فسيعرض البرنامج رسالة حول عدم كفاية الذاكرة. ينشئ

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

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

النتائج


على لوحة K66BLEZ1 ، أظهرت مكتبة FatFs نتائج جيدة للغاية.

للاختبار ، استخدمنا بطاقة microSD بسعة 8 جيجا بايت GOOD RAM SDU8GDMGR (الصف العاشر).

يبلغ متوسط ​​سرعة الكتابة
للملف 32768 بايت 5.1 ميجا بايت / ثانية. وتبلغ سرعة الكتابة القصوى للملف 32768 بايت 11.8 ميجا بايت / ثانية.

ويبلغ متوسط ​​سرعة القراءة 32768 بايت 15.9 ميجا بايت / s تبلغ
سرعة القراءة القصوى للملف 32768 بايت 16.2 ميجابايت / ثانية.

تم إجراء القياسات بواسطة الاختبار رقم 1 على 100 ملف.

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

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

يتم تخزين جميع المواد المتعلقة بهذا المشروع هنا - https://github.com/Indemsys/K66BLEZ1

Source: https://habr.com/ru/post/ar392955/


All Articles