|
Виж темите без отговор | Виж активните теми
Дата и час: Вто Юли 28, 2026 3:56 am
| Автор |
Съобщение |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
А, сега нещата стават още по-едни и същи. Едно е да забраниш прекъсванията в "критичната секция", примерно в power докато прекопираш три регистъра и save-неш други 4-5, съвсем друго би било да ги маскира човек докато трае цяла функция. Е, непрекъсваема модификация на флагове да се прави с маскирани прекъсвания е класически пример, разбира се, ама то там и друго освен критична част няма  .
На операционната система обикновено и стига най-ниското ниво на прекъсване, оттам нататък
другите дали се маскират или не зависи от архитектурата (хардуерна).
В 68k например прекъсванията не се маскират от trap инструкцията; в power пък - бидейки RISC - се маскират
за всеки "exception", и работа на кода, обработващ тоя exception е да докара в няколко цикъла
процесора до възстановимо състояние и да разреши прекъсванията. Като ефикасност последното
е малко по-удачно, скоростта е същата, а гъвкавостта малко по-голяма, но това са подробности.
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Вто Юни 23, 2009 6:53 pm |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
Е това е любим вариант, няма що. И аз много се дразня, като изпадна в такава ситуация.
Решението е очевидно - явно няма как да стане без обсебване на процесора в цикъл, и то
дълъг; ама нали е против всичко разумно и свястно, което човек е правил през годините,
и ми се обръщат червата. Не помня къде и кога беше през годините, но май имах подобен
проблем... помня само какво е усещането обаче, другото се е изтрило  .
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Вто Юни 23, 2009 7:34 pm |
|
 |
|
emilvtc
Ранг: Форумен бог
Регистриран на: Вто Фев 06, 2007 8:44 pm Мнения: 3175 Местоположение: Пловдив
|
От всичко казано до тук - общо взето успяхме да се разбереме за какво говориме.
Та в крайна сметка има ли желаещи, които биха се включили по някакъв начин в подкарването на РТОС, TCP/IP стек и компилатор?
Аз в случая имам интерес всичко това да е за кортекс, с уговорката че трябва да се предвидят вариянти и за портването му (реюзване) и за бъдещи нови процесори които ще се появат.
Лично аз се интересувам от РТОС, който да може да работи изцяло в едночипова конфигурация на системата (да ползва само вътрешна РАМ и РОМ на процесора). Същото се отнася и за стека, като вече за броя на конекциите поддържани едновременно от него си струва да поговориме допълнително. (лично аз едва ли ще използвам повече от една такава конекция).
Относно драйверите поддържани от РТОС-а - ако с тях може да се изпълнят гореописаните условия - от това по-добро няма
За компилатора - имам всичко необходимо за работа с Кеил (включително и ULINK), но с голямо удоволствие бих инвестирал "време и енергия" в разучаването и подкарването на GCC... В крайна сметка останах с впечатлението, че почти всички участници във форума мислят по подобен начин ...
Можеме ли да направиме подобно "коопериране" помежду ни и как да го направиме ?
Идеи ?
|
| Сря Юни 24, 2009 1:50 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
Някой да вземе да премести темата в раздел безумни идеи
Пич, разбирам ентусиазма ти, обаче това за което говориш е един айсберг от проблеми. Минах по тоя път и не горя от желания да минавам пак...
Работата е страшно много... Айде за Кортекс може и да е по-малко и да има примерни читави библиотеки, щото самият ОС е една малка прашинка. Поне за АРМ7 беше така. Един кърнел се прави бързо, обаче като почнеш динамични памети, драйвери за периферии, стек за това, стек за онова и накрая стигнеш до някаква проста обектна среда - всичко това отнема години.
В началото и аз търсех мераклии, та ужким ако се върже някой да помага с код или поне идеи... Да кажем, че не съм търсил достатъчно или че просто не попаднах на хора със сходни нужди - и в двата варианта има логично обяснение. По-интересното е, че след като направих и го предложих на познати - при това не просто безплатно, ами и с фрее съпорт. И пак интерес близък до нулев... Това наистина ме учуди, щото не го предлагах на непознати, а на хора с които си имаме взаимно доверие и съм им продавал не едно или две неща моя разработка. В един момент им предлагам нещо безплатно и те се дърпат... Даже и тук във форума съм споменавал много пъти, но не е имало особен интерес. Не съм публикувал сорсове поради простата причина, че дълго време ги променях, а освен това и да искам не мога да публикувам всичко, защото има замесени и други хора освен мен...
Та както ида е, моят съвет е да заебеш орташката работа. Ако ти трябва помощ за нещо конкретно тук му е мястото - кой колкото може ще помога надявам се...
|
| Сря Юни 24, 2009 3:45 pm |
|
 |
|
woody
Ранг: Форумен бог
Регистриран на: Вто Юли 31, 2007 2:55 pm Мнения: 1792 Местоположение: София
|
RTFM + експерименти и с времето си там, като всичко друго.
|
| Сря Юни 24, 2009 4:16 pm |
|
 |
|
emilvtc
Ранг: Форумен бог
Регистриран на: Вто Фев 06, 2007 8:44 pm Мнения: 3175 Местоположение: Пловдив
|
Miro,
вероятно ще се окажеш прав за "безумните идеи"... (дано обаче да не)
Относно шерването на сорсове - това може да се организира само помежду хората участващи в начинанието.
Не си представях да започнем и здраво да пишем софтуер от "нулата", а да "плагиатстваме" здраво идеи, та даже и код от разни РТОС-и за които можем да намерим инфо и сорсове.
Същото важи и за стека ...
Иначе да - можем да се спасяваме по единично. До преди да стане въпрос за "съвместно правене на нещо" - аз живеех с мисълта да си ползвам Кеил компилатора, Кеил РТОС-а (има сорсове и документация), и да портна и подкарам iwIP стека, след което да го къстъмизирам според нуждите ми. (Кеил имат и стек, който не е оптимален, но работи. Е, за сега няма сорсове за него).
И тъй-като осъзнавам, че по този начин ще се окажа "женен" за Кеил - след като се повдигна темата за нещо съвместно - реших, че определено си струва да зарежа Кеил и заедно с други хора "луди" поне колкото мене да подкараме същите неща, но на базата на фри развойни средства ...
Е- ако не става - не става ... Здраве да е
А относно това, че хората трябва да са на една и съща "вълна" в един и същи момент - спор няма. Трябва всички да са заинтересувани от това, което правят ...
От скоро съм във форума и съжалявам, че не съм попадал на писаното от тебе относно това което правиш и си правил по писането на ртос-а ти. Отдавна съм "узрял" за подобна идея ...
Изненадан съм от ниският интерес на познатите ти към това което си им предложил ... Една идея, та даже и готова-реализирана мисля, че никога не е в повече ...
|
| Сря Юни 24, 2009 4:28 pm |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
Идеята за направа на RTOS, TCP/IP и т.н. ми се струва като откриването на топлата вода  Примерно FreeRTOS, Microchip TCP/IP, FAT16/FAT32 библиотеките, USB Host, USB OTG, всичко работи перфектно на PIC32  , е вярно Ethernet е 10MBit, ама и за какво ми е повече. Според мен спираш се на нещо, започваш да го използваш и като не ти харесва нещо го променяш, и така след няколко месеца ще си го насосал са собствени нужди.
_________________ Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....
|
| Сря Юни 24, 2009 5:34 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
Това в голяма степен важи за повечето потребители... При мен обаче имаше две "особености":
* първата е АРМ7 архитектурата, която е уникална - нямаш атомични операции, прекъсванията се забраняват сложно, нямаш индивидуални прекъсвания а един IRQ Handler и т.н. Повечето ОС-ве са писани първоначално за други архитектури и просто са портнати колкото да работят... Но естествено като не си се съобразил с особеностите, резултатите са далеч от перфектни.
* Един ОС по принцип не е малко работа, но в моя случай сравнено с останалата част от проекта е нищожна част... Съотвено можех да си го позволя и си струваше, щото като строиш висока сграда никак не е без значение върху какви основи си стъпил.
Добрият инструмент си струва инвестицията. В случая "добър" е много относително, понеже аз правих нещо по средата между "прост" и "сложен". И спрямо първите мисля че съм по-добър, а спрямо другите изобщо не съм добър... Въпросът е че на шибан контролер с 64К няма как да подкараш добър ОС и в това е целият проблем. А който си мисли, че freertos е добър RTOS си е за негова сметка 
|
| Сря Юни 24, 2009 7:40 pm |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
Миро, кво се оправдаваш бе. Не дължиш никому обяснения защо си избрал да
правиш нещо. Ако има технически питания, както досега, е ОК да си приказваме
до втръсване.
Да не говорим, че писането на един scheduler (повечето от това, дето му викат
RTOS, не са много повече, ти май нещо такова ми обясни за FreeRTOS неотдавна)
отнема ден-два за грамотен човек.
Виж, писането на TCP/IP стек е повече (на мене ми отне цели 6 месеца, но го
направих така, че да не ми потрябва да го правя пак в обозримо бъдеще, а и ми беше първи).
Естествено, че който не може да пише системен софтуер ще приказва, как му стига
да свързва готови неща с няколко реда.
Както е естествено, че който не може да пише софтуер ще обяснява как му стига да сади
домати.
Нашето коте и домати не може да сади и пак е щастливо. Шарен свят, въпрос на
желания и разбира се възможности.
Никой не прави повече от това, което може....
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Сря Юни 24, 2009 8:41 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
|
| Сря Юни 24, 2009 8:58 pm |
|
 |
|
шопов
Ранг: Минаващ
Регистриран на: Сря Май 17, 2006 4:22 pm Мнения: 34 Местоположение: софия
|
хм, миро, какво точно искаш да кажеш...? АРМ7 има неделимите инструкции SWP/SWPB... какво повече ти трябва, което не е неделимо?
|
| Сря Юни 24, 2009 10:11 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
Мда... имаш една инструкция, която няма вариант да я ползваш от С, нито в thumb режим (бтв моят ОС се казва TMOS - thumb mode os). A дори в ARM моде за да направиш семафор ти трябват между 15 и 20 асемблерски инструкции (виж ARM arhitecture reference). Tова са ти 60-80 байта код. Като облечеш във функция с call и смяна на режима отиваш на 100 байта...
А една системна функция ползва семафор при влизане и при излизане. В някои случаи и повече от 1 семафор. Де Илия - на кирия? Аз повечето ми системни функции са по-кратки
при всеки друг контролер ползваш нещо от сорта на "if(lock++)" и си готов и това ти е 1 инструкция...
|
| Сря Юни 24, 2009 11:56 pm |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
В power това е решено по хубав начин - хем няма заключване, хем има read-modify-write
с гарантирана цялост.
С една (определна, "lwarx") ) инструкция се чете даден адрес и се създава резервация за него, после
с прочетеното се прави каквото се прави (не непременно в една инструкция),
и след това се пише с друга (stwcx.) обратно.
Последната променя статусен бит, по който може да се branch-и. Ако между
четенето и писането никой не е пипал тоя адрес, статусът е един, инак - друг.
При "друг" цялата операция се започва отначало - и така до успех.
Естествено процесорите не държат карта на цялата памет с резервации,
а само за дадени блокове - понякога цялата памет е един блок май.
Но предвид нищожните шансове някой да се намъкне да пише между две-три
съседни инструкции натоварването от цялата работа си е нулево, а печалбата
от незаключване на бъса - с всичките му съпровождащи проблеми, от конвееризация и т.н. - може
да бъде немалка и като скорост, и като сложност на хардуера.
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Чет Юни 25, 2009 1:40 am |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
tgi, не поемай щангата толкоз навътре  Между другото как е DOS-чето ? Това последното е шега разбира се, да не ми се ядосаш пак ?
Поста ми е ориентиран към Емил. Спомням си го от електротехникума като упорит човек, не е решил не е направил по-добра OS. Мисълта ми беше има ли смисъл човек да закопава 1-2г. в нещо строго специфично(miro казва, че и повече от 2г. копа), което може да намери пазар, може и да не намери ? Ако е съставна и неразделна част от някакъв голям проект, може би да, ако е за спорта пак става, ако е нещо дето ще тръшне Windwos/Linux/MAC и ще бъде на лайт иърс ахед, тоже. Т.е. според мен самоцелното писане на ОС е някак си неприемливо в днешно време, по-скоро се започва с някакъв проект, в който се систематизират нещата, постепенно с времето се прибавят нови и нови неща, примерно TCP/IP стека, файлова система някаква, на SD карта, или на USB stick, и след няколко години по край другите неща ще е налице RTOS-оса. Пък в спестеното от копане време е по-добре, както казва tgi, да се полюбуваме на мотиката и на отглеждането на домати  Де да имах тук някоя нивичка, всяка вечер щях да съм в доматите ...
_________________ Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....
|
| Чет Юни 25, 2009 2:40 am |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
Абе ако Емил е толкова сериозен работата може и да стане  И времето може и да е далеч по-кратко, ако му помагаме стъпка по стъпка какво и как да прави. Ние казваме 1-2 години щото толкова отива като нямаш опит. Аз примерно едва вчера, след ъпгред на емулатора си успях да изкарам списъка от тасковете под GDB. И като цъкнеш върху някой таск да ти показва в сорса докъде е стигнал, променливите в неговия контекст и т.н. Но ми показва само активните таскове, щото аз съм ги пръснал в различни списъци, а то поддържа само 1 списък... Ако съм го знаел това нещо навремето щях да си направя по друг начин TCB-тата, ама... И много други неща има дето човек ги разбира в последствие, затова не можеш да кажеш че ще направиш ОС от нищо за 2 дена.
За струването... за печалба е трудна работата, но той така или иначе ще затрие сума си време докато навлиза в GCC и се бори с чужди сорсове. Т.е. така или иначе има няколко месеца време за разучаване, като няма гаранция че това което разучи после ще му е удобно.
|
| Чет Юни 25, 2009 7:46 am |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 2 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|