|
Виж темите без отговор | Виж активните теми
Дата и час: Вто Юли 28, 2026 1:18 am
таск мениджър или проста ОС за кортекс м3
| Автор |
Съобщение |
|
head_up
Ранг: Форумен бог
Регистриран на: Нед Юни 01, 2008 9:54 pm Мнения: 1503 Местоположение: Пловдив
|
 таск мениджър или проста ОС за кортекс м3
Нещата са опрели до някаква форма на таск мениджър ил икакто писах - семпла ос от типа на freeRTOS. Поради някакви съображения ръководството се запъва за freeRTOS-а и ме напъват да си напиша собствен таск мениджър, което вероятно в крайна сметка ще се случи. Но все пак, колеги, някой би ли могъл да ми препоръча, ако не говото решение, то поне от къде да се зачета за архитектурата на таск мениджърите, че нещо го дъвча с гуглето, а то само глупости плюе ?!
Изискванията малко по-конкретно са: да мога да поддържам до около 32 таска, приоритети между тях, споделена периферия - ако някой я ползва друг да не може да пипа, общи глобални променливи (разни масиви) без да стават мазаници - тасковете в общи линии трябва да се изчакват един друг и да не си пипат перифериите и променливите, с които операра "колегата". Това е което ме интересува, като ако някой таск ми е по-жизнено важен да мога да то отработя овреме - т.е. нещо като приоритети, пък ако може и да се прекъсват един друг при възникване на събитие, което да извика по-високо приоритетния, вместо да чака първи на опашката - още по-добре. Като цяло не ужасно тежка задача, но знам ли до къде ще се стигне на края, а и предполагам, че докато я докарам до работещо решение, ще ми отнеме много повече време отколкото да ползвам чуждо и да му търся бъговете. Та бихте ли препоръчали нещо по темата?
Едит: не ми трябват никакви стекове, нито за tcp/ip, usb, flash cards и т.н. - от просто по-просто
И да се дъвче от GCC ...
|
| Сря Мар 23, 2011 12:42 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
Сега не ти трябва това или онова, ама като ти потрябва ще си скубеш косите
Бих ти препоръчал cocox или nuttx. Кокоса признавам си не съм се задълбавал лично, препоръчвам повече на база чужди отзиви. Но nuttx съм го разглеждал и смея да твърдя, че е добър.
Но ако въпреки всичко си решил да си чупиш главата сам, може да погледнеш и моето решение (кръстил съм го tmos ).
|
| Сря Мар 23, 2011 12:58 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Ако ти трябва нещо наистина толкова просто - просто открадни сорсовете на FreeRTOS. Тя е точно това - прост таск сутчер с елементарните инструменти за синхронизация - семафор, мутекс и опашка. Толкоз. Сорсовете и са 3-4 файла, не е трудна за "взаимстване", щом толкоз държат да имате собствена ваша. Плюваш малко, размазваш с пръст да не личи оригинала и си готов
Много по лесно ще е от това да откриваш топлата вода изначало.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Сря Мар 23, 2011 1:58 pm |
|
 |
|
head_up
Ранг: Форумен бог
Регистриран на: Нед Юни 01, 2008 9:54 pm Мнения: 1503 Местоположение: Пловдив
|
Цецо, подозирам, че си прав, но основната идея е да не се полвало нещо с толкова много възможности-тежест-бъгове, а да се направи нещо, което да покрие минималните изисквания на заданието и толкоз. Нещо като топлата вода. Мокро, да мие и да не ти е гадно. Ама нали ...
miro_atc, ще да ги скубя косите, натам отива работата ... cocox го рещнах по-рано, nuttx също го гледах - прекален натруфени са, почти като freertos-a, а то началството това не го харесва. Та... така! 
|
| Сря Мар 23, 2011 2:16 pm |
|
 |
|
fan
Ранг: Почетен член
Регистриран на: Съб Окт 13, 2007 12:12 pm Мнения: 712
|
Не си губи времето с глупости, ами почни с някоя готова фрее ртос, ползвай от нея най-простите неща. Понатрупай малко опит с кортексите, па тогава тръгвай да си правиш своя. Едва ли ще изпиташ чак такива затруднения да убедиш работодателите си в това! ОС-а е за хора с дълбоки познания в съответната платформа! Това ти го напомням - не вярвам да не го знаеш! 
|
| Сря Мар 23, 2011 2:28 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
Ако можеш да убедиш началството за nuttx ще е най-добре повярвай ми... Казвам ти го като човек, който се връща от там, накъдето ти си тръгнал
Фреертос не става, знам че Цецо мисли друго, ама съм сигурен че ще си промени мнението ако някой ден задълбае повече....
Разликата между фреертос и нутх-а е ОГРОМНА. И то не в размера, а в качеството. Нут-а можеш да си конфигурираш както искаш и за какъвто борд искаш. Може да слагаш GUI, стекове, маже да ги махаш както си искаш. Има документация, има организация на сорсовете.... има си всичко!
Ако искаш нут-а да ти е малък го конфигурираш само с базова функционалност и ще излезе по-малък и по-добър, отколкото ти би го направил....
|
| Сря Мар 23, 2011 2:37 pm |
|
 |
|
gicho
Ранг: Форумен бог
Регистриран на: Пон Мар 13, 2006 1:59 pm Мнения: 3867 Местоположение: Габрово
|
А началството харесва ли бъгове, и изоставания от планираните срокове ...
Едва ли си струва да разработвате нещо такова, според мен вземете нещо готово и забравете. Което не ви трябва не го ползвайте.
За кортекс в момента има сума ти готови и безплатни неща, а като гледам, и вие не сте сигурни какво ви трябва - как го виждате да правите контрол на достъпа до ресурси / периферия без семафори, да комуникирате между таскове без мейлбокси и кюта? Накрая от цялото "не ни трябва" ще си го напишете, и ще си изхарчите времето да дебъгвате.
Ето едно сравнение:
http://www.yagarto.de/projects/rtoscomp/index.html
Оттам можеш да погледнеш това:
http://www.chibios.org/dokuwiki/doku.php?id=start
Изглежда бързо това нещо. Но нямам пряк сблъсък с него.
Универсалният вариант е FreeRTOS-а.
|
| Сря Мар 23, 2011 2:39 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
Не искам да го обръщам на някаква война като ПИК срещу всички останали, но забравете за фреертос. Не ми е приятно да плюя работата на колеги, но вече 3-4 години се занимавам с операционни системи и за мен е грехота след като има читави решения да се ползва нещо от сорта на Фреертос. Това е грешен коловоз, не тръгвайте по него!
|
| Сря Мар 23, 2011 2:54 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
Ами странни хора сте. Вие не творите ли бъгове като пишете?
Готов съм да се басирам на много че ще натвориш поне 10 пъти повече бъгове отколкото има в готова OS като FreeRtos.
Бъговете излизат при продължително тестване най вече.
С FreeRtos-a няколко пъти съм си мислил ей го на,тоя път вече шибания FreeRtos омазва нещо и като дълбая дълбая пак предмониторното устройство се оказва бъгаво
Просто при по разпространените OS всеки потребител се оказва и тестер и като намери бъг и го рапортува и го оправят. Като копаш сам тестовете не са толкова всеобхватни.
Друг въпрос е че ще имаш доста недомислици в първите версии. Като подкараш нещата и почнеш да си ги забелязваш ще почнеш да кърпиш кода. Ей тук в тази фаза ще си допълниш още по сериозно букетчето с явни и неявни бъгове. И кво ще се получи,вместо да изпишеш вежди ще избодеш очи. Че и маса време ще загубиш.
Ако заделиш половината от времето което ще похабиш за писане на собствена OS в разучаване в детайли,на ниво сорс,ще имаш много по изчистен от бъгове код отколкото при варианта сам да си пишеш OS.
И аз си имам собствена OS ама вероятно ще я изоставя,ще мине в графата обучение и развитие 
|
| Сря Мар 23, 2011 3:00 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Оф, стига бе човек  Дилемата я имам и преди ти да ми я натрапиш
Давай агитирай ме. Какво печеля с nuttx?
1. Posix интерфейс (никак не е малко).
то с това май чистите RTOS предимства се изчерпват.
2. USB - нещо не можах да се ориентирам какво предлагат като стек. Т.е. какви устройства могат да изимитирам (Mass, HID, COM)???
3. TCP/IP - в конкретния случай не ми трябва. Ама лошо няма.
4. GUI - ровил ли си го? Читав ли е?
и т.н....
Като цяло всичко допълнително извън класическия RTOS е в процес на разработка при нута и като цяло доста зле документирано.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
Последна промяна Цецо на Сря Мар 23, 2011 3:23 pm, променена общо 1 път
|
| Сря Мар 23, 2011 3:20 pm |
|
 |
|
head_up
Ранг: Форумен бог
Регистриран на: Нед Юни 01, 2008 9:54 pm Мнения: 1503 Местоположение: Пловдив
|
абе хора, ОС е малко силно казано, по-скоро имах предвид повече към таск мениджър. Ей, на и Rowley-то си имат собствен и подозирам, че ще ми е много лесно да го ползвам, но не е идейно да се ползва "нещо като" дадено от средата, прекалено обвързващо. И сигурно сте прави, че ще ми отиде повече време да пиша и дебъгвам отколкото да ползвам готово и да кърпя, знам ли... ще го помисля още малко, но почвам да се обърквам в приличното разнообразие от разни ххххххОС-та, всеки правил и струвал да се чудиш и маеш под кой камък какво ще излезе.
|
| Сря Мар 23, 2011 3:22 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Аз затова ти казвам - вземи фрииртос - а и просто му "взаимствай" таскера. Или там каквото ти трябва. Препоръчвам ти него, защото просто е достатъчно прост, за да може човек да краде цели порции код без да мисли много
А това, че е толкова прост си има и предимства (според мен) и недостатъци (според Миро).
Незнам какъв ти е опита с Куртексите, ама писането на ОС не е тривиална работа. Най-малкото трябва да владееш конкретния процесор и асемблера му на доста прилично ниво. Т.е. да си изял програминг мануала от сайта на АРМ за конкретното ядро с кориците. Аз самия не съм стигал чак такива висини и затова се доверявам на други.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Сря Мар 23, 2011 3:25 pm |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
|
| Сря Мар 23, 2011 4:21 pm |
|
 |
|
head_up
Ранг: Форумен бог
Регистриран на: Нед Юни 01, 2008 9:54 pm Мнения: 1503 Местоположение: Пловдив
|
@relsys, това си е проста стейт машина, която ги върти безкрайно, какво му е интересното? Ако имаш събитие отнасящо се до таск 2, докато отработваш таск 1 му ядеш главата с някой тайм-аут. Ако и трите ти таска споделят общи входно изходни точки (и недай Боже имат тайм-аути) му ядеш главата . Не е функционално по никакъв начин. Но пък е простичко 
|
| Сря Мар 23, 2011 4:51 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
Мога да те агитирам да ползваш моя ОС, даже се пробвах ако помниш... За nuttx няма какво да те агитирам, просто ти казвам, че той е по-добър от моя ОС. Аз си го признавам и без бой, а ти дали ще ми повярваш е все тая.
Това, което искам да кажа в случая е, че има огромна разлика между нещо дето цъка таскове и истинска операционна система. Фреертос няма нищо общо с операционните системи. Това е един проЗт кърнел. Моят продукт също не е баш истинска ОС. Имам някои общи неща с операционните системи, но нямам всичко необходимо, а част от това което имам пък е направено по недостатъчно стандартен начин. Докато nuttx имат всичко и с пълно право могат да си нарекат продукта "операционна система".
Една операционна система е преди всичко концепция. Концепция за това как да разделяш сложните проблеми на много, но прости задачи. Концепция за това как да накараш много задклавиатурни устройства да работят заедно и ефективно. От това следват много неща... трудно ми е накратко да изброя всички критерии на които трябва да отговаря един ОС.
Трябва да се сблъскаш, за да го разбереш каква е разликата между ОС и нещо дето се разпространява като ZIP файл. Няма концепция за драйвери, няма система за конфигуриране, няма нищо.
Не знам как да ти го кажа, но идеята на един ОС е да пести време и нерви. Това значи че като имаш примерно GUI и множество стекове и/или драйвери да можеш да подкараш за минути произволна комбинация от тях. А не да се чудиш като пуснеш GUI дали ще умре ethernet-a или няма.
В единия случай имаш нещо като "лего" т.е. набор от парченца като GUI, USB, Ethernet. Избираш си каквото ти трябва и си спокоен че каквото и да избереш парченцата ще паснат едно с друго. Нещо повече, ако ти трябва направиш ново парче, а колегата ти друго си знаете как трябва да стане. И ако следвате концепцията и вашите парченца ще се стиковат.
Ти ме питаш дали имал USB, TCP и GUI... Ами, не просто ги има, но са истински драйвери. Демек може да си конфигурираш един SPI на който да имаш дисплей, на същата шина да имаш дейта флаш. Върху флаша да подкараш файлова система, а файловата система да мапнеш към USB-то. Разликата с фреертос е просто огромна. Пак ти казвам, трябва да се поблъскаш малко и тогава ще разбереш за какво ти говоря...
Иначе тия сравнения дето ги дават колко време трябвало за task switch и колко байта бил кода са жив ташак. По това не можеш да съдиш за качеството на една операционна система изобщо!
|
| Сря Мар 23, 2011 5:51 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 3 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|