اطلاعیه

Collapse
No announcement yet.

چطور با ARM شروع به کار کنیم.

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

    پاسخ : چطور با ARM شروع به کار کنیم.

    سلام

    یه سوال داشتم در مورد رجیستر ها .. گفتم شاید اینجا بشه پرسید

    برای تنظیم رجیستر ها چرا دو تا رجیستر برای فعال کردن خروجی و غیر فعال کردنش وجود داره .. خب وقتی یه بیت رو یک میکنی برای غیر فعال کردنش میشه صفرش کرد دیگه .. چرا یه رجیستر دیگه باید فرمان بدیم که پایه رو از خروجی خارج کن

    ؟؟

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

    کاش تمام میکروهای آرم اتمل رو هم پوشش بده ..
    __________________

    دیدگاه


      پاسخ : چطور با ARM شروع به کار کنیم.

      نه دوست من همچین چیزی نیست
      رجیستر های زیادی هست
      واسه کار شما این به درد میخوره
      ODSR

      این رجیستر مثل porta=220 میمونه و با یه دستور کارت راه میفته
      علم چندانکه بیشتر خوانی چون عمل در تو نیست نادانی

      دیدگاه


        پاسخ : چطور با ARM شروع به کار کنیم.

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

        یه سوال داشتم در مورد رجیستر ها .. گفتم شاید اینجا بشه پرسید

        برای تنظیم رجیستر ها چرا دو تا رجیستر برای فعال کردن خروجی و غیر فعال کردنش وجود داره .. خب وقتی یه بیت رو یک میکنی برای غیر فعال کردنش میشه صفرش کرد دیگه .. چرا یه رجیستر دیگه باید فرمان بدیم که پایه رو از خروجی خارج کن

        ؟؟

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

        کاش تمام میکروهای آرم اتمل رو هم پوشش بده ..
        __________________
        دلیل داشته که رجیسترها جدا شدن
        1- کارایی بالای میکرو های آرم یه دلیلش میتونه این باشه. پیچیدگی مدارهای داخلیش رو کم میکنه.
        2- وقتی یه رجیستر داشته باشی که هم عمل فعال کردن و هم غیر فعال کردن رو انجام بده، اونوقت برای مقداردهی به این رجیستر باید طوری عمل کنی که حالت قبلی تغییر نکنه.
        مثال سادش همون پایه خروجی :
        فرض کن یه رجیستر داری برای مقداردادن به خروجی که دقیقا صفر و یک توش میره رو پایه ها. مثلا میخوای پایه شماره 3 رو یک کنی. باید مقدار فعلی رجیستر رو بخونی و با OR ox8 کنی و بعد بنویسیش رو رجیستر
        حالا فرض کن رجیسترها جدان. یه رجیستر برای set کردن و یه رجیستر برای clear کردن. خب خیلی راحت مقدار 0x8 رو مینویسی رو رجیستر set. خیالت راحته که بقیه پایه ها صفر نمیشن.

        آرم که با 32 بیت فضای آدرس دهی 4GB میده. بدون محدودیت تا تونستن رجیستر گذاشتن. performance ...
        https://www.linkedin.com/in/mohammadhosseini69

        http://zakhar.blog.ir

        دیدگاه


          پاسخ : چطور با ARM شروع به کار کنیم.

          ممنون از پاسخ خوبتون .. تقریبا یکم ذهنم آروم شد ..

          هر چند برای اون کار لازم نیست پایه های خروجی رو بدونیم . . . چون اصولا دستورهایی که میدادم قبلا بیت بود نه بایت .. اما حالا اگر بایتی هم بخوام دستور بدم .. باید And کنیم باید برای روشن کردن یک پایه یا Or کنیم برای خاموش کردن .. دیگه نیازی به دانستن وضعیت قبلی نیست ..

          با این حال

          ممنون میشم در مورد چرایی طولانی بودن دستورات هم توضیحی بدید .. حتی با هدری که خود سازنده داده باز هم دستورات خیلی طولانی هست و حتی زیاد هم خوانا نشده ..

          مثلا وقتی یک هدر اسم یک میکرو را د خود داره .. چرا باز برای صدا زدن توابع اون .. مثلا تابع فعال کردن پایه خروجی .. باز اسم میکرو در تابع میاد ؟؟ خب وقتی از هدر استفاده میکنی معلوم هست که داری برای کدوم میکرو دستور مینویسی .. این همه کلمه اضافه برای چیه

          تشکر

          دیدگاه


            پاسخ : چطور با ARM شروع به کار کنیم.

            نوشته اصلی توسط alishekarriz
            هر چند برای اون کار لازم نیست پایه های خروجی رو بدونیم . . . چون اصولا دستورهایی که میدادم قبلا بیت بود نه بایت .. اما حالا اگر بایتی هم بخوام دستور بدم .. باید And کنیم باید برای روشن کردن یک پایه یا Or کنیم برای خاموش کردن .. دیگه نیازی به دانستن وضعیت قبلی نیست ..
            پردازنده آرم (و avr هایی که من میشناسم) دستورات کار با بیت ها رو ندارن. فقط میشه به کل رجیستر نوشت و از کل رجیستر خوند. نه تک بیت. درسته تو بیسکام و codvision میشد با یک بیت هم کار کرد. اما این ظاهرش. در عمل بعد از کامپایل چون دستورات اسمبلی برای کار روی یک بیت وجود نداره، تبدیل به همون چیزی که گفتم میشه...


            نوشته اصلی توسط alishekarriz
            ممنون میشم در مورد چرایی طولانی بودن دستورات هم توضیحی بدید .. حتی با هدری که خود سازنده داده باز هم دستورات خیلی طولانی هست و حتی زیاد هم خوانا نشده ..

            مثلا وقتی یک هدر اسم یک میکرو را د خود داره .. چرا باز برای صدا زدن توابع اون .. مثلا تابع فعال کردن پایه خروجی .. باز اسم میکرو در تابع میاد ؟؟ خب وقتی از هدر استفاده میکنی معلوم هست که داری برای کدوم میکرو دستور مینویسی .. این همه کلمه اضافه برای چیه
            کدوم دستورات؟ اون توابع ....؟
            من که اصلا با اونا کار نمیکنم. مستقیم با رجیسترها کار کن.
            https://www.linkedin.com/in/mohammadhosseini69

            http://zakhar.blog.ir

            دیدگاه


              پاسخ : چطور با ARM شروع به کار کنیم.

              سلام

              ممنون از جواب های خوبتون

              منظورم همچین دستورهایی بود
              AT91F_PIO_CfgOutput(AT91C_BASE_PIOB, AT91C_PIO_PB12); // portb.12 is output.

              من هم به این نتیجه رسیدم که برای کار با رجیسترها .. ورودی و خروجی از اسمبلی یا نزدیکترین زبان به اون استفاده کنم

              یه نگاهی به دستورات atm91 در برنامه keil انداختم .. ولی چون میخوام با stm32 کار کنم .. خوشحال میشم در این زمینه هم راهنمایی بفرمایید

              یک سری دیتاشیت و منوآل از سایت St گرفتم و همچنین هدر 7000 خطی keil را هم برای Stm32f103 دیدم .. میخواستم ببینم برای پیدا کردن دستورات روشن و خاموش کردن پایه ها .. مبدل انالوگ و ارسال اطلاعات به ال سی دی .. این دیتا شیت و اطلاعات رو چطوری باید بگردم تا گیج کننده نباشه

              شما ممکنه یه برنامه بنویسی که با فرمان گرفتن از یک پایه مبدل شروع به کار کنه و عدد را در ال سی دی نمایش بده

              تشکر

              دیدگاه


                پاسخ : چطور با ARM شروع به کار کنیم.

                خوب دوست من خبرای خوبی واسط ندارم

                شما 2 تا راه برای حل مردن مشکلت داری

                1. تو نت بگردی و کثال پیدا کنی و مثال ها رو تحلیل کنی(چون فکر نکنم کسی اینجا stm کار کرده باشه*)

                2. بشینی دیتاشیت stm رو بهونی و خودت واسش بنویسی.اینجوری نیست که با الهام از atmel واسه اون هم همین کارهارو بکنی
                ممکنه رجیسترهای اون خیلی با رجیسترهای atmel فرق کنه(شایدم نکنه) ولی راه حل منطقی اینه که حد اقل بشینی دیتاشیت هارو و معماریشون رو با هم مقایسه کنی
                علم چندانکه بیشتر خوانی چون عمل در تو نیست نادانی

                دیدگاه


                  پاسخ : چطور با ARM شروع به کار کنیم.

                  باید همینکار رو بکنم

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

                  من پیشنهاد ایجاد یک انجمن مخصوص stm32 دادم ولی کسی پشتیبانی نکرد.. نمیدونم چرا .. با توجه به قیمت و امکانت و موجود بودن

                  اگر دوستان منابع تصویری برای اموزش این میکرو یا مشابه سراغ دارند ممنون میشم راهنمایی کنند

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

                  چون تاحالا بجز در دانشگاه کد اسمبلی ننوشتم و از بس با بیسیک کار کردم این کار برام یکم وقت گیره .. منم که وقتم زیاد ازاد نیست ..

                  اما میدونم که یه فیل رو فقط لقمه لقمه میشه خورد

                  ممنون و موفق

                  دیدگاه


                    پاسخ : چطور با ARM شروع به کار کنیم.

                    نوشته اصلی توسط وحید سلیمانزاده
                    با سلام خدمت دوستان
                    در این سایت من خیلی جستجو کردم و دیدم عده زیادی هستند که علاقه به کار با ARM دارند و همه سئوالات زیادی کرده اند ولی وقتی به نوع سوالات توجه میشه متوجه میشیم که همه به نوعی دچار سردرگمی شده اند.
                    برای همین گفتم که این قسمت را ایجاد کنم و تا با پرسش و پاسخ جواب همه داده بشه.

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


                    1- اولین سوال همه اینه که با چی شروع کنیم؟
                    به نظر من یکی از گزینه های خوب و در عین حال ارزان قیمت AT91SAM7S64 است این میکرو سرعتش بد نیست و بعضی از امکانات خوب ARM رو داره (بعضی ها رو هم نداره مانند امکان ارتباط با شبکه)
                    ولی برای کسی که تازه می خ.اهد شروع به کار کند خیلی خوبه
                    در عین حال این را هم بگم که میکرو های ARM خیلی شبیه هم هستند.

                    2- با چه کامپایلری شروع کنیم؟
                    اول این رو به دوستانی که علاقه به زبان بیسیک دارن بگم که کامپایلر بیسیک برای ARM وجود نداره و باید C را یاد بگیرن
                    دوم کامپایلر های زیادی برای ARM هست ولی دو تای مشهور آن IAR و Keil است که خیلی با هم فرق ندارن
                    من پیشنهاد می کنم که با IAR کار کنید چون افراد بیشتری با آن کار می کنند.


                    --------------------------------
                    سوالات من از دوستان حرفه ای تر
                    افرادی که با KEIL و IAR کار کدن این سوال را دارم که کدام یک ساده تره؟ و برای شروع بهتره؟
                    کامپایلر iar دارای امکانات کنترلی بیشتر هست و روی رجیستر ها احاطه بیشتری میشه داشت.خروجی کامپایلر iar بسته به تنظیم ما میتونه فایل bin یا hex باشه.سیمولاتور کامپایلر ارم به صورت کاملا رجیستری هست و برای مثال اگه شما بخواین بفهمین که پایه های میکرو توی چه وضعیتی هست باید با توجه به رجیستر های میکرو و عدد هگز اون رجیستر که توی سیمولاتور هست،نتیجه گیری کنید.کامپایلر keil هیدرهای(کتابخانه) بیشتری براش نوشته شده به خاطر همین استفاده از اون راحت تر هست.سیمولاتور این کامپایلر کامل تر هست و وضعیت پایه های میکرو رو به تیکی که روبرشون میذاره به راحتی در اختیار ما قرار میده.خروجی کامپایلر keil فقط فایل hex میتونه باشه و قادر به ساختن فایل bin نیست.در کل میتونم بگم که اکثر برنامه هایی که توی یکی از کامپایلر های میتونید کاپایل کنید توی دیگری هم میتونید(اکثر نه همه)و میشه گفت فرق کامپایر keil و iar مثل تفاوت کدویژن وwinavr هست.توی هر دو کامپایلر میتونید به زبان c,c++ و اسمبلی برنامه بنویسید

                    دیدگاه


                      پاسخ : چطور با ARM شروع به کار کنیم.

                      سلام.من تازه شروع کردم.برنامه می نویسم ولی همش خطای کتابخونه ازم میگیره.معرفیشون کردم ولی خطا می گیره.کسی میتونه کمک کنه؟

                      دیدگاه


                        پاسخ : چطور با ARM شروع به کار کنیم.

                        نوشته اصلی توسط rasoulalidadi
                        سلام.من تازه شروع کردم.برنامه می نویسم ولی همش خطای کتابخونه ازم میگیره.معرفیشون کردم ولی خطا می گیره.کسی میتونه کمک کنه؟
                        سلام
                        کامپایلرت چیه؟
                        خطایی که میده رو هم عینا بزار اینجا تا ببینم
                        زندگی یعنی امید و حرکت
                        کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
                        سوالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
                        برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
                        به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!

                        دیدگاه

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