اطلاعیه

Collapse
No announcement yet.

اجرای دستورات ذخیره شده در mmc توسط میکروی avr

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

    اجرای دستورات ذخیره شده در mmc توسط میکروی avr

    سلام به دوستان مهندس

    من چندوقته دارم روی این موضوع فکر میکنم که آیا میشه دستورات اسمبلی که توسط میکروی avr قابل اجراست رو روی یک رام خارجی یا مثلا یک mmc ذخیره کرد و به میکرو حالی کرد که دستورات ذخیره شده روی اون رو به ترتیب اجرا کنه. اگه بشه این کار کرد میشه خیلی کارای جالبی انجام داد؟

    لطفاً هرکسی اگه راه حلی به نظر میرسه رو اعلام کنه .....

    #2
    پاسخ : اجرای دستورات ذخیره شده در mmc توسط میکروی avr

    دوست من من هم تو همین فکر هستم
    بیایم یه بوت لودر با فایل منیجیر بنوسیم ، بعد فایل Hex رو که تو MMC هست رو بیاد لود کنه تو حافظه Flash و اجرا کنه و وقتی که Exit می زنیم اون صفحه رو که تو فلش نوشته پاک کنه
    این کار نیازمند دانش بالایی از Assembly هست ...
    چون صفحه نمایش و یه سری مخلفات نیاز داری نمیتونی 2 بار 2بار کانفیگ کنی ، و باید از آدرس های ساب روتین ها که در بوت لودر نوشتی استفاده کنی
    این طرح شما هم میبایست بیای یه کامپایلر بنویسی که این سرعت کهکشونی AVR
    2 روز کامپایلش طول میکشه
    پس همون HEX بهتره
    دلا خو کن به تنهایی که از تنها بلا خیزد

    دیدگاه


      #3
      پاسخ : اجرای دستورات ذخیره شده در mmc توسط میکروی avr

      انجام این کار خیلی راحته :NO:
      میدانید avr memory map چیه ؟

      تنها موردي كه همه آدما يقين دارن خدا در حقش زیاد لطف کرده
      داشتن عقله زيادتر از دیگر آدم ها است

      دیدگاه


        #4
        پاسخ : اجرای دستورات ذخیره شده در mmc توسط میکروی avr

        تبدیل مموری کارت های mmc و sd به حافظه اجرایی میکروکنترلر

        نویسنده : علی تروشه

        منبع : http://electrorc.blogfa.com

        دانلود : http://www.mediafire.com/?rx0g7jyje7oy7yb

        موفق باشید

        دیدگاه


          #5
          پاسخ : اجرای دستورات ذخیره شده در mmc توسط میکروی avr

          نوشته اصلی توسط aliila
          انجام این کار خیلی راحته :NO:
          میدانید avr memory map چیه ؟

          اگه میشه یکم توضیح بدی ممنون میشم

          دیدگاه


            #6
            پاسخ : اجرای دستورات ذخیره شده در mmc توسط میکروی avr

            نوشته اصلی توسط soltanisoft
            اگه میشه یکم توضیح بدی ممنون میشم
            متاسفانه لب تاب من پورت lpt نداره بنا براین بصورت نظری کمکت میکنم
            یک میکرو فضای حافظه داره که این فظا زیر نظر alu است و از طر دیگه با تکنیک dma و سایر تکنیک ها این فضا در اختیار تمام دیوایس های جانبی از جمله پورت ها و a2d و ..- در مورد avr حتی ریجستر های همه منظوره -از یک آدرس شروع میشه و چندتا بایت اشغال میکنه - در مورد avr هشت بیتی است-
            یک قسمت از فضای حافظه e2prom است که محل ذخیره پ کد ها است .
            شما به یک کد در میکرو نیاز دارید که این فضای e2prom رو از mmc و حتی فلاپی درایو رو بخونه و در آدرس باقی مانده e2prom بنویسه . و فقط کافی به اون آدرس پرش کنی وسلام

            تنها موردي كه همه آدما يقين دارن خدا در حقش زیاد لطف کرده
            داشتن عقله زيادتر از دیگر آدم ها است

            دیدگاه


              #7
              پاسخ : اجرای دستورات ذخیره شده در mmc توسط میکروی avr

              نوشته اصلی توسط aliila
              متاسفانه لب تاب من پورت lpt نداره بنا براین بصورت نظری کمکت میکنم
              یک میکرو فضای حافظه داره که این فظا زیر نظر alu است و از طر دیگه با تکنیک dma و سایر تکنیک ها این فضا در اختیار تمام دیوایس های جانبی از جمله پورت ها و a2d و ..- در مورد avr حتی ریجستر های همه منظوره -از یک آدرس شروع میشه و چندتا بایت اشغال میکنه - در مورد avr هشت بیتی است-
              یک قسمت از فضای حافظه e2prom است که محل ذخیره پ کد ها است .
              شما به یک کد در میکرو نیاز دارید که این فضای e2prom رو از mmc و حتی فلاپی درایو رو بخونه و در آدرس باقی مانده e2prom بنویسه . و فقط کافی به اون آدرس پرش کنی وسلام
              والا تا اون جایی که من یادم میاد avr فقط میتونست از روی فلش خودش بوت بشه.حتی جایی هم ندیدم که بشه از روی رمش بشه بوتش کرد.
              جدا از همه این ها دسترسی داشتن alu چه ربطی به بوت شدن داره؟ گرچه که اگر هم داشت alu در avr فقط به 32 رجیستر working دسترسی داره!
              اگر قرار باشه هر سری که سیستم روشن میشه روی eeprom نوشته بشه که عمر سیستم....
              معقول ترین روش همون روشی هست که تو پست 2 گفتند. به این صورت که هر دفعه فلش سیستم توسط یه بوت لودر پدیت بشه که تو این روش هم عمر سیستم به شدت کم میشه اما حداقل شدنی هست!
              روش بهتر استفاده از لایه نرم افزاری هست که کد ها رو اجرا کنه مثل سیستم آقای تروشه. اشکال این روش کند بودنش هست فقط.
              اگر روش کار به همین سادگی بود که رو AVR ویندوز بالا میاوردند!!
              [img width=477 height=100]http://www.eca.ir/pic/upload/agazade.png[/img]

              دیدگاه


                #8
                پاسخ : اجرای دستورات ذخیره شده در mmc توسط میکروی avr

                نوشته اصلی توسط shahinbahari
                دسترسی داشتن alu چه ربطی به بوت شدن داره؟
                میشه بگید چرا این سوال رو پرسیدد ؟ من تا حالا میکرو کنترلر طراحی نکردم . شاید حرف شما درست باشه مثلا شاید هم حافظه به عنوان نوسان ساز به alu کمک میکنه ؟




                نوشته اصلی توسط shahinbahari
                روش بهتر استفاده از لایه نرم افزاری هست که کد ها رو اجرا کنه
                یعنی منظورتون اینه که بیایم در حداکثر 128 کیلو بایت مفسر - کامپایلر - بنویسیم ؟ آقای تروشه که فقط کار با mmc رو توضیح میداد .فقط عنوانش مرتبط با این موضوع بود .

                راجب عمر سیستم هم بگم فقط کافیه یک بار بنویسه دیگه تو حافظه میمونه

                کلا کجاش مشکل داره بگید تا دقیق تر توضیح بدم
                تنها موردي كه همه آدما يقين دارن خدا در حقش زیاد لطف کرده
                داشتن عقله زيادتر از دیگر آدم ها است

                دیدگاه


                  #9
                  پاسخ : اجرای دستورات ذخیره شده در mmc توسط میکروی avr

                  نوشته اصلی توسط aliila
                  میشه بگید چرا این سوال رو پرسیدد ؟ من تا حالا میکرو کنترلر طراحی نکردم . شاید حرف شما درست باشه مثلا شاید هم حافظه به عنوان نوسان ساز به alu کمک میکنه ؟

                  دلیل اینکه اینکه پرسیدم همین ربط حافظه به نوسان ساز بود! ALU واحد منطق و ریاضیات مگه نیست؟ اینکه این واحد ورودیش رو از کجا بگیره ربطی تو روال بوت شدن نداره. واحدی که دستورات رو fetch میکنه باید دسترسی داشته باشه. حالا اگه دستور مربوط به عملی بود که به alu مربوط بود بهش میگه برو از اون جاهایی که دسترسی داری فلان کار رو انجام بده. تا وقتی دستور fetch نشده ALU هیچ نقش خاصی رو بازی نمیکنه.
                  یعنی منظورتون اینه که بیایم در حداکثر 128 کیلو بایت مفسر - کامپایلر - بنویسیم ؟ آقای تروشه که فقط کار با mmc رو توضیح میداد .فقط عنوانش مرتبط با این موضوع بود .

                  راجب عمر سیستم هم بگم فقط کافیه یک بار بنویسه دیگه تو حافظه میمونه

                  کلا کجاش مشکل داره بگید تا دقیق تر توضیح بدم
                  شما یه ماشین مجازی برای دستورات اسمبلی میکرو مینویسید یه کاری شبیه پروژه JVM .کاربرد jvm هم که فکر کنم لازم نیست توضیح بدم.
                  من ندیدم این فایلی که گزاشتند چی توش هست اما یادم هست فیلمی که گزاشته بودند از کارشون به این شکل بود که دستورات رو خارج از فلش سیستم اجرا میکرد.من منظورم خود پروژه هست نه آموزشی که هست.
                  در مورد اینکه میگید 1 بار پروگرم میشه, خوب اگه کل برنامه تو حافظه فلش جا میشه چه نیازی هست این همه ماجرا؟ بوت لودر هایی که از برنامه رو از هرجایی رو میکرو پروگرم میکنند که فراوون تو نت هست.
                  حرف شما ( تو اون قسمتی که مموری مپ رو گزاشته بودید و قسمتی که گفتید فقط 1 بار نیاز به پروگرم هست) برای وقتی که قراره برنامه پدیت بشه و بحث بوت لودر و این حرفا کاملا درست هست. یه برنامه تو قسمت بوت میزاریم که فایل رو از هرجا که میخوایم بخونه و اونو به ترتیب روی فلش (قسمت اپلیکشن) بنویسه. این رو من هم تایید میکنم ولی دوستمون منظورش این هست برنامه مستقیم از روی مموری جدا اجرا بشه. مثل معماری x86 که میتونه مستقیم از روی حافظه بوت شه!
                  فکر کنم این که 2 تا چیز مختلف رو بیان میکنیم نتیجه هاش باهم تضاد دارند. شما با این دید که میکرو میخواد دستور رو مستقیم از مموری اجرا کنه به قضیه نگاه کنید,متوجه منظورم میشید.
                  [img width=477 height=100]http://www.eca.ir/pic/upload/agazade.png[/img]

                  دیدگاه


                    #10
                    پاسخ : اجرای دستورات ذخیره شده در mmc توسط میکروی avr

                    نوشته اصلی توسط shahinbahari

                    فکر کنم این که 2 تا چیز مختلف رو بیان میکنیم نتیجه هاش باهم تضاد دارند. شما با این دید که میکرو میخواد دستور رو مستقیم از مموری اجرا کنه به قضیه نگاه کنید
                    هر دوتا مبحث به نوبه خود مهم و کاربردی است .البته بهتره نویسنده مشخص کنه منظورش کدوم یک است .
                    برای مورد که کمبود حافضه فلش داریم و حجم برنامه زیاد میشه هم میشه یک کارهایی کرد.
                    مشه کدها رو بصورت دسته های مثلا 200 بایتی از رو حافظه سریال خارجی خوند و رو sram نوشت و بعد بقیه ماجرا رو دنبال کرد .البته کاربرد sram برای پشته و متغیر ها است ولی چون sram به اندازه 1024 بایت است پس میشه 200 بایتشو برداشت.
                    تنها موردي كه همه آدما يقين دارن خدا در حقش زیاد لطف کرده
                    داشتن عقله زيادتر از دیگر آدم ها است

                    دیدگاه


                      #11
                      پاسخ : اجرای دستورات ذخیره شده در mmc توسط میکروی avr

                      نوشته اصلی توسط aliila
                      مشه کدها رو بصورت دسته های مثلا 200 بایتی از رو حافظه سریال خارجی خوند و رو sram نوشت و بعد بقیه ماجرا رو دنبال کرد .البته کاربرد sram برای پشته و متغیر ها است ولی چون sram به اندازه 1024 بایت است پس میشه 200 بایتشو برداشت.
                      این کار که منطقی نیست چون اگه در 200 بایت بعدی دستوری باشه که بخواد پرش کنه به یه دستوری در بایت های قبلی که دیگه تو برنامه نیست چطور ؟

                      اصلاً بهتره بگم آدرسها دستورات به این روش به هم میخوره آخه توی شرطها و پرشها آدرس دستورات توی حافظه خیلی مهمه .... این روش به نظر من اصلاً به هیچ عنوان منطقی و اجرایی نیست ...

                      دیدگاه


                        #12
                        پاسخ : اجرای دستورات ذخیره شده در mmc توسط میکروی avr

                        نوشته اصلی توسط soltanisoft
                        این کار که منطقی نیست چون اگه در 200 بایت بعدی دستوری باشه که بخواد پرش کنه به یه دستوری در بایت های قبلی که دیگه تو برنامه نیست چطور ؟

                        اصلاً بهتره بگم آدرسها دستورات به این روش به هم میخوره آخه توی شرطها و پرشها آدرس دستورات توی حافظه خیلی مهمه .... این روش به نظر من اصلاً به هیچ عنوان منطقی و اجرایی نیست ...
                        مساله این نیست که آدرس های دیگه در حال حاضر توی رم نیست! مثل خوندن یه فایل بزرگ به وسیله یه بافر 512 بایتی ( همون سیستمی که تو mmc برای خوندن استفاده میشد ) هست. اگه نیاز به پرش بود اطلاعات مربوط به اون قسمتی که آدرس مورد نیاز هست توی بافر لود میشه. اگر چه سیستم کند میشه اما میشه.
                        البته مورد اجرا شدن از روی رم به طور مستقیم که تو این میکرو شدنی نیست اما با لایه نرم فزاری کارایی میشه کرد....
                        [img width=477 height=100]http://www.eca.ir/pic/upload/agazade.png[/img]

                        دیدگاه


                          #13
                          پاسخ : اجرای دستورات ذخیره شده در mmc توسط میکروی avr

                          نوشته اصلی توسط soltanisoft
                          من چندوقته دارم روی این موضوع فکر میکنم که آیا میشه دستورات اسمبلی که توسط میکروی avr قابل اجراست رو روی یک رام خارجی یا مثلا یک mmc ذخیره کرد و به میکرو حالی کرد که دستورات ذخیره شده روی اون رو به ترتیب اجرا کنه. اگه بشه این کار کرد میشه خیلی کارای جالبی انجام داد؟

                          لطفاً هرکسی اگه راه حلی به نظر میرسه رو اعلام کنه .....
                          این پست را ببینید:

                          http://www.eca.ir/forum2/index.php?t...5918#msg205918
                          اوژن: به معنای افکننده و شکست دهنده است
                          دانایی، توانایی است-Knowledge is POWER
                          برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                          وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                          قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                          اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                          ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                          دیدگاه


                            #14
                            پاسخ : اجرای دستورات ذخیره شده در mmc توسط میکروی avr

                            سلام دوستان
                            من توی وب داشتم درمورد برنامه نویسی emulator برای بازی های قدیمی nes جستجو می کردم که به یکسری مطالب برخورد گفتم شاید بشه از این روش برای کارمون استفاده کرد

                            خوب برای برنامه نوسی یک شبیه ساز کنسول می بایست به دستورات اسمبلی پردازنده آن کنسول و نحوه اجرای آن دستورات کاملاً مسلت بود...
                            بعد از تسلت می بایست تمام وقفه ها و رجیسترها را به صورت مجازی و نرم افزاری پیاده سازی کرد و سپس دستورات رام بازی را به ترتیب Decode - fetch و اجرا کرد...

                            این یکسری کلیات از روند کار شبیه سازهای بازی می باشد.

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

                            من که الان یک سورس در مورد برنامه نویسی کنسول بازی گیر آوردم :wow: و خوب بررسیش میکنم و بعد از اینکه تونستم خودم کنسول رو بنویسیم ( واسه ویندوز ) میرم سراغ اینکه اون رو سخت افزاری پیاده سازی کنم.

                            حالا نظر شما دوستان چیه ؟ آیا این روش رو میشه اجرایی کرد ؟

                            دیدگاه


                              #15
                              پاسخ : اجرای دستورات ذخیره شده در mmc توسط میکروی avr

                              نوشته اصلی توسط soltanisoft
                              سلام دوستان
                              من توی وب داشتم درمورد برنامه نویسی emulator برای بازی های قدیمی nes جستجو می کردم که به یکسری مطالب برخورد گفتم شاید بشه از این روش برای کارمون استفاده کرد

                              خوب برای برنامه نوسی یک شبیه ساز کنسول می بایست به دستورات اسمبلی پردازنده آن کنسول و نحوه اجرای آن دستورات کاملاً مسلت بود...
                              بعد از تسلت می بایست تمام وقفه ها و رجیسترها را به صورت مجازی و نرم افزاری پیاده سازی کرد و سپس دستورات رام بازی را به ترتیب Decode - fetch و اجرا کرد...

                              این یکسری کلیات از روند کار شبیه سازهای بازی می باشد.

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

                              من که الان یک سورس در مورد برنامه نویسی کنسول بازی گیر آوردم :wow: و خوب بررسیش میکنم و بعد از اینکه تونستم خودم کنسول رو بنویسیم ( واسه ویندوز ) میرم سراغ اینکه اون رو سخت افزاری پیاده سازی کنم.

                              حالا نظر شما دوستان چیه ؟ آیا این روش رو میشه اجرایی کرد ؟
                              سلام
                              هم جاوا و هم پروژه آقای تروشه کاری شبیه به این انجام میدن و قابل اجراست
                              ;()((void (*)(void))0x0000))

                              دیدگاه

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