اطلاعیه

Collapse
No announcement yet.

ذخیره کردن یک متغیر در یک ادرس خاص از حافظه در keil

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

    ذخیره کردن یک متغیر در یک ادرس خاص از حافظه در keil

    من می خوام یک متغیر رو در یه ادرس خاص از حافظه ذخیره کنم و سپس از همون ادرس مقدار رو بخونم.(محیط برنامه نویسی Keil).
    فکر کنم با پوینترها باید این کارو بکنم.کسی می تونه کمک کنه؟
    می بینیم و نادیده می گیریم!

    #2
    پاسخ : ذخیره کردن یک متغیر در یک ادرس خاص از حافظه در keil

    int var __attribute__((at(0xA0001000))) ; zzz
    var=100;zzz


    این هم یه راهشه!!!

    int *var = (int*)0x40001000;zzz
    *var = 4;


    حواست باشه به var یا مقدار اولیه بده و یا توی مین مقدار بده!
    انجام پروژه هاي برنامه نويسي اندرويد
    [glow=red,2,300]نرم افزار نقشه هاي پاور کامپيوتر اندوريد[/glow]
    http://cafebazaar.ir/app/?id=com.atxdroid

    دیدگاه


      #3
      پاسخ : ذخیره کردن یک متغیر در یک ادرس خاص از حافظه در keil

      من می خوام مقدار خوانده شده از ADC رو با DMA روی SRAM بریزم و سپس از اونجا به USART بفرستم به همین دلیل ممکنه متغیر های قبلی موجود در حافظه پاک بشه.به همین دلیل بایستی متغیرها رو در جایی حارج از فضای استفاده شده برای DMA تعریف کرد.که من می خوام با دستوری که شما بهم گفتین استفاده کنم.
      سوالی که دارم اینه که راه معقول برای چنین مواقعی چیه؟
      راستی اون قسمت دوم رو می شه یه جوری بنویسید که بهم نخوره؟
      اینم نمونه کد نوشته شده:
      کد PHP:
      int var __attribute__((at(0x20001000))) ; 

      int main(void)
      {        
          var=
      0x1234
      می بینیم و نادیده می گیریم!

      دیدگاه


        #4
        پاسخ : ذخیره کردن یک متغیر در یک ادرس خاص از ح&#157

        This example describes how to use ADC coversion and transfer converted data by using DMA
        ADC_DMA

        با cmsis هست حالشوو ببر!!

        int *var = (int*)0x40001000;
        ---*var=200;---
        هرکار میکنم منظم نمیشه بنویس ستاره متغیر مساوی عدد سیمی کالون!
        انجام پروژه هاي برنامه نويسي اندرويد
        [glow=red,2,300]نرم افزار نقشه هاي پاور کامپيوتر اندوريد[/glow]
        http://cafebazaar.ir/app/?id=com.atxdroid

        دیدگاه


          #5
          پاسخ : ذخیره کردن یک متغیر در یک ادرس خاص از حافظه در keil

          نوشته اصلی توسط محسن فاریابی
          This example describes how to use ADC coversion and transfer converted data by using DMA
          ADC_DMA

          با cmsis هست حالشوو ببر!!

          int *var = (int*)0x40001000;
          ---*var=200;---
          هرکار میکنم منظم نمیشه بنویس ستاره متغیر مساوی عدد سیمی کالون!
          ممنون از لطفت.دوست عزیز مشکل من نوشتن کد ها نیست،مشکل من آدرس متغیر بود که با کمک شما حل شد.
          اما یه در خواست شما دایکیومنتی داری که در مورد همین نحوه آدرس دهی و پوینتر و ... باشه می خوام اطلاعات بیشتری کسب کنم.
          می بینیم و نادیده می گیریم!

          دیدگاه


            #6
            پاسخ : ذخیره کردن یک متغیر در یک ادرس خاص از حافظه در keil

            مرجع من

            https://www.google.com/search?client=opera&rls=en&q=how+to+save+v arabel+in+spificate+addres&sourceid=opera& ie=utf-8&oe=utf-8&channel=suggest#hl=en&client=opera&h s=5mY&pwst=1&rls=en&channel=suggest&am p;sclient=psy-ab&q=how+to+save+variable+in++address+keil&amp ;oq=how+to+save+variable+in++address+keil&gs_l =serp.12..35i39.3581.3581.1.5181.1.1.0.0.0.0.378.3 78.3-1.1.0.les%3Befrsh..0.0...1.1.jV9DWPLC0d4&pbx=1 &bav=on.2,or.r_gc.r_pw.r_cp.r_qf.&fp=95a75 dc3f23deba7&bpcl=35466521&biw=1407&bih =744
            انجام پروژه هاي برنامه نويسي اندرويد
            [glow=red,2,300]نرم افزار نقشه هاي پاور کامپيوتر اندوريد[/glow]
            http://cafebazaar.ir/app/?id=com.atxdroid

            دیدگاه


              #7
              پاسخ : ذخیره کردن یک متغیر در یک ادرس خاص از حافظه در keil

              یه سوال دیگه .
              من می خوام کاری کنم که اگه یه متغیر به صورت مثلا int var: تعریف کنم.این متغیر یا متغیر ها در یه فضای مثلا بین 0x20000000 تا 0x20000800 قرار بگیره.(کامپایلر خودش تصمیم بگیره در هر جایی که دوست داره اما فقط در این بازه قرار بگیره).
              این زمانی به درد خواهد خورد که متغیر های درون توابع از پیش ساخته شده یا هدر فایل ها (هر چند این متغیرها Local هستند) اجازه نخواهند داشت در خارج از بازه تعیین شده قرار بگیرند.
              در Keil>Project>Option for targe>Target>readWrite memory address اگه مقدار رم میکرو رو کم کنیم شاید بشه فضای متغیر ها را کاهش داد و برای دسترسی به بقیه حافظه به صورتی که شما در بالا آوردین دسترسی داشت.حال نمی دونم بشه این کار رو کرد یا نه؟
              می بینیم و نادیده می گیریم!

              دیدگاه


                #8
                پاسخ : ذخیره کردن یک متغیر در یک ادرس خاص از حافظه در keil

                یه راه حل دیگه هم هست و اون اینه که ما اون فضای که نمی خوایم توسط متغیر های دیگه پر بشه، در اون فضا یک ارایه ی بزرگ تعریف کنیم.اما هنگام استفاده توسط DMA نوشته و خوانده بشود.
                می بینیم و نادیده می گیریم!

                دیدگاه


                  #9
                  پاسخ : ذخیره کردن یک متغیر در یک ادرس خاص از حافظه در keil

                  سلام بچه ها من با ارم تازه شروع به کار کردم
                  با lpc1768
                  کدهاتونو خوندم ولی چیز زیادی نفهمیدم
                  میشه با ترجمه ریز به ریز برام توضیج بدین این دستورا چیکار میکننو چطوری اون کار رو انجام میدن؟

                  دیدگاه


                    #10
                    پاسخ : ذخیره کردن یک متغیر در یک ادرس خاص از حافظه در keil

                    سلام وقتتون بخیر،
                    من یک آرایه 1000تایی تعریف کردم و مقدار خانه اول آرایه تا خانه آخر آرایه را برابر شماره اندیس هر خانه از آرایه قرار دادم حالا میخوام با خواندن مقدار خانه های آرایه از درست ذخیره شدن مقادیر در حافظه مطمین شم. باید چیکار کنم؟

                    دیدگاه

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