اطلاعیه

Collapse
No announcement yet.

استفاده از mmc به صورت حافظه اجرایی

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    استفاده از mmc به صورت حافظه اجرایی

    سلام
    منظور از حافظه اجرایی :
    میخوام که یه برنامه اصلی( شامل تعریف چند تا تابع هست)رو میکرو پروگرم کنم
    و بعد یه سری دستورات رو به صورت txt
    تو ام ام سی بریزم و بعد با میکرو اطلاعات ام ام سی رو بخونم تا میکرو اون دستورات داخل mmc(که به صورت تابع هستند) رواجرا کنه

    مثلا فرض بکنید که میام تو برنامه اصلی یه تابع {void led( ){PORTA=0b00
    خوب حالا تو mmc یه متن ( ) void led رو به صورت فایل تکست (txt) ذخیره میکنیم حال میخواهیم پس از ارتباط میکرو و mmc فایل txt خوانده شود و اجرا شود یعنی بعد اتصال mmc پورت A در سطح منطقی 1 قرار گیرد
    این کار شدنیه؟؟؟؟
    لطفــــــــــــــــــــــــــــــــــــــــــا راهنمایی کنــــــــــــــــــــــــــــــید
    زندگی یه محیط برنامه نویسیه که خودمون برنامشو مینویسیم
    و هر لحظه امکان فشار روی کلیک run هست
    پس ریسک نکنین خط به خط برنامتون رو چک بکنید چون شاید دیگه فرصت دباگ کردن برنامه رو نداشته باشید.
    الهم اغفر لنا ذنوبنا

    #2
    پاسخ : استفاده از mmc به صورت حافظه اجرایی

    سلام
    شما برای این کار باید یک آنالیزور متن در میکرو پیاده سازی کنید. متن رو از mmc میخونید و اسکن میکنید. هرجا به توابع مورد نظرتون رسیدید تابع مورد نظر رو اجرا میکنید.
    بهتره برای ساده تر کردن کار یک سری قوانین نگارشی (syntax) داشته باشید. مثل زبان های برنامه نویسی
    موفق باشید
    Work with what you have .Never limit yourself by things you could have had

    دیدگاه


      #3
      پاسخ : استفاده از mmc به صورت حافظه اجرایی

      jh_topgraph جان مشکل همینه
      نمیدونم این آنالیزور رو چطوری باید طراحی کنم
      برنامه آنالیزور باید به چه شکل باشه اون وقت نیازی به بوت نیست؟
      مثلا اگه میشد یه جورایی میکرو نوشته ها mmc رو داخل حلقه while کپی میکرد یا ...
      بالاخره باید راهی باشه

      *****
      پس واسم این سوال پیش اومده که این تابلو روان هایی که با فلش یا mmc کار میکنن چطوریاست؟

      زندگی یه محیط برنامه نویسیه که خودمون برنامشو مینویسیم
      و هر لحظه امکان فشار روی کلیک run هست
      پس ریسک نکنین خط به خط برنامتون رو چک بکنید چون شاید دیگه فرصت دباگ کردن برنامه رو نداشته باشید.
      الهم اغفر لنا ذنوبنا

      دیدگاه


        #4
        پاسخ : استفاده از mmc به صورت حافظه اجرایی

        منظور شما از بوت چیه؟ اگر منظورتون سیستم عامل هست نه نیازی نیست.
        شما فایل متن داخل MMC رو چه طور ذخیره کردید؟ اگر فرمت سیستم فایل شما FAT16 باشه باید با استفاده از توابع خاص همین سیستم فایل به فایل مورد نظر دسترسی پیدا کنید. توابع اون شبیه به توابع FILE IO در C هست (باز کردن فایل، بستن فایل و ...) بعد از اینکه فایل رو باز کردید میتونید محتویات اون رو اسکن کنید (مثلا با استفاده از fscanf() )
        اون تابلو روان ها داده های باینری تابلو رو تو خودشون دارند (مثلا 1 یعنی led روشن و 0 یعنی خاموش) ممکنه داده ها به طور عادی در mmc ذخیره شده باشه و یا با همون سیستم فایلی که گفتم
        موفق باشید
        Work with what you have .Never limit yourself by things you could have had

        دیدگاه


          #5
          پاسخ : استفاده از mmc به صورت حافظه اجرایی

          نمیدونم من منظورمو خوب نگفتم یا شما متوجه اون نمیشید
          خوب حالا بر فرض که اسکن بکنه حالا اون کاراکترا چطوری تبدیل بشه به برنامه اجرایی داخل ای سی
          کسی از دوستان اگه میدونه با مثال توضیح بده
          زندگی یه محیط برنامه نویسیه که خودمون برنامشو مینویسیم
          و هر لحظه امکان فشار روی کلیک run هست
          پس ریسک نکنین خط به خط برنامتون رو چک بکنید چون شاید دیگه فرصت دباگ کردن برنامه رو نداشته باشید.
          الهم اغفر لنا ذنوبنا

          دیدگاه


            #6
            پاسخ : استفاده از mmc به صورت حافظه اجرایی

            آقا شما چرا گیر دادی به برنامه اجرایی؟!!
            ببین ما تو یه برنامه هم داده داریم هم دستور. داده های ثابت شما در هر جا میتونه ذخیره بشه فقط باید غیر فرار باشه.
            مثلا دستور زیر رو ببین:
            lcd_puts("www.eca.ir"l
            دستور زیر www.eca.ir رو تو lcd نشون میده. حالا فکر کن من بجای www.eca.ir از یه متغییر استفاده کنم و مقدار اون رو با یه عبارت که از قبل تو mmc ذخیره کردم پر کنم.
            در واقع چیزی که من تو mmc ذخیره کردم دستور نیست یک داده هست که توسط برنامه خودم اونو خوندم و تو lcd نشون دادم.
            در مورد تابلو هم همین اتفاق میافته. این الگو ها هستند که تو mmc ذخیره میشوند و برنامه شما این الگو ها رو میخونه و اونو نشون میده.
            اگر بازم به چیزی که دنبالش بودی نرسیدی بهتره کامل تر توضیح بدی
            موفق باشی
            Work with what you have .Never limit yourself by things you could have had

            دیدگاه


              #7
              پاسخ : استفاده از mmc به صورت حافظه اجرایی

              سلام
              من نیاز به خوندن تابع از روی mmc دارم که میشه همون دستور درسته؟
              یعنی برنامه اجرایی
              ولی خوب با چند تن از اساتید که صحبت شد گفتن این کار شدنی نیست :angry:
              و گفتن باید توابعی که میخوایم رو mmc ذخیره کنیم باید به صورت هگز باشه و از طریق بوت لودر ای سی اونا رو پردازش کرد
              یعنی واقعا اینجا ته خطه؟ :cry2:
              خب اگه نه که راه حل بگین
              واگرم اره خوب من یه نرم افزار برای تبدیل c به هگز [ به غیر کامپایلرا (ترجیخا کم حجم) ] نیاز دارم ؟ چی به نظرتون میتونه مناسب باشه؟

              زندگی یه محیط برنامه نویسیه که خودمون برنامشو مینویسیم
              و هر لحظه امکان فشار روی کلیک run هست
              پس ریسک نکنین خط به خط برنامتون رو چک بکنید چون شاید دیگه فرصت دباگ کردن برنامه رو نداشته باشید.
              الهم اغفر لنا ذنوبنا

              دیدگاه


                #8
                پاسخ : استفاده از mmc به صورت حافظه اجرایی

                نوشته اصلی توسط مجاهد
                سلام
                من نیاز به خوندن تابع از روی mmc دارم که میشه همون دستور درسته؟
                یعنی برنامه اجرایی
                ولی خوب با چند تن از اساتید که صحبت شد گفتن این کار شدنی نیست :angry:
                و گفتن باید توابعی که میخوایم رو mmc ذخیره کنیم باید به صورت هگز باشه و از طریق بوت لودر ای سی اونا رو پردازش کرد
                یعنی واقعا اینجا ته خطه؟ :cry2:
                خب اگه نه که راه حل بگین
                واگرم اره خوب من یه نرم افزار برای تبدیل c به هگز [ به غیر کامپایلرا (ترجیخا کم حجم) ] نیاز دارم ؟ چی به نظرتون میتونه مناسب باشه؟
                کاری که شما میخواهید انجام بدین به این صورتی که گفتین نشدنی هست (اجرای برنامه C از روی مموری به این سادگی گه گفتین امکان پذیر نیست برای این کار شما باید یه چیزی شبیه کدویژن با میکرو پیاده سازی کنین که دوستان هم اشاره کردن)
                راحت ترین کاری که میشه کرد اینه که شما یه بوت لودر بنویسید که یه فایل هگز رو از مموری بخونه و بریزه تو فلش خودش بعدش میکرو برنامه جدید رو از رو فلش خودش اجرا کنه.

                دیدگاه


                  #9
                  پاسخ : استفاده از mmc به صورت حافظه اجرایی

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

                  دیدگاه


                    #10
                    پاسخ : استفاده از mmc به صورت حافظه اجرایی

                    شدنش که میشه اما باید دید که برای چه کاری میخواید و آیا این کار به صرفه هست؟ شما نمیتونید دستورات رو مستقیم از مموری ران کنید چون ساختار حافظه ای میکرو این امکان رو نداره اما با شبیه سازی ممکن میشه. یه سرچ در مورد nano vm بکنید که به همین شکل شبیه سازی کد های جاوا رو روی AVR اجرا میکنه. اینم بگم این جور چیز ها کد های طولانی دارند و به این شکل نیست که خیلی راحت نوشتش. کلی باید زمان گزاشت و روش کار کرد.اما در کل ایده ی جالبی هست.
                    [img width=477 height=100]http://www.eca.ir/pic/upload/agazade.png[/img]

                    دیدگاه


                      #11
                      پاسخ : استفاده از mmc به صورت حافظه اجرایی

                      حرفی که استاد شما زده هم درسته هم غلط!!
                      غلطه چون این کار عملی هست...درسته به همون دلیل که استادتون گفته :biggrin: شما باید کد رو کامپایل کنید و توسط بوت لودر اونو تو حافظه فلش کپی و اجرا کنید

                      اما اگر منظورتون اینه که یه برنامه با c بنویسید بعد اونو (به همان صورت متنی) در MMC ذخیره کنید و توسط میکرو اجرا کنید باید بگم از نظر تئوری بازم درسته :agree:
                      این که چطور میتونه درست باشه به یه مقدمه نیاز داره:

                      ببین ما در مورد کامپایلرها یه پلت فرم میزبان Host Platform داریم و یه پلت فرم هدف Target Platform. مثلا زمانی که شما یه برنامه با VB و برای ویندوز مینویسید در واقع پلت فرم میزبان و پلت فرم هدف یکی هست به این نوع از کامپایلر Native Compiler میگن. اما زمانی که با کدویژن یه برنامه واسه میکرو مینویسید پلت فرم هدف شما میکرو هست. به این نوع کامپایل کردن Cross Compiling و به کامپایلر Cross Compiler میگن. پس در نتیجه برای خوندن برنامه از حافظه و کامپایل اون در میکرو شما به یک Native Compiler در پلت فرم میکروی AVR-Mega نیاز دارید. فقط خاطرت باشه که کد نهایی برای هسته خاصی که همون دستور العمل ها رو ساپورت میکنه قابل اجرا هست.

                      پس در نتیجه شما برای کامپایل کردن برنامه نوشته شده در میکرو احتیاج به نوشتن یه کامپایلر دارید.. پس به همین دلیل گفتم از لحاظ تئوری میشه حالا عملی هم میشه یا نه نمیدونم شاید یکی این کارو کرده باشه

                      برای اطلاعات بیشتر همون اصطلاحات بالا رو گوگل کن...ویکی پدیا هم فراموش نشه!!
                      موفق باشی
                      Work with what you have .Never limit yourself by things you could have had

                      دیدگاه

                      لطفا صبر کنید...
                      X