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، بر روی تقاضا صفحه بندی و سیستم ورود به سیستم.
علاوه بر این، این پروژه همراه با پسوند برای مدیریت حق شفعه، هر موضوع، ساخته شده در اندازه گیری بار CPU، اسناد جامع، وظایف اختیاری که شامل محیط های آدرس، کنترل کار ANSI-مانند و POSIX مانند، ساعت، pthreads، محیط زیست متغیرها، سیگنال، صف پیام به نام، تایمر، فایل سیستم و سمافور شمارش.
از جمله ویژگی های دیگر، ما می توانیم ذکر برنامه ریزی گرد رابین، FIFO، پشتیبانی از ارث اولویت، پشتیبانی برای معماری SOC، پشتیبانی برای معماری های هیئت مدیره، پشتیبانی برای معماری جدید پردازنده، تایمر سگ نگهبان، VxWorks مانند وظیفه مدیریت، I / O تغییر مسیر و انتقال بر & ldquo؛ کنترل پایانه کار & rdquo؛ پشتیبانی platformsNuttX پشتیبانی از طیف گسترده ای از سیستم عامل سخت افزار، در میان است که ما می توانیم پردازنده ARM متعدد، از جمله ARM قشر-M3، ARM926EJS، ARM7TDMI، ARM قشر-M4، ARM قشر-M0، ARM920T و ARM ذکر قشر-A5، و همچنین به عنوان به ATMEL 8 بیتی AVR، فری اسکیل Freescale M68HCS12، سیستم عامل AVR32 به ATMEL AVR.
علاوه بر این، آن را نیز پشتیبانی سیستم عامل های مختلف اینتل، مانند ریزتراشه PIC32MX (MIPS)، 80c52 و 80 و بار، 86، سیستم عامل Zilog، از جمله Zilog Z80، Zilog Z16F، Zilog Z8Encore! و Zilog eZ80 تحسین !، و Renesas / هیتاچی SuperH و Renesas M16C / 26 سیستم عامل

در چه در این نسخه جدید است.

ویژگی ها: ویژگی های اضافی جدید و قابلیت های توسعه یافته:
سیستم عامل هسته:
تخصیص دیده بان تایمر: (1) اگر ما از دوران قبل از اختصاص ناظر اجرا شود، منطق در حال حاضر اختصاص تایمر اضافی را از پشته. ذخیره تایمر قبل از اختصاص ناظر حفظ طوری که همیشه وجود دارد تایمر برای وقفه ها خواهد بود. (2) حمایت او برای تایمر سگ نگهبان آماری اختصاص داده
نشانی محیط زیست پشتیبانی: (2) رابط های برنامه کاربردی سیستم عامل جدید را در تمام زمینه تغییر منطق پلت فرم خاص (up_block_task ()، up_unblock_task ()، _exit ()، و دیگران) یکپارچه شده است.
پشتیبانی هسته ساختن: (1) MPU بر اساس & quot؛ را ساخت هسته و & quot؛ به ساخت و حفاظت شده (CONFIG_BUILD_PROTECTED) تغییر نام داد. پشتیبانی از اضافه جدید MMU مبتنی بر & quot؛ را ساخت هسته و & quot؛ (CONFIG_BUILD_KERNEL)، (2) کتابخانه سیستم تماس می توانید در حال حاضر با CONFIG_NUTTX_KERNEL ساخته شده است. انتخاب جدید *: CONFIG_LIB_SYSCALL.
سیستم راه اندازی: اضافه کردن گزینه های پیکربندی برای شروع سیستم از یک برنامه در یک سیستم فایل (در مقابل یک آدرس در حافظه).
راه اندازی پارامترها: وجود دارد استفاده می شود دو راه برای گذراندن پارامترهای به وظایف جدید، بسته به پیکربندی: در هر دو صورت (1) ی argv [] به عنوان به عنوان یک آرایه با هر رشته strdup'ed ایجاد شده است. و یا (2) ی argv [] آرایه ها و رشته ها در پشته ایجاد شد قبل از کار جدید آغاز شد. در حال حاضر، تنها یک راه وجود دارد، راه (2). راه (1) ممکن است کمی جمع و جور تر است، اما این ارزش حمل پیچیدگی از دو راه مختلف انجام همان کار.
مقداردهی اولیه انجمن: اضافه کردن توانایی به انجام دهی اولیه هیئت مدیره اولیه در موضوع کارگر جداگانه. این مورد نیاز است چرا که بسیاری از موارد که در آن منطق اولیه نمی تواند در راه اندازی / موضوع IDLE اجرا وجود دارد. چرا که مسدود کردن و یا انتظار است در موضوع IDLE مجاز نیست.
مدیریت حافظه:
گرانول تخصیص: (1) اضافه کردن یک تابع جدید برای رزرو مناطق سازمان ملل متحد allocatable در پشته گرانول. (2) اضافه کردن رابط برای حمایت از سازمان ملل متحد، مقدار دهی اولیه تخصیص گرانول.
صفحه تخصیص: اضافه کردن یک تخصیص ساده صفحه فیزیکی بر اساس تخصیص گرانول NuttX موجود است. من مطمئن هستم اگر تخصیص گرانول است به اندازه کافی برای استفاده دوربرد قطعی نیست، اما آن را می شود دریافت تخصیص صفحه در محل برای آزمایش بسیار به سرعت.
حذف CONFIG_MM_MULTIHEAP: عملیات غیر multiheap دیگر پشتیبانی.
sbrk (): sbrk () در حال حاضر در ساخت هسته های پشتیبانی شده به صورت پویا اجازه اندازه، هر پروسه انبوه.
هر پروسه انبوه: فضایی در آغاز فضای پردازش داده ها در حال حاضر برای سازه های مدیریت پشته کاربر محفوظ است. در هسته حالت ساخت، این سازه پشته ها بین هسته و کد استفاده به منظور اختصاص دادههای مختص کاربر به اشتراک گذاشته.
کاربر هیپ مدیریت: هنگامی که یک خروجی موضوع ممتاز، ما مجبور به استفاده از تخصیص هسته به حافظه آزاد. زمانی که یک خروجی موضوع غیر ممتاز، ما مجبور به انجام هر کاری ... حافظه پشته خواهد شد تا زمانی که محیط تمیز آدرس پاره کردن.
بین فرایند پشتیبانی حافظه مشترک: (1) اضافه کردن اجرای و اسناد و مدارک برای shmget ()، shmctl ()، shmat ()، و shmdt (). (2) اضافه کردن سیستم را به حمایت از دروازه تماس کاربر به رابط حافظه مشترک استفاده شود. (3) اضافه کردن تعاریف رابط پلت فرم خاص مورد نیاز برای پشتیبانی از ویژگی های حافظه مشترک.
صفحه تخصیص مجازی: اضافه کردن پشتیبانی برای تخصیص صفحه هر پروسه مجازی. این یک عضو جدید از ساختار task_group_s است. تخصیص باید مقداردهی اولیه وقتی که یک فرآیند کاربر جدید آغاز شده است و uninitialize زمانی که گروه روند است در نهایت نابود شده است. این است که توسط shmat () و shmdt () مورد استفاده برای انتخاب آدرس مجازی بر روی آن به نقشه حافظه فیزیکی به اشتراک گذاشته.
سیستم فایل / رانندگان بلوک / MTD:
FS SMART: FS SMART SMART و به روز رسانی FS procfs از کن پتی.
MTD: MTD لایه به عنوان خوانده شده پیش / نوشتن بافر نظر می رسد در حال حاضر کاربردی است.
فرمت باینری:
هر پروسه هیپ: اضافه کردن منطق به مقداردهی اولیه پشته کاربر هر پروسه زمانی که هر یک از فرایند کاربر آغاز شده است.
گرافیک:
NxTerm: تغییر تمام رخدادهای NxConsole به NxTerm.
شبکه:
PHY وقفه: (1) یک رابط استاندارد پیوست وقفه PHY. (2) اضافه کردن پشتیبانی برای ioctl است که می تواند مورد استفاده قرار گیرد را به اطلاع یک برنامه زمانی که تغییر در وضعیت شبکه نشانه های یک وقفه PHY وجود دارد.
بهبود ارسال منطق: در گذشته، اولین بسته ارسال به یک همکار شبکه جدید شکست خواهد خورد. هیچ ورودی در جدول ARP برای همکار وجود دارد و به همین ترتیب یک درخواست ARP می تواند که برای اولین بار از بسته جایگزین. در حال حاضر به عنوان یک گزینه در صورت CONFIG_NET_ARP_SEND = Y، تمام ارسال منطق (1) بررسی می کند که همکار آدرس MAC در جدول ARP است و، اگر نه، (2) ارسال درخواست ARP دوره برای دریافت نقشه برداری و (3) منتظر پاسخ ARP. سپس (4) زمانی که پاسخ ARP دریافت است و سپس منطق واقعی ارسال می شود آغاز خواهد شد. بنابراین ممکن است تاخیر با اولین بسته فرستاده شده به همکار جدید است، اما بسته نباید از دست داد
هاست شبیه سازی:
SPI درایور FLASH: شبیه سازی راننده SPI FLASH برای هدف سیم کارت تالیا را از کن پتی.
اینتل x86:
به طور پیش فرض میزبان: میزبان به طور پیش فرض در حال حاضر x86_64 و گزینه -m32 به طور خودکار برای شبیه سازی می سازد انتخاب شده است.
اینتل 8051 خانواده:
8051 حذف شد: حذف تمام حمایت از خانواده 8051 معماری از درخت منبع NuttX. کد منسوخ همراه با پچ حذف هم اکنون می توانید در قسمت misc / / منسوخ یافت می شود. این کد حذف شد چون (1) هر چند برخی از قابلیت های نشان داده شده است، من از هر پورت واقعا موفق از NuttX به هر 8051 آگاه نیست، و (2) 8051، با سخت افزار پشته آن، نیروهای محدودیت ها و عوارض به معماریهای و رشد و توسعه NuttX پیچیده تر.
ZiLOG انجمن ZNeo:
تنظیمات / 16z: پشتیبانی از این هیئت مدیره شده است از درخت منبع NuttX حذف (اما هنوز هم می توان در قسمت misc / دایرکتوری منسوخ یافت). این بندر آماده است برای استفاده نیست، اما ممکن است به درخت NuttX در برخی از نقطه در آینده بازگشت.
به ATMEL SAM3 / 4 انجمن:
SAM4E-EK: اضافه کردن (1) یک راننده LCD مبتنی بر ILI9341 کاملا عملکردی و (2) پیکربندی NxWM کاملا عملکردی.
ARMv7-A:
محیط آدرس: اضافه کردن پشتیبانی برای محیط های آدرس برنامه با استفاده از قشر-A MMU. پیاده سازی رابط استاندارد پلت فرم خاص از NuttX حمایت محیط زیست آدرس.
عملیات کش: پیاده سازی استاندارد شده، پلت فرم خاص عملیات cache است. این از لودر ELF به منظور خیط و پیت کردن D-کش و از درجه اعتبار ساقط I-کش پس از یک ماژول ELF شده است در حافظه بارگذاری نامیده می شود. با این تغییر، ماژول ELF به درستی در SAMA5 / قشر-A پلت فرم کار می کنند.
هسته ساختن: (1) اضافه کردن پیاده سازی گیت سیستم تماس بگیرید. (2) اضافه کردن CRT0 راه اندازی فایل است که می تواند با برنامه های کاربر به طور جداگانه ساخته مرتبط است. (3) اضافه کردن پشتیبانی برای تحویل سیگنال استفاده حالت در ساخت هسته است. (4) اضافه کردن منطق به مقداردهی اولیه پشته کاربر هر پروسه زمانی که هر یک از فرایند کاربر آغاز شده است. (5) ARMv7-A پردازش استثنا نیاز به کار کمی متفاوت اگر ما فرآیندهای حالت کاربر پشتیبانی می کند. دلیل این است که R13 R14 و متفاوت بین کاربر و حالت SVC مش ود و.
پشتیبانی حافظه مشترک: (1) اضافه کردن منطق لازم برای رسیدگی به های Remapping از حافظه مشترک در زمینه سوئیچ. (2) گسترش تبدیل آدرس مجازی / فیزیکی شامل آدرس در حافظه به اشتراک گذاشته. (3) اضافه کردن اجرای پشتیبانی از حافظه مشترک، پلت فرم خاص.
رانندگان به ATMEL SAMA5D:
شبکه Ioctls: پیاده سازی تمام ioctls شبکه، از جمله ioctl جدید به اطلاعیه ها رویداد PHY راه اندازی.
آدرس تبدیل: در هسته با محیط آدرس ساخت، نیاز به نقشه منطق آدرس های مجازی کاربر به آدرس های فیزیکی، و بالعکس.
به ATMEL انجمن 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 تیوا:
CC3200 TI: اضافه کردن پشتیبانی برای CC3200 TI. از جیم سارکوم.
TI انجمن تیوا:
TI CC3200 لانچپد: اضافه کردن پشتیبانی برای TI CC3200 لانچپد. از جیم سارکوم.
C کتابخانه:
نظرسنجی (): دوباره اجرا نظرسنجی () تاخیر با استفاده از sem_timedwait ().
پیکربندی / ساخت سیستم:
صادرات هدف: در هسته و یا محافظت می سازد، (1) تنها کتابخانه کاربر باید صادر شده است، (2) فایل هدر داخلی کپی و یا ساخت اسکریپت در صورتی که این یک هسته یا ساخت محافظت شده است، و (3) نیاز به بسته نرم افزاری تا فایل راه اندازی کاربر C (crt0)، نه هسته شی سر برای هسته و محافظت می سازد.
برنامه CFLAGS: اضافه کردن منطق است که به ما اجازه برای ساخت کتابخانه کاربر با CFLAGS متفاوت از کد هسته است. این مورد نیاز است چرا که ما در هنگام ساختن کد ELF برای جلوگیری از جابجایی SHN_COMMON نیاز گزینه -fno مشترک.
برنامه های کاربردی:
NSH: گسترش منطق اولیه شبکه NSH. در حال حاضر گزینه ای است که یک مانیتور موضوع شبکه است که دولت از لینک نظارت بر ایجاد خواهد کرد وجود دارد. هنگامی که لینک پایین می رود، کد تلاش خواهد کرد به آرامی قرار داده راننده اترنت در حالت پایین. هنگامی که لینک می آید، کد تلاش خواهد کرد را به شبکه را به بالا.
ELF به عنوان مثال: تست ELF / به عنوان مثال تمدید شده است به طوری که برنامه های تست ELF فرد می تواند در برابر کتابخانه فراخوانی لینک (اگر آن را در دسترس است) و یا در برابر کتابخانه C برای از بین بردن یا به حداقل رساندن نیاز به جداول نماد است.
NxTerm: تغییر تمام رخدادهای NxConsole به NxTerm.
MTDRWB مثال: اضافه کردن یک مثال برای تست MTD R / W بافر.
OS تست مثال: اضافه کردن یک آزمون بی اهمیت از sem_timedwait ().
پیکربندی برنامه / ساخت سیستم:
واردات مقصد: (1) اضافه کردن منطق است که اجازه خواهد داد که برنامه های کاربردی ساختمان در برابر یک بسته صادرات NuttX (در مقابل درخت nuttx / منبع). (2) اضافه کردن فایل config به صادرات بسته بندی شده. (3) ایجاد برنامه های کاربردی / واردات. ایجاد برنامه های کاربردی / واردات / Make.defs است که چیزهایی مانند تعریف CFLAGS. ساخت ELF در CFLAGS نیاز -fno-رایج است. کپی برخی از منطق پایه nuttx / ابزار / Config.mk به برنامه / واردات / Make.defs. (4) اضافه کردن برنامههای / واردات / اسکریپت / گنو-elf.ld اسکریپت لینکر شورای همکاری خلیج فارس برای واردات ELF می سازد.
همه Makefile ها: (1) اضافه کردن یک هدف نصب به تمام Makefile ها. برای ساخت واردات، makefile در سطح بالا در حال حاضر انجام می دهد دو پاس: (1) ایجاد libapp.a، سپس (2) نصب برنامه به برنامه / بن. (2) نصب و راه اندازی برنامه برای اضافه کردن CONFIG_BUILD_KERNEL در تمام Makefile ها که ساخت یک متد Main (). (3) برای ساخت هسته، فایل حاوی شی اصلی () نمی تواند به کتابخانه به دلیل برخورد نام بروید. فایل شی باید به عنوان یک مورد خاص در هر makefile در گرفته شده است.
همه ساخته شده در برنامه: با ساخت هسته (CONFIG_BUILD_KERNEL)، نقطه ورود به همه وظایف اصلی است ()، نه برخی از xyz_main ().
NSH: چند دستورات باید در ساخت هسته غیر فعال زیرا آنها در رابط که در دسترس هستند در خارج از هسته بستگی دارد: DD، DF، 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 وجود دارد. که پورت شده است واقعا آغاز شده، با این حال.
گالیله: به طور مشابه، می قطعات در جای خود برای یک پورت اینتل گالیله وجود دارد. بندر به صورت جدی آغاز شده است یا نه.
رفع اشکالات. فقط رفع اشکالات مهم ترین در اینجا ذکر شده (تغییرات برای فهرست کاملی از رفع اشکالات و اضافی، اطلاعات بیشتر اشکالات را ببینید):
سیستم عامل هسته:
هسته ساخت رفع: (1) راه اندازی TCB IDLE نیاز به نشان می دهد که موضوع IDLE ممتاز، موضوع هسته است. (2) آیا task_create () و یا task_spawn (ساخت) رابط اگر یک محیط آدرس وجود دارد. (3) posix_spawn () هسته پروکسی موضوع باید موضوع هسته، نه یک کار کاربر باشد.
چندین واسط pthread: اضافه کردن کلاس ذخیره سازی ثابت به phthread پارامترهای. از فردی شوپن.
sched / ساعت: حذف بقایای g_tickbias. نیاز، به جای آن، به درخواست تعصب زمان به g_basetime به منظور فراهم زمان سیستم درست باشد.
سیستم تلفن: (1) چند غلط املایی ثابت. ادغام اصلاح exevc ()، تماس های execvl ()، posix_spawn ()، و posix_spawnp () سیستم. (2) اگر ما در حال پیکربندی شده برای استفاده از پشته هسته در حالی که در دست زدن به فراخوانی سیستمی، پس ما نیاز به تبدیل به کاربر پشته برای ارائه یک سیگنال قرار دارند.
سیستم فایل / رانندگان بلوک / MTD:
procfs: رفع برخی از شکستگی procf معرفی شده توسط سازماندهی مجدد برخی از سازه اطلاعات غیر reorganizable. از کن پتی.
AT45: در at45db_bwrite ()، بافر است در هنگام نوشتن بیش از 1 صفحه افزایش یافته است. سورس اشکال # 34.
فرمت باینری:
جابجایی ELF: برخی از انواع جابجایی یک نماد به نام مرتبط با آنها را ندارد. طراحی را برای آن صورت حساب نیست.
ELF لودر: اشکالات انتقادی .. BSS شد در حال پاکسازی نیست.
مدیریت حافظه:
گرانول تخصیص: مقدار دهی اولیه تخصیص گرانول با استفاده از تخصیص نادرست به کنار گذاشتن حافظه هسته است.
گروه های صاحب امتیاز: اضافه کردن یک پرچم به ساختار گروه: اگر این گروه از یک موضوع هسته ایجاد شده، پس از آن همه منابع در این گروه باید ممتاز باشد.
پشتیبانی Cryptogrphic:
سری ومخفی / cryptodev.c: بخش راه معکوس در شامل مسیر فایل. اشاره شده توسط برنان اشتون.
رانندگان مشترک:
مشترک می تواند بالا نیم: در can_txdone، پیشخدمت در پرچم مخابره کردن باید بدون در نظر گرفتن مقدار بازگشتی can_xmit آگاه است. اول آن را می گرداند -EIO اگر هیچ بسته های جدید وجود دارد، و دوم اطلاعات از پیشخدمت است در مورد آخرین بسته منتقل شده است. از دانیل Lazlo Sitzer.
ARM:
سیستم تلفن: رفع خطای تایپی در سیستم تماس هنگام واکشی پارامتر از پشته: regs [REG_PC] 4 آدرس، نه regs [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 () که غیر فعال وقفه اگر هیچ بسته های جدید را برای ارسال وجود دارد. از دانیل Lazlo Sitzer.
CAN: اضافی STM32 اصلاح می تواند پیشنهاد شده توسط ماکس Holtzberg.
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 (). که می شود کارآمد تر است، اما من هرگز آن را تلاش.
به ATMEL 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 () به رفع اشکال دقیق از صفر فرار است. از باب Doiron.
برنامه های کاربردی:
رفع دستور NSH PS: اگر هیچ استدلال وجود دارد، می تواند زباله برای لیست آرگومان چاپ کنید.
پیکربندی / ساخت سیستم:
مثال نول: نیاز به منظور آن شامل config.h می دانم که اگر این است یا ساخت هسته نیست. این مشکل هنوز هم در چندین فایل دیگر که ممکن است نیاز به تعریف اصلی () وجود دارد.

به چه جدید در نسخه 7.8:

ویژگی ها: ویژگی های اضافی جدید و قابلیت های توسعه یافته:
سیستم عامل هسته:
تخصیص دیده بان تایمر: (1) اگر ما از دوران قبل از اختصاص ناظر اجرا شود، منطق در حال حاضر اختصاص تایمر اضافی را از پشته. ذخیره تایمر قبل از اختصاص ناظر حفظ طوری که همیشه وجود دارد تایمر برای وقفه ها خواهد بود. (2) حمایت او برای تایمر سگ نگهبان آماری اختصاص داده
نشانی محیط زیست پشتیبانی: (2) رابط های برنامه کاربردی سیستم عامل جدید را در تمام زمینه تغییر منطق پلت فرم خاص (up_block_task ()، up_unblock_task ()، _exit ()، و دیگران) یکپارچه شده است.
پشتیبانی هسته ساختن: (1) MPU بر اساس & quot؛ را ساخت هسته و & quot؛ به ساخت و حفاظت شده (CONFIG_BUILD_PROTECTED) تغییر نام داد. پشتیبانی از اضافه جدید MMU مبتنی بر & quot؛ را ساخت هسته و & quot؛ (CONFIG_BUILD_KERNEL)، (2) کتابخانه سیستم تماس می توانید در حال حاضر با CONFIG_NUTTX_KERNEL ساخته شده است. انتخاب جدید *: CONFIG_LIB_SYSCALL.
سیستم راه اندازی: اضافه کردن گزینه های پیکربندی برای شروع سیستم از یک برنامه در یک سیستم فایل (در مقابل یک آدرس در حافظه).
راه اندازی پارامترها: وجود دارد استفاده می شود دو راه برای گذراندن پارامترهای به وظایف جدید، بسته به پیکربندی: در هر دو صورت (1) ی argv [] به عنوان به عنوان یک آرایه با هر رشته strdup'ed ایجاد شده است. و یا (2) ی argv [] آرایه ها و رشته ها در پشته ایجاد شد قبل از کار جدید آغاز شد. در حال حاضر، تنها یک راه وجود دارد، راه (2). راه (1) ممکن است کمی جمع و جور تر است، اما این ارزش حمل پیچیدگی از دو راه مختلف انجام همان کار.
مقداردهی اولیه انجمن: اضافه کردن توانایی به انجام دهی اولیه هیئت مدیره اولیه در موضوع کارگر جداگانه. این مورد نیاز است چرا که بسیاری از موارد که در آن منطق اولیه نمی تواند در راه اندازی / موضوع IDLE اجرا وجود دارد. چرا که مسدود کردن و یا انتظار است در موضوع IDLE مجاز نیست.
مدیریت حافظه:
گرانول تخصیص: (1) اضافه کردن یک تابع جدید برای رزرو مناطق سازمان ملل متحد allocatable در پشته گرانول. (2) اضافه کردن رابط برای حمایت از سازمان ملل متحد، مقدار دهی اولیه تخصیص گرانول.
صفحه تخصیص: اضافه کردن یک تخصیص ساده صفحه فیزیکی بر اساس تخصیص گرانول NuttX موجود است. من مطمئن هستم اگر تخصیص گرانول است به اندازه کافی برای استفاده دوربرد قطعی نیست، اما آن را می شود دریافت تخصیص صفحه در محل برای آزمایش بسیار به سرعت.
حذف CONFIG_MM_MULTIHEAP: عملیات غیر multiheap دیگر پشتیبانی.
sbrk (): sbrk () در حال حاضر در ساخت هسته های پشتیبانی شده به صورت پویا اجازه اندازه، هر پروسه انبوه.
هر پروسه انبوه: فضایی در آغاز فضای پردازش داده ها در حال حاضر برای سازه های مدیریت پشته کاربر محفوظ است. در هسته حالت ساخت، این سازه پشته ها بین هسته و کد استفاده به منظور اختصاص دادههای مختص کاربر به اشتراک گذاشته.
کاربر هیپ مدیریت: هنگامی که یک خروجی موضوع ممتاز، ما مجبور به استفاده از تخصیص هسته به حافظه آزاد. زمانی که یک خروجی موضوع غیر ممتاز، ما مجبور به انجام هر کاری ... حافظه پشته خواهد شد تا زمانی که محیط تمیز آدرس پاره کردن.
بین فرایند پشتیبانی حافظه مشترک: (1) اضافه کردن اجرای و اسناد و مدارک برای shmget ()، shmctl ()، shmat ()، و shmdt (). (2) اضافه کردن سیستم را به حمایت از دروازه تماس کاربر به رابط حافظه مشترک استفاده شود. (3) اضافه کردن تعاریف رابط پلت فرم خاص مورد نیاز برای پشتیبانی از ویژگی های حافظه مشترک.
صفحه تخصیص مجازی: اضافه کردن پشتیبانی برای تخصیص صفحه هر پروسه مجازی. این یک عضو جدید از ساختار task_group_s است. تخصیص باید مقداردهی اولیه وقتی که یک فرآیند کاربر جدید آغاز شده است و uninitialize زمانی که گروه روند است در نهایت نابود شده است. این است که توسط shmat () و shmdt () مورد استفاده برای انتخاب آدرس مجازی بر روی آن به نقشه حافظه فیزیکی به اشتراک گذاشته.
سیستم فایل / رانندگان بلوک / MTD:
FS SMART: FS SMART SMART و به روز رسانی FS procfs از کن پتی.
MTD: MTD لایه به عنوان خوانده شده پیش / نوشتن بافر نظر می رسد در حال حاضر کاربردی است.
فرمت باینری:
هر پروسه هیپ: اضافه کردن منطق به مقداردهی اولیه پشته کاربر هر پروسه زمانی که هر یک از فرایند کاربر آغاز شده است.
گرافیک:
NxTerm: تغییر تمام رخدادهای NxConsole به NxTerm.
شبکه:
PHY وقفه: (1) یک رابط استاندارد پیوست وقفه PHY. (2) اضافه کردن پشتیبانی برای ioctl است که می تواند مورد استفاده قرار گیرد را به اطلاع یک برنامه زمانی که تغییر در وضعیت شبکه نشانه های یک وقفه PHY وجود دارد.
بهبود ارسال منطق: در گذشته، اولین بسته ارسال به یک همکار شبکه جدید شکست خواهد خورد. هیچ ورودی در جدول ARP برای همکار وجود دارد و به همین ترتیب یک درخواست ARP می تواند که برای اولین بار از بسته جایگزین. در حال حاضر به عنوان یک گزینه در صورت CONFIG_NET_ARP_SEND = Y، تمام ارسال منطق (1) بررسی می کند که همکار آدرس MAC در جدول ARP است و، اگر نه، (2) ارسال درخواست ARP دوره برای دریافت نقشه برداری و (3) منتظر پاسخ ARP. سپس (4) زمانی که پاسخ ARP دریافت است و سپس منطق واقعی ارسال می شود آغاز خواهد شد. بنابراین ممکن است تاخیر با اولین بسته فرستاده شده به همکار جدید است، اما بسته نباید از دست داد
هاست شبیه سازی:
SPI درایور FLASH: شبیه سازی راننده SPI FLASH برای هدف سیم کارت تالیا را از کن پتی.
اینتل x86:
به طور پیش فرض میزبان: میزبان به طور پیش فرض در حال حاضر x86_64 و گزینه -m32 به طور خودکار برای شبیه سازی می سازد انتخاب شده است.
اینتل 8051 خانواده:
8051 حذف شد: حذف تمام حمایت از خانواده 8051 معماری از درخت منبع NuttX. کد منسوخ همراه با پچ حذف هم اکنون می توانید در قسمت misc / / منسوخ یافت می شود. این کد حذف شد چون (1) هر چند برخی از قابلیت های نشان داده شده است، من از هر پورت واقعا موفق از NuttX به هر 8051 آگاه نیست، و (2) 8051، با سخت افزار پشته آن، نیروهای محدودیت ها و عوارض به معماریهای و رشد و توسعه NuttX پیچیده تر.
ZiLOG انجمن ZNeo:
تنظیمات / 16z: پشتیبانی از این هیئت مدیره شده است از درخت منبع NuttX حذف (اما هنوز هم می توان در قسمت misc / دایرکتوری منسوخ یافت). این بندر آماده است برای استفاده نیست، اما ممکن است به درخت NuttX در برخی از نقطه در آینده بازگشت.
به ATMEL SAM3 / 4 انجمن:
SAM4E-EK: اضافه کردن (1) یک راننده LCD مبتنی بر ILI9341 کاملا عملکردی و (2) پیکربندی NxWM کاملا عملکردی.
ARMv7-A:
محیط آدرس: اضافه کردن پشتیبانی برای محیط های آدرس برنامه با استفاده از قشر-A MMU. پیاده سازی رابط استاندارد پلت فرم خاص از NuttX حمایت محیط زیست آدرس.
عملیات کش: پیاده سازی استاندارد شده، پلت فرم خاص عملیات cache است. این از لودر ELF به منظور خیط و پیت کردن D-کش و از درجه اعتبار ساقط I-کش پس از یک ماژول ELF شده است در حافظه بارگذاری نامیده می شود. با این تغییر، ماژول ELF به درستی در SAMA5 / قشر-A پلت فرم کار می کنند.
هسته ساختن: (1) اضافه کردن پیاده سازی گیت سیستم تماس بگیرید. (2) اضافه کردن CRT0 راه اندازی فایل است که می تواند با برنامه های کاربر به طور جداگانه ساخته مرتبط است. (3) اضافه کردن پشتیبانی برای تحویل سیگنال استفاده حالت در ساخت هسته است. (4) اضافه کردن منطق به مقداردهی اولیه پشته کاربر هر پروسه زمانی که هر یک از فرایند کاربر آغاز شده است. (5) ARMv7-A پردازش استثنا نیاز به کار کمی متفاوت اگر ما فرآیندهای حالت کاربر پشتیبانی می کند. دلیل این است که R13 R14 و متفاوت بین کاربر و حالت SVC مش ود و.
پشتیبانی حافظه مشترک: (1) اضافه کردن منطق لازم برای رسیدگی به های Remapping از حافظه مشترک در زمینه سوئیچ. (2) گسترش تبدیل آدرس مجازی / فیزیکی شامل آدرس در حافظه به اشتراک گذاشته. (3) اضافه کردن اجرای پشتیبانی از حافظه مشترک، پلت فرم خاص.
رانندگان به ATMEL SAMA5D:
شبکه Ioctls: پیاده سازی تمام ioctls شبکه، از جمله ioctl جدید به اطلاعیه ها رویداد PHY راه اندازی.
آدرس تبدیل: در هسته با محیط آدرس ساخت، نیاز به نقشه منطق آدرس های مجازی کاربر به آدرس های فیزیکی، و بالعکس.
به ATMEL انجمن 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 تیوا:
CC3200 TI: اضافه کردن پشتیبانی برای CC3200 TI. از جیم سارکوم.
TI انجمن تیوا:
TI CC3200 لانچپد: اضافه کردن پشتیبانی برای TI CC3200 لانچپد. از جیم سارکوم.
C کتابخانه:
نظرسنجی (): دوباره اجرا نظرسنجی () تاخیر با استفاده از sem_timedwait ().
پیکربندی / ساخت سیستم:
صادرات هدف: در هسته و یا محافظت می سازد، (1) تنها کتابخانه کاربر باید صادر شده است، (2) فایل هدر داخلی کپی و یا ساخت اسکریپت در صورتی که این یک هسته یا ساخت محافظت شده است، و (3) نیاز به بسته نرم افزاری تا فایل راه اندازی کاربر C (crt0)، نه هسته شی سر برای هسته و محافظت می سازد.
برنامه CFLAGS: اضافه کردن منطق است که به ما اجازه برای ساخت کتابخانه کاربر با CFLAGS متفاوت از کد هسته است. این مورد نیاز است چرا که ما در هنگام ساختن کد ELF برای جلوگیری از جابجایی SHN_COMMON نیاز گزینه -fno مشترک.
برنامه های کاربردی:
NSH: گسترش منطق اولیه شبکه NSH. در حال حاضر گزینه ای است که یک مانیتور موضوع شبکه است که دولت از لینک نظارت بر ایجاد خواهد کرد وجود دارد. هنگامی که لینک پایین می رود، کد تلاش خواهد کرد به آرامی قرار داده راننده اترنت در حالت پایین. هنگامی که لینک می آید، کد تلاش خواهد کرد را به شبکه را به بالا.
ELF به عنوان مثال: تست ELF / به عنوان مثال تمدید شده است به طوری که برنامه های تست ELF فرد می تواند در برابر کتابخانه فراخوانی لینک (اگر آن را در دسترس است) و یا در برابر کتابخانه C برای از بین بردن یا به حداقل رساندن نیاز به جداول نماد است.
NxTerm: تغییر تمام رخدادهای NxConsole به NxTerm.
MTDRWB مثال: اضافه کردن یک مثال برای تست MTD R / W بافر.
OS تست مثال: اضافه کردن یک آزمون بی اهمیت از sem_timedwait ().
پیکربندی برنامه / ساخت سیستم:
واردات مقصد: (1) اضافه کردن منطق است که اجازه خواهد داد که برنامه های کاربردی ساختمان در برابر یک بسته صادرات NuttX (در مقابل درخت nuttx / منبع). (2) اضافه کردن فایل config به صادرات بسته بندی شده. (3) ایجاد برنامه های کاربردی / واردات. ایجاد برنامه های کاربردی / واردات / Make.defs است که چیزهایی مانند تعریف CFLAGS. ساخت ELF در CFLAGS نیاز -fno-رایج است. کپی برخی از منطق پایه nuttx / ابزار / Config.mk به برنامه / واردات / Make.defs. (4) اضافه کردن برنامههای / واردات / اسکریپت / گنو-elf.ld اسکریپت لینکر شورای همکاری خلیج فارس برای واردات ELF می سازد.
همه Makefile ها: (1) اضافه کردن یک هدف نصب به تمام Makefile ها. برای ساخت واردات، makefile در سطح بالا در حال حاضر انجام می دهد دو پاس: (1) ایجاد libapp.a، سپس (2) نصب برنامه به برنامه / بن. (2) نصب و راه اندازی برنامه برای اضافه کردن CONFIG_BUILD_KERNEL در تمام Makefile ها که ساخت یک متد Main (). (3) برای ساخت هسته، فایل حاوی شی اصلی () نمی تواند به کتابخانه به دلیل برخورد نام بروید. فایل شی باید به عنوان یک مورد خاص در هر makefile در گرفته شده است.
همه ساخته شده در برنامه: با ساخت هسته (CONFIG_BUILD_KERNEL)، نقطه ورود به همه وظایف اصلی است ()، نه برخی از xyz_main ().
NSH: چند دستورات باید در ساخت هسته غیر فعال زیرا آنها در رابط که در دسترس هستند در خارج از هسته بستگی دارد: DD، DF، losetup، mkfatfs، mkdr، و ص.
برنامه / ابزار /: (1) اضافه کردن mkimport.sh به منفجر شدن یک بسته واردات NuttX و نصب در برنامه / واردات. (2) اضافه کردن اسکریپت mkromfsimg.sh برای ایجاد یک تصویر BOOT ROMFS فایل سیستم.
ELF و نمونه NxFLAT: آیا موارد آزمون که با استفاده از task_create () اگر یک محیط آدرس وجود دارد بسازد.
ابزارها:
refresh.sh: اضافه کردن یک ابزار به طراوت پیکربندی ساده تر زمانی که شما می خواهید برای انجام بسیاری از آنها را.
mksyscall.c: ساخت syscalls که هدر فایل های نیاز ندارد.
mkexport.sh: اضافه کردن فایل config به صادرات بسته بندی شده.
برنامه / ابزار: بالا برای برنامه های جدید / ابزار اسکریپت را مشاهده کنید.
تلاش در جریان است.








































ابزارها:




ابزارها:
























































































ابزارها:


























رفع اشکالات:






































































































نرم افزار های مشابه

FreeBSD
FreeBSD

22 Jun 18

BFS Scheduler
BFS Scheduler

27 Sep 15

MidnightBSD
MidnightBSD

12 Feb 17

FR1
FR1

3 Jun 15

نظرات به NuttX

نظر یافت نشد
اضافه کردن نظر
روشن کردن تصاویر!