اطلاعیه

Collapse
No announcement yet.

سیستم عامل برای میکروکنترلرها

Collapse
X
 
  • Filter
  • زمان
  • Show
Clear All
new posts

  • سیستم عامل برای میکروکنترلرها

    این چند وقت که شبگرد دان بود وقت کردیم یخورده به کارهای جدید برسیم
    توی این مدت تونستم یکی دوتا سیستم عامل کم حجم را روی میکروکنترلر های 8 بیت avr پورت کنم
    پیرو بحث : http://shabgard.org/forums/showthread.php?t=21068

    که ادامه مطلب از سایتهایی که مطالب را خودم قبلا توشون نوشتم :



    این چند وقت فکرم مشغول سیستم عاملهای بلادرنگ برای میکروکنترلرها بوده
    کلا مبحثهای RTOS و پورت کردن و این دری وریا...
    امروز هم مطالبق معمول دنبال این بحث میسرچیدم ، قاطی نمونه های مختلفی که این چند وقت دیدم مثل :
    http://www.barello.net/avrx/avrx.htm
    http://picoos.sourceforge.net
    http://www.freertos.org
    http://www.lancos.com
    http://www.tinyos.net


    ظاهرا یک os درست کردن به قول خودشون سبکترین os موجود دنیا هست گفتم شروع کنیم به آنالیز سورس هاش و تکمیل شکل ظاهری اون به عنوان یک پروژه قابل فهم به زبان ساده برای خودمون و نسل آینده
    این پروژه به اسم فمتو هست روی سایت http://www.femtoos.org

    یکی دیگه از دلایلی که اینو انتخاب کردم که با هم شروع کنیم کار گروهی برای فهم کارکردش اینه که برای خانواده Atmega طراحی شده ( غیر از سبک بودن )
    مثال های ساده داشت ( روشن کردن LED )
    مدار جانبی خاصی نیاز نداره ( مثل این os هایی که برای Arm زدن و نیاز داره حتما EVal board هاشون به نا به تعریف استاندارد کشیده بدن و قطعات حتما باشن و الا سیستم عامل کرش میکنه و سورس کدهای حجیم و .. .... )


    (اینقدر هیچی نیاز نداره که نمونه اولیه اش برای خالی نبودن عریضه به همراه پروگرامر usbasp ساختن Biggrin )
    فایلهاش روی سورس فورج بود که به علت بسته بودن ip های ایران همینجا آخرین نسخه اش را ضمیمه میکنم.

    خلاصه فعلا یه نگاه کلی به سایتش بندازین ، تا بعد شروع کنیم از یه جائیش بریم جلو...
    پیوست : شروع به قول خودش هم اینطوریه :
    http://www.femtoos.org/code_start.html

    ادامه :

    خب بلاخره امشب تونستم helloword مثال خودش را روی یک فروند atmega16 پورت کنم
    خاک تو اون سر نویسندش ، حداقل مثال میزاره درست بزاره
    مواد لازم :
    AvrStudio
    http://www.atmel.com/dyn/resources/p...udio4Setup.exe
    به حجم 116 مگ ( دهنتون سرویس میشه سر دانلودش، هاها ها )

    WinAvr آخرین نسخه
    به علت محدودیت ip روی SF از لینک زیر آخرین نسخه اش را دانلود کنید:
    http://www.mirrorservice.org/sites/d...10-install.exe
    به حجم 27 مگا بایت

    خب اصل فمتو هم که توی پست بالا ضمیمه کردم ، آنزیپ میکنید
    بریم سر اصل مطلب یعنی ساخت اولین مثال
    توی شاخه Install_******s\avrstudio یک فایل تمپلیت هست مخصوص avrStudio که نویسنده شاسکول این فمتو درست آدرس دهی نکرده دیگه ، ...
    همینجا میتونید فایلها را آدرس دهی کنید
    کد:
    <SOURCEFILE>..\..\MainCode\demos_source\code_TestHelloWorld.c</SOURCEFILE>
    <HEADERFILE>..\..\MainCode\demos_headers\config_TestHelloWorld.h</HEADERFILE>
    این ..\..\MainCode\ را بعضی جاهاش نزاشته که باید بزارید یا مستقیم روی فایلها کلیک کنید تا آدرس روی هارد شما به اون اسم فایلها اختصاص پیدا کنه.

    البته پیشنهاد میکنم این تمپلیت
    project_template
    ترجیحا پسوندش را هم بزارید .aps که دیگه با یک کلیک روش خود avrstudio بازش کنه
    بعد هم منو Build و فایل hex را توی شاخه ای به اسم standard میتونید داشته باشید که وقتی بریزید روی میکروکنترلر میشه یک سیستم عامل روی میکروکنترل 8بیتی avr
    نکته : ایت تمپلیت مال mega8 هست ، میتونید روی اسم پروجکت توی avrstudio رایت کلیک کنید و مدل میکرو و فرکانس و و.... عوض کنید


    ادامه :

    امشب یک راس گوسفند زنده FreeRTOS را روی میکرو mega32 پورت کردم

    فعلا با AVR STudio مشکل دارم و الا توضیحات کاملتر مینوشتم

    ادامه :

    خب مراحل استفاده از AVR STudio برای کامپایل و گرفتن خروجی یک فایل hex به عنوان یک سیستم عامل چند وظیفه ای بر روی یک میکروکنترلر ATMEGA بدون نیاز به وسایل جانبی خاص
    فایل FreeRTOS الان آخرین نسخه اش 6.0.5 هست بعد از دانلود و اکستراکت یک شاخه demo داره که میتونید واردش بشید و بگردید دنبال فولدری که لازم دارید
    ما اینجا برای شروع کار با اتمگا دنبال فولدری به اسم : AVR_ATMega323_WinAVR
    توجه کنید که برای کامپایلر IAR هم فولدی جدا هست...

    پس مراحل کار به صورت کلی :
    1- دانلود FreeRTOS
    2- دانلود کامپایلر WinAVR
    3- دانلود نرم افزار AVRSTUDIO
    4- اکستراکت فایل FreeRTOS ( ترجیحا در یک فولدی که توی اسمش فاصله به کار نرفته باشد مثلا اینطوری C:\program--Files\ xyz نباشد

    5- ساخت یک پروجکت جدید در avrstudio
    6- اضافه کردن فایلهای زیر به کنار فایل اصلیتون
    با کلیک رایت و استفاده از گزینه
    کد:
    c:\FreeRTOS\Source\croutine.c
    c:\FreeRTOS\Source\list.c
    c:\FreeRTOS\Source\queue.c
    c:\FreeRTOS\Source\tasks.c
    
    c:\FreeRTOS\Source\portable\MemMang\heap_1.c
    توجه کنید که این دوتافایل توی فولدر پرتابل هستند و آدرس دهی مستقیم رجیسترها در فایل دوم انجام میشوند( البته کاری به کارش نداشته باشید)
    c:\FreeRTOS\Source\portable\GCC\ATMega323\port.c
    7- اضافه کردن آدرس path فایلهای هدر اصلی
    کد:
    c:\Embedded\FreeRTOS\Source\include\
    c:\Embedded\FreeRTOS\Source\
    c:\Embedded\FreeRTOS\Source\portable\GCC\ATMega323\
    8- و نوشتن برنامه
    9- حسش بود لیست توابع و کارکردهاشون و نحوه نوشتن یک برنامه مولتی تسک به واسطه این سیستم عامل را براتون میزارم... حسش هم نبود حقتونه که نمیاین کمک ...
    10 - برای تست برنامه Demo همراه فایلهای اصلی کافیه روی پایه های PortB میکروکنترلر LED وصل کنید تا نمونه چشمک زن اون را ببینید

  • #2
    یک مقاله فارسی در رابطه با سیستم عامل FReeRTOS برای میکرو Atmega32
    http://www.bohlooli.ir/msc/rtos.pdf

    وجهت اطمینان همینجا هم ضمیمه اش میکنم.
    فایل های پیوست شده

    Comment


    • #3







      Comment


      • #4
        سلام لطفاً لینک رو اصلاح کنید
        http://www.atmel.com/dyn/resources/p...udio4Setup.exe

        edited:
        تشکر ، اصلاح شد
        به اميد ايراني با شكوه تر

        Comment


        • #5
          جالب بود !
          اما avr چيه كه آدم بياد باهاش اين كارا رو كنه !!
          حالا arm بود يه چيزي !
          ولي جالب بود ! من كه تا به حال نديده بودم

          sigpic

          Knowledge Is Power
          قبل و بعد از فاجعه ژاپن !
          کد:
          http://www.liberation.fr/seisme-japon-mars-2011-avant-apres.html

          Comment

          Working...
          X