اطلاعیه

Collapse
No announcement yet.

ساخت یک کامپیوتر به وسیله ی ARM

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

    #16
    پاسخ : ساخت یک کامپیوتر به وسیله ی ARM

    نوشته اصلی توسط رضا آقازاده
    ولی باید استراتژی ارتباط با این BIOS هم مشخص بشه. تازه به خود OS هم خیلی مربوط میشه. مثلا یک چیزی مثل داس با بایوس خیلی کار میکنه. اما ویندوز نه. جز مرحله بوت شدن اولیه. که اون هم برای کار شما اجباری نداره. میتونین از یک لودر در فلش برای استارت اولیه برنامه لودر اصلی سیستم عامل استفاده کنین.
    جناب آقازاده . منظورتون رو از استراتژی نمیدونم .
    اما در مورد OS میخوام از DOS و Linux و Windows 8 استفاده کنم .

    نوشته اصلی توسط رضا آقازاده
    اگر منظورتون از قسمت گرافیکی کارت گرافیک باشه که قاعدتا باید سیستمتون از لحاظ سخت افزاری قابل انعطاف باشه. ولی اگر منظورتون GUI هست که این روی سیستم عامل سوار میشه و الزاما جزئی از اون نیست. مثل لینوکس. حتی GUI جزئی از قسمت اجرایی ویندوز هم نیست. بلکه جزء استانداردی هست که همراه ویندوز اومده.
    ولی برای اون هم راه حل هست. یک سری به reactos بزنین. یک نسخه NT compatible هست. و open source. حجم نسخه اجراییش هم فقط 17 مگا بایت هست.
    فعلا مد نظرم یک کارت گرافیک OnBoard هست که خودمون طراحی کنیم ولی میخوام قابلیت استفاده از گرافیک خارجی رو هم داشته باشه ( نظر شما چیه ؟ ) .
    برای تست اولیه میخوام از GUI استفاده کنم ( یعنی وقتی به وسطهای کار رسیدم ) .
    دعایم کنید که شاید به واسطه ی دعای خیر شما مشکلاتم حل شود .

    دیدگاه


      #17
      پاسخ : ساخت یک کامپیوتر به وسیله ی ARM

      در کامپیوتری مثل IBM بخاطر ارتباط با BIOS و OS از وقفه های نرم افزاری استفاده میشه. چون پروسسور x86 دارای 256 وقفه هست. در کامپیوتری مثل آمیگا که بر اساس 68000 ساخته شده (و تا حد زیادی مثل یک آرم هست) از آدرس های ثابت در ROM استفاده شده. و در کامپیوتر های SICOMP از ساختار حافظه مجازی و استفاده از ماکرو.
      غیر از این نسخ موجود DOS و ویندوز بر اساس کد 80x86 و سخت افزار IBM-AT نوشته شده. اگر بخوایین این سیستم عامل ها رو روی ARM اجرا کنین یا باید چیزی مثل VMWare روی سخت افزارتون آماده کنین و یا اینکه این دو را بازنویسی کنین که هر دو کاری عبث و بشدت وقت گیر هستند.
      نوشتن GUI هم کار مهمی نیست اما باز هم خودش کلی وقت میبره. و نوشتن یک جیز جدید هم توجیهی نداره. عوضش میتونی از چیزایی مثل gnome و gtk استفاده کنی که اساس اون هم بر اساس x windows هست.
      ضمنا ابتدای کار یک OS قسمت executive اش هست؛ نه GUI که اونهم به فرم command line میتونه استفاده بشه.
      جسارتا.
      با توجه به مواردی که عرض کردم بیشتر بنظر میاد این "میخوام" ها به نوعی "هوس" انجام کار باشه.
      انجام کار مد نظرتون چیز قشنگی ممکنه باشه اما با این سطح گاهی و طرح نپخته ای که دارین فقط دردسر برای خودتون ایجاد میکنین و بس.
      فکر میکنم فعلا از ساخت منصرف بشین و فقط روی طراحی اولیه تکیه کنین. بعدش میشه به ساخت هم رسید.

      دیدگاه


        #18
        پاسخ : ساخت یک کامپیوتر به وسیله ی ARM

        نوشته اصلی توسط رضا آقازاده
        در کامپیوتری مثل IBM بخاطر ارتباط با BIOS و OS از وقفه های نرم افزاری استفاده میشه. چون پروسسور x86 دارای 256 وقفه هست. در کامپیوتری مثل آمیگا که بر اساس 68000 ساخته شده (و تا حد زیادی مثل یک آرم هست) از آدرس های ثابت در ROM استفاده شده. و در کامپیوتر های SICOMP از ساختار حافظه مجازی و استفاده از ماکرو.
        غیر از این نسخ موجود DOS و ویندوز بر اساس کد 80x86 و سخت افزار IBM-AT نوشته شده. اگر بخوایین این سیستم عامل ها رو روی ARM اجرا کنین یا باید چیزی مثل VMWare روی سخت افزارتون آماده کنین و یا اینکه این دو را بازنویسی کنین که هر دو کاری عبث و بشدت وقت گیر هستند.
        نوشتن GUI هم کار مهمی نیست اما باز هم خودش کلی وقت میبره. و نوشتن یک جیز جدید هم توجیهی نداره. عوضش میتونی از چیزایی مثل gnome و gtk استفاده کنی که اساس اون هم بر اساس x windows هست.
        ضمنا ابتدای کار یک OS قسمت executive اش هست؛ نه GUI که اونهم به فرم command line میتونه استفاده بشه.
        جناب آقازاده امیدوارم منظورتون از وقفه های نرم افزاری اولویت ها نباشن . اگر نگاهی به این اولویت ها انداخته باشید میبینید که اصلی ترین بخش Kernel این اولویت ها تنها به بخش سخت افزاری مربوط میشود تعدادی از این اولویت ها زمان شناساندن سخت افزار در محیط سیستم عامل شکل میگیرند و تعدادی هم باید در همان قسمت BIOS شکل بگیرند . در این بین به نظر من از همه مهم تر همان بخش BIOS هست . چرا که درایور سایر قسمت ها را میتوان به این گونه ساخت که ابتدا بخش های مختلف کامپیوتر را به طور مجزا ساخت - یک مسیر ارتباطی از طریق کامپیوتر ( منظورم کامپیوتر هایی هست که همین الان داریم استفاده میکنیم ) با سیستم عامل مربوطه فراهم کرد و درایور مربوطه را شکل داد . این کار در مورد قسمت BIOS به همین راحتی نیست بلکه بسیار دشوار میباشد .
        ضمنا سیستم عامل های Open Source زیادی از Linux وجود داره چرا در مورد اونها صحبت نمیکنید ( برای برنامه نویسی در محیط لینوکس هم میشه از پایتون استفاده کرد ) .
        ضمنا میشه به جای یک ARM از دو یا چند تا برای قسمتهای مختلف استفاده کرد تا بار پردازشی کاهش پیدا کنه .

        یه سوال :
        چرا شما فقط به روش های روتین فکر میکنید ؟ :biggrin:
        دعایم کنید که شاید به واسطه ی دعای خیر شما مشکلاتم حل شود .

        دیدگاه


          #19
          پاسخ : ساخت یک کامپیوتر به وسیله ی ARM

          ببین عزیزم!
          من منظورم از وقفه ها این نبود. بذار یک مثالی بزنم.
          در سیستم عامل CP/M از اونجایی که وقفه ای روی پروسسور مورد استفاده برای تولید آدرس ثابت برای ارتباط با سیستم عامل وجود نداشت از دستور العمل CALL 5 برای ارتباط با سیستم عامل استفاده میشد.
          در نسخه داس ورژن یک از همین روش برای ارتباط با سیستم عامل استفاده میشد.
          در داس ورژن بالاتر (2) علاوه بر این روش از وقفه نرم افزاری 0x21 عمدتا (ونه همیشه) اینکار انجام میشد.
          در کامپیوتر آمیگا بر اساس 68000 از آدرس های ثابت در ROM برای دسترسی به BIOS و سیستم عامل آمیگا داس یا Tripos استفاده میشد.
          در سیستم عامل بسیار قدیمی ORG شرکت زیمنس از طریق استفاده از ماکرو این عملیات انجام میشد.
          حالا شما میخوایی چکار کنی؟
          SWI داری. آدرس ثابت داری و غیره.
          هر کدوم محسنات خودش رو داره و ایرادات خودش رو.

          از طرف دیگه به یک آرم به چشم یک میکرو کنترلر نگاه نکن. که دارای یک سری تجهیزات هست. این تجهیزات بایستی به نوعی استفاده بشه که فرقی با تجهیزاتی که روی expansion bus استفاده میشه نداشته باشه. حالا همین expansion bus قراره چطوری باشه؟ مثل ISA یا VESA یا PCI یا PCIE؟

          هر کدوم از اینا حسنی و ایرادی دارن.

          اینا نکته های اغلب (به نظر میاد) غیر مهمی هستن ولی در پیاده سازی یک سیستم عامل حائز اهمیت میشن. البته اگه سراغ یک سری سیستم عامل های موجود مثل Linux یا FreeDOS بری خوب شرایط یک کمی فرق میکنه اما باید این استاندارد های ارتباطی در لایه های پایین لحاظ بشه.

          اتفاقا من به روشهای روتین فکر نمیکنم. اما اینکه بگیم "میخوام یه کاری بکنم" و بدون اینکه تمام جوانب یا حداقل اغلب جوانب رو در نظر بگیریم بخواییم شروع کنیم آخرش به مشکل میخوریم.

          دیدگاه


            #20
            پاسخ : ساخت یک کامپیوتر به وسیله ی ARM

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

            ظاهرا دو نفر ( یک دانش آموز انگلیسی و یک فرد دیگر که او هم دانش آموز بوده ) قبلا چنین کاری انجام داده اند .

            :biggrin:
            پس فرکانس رو میخوای چکار کنی؟! به سیستم عامل های جدیدتر کامپیوتر باید حداقل یه گیگاهرتز فرکانس برسه
            حافظه چی میشه؟! میدونی هر کارت حافظه حدود 100 پایه لازم داره ؟؟
            اگه بخوای کامپیوتر جامعی به لحاظ سخت افزاری بسازی حتی arm11 هم تعداد پایه هاش خیلی کم میاره اگه هم بخوای آیسی های واسطه استفاده کنی و از سریال ارتباط برقرار کنی باید مدارت رو بازم بزرگتر کنی که دراینصورت سیستم نهایی دائما هنگ میکنه و شاید سستم عامل نتونه با این موضوع کنار بیاد و نرم افزار هم قاطی پاتی شه و ...
            دیگه اینکه سرعت ارتباط با پورتها خیلی کم میشه
            نویز مدار چی؟! با توجه به پیچیدگی مدار شاید فقط برای سفارش مدار تنها یک میلیون تمن هزینه بخوای بدی !!


            فکر میکنم با FPGA کار کنی هم به لحاظ آموزشی از arm بهتر باشه و هم سیستم بهتری از آب دربیاد

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

            دیدگاه


              #21
              پاسخ : ساخت یک کامپیوتر به وسیله ی ARM

              راستی کجا دیدید اینکارو کردن؟ میشه لینک پروژشون رو بزاری؟
              *یادگیری علم زمانی مشکل است که قبل از یادگیری آن را پیچیده تصور کنیم.
              *چرا فکر میکنیم مباحث مهم و پیشرفته و سطح بالا باید پیچیده باشند.

              دیدگاه


                #22
                پاسخ : ساخت یک کامپیوتر به وسیله ی ARM

                برای ارتباط با حافظه ممکنه به اتعداد بالایی پین احتیاج باشه اما این تعداد نیست. چون عمدتا عملیات روی حافظه رو کنترلر انجام میده. ثانیا اغلب کارتهای توسعه از باس حافظه برای ایجاد ارتباط استفاده میکنن. مثلا فرض کنیم بخواییم این سیستم رو بر اساس یک LPC2478 انجام بدیم. 72 مگا هرتز فعلا بسه. نه میخواییم سراغ لینوکس بریم. و نه ویندوز.
                نه بذارین ببینم. مگه لینوکس روی 486 اجرا نمیشد؟ چیزی مثل ویندوز 3.1 16 بیتی برای اجرا به یک 386 16 مگا هرتزی احتیاج داره. پس میشه.

                اما از بابت رم و IO.
                2478 دارای باس دیتای 32 بیتی هست. به همراه 24 بیت خط آدرس که میشه 16 مگا ورد یا 64 مگا بایت. برای خیلی از کارها زیادی هم هست. 4 تا خط IRQ سخت افزاری داره که میشه با استفاده از یک PIC (کنترلر وقفه) تعدادش رو هم بیشتر کرد. برای ارتباط اولیه هم میتونین از چیزی مثل ساختار باس ISA استفاده کنین. البته بدون ROM.

                بخوایین میشه یک نقشه حدودی براش کشید.
                چهار تا سریال داخلی داره که میشه معادل COM1 تا COM4 براش درآورد. 32 کیلو بایت رم داخلی داره برای کارهای خود میکرو و سیستم عامل. هم قطعه اش ایران گیر میاد و هم میشه براحتی بر مبنای SDRAM باهاش کار کرد.

                دیگه چیزی هست که بخوایین؟ فکر نکنم برد اولیه اش بالای 100 یا 200 هزار تومن براتون خرج برداره.

                برای شروع هم میتونین از یک MMC به عنوان حافظه مجازی استفاده کنین یا حتی با یک مدار کوچیک یک هارد رو به این مدار وصل کنین.

                دیدگاه


                  #23
                  پاسخ : ساخت یک کامپیوتر به وسیله ی ARM

                  نوشته اصلی توسط microjo
                  راستی کجا دیدید اینکارو کردن؟ میشه لینک پروژشون رو بزاری؟
                  http://www.pcpro.co.uk/blogs/2011/06/17/the-8-bit-computer-thats-been-built-by-hand/
                  http://web.mac.com/teisenmann/iWeb/adeptpage/menu.html
                  اون یکی یه خبر تو یاهو بود اونم پیدا می کنم میذارم .
                  دعایم کنید که شاید به واسطه ی دعای خیر شما مشکلاتم حل شود .

                  دیدگاه


                    #24
                    پاسخ : ساخت یک کامپیوتر به وسیله ی ARM

                    جناب آقازاده
                    از یه ROM برای ریختن برنامه های BIOS استفاده بشه ( تو پست های اول هم اشاره کردم ) . ولی برای امتحان کردن برنامه نوشته شده باید اول اونو تو یه حافظه مثلا MMC امتحان کرد بعد اگه نتیجه ی مطلوب به دست اومد اون رو ریخت توی یه ROM .

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

                    دیدگاه


                      #25
                      پاسخ : ساخت یک کامپیوتر به وسیله ی ARM

                      معمولا رسم بر اینه که چرخ رو دوباره اختراع نمیکنن. از طرفی هم ساختار کامپیوتر ها مثل همه بنا بر این نباید من رو متهم به پیروی از چیزهای روتین کرد. چون غیر از اینایی که تولید شده راههای دیگه ای نمیشه وسط آورد. یا از طریق آدرس دهی حافظه باید کار بشه یا پورت و یا لینک ارتباطی مثل PCIE. راه دیگه ای بنظرتون میرسه؟

                      دیدگاه


                        #26
                        پاسخ : ساخت یک کامپیوتر به وسیله ی ARM

                        از وقفه ای که پیش اومد پوزش می طلبم
                        آقای آقازاده جسارتا یه خواهشی دارم . اگه وقت کردید تصویر باس پیشنهادی شما رو روی سایت قرار بدید ( یک پورت USB و یک واحد حافظه و پردازنده و اگر فرصت کردید بقیه قسمت ها ) .
                        این خواهشم چند دلیل داره : فکر میکنم اون چیزی که مد نظر شماست پیشرفته تر از اون چیزی هست که من روش فکر می کنم .
                        اینطوری صحبت هامون منسجم تر میشه چون فکر میکنم وقتی همه در باره ی یک چیز صحبت کنیم خیلی بهتره و زمان کمتری صرف میشه .
                        دعایم کنید که شاید به واسطه ی دعای خیر شما مشکلاتم حل شود .

                        دیدگاه


                          #27
                          پاسخ : ساخت یک کامپیوتر به وسیله ی ARM

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

                          دیدگاه


                            #28
                            پاسخ : ساخت یک کامپیوتر به وسیله ی ARM

                            من بین ARM و FPGA در تردیدم . البته اطلاعات درستی در مورد FPGA ها ندارم ولی همه به من پیشنهاد میکنن که از این تراشه استفاده کنم ولی وقتی میپرسم چرا میگن خوب بهتره دیگه . پیشنهاد شما چیه :-/
                            دعایم کنید که شاید به واسطه ی دعای خیر شما مشکلاتم حل شود .

                            دیدگاه


                              #29
                              پاسخ : ساخت یک کامپیوتر به وسیله ی ARM

                              من بین ARM و FPGA در تردیدم
                              پس اینطوری میشه نتیجه گرفت (متاسفانه) که شما هیچی راجع به ایندو و تفاوت هاشون نمیدونین. یعنی فقط میخوایین (با عرض معذرت) یک هوس رو ارضاء کنین و بس.
                              ولی من باب اطلاعتون بگم اگه بخوایین چیزی مثل یک ARM بسازین باید سراغ FPGA برین. FPGA پای سخت افزار رو وسط میکشه و تازه باید یک پروسسور باهاش طراحی کنین. بعد برای اون پروسسور یک اسمبلر و کامپایلر کوچیک C بنویسین و الی آخر....
                              مرحله اول انجام هر کار شناخت کافی از اون کار هست.
                              ARM یک پروسسور هست و FPGA یک آی سی خام برای ساخت آی سی مورد نظر خودتون. ایندو خیلی با هم فرق میکنه.

                              دیدگاه


                                #30
                                پاسخ : ساخت یک کامپیوتر به وسیله ی ARM

                                خلاصه یکی پیدا شد که یه توضیح مفید راجع به FPGA به من بده . خیلی خلاصه و مفید .
                                من یه خصوصیتی دارم و اون اینه که اگه بخوام کاری رو انجام بدم حتما انجام خواهم داد ودر کمترین زمان ممکن هم انجام خواهم داد . تنها مشکلی که دارم وقت هست که متاسفانه به خاطر انجام توام چند کار این یه قلم رو کم دارم . ولی یه قول : هر طور شده هر وقت شده من این پروژه رو به پایان میرسونم . حالا هرکی میخواد مسخره کنه و بگه که هوس هست و غیره و غیره ! .
                                دعایم کنید که شاید به واسطه ی دعای خیر شما مشکلاتم حل شود .

                                دیدگاه

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