| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Ретро ... (софтуер за компютър) http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=12574 |
Страница 1 от 1 |
| Автор: | stefan63 [ Нед Дек 29, 2013 11:05 pm ] |
| Заглавие: | Ретро ... (софтуер за компютър) |
Това трябва да е около-новогодишна тема - червеното вино, спамът и добрите идеи са позволени. Язвителните забележки са нежелателни. Колегата Н'бабане ме запали с ретро архитектурата на Zneo Z16f . Запали ме да мисля - как се прави софтуер - не че много му разбирам де.... Да се абстрахираме от хардуера, за АРМ нещата са доста по-развити, но и там "native development" сякаш не се среща често Базово има един безплатен , но фирмен(скрит сорс Zilgog) или много сложен компилатор (gcc)от Си и асемблер-работещи под Уиндоус. Как с това да се направи самостоятелен компютър- на който се пише, компилира и дебъгва ? За ОС съм си харесал nuttx(.org) , за компилатори се зачитам тук там, но за дебъгер ми е съвсем мътно.... . Как например е направен Турбо паскала? Първите версии бяха 40-50 килобайта и бяха редактор / компилатор/дебъгер(достатъчен чат-пат). Всякакви доброжелателни мненив са добре дошли! |
|
| Автор: | Dimitar [ Пон Дек 30, 2013 3:02 am ] |
| Заглавие: | Re: Ретро ... (софтуер за компютър) |
Човека, дето е минал по тоя път да си направи всичко, дето му трябва вече не пише тук иначе щеше да ти каже това, онова |
|
| Автор: | Н'бабане Гт'муан'га [ Пон Дек 30, 2013 3:03 am ] |
| Заглавие: | Re: Ретро ... (софтуер за компютър) |
Така и така колегата ме е споменал в поста, та реших и аз да изкажа мнение Значи как е направен Турбо Паскала не знам със сигурност. Предполагам че е на асемблер. Всъщност това е нормалния път на развитие на една система - първо се правят най-простите рутинни неща на асемблер, раздвижва се цялата система, после на самата нея се прави компилатор (алтернативно крос-компилатор на друга система), с който вече се пишат по-сериозните неща и т.н. Както се строи къща - първо основи, после плоча, после първи етаж и т.н... Правенена на абсолютно всичко от нулата е огромна и може би безсмислена задача. Не че не е възможно, но е трудно. Пък и понякога има добри алтернативи за избор. Nuttx, който си споменал е хубав ОС. Малко е сложен обаче за подкарване мисля, но пък си има чистия десктоп привкус, който иначе липсва в останалите опън-сорс ОС-и. Освен това доста ОС, особено тия за ембедед, не могат да изпълняват зареждаеми приложения. Но по принцип мисля, че Nuttx може да се портне лесно, само му трябват основните драйвери за хардуера. Оттам нагоре е значително по-лесно... И естествено - весело посрещане на 2014 на всички! |
|
| Автор: | miro_atc [ Пон Дек 30, 2013 11:07 am ] |
| Заглавие: | Re: Ретро ... (софтуер за компютър) |
Най-добрият подход е като gcc - всичко е на модулен принцип и на сорс код. Има фронт-енд за различни езици, който не зависи от платформата и мачка всичко до псевдо код, не помня май RTL ли се казваше... Има си и бак-енд който бълва реалния код за конкретната платформа. За нов таргет първо се прави бак-енда и веднага може да компилираш "някакъв" код. Казвам някакъв защото чистия компилатор при gcc е много беден и прост. Дори не поддържа всичко от Ц, а се разчита на много библиотечни функции. Така че втората стъпка е да се портнат стандартните Ц/Ц++ библиотечки за съответната платформа. По принцип стандартните библиотечки са на сорс код и имат "универсални" варианти, демек може и без портване, а просто да се прекомпилират с новия бакенд. Само че това не винаги е добро решение. Примерно за АРМ в newlib-a функцията за делене на long long ползва чисто софтуерно деление, не отчита факта че кура може да има инструкции за 32-битово деление и с тях може да се направи 64-битовото по-бързо. След като се пуснат стандартните библиотечки вече може да се каже че има работещ компилатор и с него може да почне да се прави някакъв фърмуер, евентуално ОС, някакви драйвери и т.н. С две думи може да почне да се оживява... Сега, ако се подкара нещо като файлова система с нужните за целта стекове и библиотеки може да се мисли за прехвърляне на развоя. В случая с gcc това значи да се прекомпилира самото гцц. Ако трябва да се прекомпилира в цялата му хубост, преди това трябва да се прехвърлят доста библиотеки с които има зависимости. Според мен това е много работа, освен ако новия хост не е с лайнуксо-подобен ОС, тогава повечето библиотеки вече ще ги има... Другия вариант е да се преконфигурира и да се окастри гцц-то, което също не е лесна работа. Това е общо-взето... в карайния вариант се получават изпълними файлове или фърмуер за новия хардуер, прехвърлят се и сорсовете и бачкането може да продължи от новата платформа, а стария компютър да се изхвърли |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|