اطلاعیه

Collapse
No announcement yet.

سوالاتی در مورد حافظه ی میکرو stm32

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

    سوالاتی در مورد حافظه ی میکرو stm32

    سلام .
    میکرو کنترل ای وی ار یک حافظه ی فلش داشت که برنامه ما از ادرس صفر درونش قرار می گرفت
    امـــــا در میکرو کنترل های آرم به این صورت نیست memory architecture تصور زیر را ببینید

    حافظه ی فلش از ادرس 0x0800-0000 شروع می شود و ما انتظار داریم کد برنامه در این ادرس به بعد باشد . چون استک پوینتر به این ادرس اشاره میکند (حد اقل در میکرو ای وی ار این بود )
    اما در کمال ناباوری ادرس شروع برنامه ها از ادرس 0x08000188 شروع می شود
    کسی می تواند در این رابطه نظری بدهد

    #2
    پاسخ : سوالاتی در مورد حافظه ی میکرو stm32

    نوشته اصلی توسط antipa نمایش پست ها
    سلام .
    میکرو کنترل ای وی ار یک حافظه ی فلش داشت که برنامه ما از ادرس صفر درونش قرار می گرفت
    امـــــا در میکرو کنترل های آرم به این صورت نیست memory architecture تصور زیر را ببینید

    حافظه ی فلش از ادرس 0x0800-0000 شروع می شود و ما انتظار داریم کد برنامه در این ادرس به بعد باشد . چون استک پوینتر به این ادرس اشاره میکند (حد اقل در میکرو ای وی ار این بود )
    اما در کمال ناباوری ادرس شروع برنامه ها از ادرس 0x08000188 شروع می شود
    کسی می تواند در این رابطه نظری بدهد
    سلام
    اگر اشتباه نکنم چند بایت اول فلش به بردار وقفه اختصاص داره.

    دیدگاه


      #3
      پاسخ : سوالاتی در مورد حافظه ی میکرو stm32

      نوشته اصلی توسط hossein.m98 نمایش پست ها
      سلام
      اگر اشتباه نکنم چند بایت اول فلش به بردار وقفه اختصاص داره.

      این بردار وقفه ی مکرو stm32f407 هست ادرس صفر هیچی نیست چرا . مگه این میکرو ها بعد از ریست شدن از ادرس صفر شروع نمی کنن به اجرا ی برنامشون ؟
      یه سوال دیگه انتهای بردار وقفه ادرس 0184 هست تصویر پایین . در صورتی که برنامه از ادرس 0188 شروع شده چــــرا ؟

      دیدگاه


        #4
        پاسخ : سوالاتی در مورد حافظه ی میکرو stm32

        نوشته اصلی توسط antipa نمایش پست ها

        این بردار وقفه ی مکرو stm32f407 هست ادرس صفر هیچی نیست چرا . مگه این میکرو ها بعد از ریست شدن از ادرس صفر شروع نمی کنن به اجرا ی برنامشون ؟
        یه سوال دیگه انتهای بردار وقفه ادرس 0184 هست تصویر پایین . در صورتی که برنامه از ادرس 0188 شروع شده چــــرا ؟
        اینکه چیو از کجا شرو کنه و اینا، به دلخواه شرکت سازنده الزامی نیست.
        پس میتونه آدرس صفر حافظه رو reserve نگه داره.
        از طرفی حافظه ی میکرو، byte addresable ه. به همین دلیل، از اونجا که باید وکتور ها و رجیستر ها 32 بیتی باشن، ولی آدرس دهی 8 بیتیه، برای همین جدول وکتور ها رو هم نیگا کنید میبینید 4 تا 4 تا پریده. آخرین وکتور از 184 شرو میشه. بعدش 185، 186، 187 و بعد تموم میشه. 188 شروع فلشه
        Si vis pacem, para bellum

        دیدگاه


          #5
          پاسخ : سوالاتی در مورد حافظه ی میکرو stm32

          نوشته اصلی توسط tiranoid نمایش پست ها
          اینکه چیو از کجا شرو کنه و اینا، به دلخواه شرکت سازنده الزامی نیست.
          پس میتونه آدرس صفر حافظه رو reserve نگه داره.
          از طرفی حافظه ی میکرو، byte addresable ه. به همین دلیل، از اونجا که باید وکتور ها و رجیستر ها 32 بیتی باشن، ولی آدرس دهی 8 بیتیه، برای همین جدول وکتور ها رو هم نیگا کنید میبینید 4 تا 4 تا پریده. آخرین وکتور از 184 شرو میشه. بعدش 185، 186، 187 و بعد تموم میشه. 188 شروع فلشه
          ممنون از پاسخ تون
          پس اگه بخوام با اسمبلی کد بزنم ادرس شروع را چی بزارم به این ادرس نگاه کنید

          در این مورد اطلاعی دارد ؟

          دیدگاه

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