اطلاعیه

Collapse
No announcement yet.

افزایش فضای code memory (فلش) در SAM7X256

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

    افزایش فضای code memory (فلش) در SAM7X256

    با سلام خدمت دوستان
    با توجه به این موضوع که اکثر میکرو کنترلر ها حافظه flash محدودی دارند ( حد اکثر 512 کیلو بایت) آیا راهی برای استفاده از حافظه flash خارجی وجود داره مثلا اگر حجم برنامه بالای 512 کیلو بایت بشه راهی برای اتصال Flash خارجی و قرار دادن کد برنامه در اون هست
    به دیگران بیاموز تا بتو بیاموزند
    bioosun@gmail.com

    #2
    پاسخ : افزایش فضای code memory (فلش) در SAM7X256

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

    دیدگاه


      #3
      پاسخ : افزایش فضای code memory (فلش) در SAM7X256

      منون از پاسختون راستش من از آرم 7 می خواستم استفاده کنم متوجه شدم که سرس SAM7SE خاصیت NAND Flash دارند اگر امکان داره کمی توضیح بدید که اگر از این قابلیت استفاده کنم می تونم فضای Flash مثلا AT91SAM7SE512 را به 4 مگا بایت افزایش بدم ؟ برای پراگرام کردن در این صورت نکته خاصی وجود داره؟
      به دیگران بیاموز تا بتو بیاموزند
      bioosun@gmail.com

      دیدگاه


        #4
        پاسخ : افزایش فضای code memory (فلش) در SAM7X256

        nand flash بهش وصل میشه اما از روی اون که نمیتونه بوت بشه! توی دیتا شیتش اومده:
        boot either on the ROM (default) or from the
        Flash.
        کلا این که از جایی خارج از چیپ بوت بشه بیشتر تو arm 9 به بالا هست. یه واحد به اسم MMU داخلشون هست که باعث میشه بتونند از چند جا بوت بشند.arm 7 ندیدم که این قابلیت داشته باشه.
        شما بگید مگه چه کار خاصی تو برنامه تون باید انجام بشه که اینقدر حجم فلشی که نیاز دارید بالاست شاید بشه مشکلتون رو خیلی ساده تر حل کرد.
        [img width=477 height=100]http://www.eca.ir/pic/upload/agazade.png[/img]

        دیدگاه


          #5
          پاسخ : افزایش فضای code memory (فلش) در SAM7X256

          از لطف و توجهتون ممنونم دستگاه مورد نظر ما جهت تولید دستگاه دیاگ ماشین هستش هر روز ماشین های تولیدی از ECU های مختلفی استفاده می کنن و هر کدام از اونها برنامه خاص خودشون رو دارن لذا ما باید برای هر ماشین برنامه خاص خودش رو لود کنیم تا اجرا بشه ما چندین بار با این مشکل مواجه شدیم از 8051 به AVR و حالا هم به ARM و همیشه توسعه برنامه و حفظ برنامه های قبلی مشکل ساز بودن در طرح های ما تنها مشکلی که همیشه بروز کرده عدم وجود فضای Flash کافی یوده
          به دیگران بیاموز تا بتو بیاموزند
          bioosun@gmail.com

          دیدگاه


            #6
            پاسخ : افزایش فضای code memory (فلش) در SAM7X256

            تا اونجا که من شنیدم ECU ها با چند تا پروتکول خاص ارتباط برقرار میکنند و قرار نیست که برای هر مدل این قسمت تکرار بشه. به هر حال شما بررسی کنید که آیا تفاوتی که بین مدل های مختلف هست فقط توی پارامتر هاست یا نه؟
            اگر پارامتر های مدل ها با هم فرق کنه برنامه ی کلی رو روی میکرو میریزیم و بهش میگیم این پارامتر ها رو از روی حافظه خارجی بسته به مدل وارد کنه.میشه شبیه همین حالت هایی که مثلا فونت های LCD رو روی حافظه خارجی میریزند تا حافظه اصلی درگیر نشه!
            حالا اگه تفاوت ها فقط تو پارامتر های ثابت نیست و کلا برنامه فرق میکنه کار یکم سخت میشه. شما روی میکرو قسمت فیزیکی رو درایو میکنید و یه قسمت برای اجرای کد در نظر میگیرید. این قسمت کد های اجرایی هر مدل رو اجرا میکنه. در مورد jvm چیزی شنیدید؟ jvm دستورات جاوا ( که با دستورات اصلی پردازنده متفاوت هستند) رو از حافظه میخونه و اجرا میکنه. یه پروژه به اسم nano VM هست که کد های جاوا رو از حافظه خارجی میخونه و روی avr اجرا میکنه!!! انگار میکرو اون فایل خارجی رو داره میخونه و اجرا میکنه:
            http://www.harbaum.org/till/nanovm/index.shtml
            حالا کاری که شما هم باید بکنید شبیه همین هست.یه استاندارد توی برنامه خودتون درست کنید و براساس اون برنامه هر مدل رو تبدیل کنید و روی میکرو اون رو اجرا کنید.کار چندان راحتی نیست اما یه کار واقعا اساسی هست و کاملا مستقل از تعداد مدل ها و حافظه.حتی اگر سرعت پردازش براتون مساله نباشه میتونید با همون avr یا مدل های ساده arm هم کار کنید.
            شما یه بررسی کنید ببینید تفاوت 2 مدل حالت اول هست و یا حالت دوم تا اون رو بیشتر توضیح بدم....
            [img width=477 height=100]http://www.eca.ir/pic/upload/agazade.png[/img]

            دیدگاه

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