سیستم عامل برای MCU و CPU

bekar

عضو جدید
RTOS=REALTIME OPERATING SYSTEM

این تاپیک برای بحث و تحقیق درباره سیستم عامل هایی که می توان برای میکروکنترلر ها و میکروپروسسور ها به اجرا در آورد ایجاد شده و امید است با همراهی شما و کمک مدیران به یک سرانجامی برسد​











حوزههای مورد بررسی ما در این تاپیک که انشاء الله مهم می شود به شرح زیر است:
  1. MultiTasking
  2. Real Time Communication (Gps,Gsm,Gprs,Usb,Rs232,MMC,Ethurnet,...)
  3. Full Task Controling(Puase,Resume,Stop)
  4. MS Office File Editing
  5. Grapical Interface​
  6. Semi Windows
  7. Kernel Modelling
  8. shell
  9. . . . . . . . . . . . . .









دوستان احتمالا مطالبی که ارسال می کنم ترکیبی از فارسی و انگلیسی است ، چون نمی تونم همه مطالب رو به فارسی ترجمه کنم فقط بخش مهم مطالب رو فارسی می کنم.

موضوعات مهم رو قرمز نوشتم.​

من تو طراحی های آینده سعی می کنم از مواد و وسایل موجود در کشور استفاده کنم ولی در یه جاهای از طراحی مواد اولیه تو ایران یافت نمی شه که من مواد جایگزین رو اعلام میکنم.​



لطفا در این تاپیک اسپم ندید و اگر سوالی خارج از مسیر اصلی دارید پیغام خصوصی بدید.​

در کل میکرو و پروسسور ها و تجهیزات استاندارد مورد استفاده به شرح زیر است:​
Atmega-Xmega-ARM7-ARM9-ARM11-Dspic-Atmel Gps-Atmel Camera Mcu
موارد قرمز به وفور در ایران یافت می شود و موارد مشکی باید بگردی دنبالش و موارد خاکستری به سختی و موارد بنفش اصلا پیدا نمی شه و باید جایگزین معرفی کنیم ، البته این قطعات استاندارد هستند و شما می توانید از قطعات شرکت های دیگه هم استفاده کنید ، ولی حتما دیتاشیت هارو بررسی کنید.

برای اطلاعات بیشتر به لینک زیر مراجعه فرمایید​

 
آخرین ویرایش:

bekar

عضو جدید
AvrX Real Time Kernel-En/Fa lang

AvrX Real Time Kernel-En/Fa lang

AvrX is a Real Time Multitasking Kernel written for the Atmel AVR series of micro controllers. AvrX contains approximately 40 API in the following Six categories:

[FONT=Arial, Arial, Helvetica]Tasking[/FONT]
[FONT=Arial, Arial, Helvetica]Semaphores[/FONT]
[FONT=Arial, Arial, Helvetica]Timer Manageme[/FONT][FONT=Arial, Arial, Helvetica]nt[/FONT]
[FONT=Arial, Arial, Helvetica]Message Queue[/FONT][FONT=Arial, Arial, Helvetica]s[/FONT]
[FONT=Arial, Arial, Helvetica]Single Step Debugging support[/FONT]
[FONT=Arial, Arial, Helvetica]Byte FIFO support with synchronization.[/FONT]
[FONT=Arial, Arial, Helvetica]The Kernel is written in assembly. Total kernel size varies from ~500 to 700 words depending upon which version is being used. Since the kernel is provided as a library of routines, practical applications take up less space because not all functions are used.[/FONT]
[FONT=Arial, Arial, Helvetica]RTOS's are nice in that the OS maintains state information for the programmer. So, instead of a complicated state machine for each task, running off an interrupt timer, the designer can write linear code (do this, wait for something, then do that... etc). In general the linear code is much easier to design, debug, understand and it is almost always smaller.[/FONT]
[FONT=Arial, Arial, Helvetica]Since each task appears to have a complete CPU, it is also easier to develop independent modules that can be wired together later on. With the included debug monitor tasks can be paused, stepped and resumed at run time - useful for debug and calibration. Because the monitor is a separate, high priority, task, it almost always allows a working window into the system no matter how broken the user code is.[/FONT]​

[FONT=Arial, Arial, Helvetica]There are two versions of AvrX available:[/FONT]
[FONT=Arial, Arial, Helvetica]AvrX v2.3 for the IAR assembler. This is a tiny version that is suitable for Assembly programming only. It makes very efficient use of RAM and takes very few cycles to service interrupts. See my Mini-Sumo for an example of a significant application written for the Atmel 2313 processor which only has 128 bytes of RAM.[/FONT]
[FONT=Arial, Arial, Helvetica]AvrX 2.6 for the IAR Systems and GCC C compiler. This version of AvrX is written for a small memory model (16 bit pointers) and a native C interface. The code size is larger than the 2.3 version (~700 words vs. 500) and all registers need to be swapped with each context change, so it is somewhat slower and uses more SRAM. The SRAM issue can be mitigated by using as many register variables as possible at the top level of the task. As for speed, processing a system timer tick took 211 cycles in AvrX 2.3 but takes only 234 in AvrX 2.5. Interrupt handlers can be written in C. See the example code for details.[/FONT]​


[FONT=Arial, Arial, Helvetica]I started a mailing list for AvrX support issues: www.yahoogroups.com/group/avrx Just click over and register as a Yahoo member and you can join the group.[/FONT]​




avrx یک هسته واقعی با قابلیت انجام چند کار در یک زمان ،برای سری avr میکروکنترلر های شرکت atmel می باشد. مثلا ATMEGA16​



avrx از حدود 40 دستور (api) تشکیل شده که در 6 دسته زیر گروهبندی می شود:
  1. مدیریت تایمر​
  2. صف پیام​
  3. پشتیبانی از اشکالزدایی یک مرحله ای​
  4. بایت فیفو که پشتیبانی می شود با هماهنگ ساز​
هسته ،به زبان اسمبلی نوشته شده.اندازه هسته به نسخه استفاده شده بستگی دارد و بین 500 تا 700 کلمه است.​



RTOS's ها خیلی خوب هستند برای برنامه نویس ها.برنامه نویس می تواند در هر لحظه هر کاری که می خواهد کند ، مثلا فلان تایمر را نگه دارد ووو یا می توانند خطی اضافه کنند که شرطی داشته باشد مثل در صورت انجام این کار یا منتظر انجام آن کار با و یا منتظر چیزی باش.​




AVRX در دو نسخه ارائه می شه:

AVRX V2.3 که برای کار های کوچیکه و فقط به زبان اسمبلی موجود است.
و با نرم افزارIAR assembleR نوشته شده.
AVRX V2.6 که حجم بالاتری دارد و به زبان C نوشته شده.
وبا نرم افزار های IAR assembleR و GCC نوشته شده است.



 
آخرین ویرایش:

bekar

عضو جدید
؟؟؟؟؟؟؟

؟؟؟؟؟؟؟

ما در آخر این کار باید مسیر خودمون رو انتخاب کنیم.

آیا سخت افزارمون رو بر اساس یک سیستم عامل مشخص طراحی کنیم یا اینکه سخت افزار رو طراحی کنیم بعد برای اون سیستم عامل طراحی کنیم!؟!

من یه لیست از سیستم عامل های موجود برای دستگاه های غیر متارف رو این پایین نوشتم ، هر کدوم را بزنی میری تو همون صفحه تو ویکی پدیا انگلیسی.(no)

لطفا از منابع فارسی ویکیپدیا استفاده نکنید. چون 50% حرف مفت نوشتن.

 
آخرین ویرایش:
  • Like
واکنش ها: sh85

bekar

عضو جدید
متاسفم!

متاسفم!

من رفتم یکم در باره ی قطعات تحقیق کردم و
متاسفانه به علت نبود تجهیزات و همچنین بودجه از بخش استفاده از پروسسور ها می گذریم!:wallbash:

و به بخش نصب سیستم عامل بر میکرو کنترلر ها با دقت بالا تری می پردازیم؟!؟:w10:


از سیستم عامل هایی که در پست بالا معرفی شد ، حدودا شاید 7 تا 8 موردش قابل پیاده سازی بر میکرو کنترلر هست.

از این 10 تا 15 ، نصف آن قابلیت پشتیبانی lcd رو داشتند.البته با تغییر در کد اون ها می شود این امکان رو فراهم کرد ولی بخاطر این که در صورت تغییر در کد اصلی اون ، در واقع ما یه سیستم عامل جدید داریم و این امکان وجود دارد که برنامه های قابل اجرا که توسط دوستان ما در سراسر دنیا نوشته می شود ، اجرا نشوند ؛پس ما از همین الان اون ها رو کنار می گزاریم و با برنامه هایی که بصورت عادی lcd رو پشتیبانی می کنند مسیر رو ادامه می دهیم.

حال بعد از گزشت از این مسیر ما روی هم شاید با خوشبینی بسیار2-3 تا سیستم عامل داریم .

در ادامه این موضوع پیش می آید که نصفی از این برنامه ها در واقع یه چیزی در حد سیستم عامل داس و خط فرمان هستند !!! و در واقع فقط 1 عدد سیستم عامل با پلتفرم میکرو کنترلر و اینترفیس گرافیکی وجود دارد.

1-سیستم عامل Contiki :

امکانات:
Multitasking kernel
Optional per-application pre-emptive multithreading
Protothreads
TCP/IP networking, including IPv6
Windowing system and GUI
Networked remote display using Virtual Network Computing
A web browser (claimed to be the world's smallest)
Personal web server
Simple telnet client
Screensaver
 
بالا