NuttX

البرمجيات قطة:
NuttX
تفاصيل البرنامج:
الإصدار: 7.9 محدث
تاريخ إيداع: 10 May 15
المطور: Gregory Nutt
ترخيص: حرر
شعبية: 53

Rating: 4.0/5 (Total Votes: 1)

NuttX هو مفتوح المصدر، حتمية وحرة في الوقت الحقيقي جزءا لا يتجزأ من نظام التشغيل (RTOS)، وقد تم تصميمها من تعويض لتكون صالحة للاستعمال في متأصلة، وبيئات موارد مقيدة. له بصمة صغيرة التي يمكن استخدامها في بيئات الدقيقة تحكم، و&؛ [س] قابلة تماما من الصغير (8 بت) لالمعتدل جزءا لا يتجزأ من النظم (32 بت).
كما تهدف إلى أن تكون متوافقة تماما مع المعايير، ليكون في الوقت الحقيقي كاملا، وإلى أن تكون مفتوحة تماما. NuttX لديها مجموعة غنية الميزة OS، تصميم وحدات، فمن تدرجية عالية وشكلي، وكذلك المعايير المتوافقة. يتم توزيعه مع رخصة BSD غير المقيدة. وغالبا ما يطلق عليها اسم من قبل المطورين بأنها "صغيرة لينكس". الميزات في ملامح glanceKey تشمل إدارة الأساسية المهمة، BSD اجهة مأخذ، موزعي الذاكرة (الذاكرة المشتركة، ومعيار تخصيص ذاكرة الكومة، بناء محمية مع MPU، بناء جزءا لا يتجزأ من شقة، ولكل عملية أكوام، مخصص الحبيبية والحجم حيوي)، تكوينات الذاكرة، دليل ترقية، preemptible تماما، عملية tickless، الترحيل ونظام التسجيل على الطلب.
وبالإضافة إلى ذلك، فإن المشروع يأتي مع ملحقات لإدارة الشفعة، لكل موضوع، الذي بني في القياسات الحمل وحدة المعالجة المركزية، وثائق شاملة، والمهام الاختيارية التي تحتوي على بيئات عنوان، وضوابط مهمة ANSI مثل POSIX ومثل، والساعات، بثريدس والبيئة المتغيرات، وإشارات، طوابير رسالة اسمه، توقيت، نظام الملفات والإشارات الفرز.
من بين المزايا الأخرى، يمكن أن نذكر جدولة ذهاب وإياب، FIFO، ودعم الميراث الأولوية، ودعم البنية شركة نفط الجنوب، ودعم البنى المجلس، ودعم المعالجات المعمارية الجديدة، توقيت الوكالة الدولية للطاقة، VxWorks مثل إدارة المهام، I / O إعادة توجيه و تنتقل ودقوو]؛ السيطرة على محطات وردقوو]؛ وأيد platformsNuttX يدعم مجموعة واسعة من منصات الأجهزة، من بينها يمكن أن نذكر العديد من معالجات ARM، بما في ذلك ARM اللحاء M3، ARM926EJS، ARM7TDMI، ARM اللحاء-M4، ARM اللحاء M0، ARM920T وARM القشرة-A5، وكذلك اتميل 8 بت AVR، فريسكالي M68HCS12، منصات AVR32 اتميل AVR.
بالإضافة إلى ذلك، كما أنها تدعم مختلف منصات إنتل، مثل رقاقة PIC32MX (MIPS)، 80c52 و 80 و مرات؛ 86، ومنصات زيلوج، بما في ذلك زيلوج Z80، زيلوج Z16F، زيلوج Z8Encore! وزيلوج eZ80 هتاف !، ورينيساس / هيتاشي SuperH ورينيساس M16C / 26 منصات

ما هو الجديد في هذا الإصدار:.

الميزات: الميزات الجديدة إضافية وظائف الموسعة:
OS الأساسية:
الوكالة الدولية للطاقة الموقت توزيع: (1) وإذا كنا نفد من المرات الوكالة الدولية للطاقة المخصصة مسبقا، فإن المنطق الآن تخصيص توقيت إضافية من الكومة. يتم الاحتفاظ باحتياطي قدره توقيت الوكالة الدولية للطاقة المخصصة مسبقا بحيث سيكون هناك دائما توقيت المتاحة للمعالجات المقاطعة. (2) واضاف لدعم الموقت الوكالة الدولية للطاقة المخصصة بشكل ثابت
معالجة دعم البيئة: (2) متكاملة OS واجهات برمجة التطبيقات الجديدة في كل سياق التحول المنطق منصة محددة (up_block_task ()، up_unblock_task ()، _exit ()، وغيرها).
نواة بناء الدعم: (1) ومقرها MPU ومثل؛ نواة بناء ومثل؛ إعادة تسمية لبناء المحمية (CONFIG_BUILD_PROTECTED)؛ واضاف لدعم جديدة تستند MMU-ومثل؛ بناء نواة ومثل؛ (CONFIG_BUILD_KERNEL)، (2) ويمكن الآن بناء مكتبة استدعاء نظام مع CONFIG_NUTTX_KERNEL. الاختيار الجديد *: CONFIG_LIB_SYSCALL.
بدء تشغيل النظام: إضافة خيارات التكوين لبدء تشغيل النظام من برنامج على نظام الملفات (مقابل عنوان في الذاكرة).
بدء التشغيل المعلمة تمرير: هناك تستخدم ليكون طريقتان لتمرير المعلمات إلى مهام جديدة، وهذا يتوقف على التكوين: إما (1) ARGV [] كما خلق كصفيف مع كل سلسلة strdup'ed. أو (2) ARGV [] تم إنشاؤها مجموعة والسلاسل في بنية تخزين العناصر قبل بدء مهمة جديدة. الآن، هناك طريقة واحدة فقط، وسيلة (2). الطريقة (1) قد يكون قليلا أكثر إحكاما، ولكن هذا لا يستحق حمل تعقيد طريقتين مختلفتين لفعل الشيء نفسه.
تهيئة مجلس الإدارة: اضافة القدرة على أداء التهيئة مجلس الأولية على ترابط عامل مستقل. هناك حاجة إلى هذا لأن هناك العديد من الحالات التي يكون فيها منطق التهيئة لا يمكن تنفيذ على بدء / موضوع الخمول. هذا هو لعرقلة أو لا يجوز الانتظار على موضوع الخمول.
إدارة الذاكرة:
حبيبة مخصص: (1) إضافة وظيفة جديدة لحجز مناطق الامم المتحدة allocatable في كومة الحبيبية. (2) إضافة واجهات لدعم مخصص الحبيبية-تهيئة الامم المتحدة.
الصفحة مخصص: إضافة مخصص بسيط الصفحة المادية على أساس الحبيبية مخصص NuttX القائمة. أنا لست متأكدا إذا كان مخصص الحبيبية هو حتمية بما فيه الكفاية للاستخدام طويل المدى، لكنه يحصل الحصول على مخصص صفحة في مكان لاختبار بسرعة كبيرة.
إزالة CONFIG_MM_MULTIHEAP: لم يعد معتمدا عملية غير multiheap.
sbrk (): sbrk () ويدعم الآن في بناء نواة للسماح الحجم حيوي، لكل عملية أكوام.
لكل عملية أكوام: الفضاء في بداية مساحة بيانات عملية محجوز الآن لهياكل الإدارة كومة المستخدم. في وضع بناء النواة، ويجري تقاسم هذه الهياكل كومة بين النواة واستخدام التعليمات البرمجية من أجل تخصيص البيانات الخاصة بالمستخدم.
إدارة كومة المستخدم: عند مخارج موضوع المتميزة، لدينا لاستخدام مخصص نواة لتحرير الذاكرة. عندما مخارج موضوع المحرومين، ليس لدينا لفعل أي شيء ... سيتم تنظيف ذاكرة الكومة حتى عند تمزقها البيئة عنوان أسفل.
بين عملية الذاكرة المشتركة الدعم: (1) إضافة تنفيذ وثائق shmget ()، shmctl ()، shmat ()، وshmdt (). (2) إضافة نظام نظام يدعو إلى دعم البوابة دعوة المستخدم إلى واجهات الذاكرة المشتركة. (3) إضافة تعريفات واجهة منصة المحددة اللازمة لدعم ميزة الذاكرة المشتركة.
الصفحة الظاهري مخصص: إضافة دعم لالظاهري مخصص صفحة لكل عملية. هذا هو عضوا جديدا في هيكل task_group_s. يجب تهيئة مخصص عند بدء عملية مستخدم جديدة وإلغاء تهيئة عندما يتم تدمير مجموعة العملية في نهاية المطاف. يتم استخدامه من قبل shmat () وshmdt () لاختيار العنوان الظاهرية على الذي لتعيين الذاكرة الفعلية المشتركة.
أنظمة الملفات / سائقين كتلة / مليون دينار:
FS سمارت: FS الذكية والتحديثات سمارت FS procfs من كين بيتيت.
MTD: تظهر طبقة مليون دينار للقراءة قبل / الكتابة عازلة هو الآن وظيفي.
تنسيقات ثنائية:
لكل عملية كومة: إضافة منطق لتهيئة كومة المستخدم لكل عملية عند بدء كل عملية المستخدم.
الرسومات:
NxTerm: تغيير كافة تواجدات NxConsole إلى NxTerm.
الشبكات:
فيز المقاطعات: (1) توحيد واجهة مرفق PHY المقاطعة. (2) إضافة دعم لIOCTL التي يمكن استخدامها لإعلام تطبيق عندما يكون هناك تغيير في وضع شبكة أشارت من قبل المقاطعة PHY.
تحسن إرسال المنطق: في الماضي، الحزمة الأولى إرسالها إلى أحد الزملاء الشبكة الجديدة ستفشل. لن يكون هناك أي إدخال في جدول ARP النظير وهكذا طلب ARP يمكن أن تحل محل تلك الحزمة الأولى. الآن كخيار إذا CONFIG_NET_ARP_SEND = ذ، عن إرسال والمنطق (1) معرفة ما اذا كان النظير عنوان MAC في الجدول ARP، وإذا لم يكن كذلك، (2) إرسال طلبات ARP بشكل دوري للحصول على رسم الخرائط و(3) الانتظار ل استجابة ARP. ثم (4) عند تلقي استجابة ARP ثم سيبدأ منطق الإرسال الفعلي. وبالتالي قد يكون هناك تأخير مع الحزمة الأولى إرسالها إلى أحد الزملاء الجدد، ولكن لا ينبغي أن تضيع الحزمة
استضافة محاكاة:
SPI FLASH سائق: يحتذى سائق SPI FLASH لهدف سيم من كين بيتيت.
إنتل إلى x86:
المضيف الافتراضي: المضيف الافتراضي هو الآن x86_64 وسيتم تحديد الخيار -m32 تلقائيا لمحاكاة يبني.
إنتل 8051 عائلة:
8051 إزالة: إزالة جميع أشكال الدعم للبنية الأسرة 8051 من شجرة مصدر NuttX. ويمكن الآن رمز ملغى جنبا إلى جنب مع إزالة التصحيح يمكن العثور عليها في متفرقات / ملغى /. تمت إزالة هذا الرمز ل(1) وإن كان قد أظهر بعض الوظائف، أنا لست على علم بأي الموانئ ناجحة حقا من NuttX بأي 8051، و (2) 8051، مع كومة الجهاز الخاص به، يفرض القيود والتعقيدات على أبنية أخرى وجعل نمو وتطور NuttX أكثر تعقيدا.
ZILOG ZNeo المجالس:
تمت إزالة الدعم لهذا المجلس من شجرة مصدر NuttX (ولكن لا يزال يمكن العثور عليها في متفرقات / الدليل ملغى): التكوينات / 16z. هذا المنفذ غير جاهز للاستخدام ولكن قد ترجع إلى شجرة NuttX في مرحلة ما في المستقبل.
اتميل SAM3 / 4 المجالس:
SAM4E-EK: إضافة (1) القائم على ILI9341 تماما وظيفية سائق LCD و (2) تكوين NxWM تماما وظيفية.
ARMv7-A:
البيئات عنوان: إضافة دعم لبيئات عنوان التطبيق باستخدام اللحاء-A MMU. تنفيذ واجهات منصة موحدة محددة من NuttX دعم بيئة العنوان.
عمليات التخزين المؤقت: تنفيذ موحدة، وعمليات التخزين المؤقت الخاصة بالنظام الأساسي. وتسمى هذه من محمل ELF من أجل طرد D-ذاكرة التخزين المؤقت وإبطال I-مخبأ بعد أن تم تحميل وحدة ELF في الذاكرة. مع هذا التغيير، وحدات ELF تعمل بشكل صحيح على SAMA5 / اللحاء-A المنصة.
نواة بناء: (1) إضافة تطبيقات بوابة استدعاء النظام. (2) إضافة CRT0 بدء الملفات التي يمكن ربطها مع برامج المستخدم بنيت على حدة. (3) إضافة دعم للتسليم من استخدام اشارات وضع في بناء النواة. (4) إضافة الى المنطق لتهيئة كومة المستخدم لكل عملية عند بدء كل عملية المستخدم. (5) ARMv7-A يحتاج التعامل مع استثناء للعمل بشكل مختلف قليلا إذا كنا دعم عمليات وضع المستخدم. هذا هو لأنه يتم ترحيلها R13 R14 ومختلف بين المستخدم ووضع SVC.
المشتركة دعم الذاكرة: (1) إضافة منطق اللازمة للتعامل مع الخارطه الذاكرة المشتركة على مفاتيح السياق. (2) توسيع افتراضية التحويلات عنوان / المادية لتشمل عناوين في الذاكرة المشتركة. (3) إضافة تنفيذ دعم الذاكرة المشتركة الخاصة بالنظام الأساسي.
اتميل SAMA5D السائقين:
شبكة IOCTLS: تنفيذ جميع IOCTLS الشبكة، بما في ذلك IOCTL جديد لإشعارات الأحداث الإعداد PHY.
تحويلات عنوان: في نواة بناء مع البيئة العنوان، تحتاج إلى المنطق الخريطة عناوين افتراضية للمستخدم العناوين الفعلية، والعكس بالعكس.
اتميل SAMA5D المجالس:
SAMA5D3 Xplained، SAMA5D3-EK، وSAMA5D4-EK: تحويل مجلس محددة واجهات PHY المقاطعة القائمة على استخدام المعرفة حديثا واجهة قياسية.
SAMA5D4-EK: إضافة تكوين لاختبار تكوين بناء النواة. هناك تكوينات التمهيد إما من بطاقة SD أو من وفي الذاكرة نظام الملفات ROMFS.
SAMA5D4-EK: إضافة وثائق / دعم القس E. متنها.
STMicro STM32 السائقين:
إيثرنت: التعديل لدعم التغيير إلى شبكة التغييرات توقيع IOCTL. أيضا إضافة دعم IOCTL جديد لإشعارات الأحداث الإعداد PHY.
STMicro STM32 المجالس:
STM32F4Discovery مع STM32F4DIS-BB: إضافة تمكين تكوين الشبكة NSH لمجلس STM32F4Discovery مع قاعدة مجلس STM32F4DIS-BB المثبتة. يشمل تقديم الدعم لفتحة بطاقة microSD على متن قاعدة STM32F4DIS-BB.
TI TIVA السائقين:
TI CC3200: إضافة دعم لCC3200 TI. من جيم يوينغ.
TI TIVA المجالس:
TI CC3200 انطلاق: إضافة دعم لTI CC3200 انطلاق. من جيم يوينغ.
C المكتبة:
استطلاع (): إعادة تنفيذ الاستطلاع () تأخير باستخدام sem_timedwait ().
التكوين / بناء النظام:
التصدير المستهدفة: في نواة أو محمية يبني، (1) فقط المكتبات المستخدم يجب أن تصدر، (2) لا تنسخ الملفات رأس الداخلية أو بناء البرامج النصية إذا كان هذا هو نواة أو بناء المحمية، و (3) يحتاج إلى حزمة حتى ملف بدء التشغيل المستخدم C (crt0)، وليس الكائن رئيس نواة لنواة وحمايتها يبني.
برنامج CFLAGS: إضافة المنطق الذي سوف تسمح لنا ببناء المكتبات المستخدم مع CFLAGS مختلفة من كود النواة. هناك حاجة إلى ذلك لأننا بحاجة إلى خيار -fno شيوعا عند بناء كود ELF لمنع الترحيل SHN_COMMON.
التطبيقات:
NSH: توسيع منطق التهيئة شبكة NSH. الآن هناك خيار التي سيتم إنشاء شبكة ترابط المراقبة التي من شأنها رصد حالة الارتباط. عندما يذهب على الرابط أسفل، فإن قانون محاولة لوضع بأمان سائق إيثرنت في حالة أسفل؛ عندما يحين صلة الى الوراء، ورمز محاولة لجعل شبكة احتياطية.
ELF مثال: تم تمديد اختبار ELF / مثال ذلك الفردية برامج اختبار ELF يمكن ربط ضد مكتبة SYSCALL (إذا كان متوفرا) أو ضد مكتبة C للقضاء أو التقليل من الحاجة للجداول الرمز.
NxTerm: تغيير كافة تواجدات NxConsole إلى NxTerm.
MTDRWB مثال: إضافة مثالا لاختبار مليون دينار R / W التخزين المؤقت.
OS اختبار مثال: إضافة اختبار تافهة من sem_timedwait ().
تكوين التطبيق / بناء النظام:
استيراد المستهدفة: (1) إضافة المنطق الذي سيتيح بناء التطبيقات مقابل صفقة تصدير NuttX (مقابل الشجرة nuttx / المصدر). (2) إضافة ملف .config لتصدير الحزمة. (3) إنشاء تطبيقات / الاستيراد. إنشاء تطبيقات / استيراد / Make.defs أن يفعل أشياء مثل تحديد CFLAGS. بناء ELF يتطلب -fno شائع في CFLAGS. نسخ بعض المنطق قاعدة من nuttx / أدوات / Config.mk إلى تطبيقات / استيراد / Make.defs. (4) إضافة تطبيقات / استيراد / مخطوطات /-جنو elf.ld النصي رابط دول مجلس التعاون الخليجي ليبني ELF الاستيراد.
جميع Makefiles: (1) إضافة الهدف تثبيت لجميع makefiles. لبناء الاستيراد، ماكيفيلي المستوى الأعلى الآن لا مرورين: (1) يبني libapp.a، ثم (2) بتثبيت البرامج إلى تطبيقات / بن. (2) إضافة تثبيت البرنامج لCONFIG_BUILD_KERNEL في جميع Makefiles أن بناء الرئيسية (). (3) لبناء النواة، ملف الكائن الذي يحتوي الرئيسية () لا يمكن أن تذهب إلى المكتبة بسبب اصطدام الاسم. يجب التعامل مع ملف الكائن باعتباره حالة خاصة في كل ماكيفيلي.
جميع المدمج في البرامج: مع بناء نواة (CONFIG_BUILD_KERNEL)، نقطة الدخول لجميع المهام هي الرئيسية ()، وليس بعض xyz_main ().
NSH: يجب تعطيل العديد من الأوامر في بناء نواة لأنها تعتمد على واجهات التي لا تتوفر خارج النواة: DD، مدافع، losetup، mkfatfs، mkdr، وتبسيط العمليات.
تطبيقات / أدوات /: (1) إضافة mkimport.sh تنفجر حزمة استيراد NuttX وتثبيت في تطبيقات / الاستيراد. (2) إضافة النصي mkromfsimg.sh لخلق صورة BOOT ROMFS الملفات.
ELF وNxFLAT أمثلة: لا يبني حالات الاختبار التي تستخدم task_create () إذا كان هناك بيئة العنوان.
الأدوات:
refresh.sh: إضافة أداة لجعل منعش تكوينات أسهل عندما تريد أن تفعل الكثير منهم.
mksyscall.c: بناء syscalls التي لا تحتاج إلى رأس الملفات.
mkexport.sh: إضافة ملف .config لتصدير الحزمة.
تطبيقات / أدوات: انظر أعلاه للتطبيقات الجديدة / أدوات البرامج النصية.
جهود في التقدم. فيما يلي الميزات التي يتم تنفيذها جزئيا ولكن موجودة في هذا الإصدار. وليس من المرجح أن يكتمل قريبا.
العمليات: هناك الكثير من العمل في هذا الإصدار تركز على تحقيق عمليات المستخدم على غرار يونكس في NuttX. هناك الكثير مما ينبغي عمله، ولكن. خارطة الطريق كاملة ووضع متوفرة على: http://www.nuttx.org/doku.php؟id=wiki:nxinternal:memconfigs#the_roadmap_toward_processes
XMega: هناك بعض الشظايا في المكان لمنفذ XMega. هذا المنفذ لم يبدأ في الواقع، ولكن.
غاليليو: وبالمثل، هناك شظايا في مكان لميناء إنتل غاليليو. لم يتم تشغيل الميناء بشكل جدي سواء.
بوجفيكسيس. فقط يتم سرد بوجفيكسيس الأكثر أهمية هنا (راجع سجل التغيير للحصول على قائمة كاملة من بوجفيكسيس وإضافية ومعلومات تصحيح خطأ أكثر تفصيلا):
OS الأساسية:
نواة بناء الحلول: (1) يحتاج الراكد الإعداد ادارة التعاون الفني للإشارة إلى أن موضوع الراكد هو متميز، موضوع النواة. (2) لا بناء task_create () أو task_spawn () واجهات إذا كان هناك بيئة العنوان. وينبغي أن يكون (3) posix_spawn () نواة موضوع الوكيل موضوع النواة، ليست مهمة المستخدم.
واجهات عدة pthread: إضافة فئة تخزين CONST إلى phthread المعلمات. من فريدي شوبان.
SCHED / ساعة: إزالة آثار g_tickbias. تحتاج بدلا من ذلك إلى تطبيق التحيز وقت لg_basetime من أجل توفير وقت النظام الصحيح.
استدعاءات النظام: (1) ثابتة العديد من الأخطاء المطبعية. التكامل تصحيح من exevc ()، والمكالمات execvl ()، posix_spawn ()، وposix_spawnp () النظام. (2) وإذا كنا تم تكوينها لاستخدام كومة النواة بينما في التعامل مع SYSCALL، ثم نحن بحاجة للرجوع إلى كومة المستخدم لتوصيل إشارة.
أنظمة الملفات / سائقين كتلة / مليون دينار:
procfs: إصلاح بعض الكسر procf أدخلت عن طريق إعادة تنظيم بعض هياكل البيانات غير reorganizable. من كين بيتيت.
AT45: في at45db_bwrite ()، لا يتم زيادة المخزن المؤقت عند كتابة أكثر من 1 الصفحة. سورس علة # 34.
تنسيقات ثنائية:
الترحيل ELF: بعض أنواع النقل لم يكن لديك رمز المسمى المرتبطة بها. لم تصميم لا تمثل هذه الحالة.
لم تبرئته خلل حرج .. BSS: ELF لودر.
إدارة الذاكرة:
حبيبة مخصص: الحبيبية مخصص التهيئة تستخدم مخصص من الخطأ تخصيص الذاكرة النواة.
مجموعات مميزة: إضافة العلم إلى هيكل المجموعة: إذا تم إنشاء مجموعة بخيط رفيع النواة، ثم يجب أن تكون جميع الموارد في المجموعة متميز.
دعم Cryptogrphic:
التشفير / cryptodev.c: مقاطع المسار عكس في ما يلي مسار الملف. لاحظ برينان أشتون.
برامج مشتركة:
CAN مشترك النصف العلوي: في can_txdone، النوادل على إشارة يجب أن تكون على علم بغض النظر عن قيمة الإرجاع can_xmit. لأول مرة يعود -EIO إذا لم تكن هناك حزم جديدة، وثانيا المعلومات النوادل حوالي الحزمة نقلها الماضية. من دانيال ازلو Sitzer.
ARM:
نظام تطلب: إصلاح الخطأ المطبعي في استدعاء النظام عندما جلب المعلمة من المكدس: البندان [REG_PC] +4 هو العنوان، لا البندان [REG_PC + 4].
STMicro STM32 السائقين:
STM32 F401 UART: دعم الصحيح لUSART6 على هذه الشريحة. من فريدي شوبان.
STM32 FLASH إصلاح: استخدام size_t بدلا من uint16_t، وجعل واجهة أكثر عمومية. من فريدي شوبان.
STM32 UART: إصلاح لUART7 وUART8 على مدار الساعة STM32 تمكين من آتون.
CAN: في نهاية معالج المقاطعة، والمقاطعات يجري تعطيل، إذا تم نقل كافة الحزم عندما تم استدعاء معالج المقاطعة. وهذه مشكلة كبيرة، لأن معالج المقاطعة يدعو can_txdone () في النصف العلوي الذي يمكن إدراج بقائمة الانتظار حزم جديدة لإرسال. إزالة كتلة تماما، لأن can_txdone () يدعو can_xmit () مما يؤدي إلى تعطيل المقاطعات إذا لم تكن هناك حزم جديدة لإرسال. من دانيال ازلو Sitzer.
CAN: إضافية تصحيح CAN STM32 اقترحه ماكس هولتزبرج.
STMicro ST32 المجالس:
التكوينات / mikroe-stm32f4: إصلاح عدد قليل تجميع الحشرات والتصحيحات الطفيفة على مصدر التكوين mikroe-stm32f4. من كين بيتيت.
ARM9 / ARMv7-A:
استدعاءات النظام: إصلاح ARM7 / 9 واللحاء-A SYSCALLs: للحصول على المواضيع في وضع SVC، وتعليمات SVC clobbers R14. هذا يجب أن تؤخذ في الحسبان في التجميع مضمنة.
إعداد مهمة: جميع المهام، حتى المستخدم المهام واسطة، ويجب أن يبدأ في وضع المشرف حتى يحصلوا على الماضي الترامبولين البدء.
ARMv7-A: تعديل up_fullcontextrestore () لCONFIG_BUILD_KERNEL. غيرت CPSR بينما في النواة. وأن يتلف إذا كان CPSR الجديد هو وضع المستخدم أثناء تنفيذ في الفضاء النواة. ثابت بإضافة استدعاء نظام SYS_context_restore. هناك بديل، تعديل أبسط up_fullcontextrestore () قد تم القيام به: قد يكون من الممكن استخدام SPSR بدلا من CPRSR ومن ثم القيام عودة استثناء من up_fullcontextrestore (). من شأنه أن يكون أكثر كفاءة، لكنني حاولت ذلك أبدا.
اتميل SAM3 / 4 المجالس:
SAM3X / اردوينو بسبب: إصلاح الخطأ المطبعي في sam3x_periphclks.h. إضافة تعريفات SCLK إلى board.h ملف الرأس. من فابيان كونت.
SAM3 RTT: عائلة فقط SAM4 ديها RTTDIS قليلا في السجل MR. سورس علة # 33 من فابيان كونت.
C المكتبة:
sscanf (): حاول NuttX LIBC لتخمين عدد الحروف تحليل، انتزعت منهم إلى منطقة عازلة، ثم ركض strtol () على هذا المخزن. كان هذا تخمين خاطئ في كثير من الأحيان. والنهج الأفضل هو استدعاء strtol () مباشرة على إدخال البيانات، وذلك باستخدام قيمة الإرجاع endptr لتحديد عدد الحروف لتخطي بعد تحليل. من Kosma Moczek.
مكتبة الرياضيات: تصحيح تطبيقات atan2 من دينيس Arnst.
العائمة نقطة الإخراج: التغيير إلى lib_dtoa () لإصلاح الخطأ الدقة من أصفار زائدة. من بوب دويرون.
التطبيقات:
إصلاح الأمر NSH PS: إذا كان هناك أي حجج، فإنه يمكن طباعة القمامة لائحة حجة.
التكوين / بناء النظام:
باطل مثال: الحاجة إلى إدراج config.h من أجل ذلك معرفة ما إذا كان هذا هو أو ليس بناء النواة. لا يزال موجودا هذه المشكلة في العديد من الملفات الأخرى التي قد تحتاج إلى تعريف الرئيسية ().

ما هو الجديد في الإصدار 7.8:

الميزات: الميزات الجديدة إضافية وظائف الموسعة:
OS الأساسية:
الوكالة الدولية للطاقة الموقت توزيع: (1) وإذا كنا نفد من المرات الوكالة الدولية للطاقة المخصصة مسبقا، فإن المنطق الآن تخصيص توقيت إضافية من الكومة. يتم الاحتفاظ باحتياطي قدره توقيت الوكالة الدولية للطاقة المخصصة مسبقا بحيث سيكون هناك دائما توقيت المتاحة للمعالجات المقاطعة. (2) واضاف لدعم الموقت الوكالة الدولية للطاقة المخصصة بشكل ثابت
معالجة دعم البيئة: (2) متكاملة OS واجهات برمجة التطبيقات الجديدة في كل سياق التحول المنطق منصة محددة (up_block_task ()، up_unblock_task ()، _exit ()، وغيرها).
نواة بناء الدعم: (1) ومقرها MPU ومثل؛ نواة بناء ومثل؛ إعادة تسمية لبناء المحمية (CONFIG_BUILD_PROTECTED)؛ واضاف لدعم جديدة تستند MMU-ومثل؛ بناء نواة ومثل؛ (CONFIG_BUILD_KERNEL)، (2) ويمكن الآن بناء مكتبة استدعاء نظام مع CONFIG_NUTTX_KERNEL. الاختيار الجديد *: CONFIG_LIB_SYSCALL.
بدء تشغيل النظام: إضافة خيارات التكوين لبدء تشغيل النظام من برنامج على نظام الملفات (مقابل عنوان في الذاكرة).
بدء التشغيل المعلمة تمرير: هناك تستخدم ليكون طريقتان لتمرير المعلمات إلى مهام جديدة، وهذا يتوقف على التكوين: إما (1) ARGV [] كما خلق كصفيف مع كل سلسلة strdup'ed. أو (2) ARGV [] تم إنشاؤها مجموعة والسلاسل في بنية تخزين العناصر قبل بدء مهمة جديدة. الآن، هناك طريقة واحدة فقط، وسيلة (2). الطريقة (1) قد يكون قليلا أكثر إحكاما، ولكن هذا لا يستحق حمل تعقيد طريقتين مختلفتين لفعل الشيء نفسه.
تهيئة مجلس الإدارة: اضافة القدرة على أداء التهيئة مجلس الأولية على ترابط عامل مستقل. هناك حاجة إلى هذا لأن هناك العديد من الحالات التي يكون فيها منطق التهيئة لا يمكن تنفيذ على بدء / موضوع الخمول. هذا هو لعرقلة أو لا يجوز الانتظار على موضوع الخمول.
إدارة الذاكرة:
حبيبة مخصص: (1) إضافة وظيفة جديدة لحجز مناطق الامم المتحدة allocatable في كومة الحبيبية. (2) إضافة واجهات لدعم مخصص الحبيبية-تهيئة الامم المتحدة.
الصفحة مخصص: إضافة مخصص بسيط الصفحة المادية على أساس الحبيبية مخصص NuttX القائمة. أنا لست متأكدا إذا كان مخصص الحبيبية هو حتمية بما فيه الكفاية للاستخدام طويل المدى، لكنه يحصل الحصول على مخصص صفحة في مكان لاختبار بسرعة كبيرة.
إزالة CONFIG_MM_MULTIHEAP: لم يعد معتمدا عملية غير multiheap.
sbrk (): sbrk () ويدعم الآن في بناء نواة للسماح الحجم حيوي، لكل عملية أكوام.
لكل عملية أكوام: الفضاء في بداية مساحة بيانات عملية محجوز الآن لهياكل الإدارة كومة المستخدم. في وضع بناء النواة، ويجري تقاسم هذه الهياكل كومة بين النواة واستخدام التعليمات البرمجية من أجل تخصيص البيانات الخاصة بالمستخدم.
إدارة كومة المستخدم: عند مخارج موضوع المتميزة، لدينا لاستخدام مخصص نواة لتحرير الذاكرة. عندما مخارج موضوع المحرومين، ليس لدينا لفعل أي شيء ... سيتم تنظيف ذاكرة الكومة حتى عند تمزقها البيئة عنوان أسفل.
بين عملية الذاكرة المشتركة الدعم: (1) إضافة تنفيذ وثائق shmget ()، shmctl ()، shmat ()، وshmdt (). (2) إضافة نظام نظام يدعو إلى دعم البوابة دعوة المستخدم إلى واجهات الذاكرة المشتركة. (3) إضافة تعريفات واجهة منصة المحددة اللازمة لدعم ميزة الذاكرة المشتركة.
الصفحة الظاهري مخصص: إضافة دعم لالظاهري مخصص صفحة لكل عملية. هذا هو عضوا جديدا في هيكل task_group_s. يجب تهيئة مخصص عند بدء عملية مستخدم جديدة وإلغاء تهيئة عندما يتم تدمير مجموعة العملية في نهاية المطاف. يتم استخدامه من قبل shmat () وshmdt () لاختيار العنوان الظاهرية على الذي لتعيين الذاكرة الفعلية المشتركة.
أنظمة الملفات / سائقين كتلة / مليون دينار:
FS سمارت: FS الذكية والتحديثات سمارت FS procfs من كين بيتيت.
MTD: تظهر طبقة مليون دينار للقراءة قبل / الكتابة عازلة هو الآن وظيفي.
تنسيقات ثنائية:
لكل عملية كومة: إضافة منطق لتهيئة كومة المستخدم لكل عملية عند بدء كل عملية المستخدم.
الرسومات:
NxTerm: تغيير كافة تواجدات NxConsole إلى NxTerm.
الشبكات:
فيز المقاطعات: (1) توحيد واجهة مرفق PHY المقاطعة. (2) إضافة دعم لIOCTL التي يمكن استخدامها لإعلام تطبيق عندما يكون هناك تغيير في وضع شبكة أشارت من قبل المقاطعة PHY.
تحسن إرسال المنطق: في الماضي، الحزمة الأولى إرسالها إلى أحد الزملاء الشبكة الجديدة ستفشل. لن يكون هناك أي إدخال في جدول ARP النظير وهكذا طلب ARP يمكن أن تحل محل تلك الحزمة الأولى. الآن كخيار إذا CONFIG_NET_ARP_SEND = ذ، عن إرسال والمنطق (1) معرفة ما اذا كان النظير عنوان MAC في الجدول ARP، وإذا لم يكن كذلك، (2) إرسال طلبات ARP بشكل دوري للحصول على رسم الخرائط و(3) الانتظار ل استجابة ARP. ثم (4) عند تلقي استجابة ARP ثم سيبدأ منطق الإرسال الفعلي. وبالتالي قد يكون هناك تأخير مع الحزمة الأولى إرسالها إلى أحد الزملاء الجدد، ولكن لا ينبغي أن تضيع الحزمة
استضافة محاكاة:
SPI FLASH سائق: يحتذى سائق SPI FLASH لهدف سيم من كين بيتيت.
إنتل إلى x86:
المضيف الافتراضي: المضيف الافتراضي هو الآن x86_64 وسيتم تحديد الخيار -m32 تلقائيا لمحاكاة يبني.
إنتل 8051 عائلة:
8051 إزالة: إزالة جميع أشكال الدعم للبنية الأسرة 8051 من شجرة مصدر NuttX. ويمكن الآن رمز ملغى جنبا إلى جنب مع إزالة التصحيح يمكن العثور عليها في متفرقات / ملغى /. تمت إزالة هذا الرمز ل(1) وإن كان قد أظهر بعض الوظائف، أنا لست على علم بأي الموانئ ناجحة حقا من NuttX بأي 8051، و (2) 8051، مع كومة الجهاز الخاص به، يفرض القيود والتعقيدات على أبنية أخرى وجعل نمو وتطور NuttX أكثر تعقيدا.
ZILOG ZNeo المجالس:
تمت إزالة الدعم لهذا المجلس من شجرة مصدر NuttX (ولكن لا يزال يمكن العثور عليها في متفرقات / الدليل ملغى): التكوينات / 16z. هذا المنفذ غير جاهز للاستخدام ولكن قد ترجع إلى شجرة NuttX في مرحلة ما في المستقبل.
اتميل SAM3 / 4 المجالس:
SAM4E-EK: إضافة (1) القائم على ILI9341 تماما وظيفية سائق LCD و (2) تكوين NxWM تماما وظيفية.
ARMv7-A:
البيئات عنوان: إضافة دعم لبيئات عنوان التطبيق باستخدام اللحاء-A MMU. تنفيذ واجهات منصة موحدة محددة من NuttX دعم بيئة العنوان.
عمليات التخزين المؤقت: تنفيذ موحدة، وعمليات التخزين المؤقت الخاصة بالنظام الأساسي. وتسمى هذه من محمل ELF من أجل طرد D-ذاكرة التخزين المؤقت وإبطال I-مخبأ بعد أن تم تحميل وحدة ELF في الذاكرة. مع هذا التغيير، وحدات ELF تعمل بشكل صحيح على SAMA5 / اللحاء-A المنصة.
نواة بناء: (1) إضافة تطبيقات بوابة استدعاء النظام. (2) إضافة CRT0 بدء الملفات التي يمكن ربطها مع برامج المستخدم بنيت على حدة. (3) إضافة دعم للتسليم من استخدام اشارات وضع في بناء النواة. (4) إضافة الى المنطق لتهيئة كومة المستخدم لكل عملية عند بدء كل عملية المستخدم. (5) ARMv7-A يحتاج التعامل مع استثناء للعمل بشكل مختلف قليلا إذا كنا دعم عمليات وضع المستخدم. هذا هو لأنه يتم ترحيلها R13 R14 ومختلف بين المستخدم ووضع SVC.
المشتركة دعم الذاكرة: (1) إضافة منطق اللازمة للتعامل مع الخارطه الذاكرة المشتركة على مفاتيح السياق. (2) توسيع افتراضية التحويلات عنوان / المادية لتشمل عناوين في الذاكرة المشتركة. (3) إضافة تنفيذ دعم الذاكرة المشتركة الخاصة بالنظام الأساسي.
اتميل SAMA5D السائقين:
شبكة IOCTLS: تنفيذ جميع IOCTLS الشبكة، بما في ذلك IOCTL جديد لإشعارات الأحداث الإعداد PHY.
تحويلات عنوان: في نواة بناء مع البيئة العنوان، تحتاج إلى المنطق الخريطة عناوين افتراضية للمستخدم العناوين الفعلية، والعكس بالعكس.
اتميل SAMA5D المجالس:
SAMA5D3 Xplained، SAMA5D3-EK، وSAMA5D4-EK: تحويل مجلس محددة واجهات PHY المقاطعة القائمة على استخدام المعرفة حديثا واجهة قياسية.
SAMA5D4-EK: إضافة تكوين لاختبار تكوين بناء النواة. هناك تكوينات التمهيد إما من بطاقة SD أو من وفي الذاكرة نظام الملفات ROMFS.
SAMA5D4-EK: إضافة وثائق / دعم القس E. متنها.
STMicro STM32 السائقين:
إيثرنت: التعديل لدعم التغيير إلى شبكة التغييرات توقيع IOCTL. أيضا إضافة دعم IOCTL جديد لإشعارات الأحداث الإعداد PHY.
STMicro STM32 المجالس:
STM32F4Discovery مع STM32F4DIS-BB: إضافة تمكين تكوين الشبكة NSH لمجلس STM32F4Discovery مع قاعدة مجلس STM32F4DIS-BB المثبتة. يشمل تقديم الدعم لفتحة بطاقة microSD على متن قاعدة STM32F4DIS-BB.
TI TIVA السائقين:
TI CC3200: إضافة دعم لCC3200 TI. من جيم يوينغ.
TI TIVA المجالس:
TI CC3200 انطلاق: إضافة دعم لTI CC3200 انطلاق. من جيم يوينغ.
C المكتبة:
استطلاع (): إعادة تنفيذ الاستطلاع () تأخير باستخدام sem_timedwait ().
التكوين / بناء النظام:
التصدير المستهدفة: في نواة أو محمية يبني، (1) فقط المكتبات المستخدم يجب أن تصدر، (2) لا تنسخ الملفات رأس الداخلية أو بناء البرامج النصية إذا كان هذا هو نواة أو بناء المحمية، و (3) يحتاج إلى حزمة حتى ملف بدء التشغيل المستخدم C (crt0)، وليس الكائن رئيس نواة لنواة وحمايتها يبني.
برنامج CFLAGS: إضافة المنطق الذي سوف تسمح لنا ببناء المكتبات المستخدم مع CFLAGS مختلفة من كود النواة. هناك حاجة إلى ذلك لأننا بحاجة إلى خيار -fno شيوعا عند بناء كود ELF لمنع الترحيل SHN_COMMON.
التطبيقات:
NSH: توسيع منطق التهيئة شبكة NSH. الآن هناك خيار التي سيتم إنشاء شبكة ترابط المراقبة التي من شأنها رصد حالة الارتباط. عندما يذهب على الرابط أسفل، فإن قانون محاولة لوضع بأمان سائق إيثرنت في حالة أسفل؛ عندما يحين صلة الى الوراء، ورمز محاولة لجعل شبكة احتياطية.
ELF مثال: تم تمديد اختبار ELF / مثال ذلك الفردية برامج اختبار ELF يمكن ربط ضد مكتبة SYSCALL (إذا كان متوفرا) أو ضد مكتبة C للقضاء أو التقليل من الحاجة للجداول الرمز.
NxTerm: تغيير كافة تواجدات NxConsole إلى NxTerm.
MTDRWB مثال: إضافة مثالا لاختبار مليون دينار R / W التخزين المؤقت.
OS اختبار مثال: إضافة اختبار تافهة من sem_timedwait ().
تكوين التطبيق / بناء النظام:
استيراد المستهدفة: (1) إضافة المنطق الذي سيتيح بناء التطبيقات مقابل صفقة تصدير NuttX (مقابل الشجرة nuttx / المصدر). (2) إضافة ملف .config لتصدير الحزمة. (3) إنشاء تطبيقات / الاستيراد. إنشاء تطبيقات / استيراد / Make.defs أن يفعل أشياء مثل تحديد CFLAGS. بناء ELF يتطلب -fno شائع في CFLAGS. نسخ بعض المنطق قاعدة من nuttx / أدوات / Config.mk إلى تطبيقات / استيراد / Make.defs. (4) إضافة تطبيقات / استيراد / مخطوطات /-جنو elf.ld النصي رابط دول مجلس التعاون الخليجي ليبني ELF الاستيراد.
جميع Makefiles: (1) إضافة الهدف تثبيت لجميع makefiles. لبناء الاستيراد، ماكيفيلي المستوى الأعلى الآن لا مرورين: (1) يبني libapp.a، ثم (2) بتثبيت البرامج إلى تطبيقات / بن. (2) إضافة تثبيت البرنامج لCONFIG_BUILD_KERNEL في جميع Makefiles أن بناء الرئيسية (). (3) لبناء النواة، ملف الكائن الذي يحتوي الرئيسية () لا يمكن أن تذهب إلى المكتبة بسبب اصطدام الاسم. يجب التعامل مع ملف الكائن باعتباره حالة خاصة في كل ماكيفيلي.
جميع المدمج في البرامج: مع بناء نواة (CONFIG_BUILD_KERNEL)، نقطة الدخول لجميع المهام هي الرئيسية ()، وليس بعض xyz_main ().
NSH: يجب تعطيل العديد من الأوامر في بناء نواة لأنها تعتمد على واجهات التي لا تتوفر خارج النواة: DD، مدافع، losetup، mkfatfs، mkdr، وتبسيط العمليات.
تطبيقات / أدوات /: (1) إضافة mkimport.sh تنفجر حزمة استيراد NuttX وتثبيت في تطبيقات / الاستيراد. (2) إضافة النصي mkromfsimg.sh لخلق صورة BOOT ROMFS الملفات.
ELF وNxFLAT أمثلة: لا يبني حالات الاختبار التي تستخدم task_create () إذا كان هناك بيئة العنوان.
الأدوات:
refresh.sh: إضافة أداة لجعل منعش تكوينات أسهل عندما تريد أن تفعل الكثير منهم.
mksyscall.c: بناء syscalls التي لا تحتاج إلى رأس الملفات.
mkexport.sh: إضافة ملف .config لتصدير الحزمة.
تطبيقات / أدوات: انظر أعلاه للتطبيقات الجديدة / أدوات البرامج النصية.
جهود في التقدم.
بوجفيكسيس.






























































































































































بوجفيكسيس:



































699
701




724
726




754
756



775




804
806

















































برامج مماثلة

SmartOS
SmartOS

17 Aug 18

GNU Hurd
GNU Hurd

19 Feb 15

FruityOrange
FruityOrange

17 Feb 15

Optimus Kernel
Optimus Kernel

14 Apr 15

تعليقات ل NuttX

لم يتم العثور على التعليقات
إضافة تعليق
بدوره على الصور!