اطلاعیه

Collapse
No announcement yet.

سوالات کتاب at91 (نص)

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

    #16
    پاسخ : سوالات کتاب at91 (نص)

    نوشته اصلی توسط تیبا
    این ARM STATE PROGRAM STATUS REGISTERS هست حالا

    THUMB STATE PROGRAM STATUS REGISTERS
    رو که داره چه تفوتی دارند؟
    آیا دستور العملی متفاوت دارند؟
    در مدهای کاری چطور؟
    پردازنده های ARM چند مد دستور العمل دارن. حالت عادی ARM instruction set دستورات 32 بیتی هستن. حالت های دیگه که به عنوان افزونه به ورژن های جدید اضافه شدن یکیشون Thumb instruction set که 16 بیتی هست و حافظه کمترین اشغال می کنه. طبیعتا کارایی کمتری داره (مثل دسترسی به تعداد کمتری از رجیسترها).

    یه افزونه معروف دیگه Jazelle که به جاوا مربوط میشه و من چیزی ازش نمی دونم.
    https://www.linkedin.com/in/mohammadhosseini69

    http://zakhar.blog.ir

    دیدگاه


      #17
      پاسخ : سوالات کتاب at91 (نص)

      با سلام
      اگه به دوستان بر نخوره فکر کنم این تاپیک بدرد بخورترین تاپیک بشه تو این تالار
      من الان 9 ماه که می خوام با آرم کار کنم ولی واقعا نتونستم و این تالار هم به من کمکی نکرده چون فکر میکنم ما در این تالار داریم با مدل avr جلو میریم که واقعا برای یک میکرو پروسسور جواب گو نیست ( من بعد از یاد گرفتن avr جو گیر شده بودم می خواستم با امید خدا برم سراغ اینتل و سری پنتیوم و از اونجا به جام جهانی ) :bye
      ولی احساس میکنم که این تاپیک راهش درسته یعنی چشمک زن نمی تونه آرم را به ما یاد بده اصلا قضیه یک چیزه دیگست
      تنها موردی که همه آدما یقین دارن خدا در حقش زیاد لطف کرده
      داشتن عقله زیادتر از دیگر آدم ها است

      دیدگاه


        #18
        پاسخ : سوالات کتاب at91 (نص)

        Programmer's Model

        راه - کانفیگ برای مدل های برنامه نویسی آرم دوتا هستش
        1- نرم افزاری operating modes
        2- سخت افزاری hardware configurations

        کانفیگ سخت افزاری از سه پایه ورودی صورت میگیره BIGEND و PROG32 و DATA32
        اما BIGEND رو میدونم چیه با یک و صفر کردن این پایه نحوه جایگاه بیتهای بارزش حافظه عوض میشه در حالت Big Endian بایتهای با ارزش در مکان 32 قرار میگیره و در غیر این صورت حالت تبدیل میشه به Little Endian که بیت صفر داده در مکان صفر قرار میگیره
        PROG32 و DATA32 این دو تا برای سازگاری قرار گرفته و انگار پهنای باند رو 26 بیتی میکنه

        اما ما 6 تا مدل نرم افزاری هم داریم که نمیدونم چرا ولی از این 6 تا باز 3 تاش سخت افزاریه

        اون 6 تا اینها هستن که دوستان عکسش رو گذاشتن



        User mode و Supervisor mode و Undefined mode اینها نرم افزاری هستند ولی FIQ mode و IRQ mode و Abort mode میشه گفت که سخت افزاری هستند نمی دونم رو چه حسابی میگن نرم افزاری چو ن هر سه تا پایه دارن


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

        دیدگاه


          #19
          پاسخ : سوالات کتاب at91 (نص)

          [move] فصل 2کتاب at91 (نص)[/move]

          [hr]
          سلام دوستان گرامی من فصل دوم کتاب رو خوندم ..یکم پیچیده است ولی یاد زمانی افتادم که درس z80 داشتیم
          ..
          با توجه به صحبت دوستمون در مورد پروگرام کردن آیا نیاز هست که همه رجیسترهارو توی arm بشناسیم .آخه تو avr ما راحت با بیسیک می نوشتیم و هیچ کاری با رجیستر ها و مقادیرش نداشتیم


          حالا الان برای جلو رفتن و برنامه نوشتن باید رو این فصل تاکیید کنیم یا خیر؟؟ :question:

          دیدگاه


            #20
            پاسخ : سوالات کتاب at91 (نص)

            نوشته اصلی توسط تیبا
            [move] فصل 2کتاب at91 (نص)[/move]

            [hr]
            سلام دوستان گرامی من فصل دوم کتاب رو خوندم ..یکم پیچیده است ولی یاد زمانی افتادم که درس z80 داشتیم
            ..
            با توجه به صحبت دوستمون در مورد پروگرام کردن آیا نیاز هست که همه رجیسترهارو توی arm بشناسیم .آخه تو avr ما راحت با بیسیک می نوشتیم و هیچ کاری با رجیستر ها و مقادیرش نداشتیم


            حالا الان برای جلو رفتن و برنامه نوشتن باید رو این فصل تاکیید کنیم یا خیر؟؟ :question:
            سلام
            در مورد فصل دوم باید بگم شما باید رجیسترهای ARM و مدهای کاری و کلیات را باید در این فصل یاد بگیرید اما دستورات اسمبلی میشود گفت فعلا زیاد کاربرد ندارد و طرفدارانش هم کمترن و همه با C برنامه می نویسند. در مورد برنامه نوشتن چون به زبان C برنامه می نویسید با این رجیسترها زیاد کاری ندارید اما رجیسترهای واحدهای داخلی میکرو را باید یاد بگیرد در فصل های آینده که بتوانید تنظیمات مربوطه را انجام دهید و با آن واحد کار کنید. در مورد کار عملی و برنامه نویسی از فصل 4 به بعد داستان شروع می شود.

            دیدگاه


              #21
              پاسخ : سوالات کتاب at91 (نص)

              سلام :biggrin:
              در ادامه فصل 2 تعریفی از رجیسترها و مجموعه دستورالعمل ها میکرو در حالت arm و thumb می باشد

              در این فصل مجموعه دستورات به ترتیب با مثال بیان شده است، که با توجه به فرمایش جناب حامد تاکیدی روی آن نمی کنیم

              در آخر فصل مثالهایی زده شده بین زبان c و asm که تفاوت آنها رو در اجرای یک دستور از نظر حجم برنامه نویسی درک می کنیم :read:

              فقط یه سوال قبل از اتمام فصل:

              ؟؟؟در چه وقت از حالت thumb که 40درصد حافظه کمتر، سرعت کمتر و.. دارد استفاده می کنیم؟؟؟

              دیدگاه


                #22
                پاسخ : سوالات کتاب at91 (نص)

                نوشته اصلی توسط تیبا
                سلام :biggrin:
                در ادامه فصل 2 تعریفی از رجیسترها و مجموعه دستورالعمل ها میکرو در حالت arm و thumb می باشد

                در این فصل مجموعه دستورات به ترتیب با مثال بیان شده است، که با توجه به فرمایش جناب حامد تاکیدی روی آن نمی کنیم

                در آخر فصل مثالهایی زده شده بین زبان c و asm که تفاوت آنها رو در اجرای یک دستور از نظر حجم برنامه نویسی درک می کنیم :read:

                فقط یه سوال قبل از اتمام فصل:

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

                دیدگاه


                  #23
                  پاسخ : سوالات کتاب at91 (نص)

                  [move]فص 3 کتاب at91 (نص)[/move]
                  [hr]
                  سلام
                  در ابتدای فصل 3 یک مقایسه داره بین arm ها که قبلا بحث شد.

                  گفته به خیلی امکانات جدیدی داره مثلا ساپورت tcp/ipو در مورد سیستم عامل بلادرنگ صحبت شده
                  1.سیستم عامل بلا درنگ چیست؟؟

                  2.ظاهرا اشاره شده که arm 9 حافظه داخلی نداره ، یعنی برنامه اش تو یک حافظه خارجی ریخته می شه و یعد متصل می شه به میکرو؟؟؟ :question:

                  دیدگاه


                    #24
                    پاسخ : سوالات کتاب at91 (نص)

                    سلام دوستان

                    [move]فصل 3 کتاب at91 (نص)[/move]

                    آقا فصل 3 اومده برای نمونه 3 تا شرکت سازنده رو با هم مقایسه کرده از لحاظ امکانات ، کلاک ، هسته ، دارا بودن نوع حافظه و... که تو کتاب مشخص هست .
                    من که کلی از atmel و at91sam9263 خوشم اومد

                    یه جا گفته که lpc ها که برای فیلیپس ها..توان مصرفی کمتری داره نسبت به atmel مثلا lpc200حدود 0.87mA/MHZ و at91sam7 حدود 20uA/MHZ

                    بعد مقایسه کلاک ازسری at91sam7s تا سری at91sam9 که از 50mhz شروع می شه تا 400mhz :eek:

                    آخر هم که تو یکسری جدول کل اینها رو مقایسه کرده که نگاه کنید خوبه مثل یک مرجع می مونه

                    دیگه کلا فصل 3 تمومه
                    دیگه کم کم داریم به جاهای جالبش می رسیم که اصل ماجراست :icon_razz:

                    دیدگاه


                      #25
                      سوال ؟؟؟

                      نوشته اصلی توسط تیبا
                      بله متوجه شدم.
                      مرسی
                      1.حالا خط لوله ها رو در این دو معماری خوندم
                      سوالی که دارم اینه که در 3خط لوله دستور العمل در 3 مرحله : fetch decode execute انجام میشه
                      یعنی در 3کلاک، در 8 خط لوله این عملیات در کلاک بیشتر انجام میشه پس چطور پرسرعت تره؟؟ oo:
                      ببخشید میخواستم بدونم اصلا این خط لوله چیه ؟؟؟؟ :redface: من کتاب و همه این تاپیک ها رو خوندم اما متوجه نشدو چیه !!! بی زحمت خواستید توضیح بدید زیر دیپلمی باشه !!! :mrgreen: خیلی مهندسی نباشه هاااااااا


                      یه سوال ذیگه این که چرا نوشتن برنامه های اسمبلی در معماری cisc نسبت به معماری risc سادهتر هست ؟؟؟!!


                      حالا یه سوال درباره رجیستر در صفحه 112 کتاب درباره رجیستر مد تایمر نگهبان صحبت کرده و گفته اسمش WDT_MR هست و در صفحه 113 درباره کاربر بیت WDDIS توضیح داده که اگه این بیت یک باشه تایمر نگهبان غیر فعال هست حالا سوالم اینه که چرا تو برنامه ای که در صفحه 143 کتاب آورده نام رجیستر عوض شده ؟؟؟؟؟ :mrgreen: شده WDTC_WDMR مگه نباید WDT_MR باشه ؟؟؟؟؟ اشتباه چاپی هست ؟؟؟؟؟؟ !!! حالا کدامش درسته ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ oo:


                      در صفحه 143 خط نهم ام که اومده PIO های A0 تا A4 رو فعال کرده میشه به جاش این دستور زیر رو بنویسیم :
                      AT91C_BASE_PIO->PIO_PER =0XF و این که همون دستور خودش یعنی چی ؟ یعنی هر شیفت که میده میاد با هم OR میکنه ؟؟؟ همین الان از هر کسی که پاسخ میده کمال تشکر دارم هاااااااااااااااااااااااااااااااا :rolleyes:

                      مصادیق اظهار محبت به همسر
                      بررسی مسائل جنسی در زندگی زناشویی(فایل صوتی)
                      ویژگی های خانواده سالم - مصادیق احترام (فایل صوتی)
                      اثر قصه گویی برای کودکان

                      دیدگاه


                        #26
                        پاسخ : سوالات کتاب at91 (نص)

                        آخه در مورد بعضی چیزا نمیشه زیر دیپلم حرف زد..

                        اگه بخوام خیلی ساده در مورد خط لوله (pipeline) توضیح بدم :
                        روی هر دستور برای اجرا شدن باید عملیات مختلفی انجام بشه. مثلا در ساده ترین حالت Fetch و Decode و Execute. یعنی دستور باید از حافظه خونده بشه. تشخیص داده بشه کارش چیه و بعد اجرا بشه. اگه فرض کنیم هر کدوم ار این مراحل با یک کلاک انجام بشن، برای اجرای یک دستور به اندازه 3 کلاک زمان احتیاج هست.
                        2 دستور، 6 کلاک، 3 دستور 9 کلاک و ...
                        خب میان معماری رو خط لوله ای می کنن. یعنی بعد از اینکه دستور اول F شد و رفت به مرحله D، دستور بعدی داره F میشه. وقتی دستور اول رفت تو E دستور دوم داره D میشه و دستور سوم هم داره F میشه. یعنی با هر کلاک رو 3 دستور داره عملیات انجام میشه. نتیجه اینه که بعد از پر شدن خط لوله، با هر کلاک یک دستور از خط لوله خارج میشه. یعنی دستورات پشت هم با یک کلاک اجرا میشن و لازم نیست بعد از اجرای هر دستور منتظر 3 کلاک بمونیم تا دستور بعد اجرا بشه.
                        خط لوله با رجیستر کردن نتیجه عملیات هر قسمت پیاده سازی میشه.

                        خط تولید یه کارخونه ماشین رو تو ذهنت بیار... ماشین ها پشت هم دارن از قسمت های مختلف کارخونه عبور میکنن و ساخته میشن. کارخونه منتظر نمی مونه که یه ماشین کامل ساخته بشه و بعد ساخت ماشین بعد رو شروع کنه...
                        یا یه نونوایی ...
                        https://www.linkedin.com/in/mohammadhosseini69

                        http://zakhar.blog.ir

                        دیدگاه


                          #27
                          پاسخ : سوالات کتاب at91 (نص)

                          درست اسم رجیستر تایمر نگهبان WDT_MR هست اما برای استفاده از ان باید WDTC_WDMR بنویسید.این تو رجیستر های دیگه هم ممکنه فرق داشته باشه برای مثال رجیستر مد ریست RSTC_MR هست اما توی برنامه اونو باید RSTC_RMR بنویسید


                          AT91C_BASE_PIO->PIO_PER =0XF این دستور هم با اون دستور یجور عمل میکنه.اون دستور 1 هارو شیفت میده و با هم OR میکنه که در حقیقت همین مقدارو درست میکنه

                          دیدگاه


                            #28
                            پاسخ : سوالات کتاب at91 (نص)

                            سلام
                            در مورد خط لوله آقای محمد حسینی به خوبی توضیح دادن و آسان تر از این نمی شود گفت باز برای درک بهتر عکس ها صفحه 31و32 کتاب رو ببین.
                            در مورد CISC و RISC برات یک مثال می زنم که بهتر درک کنید. مثلا در 8051 دستور اسمبلی تقسیم وجود دارد که معماری آن CISC است اما در AVR دستور اسمبلی تقسیم وجود ندارد که معماری آن RISC می باشد. حالا وقتی در برنامه به زبان اسمبلی می نویسید اگر شما نیاز به تقسیم داشته باشید به راحتی در 8051 با یک دستور عمل تقسیم را انجام می دهید اما در AVR باید چندین دستور بنویسید تا عمل تقسیم را انجام دهد. کلا در CISC اصل کار بر روی سخت افزار است و امکانات سخت افزاری بیشتری به شما می دهد اما در RISC اصل کار را باید بر روی نرم افزار است و باید با بوسیله نرم افزار کار هایتون را انجام دهید. البته این تقسیم که گفتم یک مثال بود و ملاکی نمی باشد مثلا ARM7 که معماری RISC هست دستور تقسیم وجود ندارد اما در نسل های جدیدتر ARM مثل CORTEX-M3 سخت افزار تقسیم به آن اضافه شده است.

                            دیدگاه


                              #29
                              پاسخ : سوالات کتاب at91 (نص)

                              اون رجیسترهایی که در متن کتاب هست اسمی هست که خود دیتاشیت استفاده کرده است و نام بیت ها هم به همین صورت است. اما در هدرهایی که خود کامپایلرها برای این میکروها نوشتند اسم برخی از رجیسترها فرق کرده است اما فرق چندانی ندارند :biggrin: به خاطر همین است که در برنامه های کتاب اسم برخی از آن ها فرق می کند.

                              کد:
                              AT91C_BASE_PIO->PIO_PER =0XF;
                              AT91C_BASE_PIO->PIO_PER =(1<<0|1<<1|1<<2|1<<3);
                              این دو خط برنامه مثل هم اجرا می شوند و هیچ فرقی ندارد خط پائینی همانطور که دوستمان گفت 1 ها رو شیفت می دهد و OR می کند. بخاطر این از خط پائینی استفاده می کنیم که راحتتر بیت هایی که قرار است 1 شود را ببینیم. مثلا به راحتی معلومه که بیت های 0و1و2و3 دارند یک می شوند و برای تغییر دادن آنها راحتتر است. اما فرض کنید بخواهیم مثلا بیت های 22و15و5و2 را یک کنیم باید از یکی از خط های برنامه زیر استفاده کنیم.
                              کد:
                              AT91C_BASE_PIO->PIO_PER =0X408024;
                              AT91C_BASE_PIO->PIO_PER =(1<<2|1<<5|1<<15|1<<22);
                              حالا به نظرتون خط بالایی راحتتر است یا پایینی؟!؟! خط پایینی نیازی به محاسبه ندارد و سریعا می نویسید اما برای خط بالایی باید اول باینری را بنویسید و بعد هگز آنرا بدست آورید و در برنامه استفاده کنید. در ضمن حالا اگر بخواهید مثلا بیت 22 را به 25 تغییر دهید در خط پایینی راحت می توانید این تغییر را لحاظ کنید اما در خط اول باز باید اون محاسبات را انجام دهید.
                              در ضمن باز این روش امکانات بیشتری هم به شما می دهد مثلا پروژه 8 صفحه 442 را نگاه کنید در ابتدای برنامه یک سری اعداد را define کرده است و در برنامه از همین شیفت دادن استفاده کرده حالا وقتی مثلا پروژه را نوشتید و نیازی دارید که مثلا یک پین را تغییر دهید اگه به همین روش شیفت دادن نوشته باشید به راحتی می توانید این کار را انجام دهید اما اگر برنامه را به صورت خط اولی نوشته باشید باید کل برنامه را چک کنید و تغییرات را ایجاد کنید.

                              دیدگاه


                                #30
                                پاسخ : سوالات کتاب at91 (نص)

                                سلام.. اول تشکری مجدد از همه که پاسخ دادن :rolleyes:
                                1- آیا فرکانس slow clock ثابت و 32 کیلو هست ؟؟؟ رجیستری برای غیر فعال کردنش هست ؟؟ اگه به هر دلیلی قطع بشه چی میشه ؟؟؟؟؟!!!! (مربوط به صفحه 114)
                                2-در صفحه 115 یه فرمول نوشته pllclockout=pllclockin*((mul+1)/div) .میخواستم بدونم که pllclock in همون main clock هست ؟؟؟؟
                                3-منظور از کلاک قابل برنامه ریزی خروجی که بیت های pckx در رجیستر PMC_SCER هست چیه ؟(صفحه 117)
                                4-میکرو حالت بی کاری یعنی چی که در اثر یک کردن بیت PCK در رجیستر PMC_SCDR به وجود میاد ؟؟؟!! (صفحه 117)
                                5-در صفحه 117 گفته اگه بیت UDP از رجیستر PMC_SCER رو یک کنیم کلاک USB روی 48 کیلو تنظیم میشه حالا اگه فرض کنیم کلاک PLL=20KH باشه و از طرفی بیت های USBDIV در رجیستر CKGR_PLLR رو 00 بگذاریم (با توجه به جدول صفحه 122 یعنی کلاک USB همون کلاک PLL ) حالا کلاک USB چی هست ؟؟؟ oo:
                                6- در صفحه 118 گفته اگه بخوایم جانبی مثلا AIC رو فعال کنیم (که اصلا نمیدونم چی هست :mrgreenطبق جدول باید بیت صفرم از رجیستر PMC_PCER رو یک کنیم ولی این بیت رزو هست مشکلی نیست ؟؟؟!!
                                باز هم تشکر از همه اساتید :rolleyes: :applause:
                                ببخشید ها فقط خواستید پاسخ بدید با این AVR و 8051 مقایسه نکنید من اصلا تو عمرم 8051 ندیم AVR هم خیلی ازش کم میدونم چی کار کنم خیلی بی سوادمممممممممم !!!!






                                مصادیق اظهار محبت به همسر
                                بررسی مسائل جنسی در زندگی زناشویی(فایل صوتی)
                                ویژگی های خانواده سالم - مصادیق احترام (فایل صوتی)
                                اثر قصه گویی برای کودکان

                                دیدگاه

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