|
Виж темите без отговор | Виж активните теми
Дата и час: Вто Юли 28, 2026 1:19 am
| Автор |
Съобщение |
|
radolin
Ранг: Форумен бог
Регистриран на: Пон Дек 19, 2005 12:21 pm Мнения: 1037
|
Да, за разработката на embedded Linux е добре да имаш бързичък компютър с повечко RAM. Причината обаче не е, че Линукса или някоя дистрибуция са бавни, а че най-вероятно ще ти се наложи да компилираш всичко от нулата - GCC, GLIBC (или някоя друга), ядрото, и всичко останало. Това са гигабайти изходен код - компилирането изисква изчислителна мощ (или търпение). След първоначалната компилация вече не ти е необходим кой знае колко бърз компютър.
ucLinux не е Real Time, а вариант на Linux за процесори без MMU. В стандартното Линукс ядро се работи по подобряване на латентността, но все още нещата са далеч от hard real time. За подобни цели има разни допълнителни наща, като RTAI, RTLinux, Xenomai.
Както вече казах, моя съвет е следния - ако правиш малко бройки/уникални проекти насочи се към някой SystemOnModule чиито производител дава добра софтуерна поддръжка. Да, цената на модул е значително по-висока от частите в него, но за малко бройки това не трябва да е проблем. На тази цена получаваш готов, тестван продукт и най-важното няма да се блъскаш със базовият софтуер (компилатори, драйвери, библиотеки), а само със този специфичен за твоя проект.
Ако ще правиш повече бройки, вече може да си струва да инвестираш време да се научиш или да платиш на някой да ти помогне за софтуерната част и да си разработиш твой хардуер. За тази насока според мен е най-добре да си базираш софтуерната част на OpenEmbedded (както и за предния вариант, да си харесаш модул, който се поддържа там).
Дали Линукс е най-добрия или дори приемлив вариант за твоя проект трябва да си прецениш ти. Тъй като до сега повечето мнения бяха негативни, бих искал да изразя моето позитивно такова. Да, използването на Линукс включва голям брой компоменти и като цяло ще увеличи доста сложността (complexity) на софтуерната част. Това е цената, която трябва да платиш, за да се възползваш от предимствата на тази система. А те са, че е донякъде стандартна (в сравнение с твоя си ОС) и има огромен брой налични приложения и библиотеки върху които да стъпиш като база.
Ако ти трябва само да покажеш 1-2 прозореца с по няколко бутона, сигурно няма да ти отнеме много време да напишеш софтуера от нула. Когато нещата започнат да стават по-сложни обаче, по-добре ще е да ползваш готова библиотека (или Toolkit), отколкото да преоткриваш колелото. Помисли колко време би ти отнело да пренапишеш QT примерно?
|
| Пон Юли 11, 2011 12:01 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
Емо, ти не каза точно какви проекти ще правиш, гледам че и колегите гадят...
Искам да кажа, че това има значение. Ако успееш да си намериш някаква платформа и някаква дистрибуция и порт дето ще те устройват за всички проекти си лесен. Подкарваш я и от там насетне си пишеш само приложения и си свиркаш. Но ако нямаш готова и ти ще правиш драйвери или ще събираш пакети ще ти са нужни много повече знания и ресурси.
В общия случай второто винаги се налага. Дори и да си почнал с работеща платформа, те нещата се развиват и за съжаление не едновременно. Ъпдейтнеш нещо, то иска ъпдейт на друго и става кофти, а компилациите от разни платките се поддържат само известно време. След това ти предлагат нова платка.
С други думи това, че ще си на линукс може и да не ти спести "революциите".
И другото дето може би се заблуждаваш, че линукс значи евтино и е за хора без пари. Няма безплатен обяд  И хубав компютър ти трябва и хубав джи-так и хубава съпорт... иначе мъъъъъъъъъъъъка 
|
| Пон Юли 11, 2011 2:25 pm |
|
 |
|
ike
Ранг: Форумен бог
Регистриран на: Пет Фев 04, 2005 9:59 pm Мнения: 6019 Местоположение: София
|
Нещата не се връзват. Това което си го посочил за единични бройки излиза 77$, за тези пари от DX кеф ти лаптоп с клавиатура, кеф ти таблет с GPS и тъчскин. Ако за 1к бройки наистина струва 21$ направо да почват да го продават така. От ардуиното има продадени 100к бройки, това можеше да са тяхни продажби, ако цената беше такава.
_________________ Warriors of the Night, ASSEMBLER!!!
|
| Пон Юли 11, 2011 5:27 pm |
|
 |
|
plameniv
Ранг: Форумен бог
Регистриран на: Нед Окт 10, 2004 9:55 am Мнения: 1718
|
Изобщо не се връзва, просто е въпрос на недоразбиране на материята
За да си заслужава проект от такова естество, цената на единична бройка колко мислиш трябва да е. Трябва да е нещо което найстина си заслужава да се хвърля толкова труд.
Има една приказка "Времето е пари!", ако не знаеш как да цениш времето и парите няма да ги имаш 
_________________ Избийте баламите и тарикатите сами ще умрат!
Няма невъзможни работи - има много трудни работи!
----------------------------------------------------------------------------------
"Я в Москве с киркой уран найду, при такой повышенной зарплате" !
|
| Вто Юли 12, 2011 12:09 am |
|
 |
|
kiiid
Ранг: Почетен член
Регистриран на: Съб Сеп 24, 2005 2:00 pm Мнения: 787
|
Аз не приказвам наизуст. Това са неща дето съм ги купувал и хората са ми правили квоти. Ардуиното не знам що за стока е, никога не съм го пипал а и не мисля да го правя. В края на краищата никой не те бие по ръцете да купуваш, нали? Аз тоя пример го дадох като пример за това че в наши дни наистина е възможно за $20 човек да слепи приличен хардуер дето търкаля линукса.
|
| Вто Юли 12, 2011 2:50 am |
|
 |
|
MidNighT_SpiRiT
Ранг: Напреднал
Регистриран на: Нед Сеп 17, 2006 12:00 pm Мнения: 450 Местоположение: Plovdiv
|
Не знам в началото защо се опитахте да го откажите човека, по-добре да му помогнем с каквото можем.
Ето един вариант от мен - някой процесор на Атмел. Имат добра софтуерна поддръжка и се почва горе-долу лесно. Обач може да не взимаш тяхна развойна платка, а някоя китайска, която ще има даже повече неща и ще е по-евтина, но това вече зависи от твоите предпочитания. Виж средата openembedded и дистрибуцията angstrom linux. Библиотеката за графичната среда е Qt за линукс(на C++, много добре направена), другата известна е GTK+, но тя е на C и личното ми мнение е, че за много прости неща става, но иначе е отвратителна. Сега търкаляме angstrom linux на 200MHz с графична среда и работи общо взето добре - като натиснеш тъч скрийна и бутона не се бави да се натисне.
За книги - намери нещо за писане на драйвери под линукс, сигурно ще ти се наложи и не е кой знае колко сложно. Има и книги за Qt.
За дебъгването - много е полезно да можеш да дебъгваш на PC-то. Но сигурно всичко няма да можеш да дебъгваш, а и понякога има разлики - тук работи, а там не. Убунту може да си сложиш само в началото, след това по-добре Fedora или нещо подобно, защото Убунтуто не е много за развойна дейност (аз го ползвам сега, но защото ме мързи да слагам друго). Можеш да дебъгваш с printf() - връзваш се през конзолата на PC-то към тази на платката чрез ssh и можеш да гледаш съобщенията и да пишеш както на PC-то. Зависи какво ще правиш - предимството на линукс е, че имаш супер много готови неща и средата е стандартна. Малко ме дразни това, че има доста библиотеки и всяко ново нещо е всъщност малко нов код, който разчита на 10 библиотеки, които пък от своя страна разчитат на 10 други всяка от тях...
|
| Вто Юли 12, 2011 9:53 am |
|
 |
|
MidNighT_SpiRiT
Ранг: Напреднал
Регистриран на: Нед Сеп 17, 2006 12:00 pm Мнения: 450 Местоположение: Plovdiv
|
Освен това имаш готови решения за база данни - sqlite примерно, за сървър mysql, cherooke и др. Имаш готови неща за копресиране, за разни кодирания, кодеци и тн.
|
| Вто Юли 12, 2011 9:58 am |
|
 |
|
emilvtc
Ранг: Форумен бог
Регистриран на: Вто Фев 06, 2007 8:44 pm Мнения: 3175 Местоположение: Пловдив
|
Определено мисля за "бутикови" серии от устройства. Не мога (а и не искам) да се боря с китайците ... Мислех за Home Automation системи, които малко или много са "бутикови", но нямам конкретно задание. Мисля по-скоро за концепция, която да използвам дълго време.
Като гледам на къде вървят нещата - всяко едно устройство трябва да има удобен юзерски интерфейс, а той включва графичен дисплей, бутони или тъч скрийн, звук и др. Та идеята ми е да не правя такива "конзоли" а да използвам готови такива - например GSM-и, таблети, лаптопи и др. Нещо повече - те няма да са включени в цената на системата и така тя може би ще е по-конкурентна. От друга страна - колкото и да се старае човек - трудно може да направи устройство с размерите на GSM, с графиката, дизайна и прецизността на изработката, нали? А в крайна сметка юзъра вижда от цялата система само частта с която има допир - а това е конзолата.
Та за да се поддържа "готова" конзола може би най лесно това става през WEB.
Всеки съвременен GSM има WEB браузер. Та какво трябва да има системата ни? Трябва да има WEB интерфейс.
Почти всички производители на чипове с етернет имат разни библиотеки за РТОС, ТСР стекове и WEB сървъри, но те са "вързани" към конкретния силикон. Друг е въпроса до колко са развити и до колко ще свършат работа. И ако се наложи да се смени силикона - миграцията е трудна и реюзването на сорс код е почти невъзможно - независимо колко интелигентно и с поглед в бъдещето е писан.
Вярвам никой не живее с мисълта, че цял живот ще "тъкърка" една и съща HW платформа, нали? Т.е. добре би било да се избере SW платформа, която да има поддръжка за всички (или повечето) HW платформи. Добре ще е ако тя не е "затворена". Не вярвам някой да се чувства щястлив "хванат за топките" със затворена SW платформа.
От друга страна добре ще е ако можем цял живот да се ровим в един и същ "познат" ни код с еднакви концепции. Това е възможно ако ние си го пишем (много трудоемко и ограничаващо) или ако използваме нещо "стандартно" - примерно "линукс". Всеки производител на чипове гледам има интерес да има порт на линукс за чиповете си ...
Несъмнено рано или късно ще се стигне и до поддръжка на графичен дисплей. Тогава ще ми се наложи да "надграждам" над съществуващия SW, без да се започва от начало. ( ама оптимистично звучи, нали?  )
Стана въпрос за мигането на LED с линукс базирана система
А-ми ако трябва да управляваме LED-a с GSM например- дали няма да ни е най-лесно да го направим с линукс базирана система?
"Тайм то маркет" е много важен параметър на развоя. Подобряването му е възможно само с масовото реюзване на тестван код. Това до голяма степен може да е хардуерно независимо само ако се използва SW платформа поддържаща всички (или голяма част) хардуерни платформи. Може би "линукс" е много добър вариант за това.
Търся вариант подходящ за сам човек или малък екип от специалисти...
Отосно хардуера - наистина частите са 20, нека са и 30 USD. От друга страна в една такава система цената на HW не е определяща. Цената на SW е в пъти по-голяма...
На първо време вероятно ще се използват готови HW платформи, но по-нататък вероятно ще ги правя сам. Във форума има доста хора, които успешно го правят.
Както казах нямам конкретен проект и мога да се впусна в разучаване на нова платформа "на спокойствие", но всичко това ми се ще да го правя с визията как да си пестя времето и енергията за в бъдеще. Т.е. в развитието си съм стигнал до кръстопът и се чудя на къде да тръгна.
Отворих темата, за да чуя и вашето мнение и съм ви благодарен за което !
|
| Вто Юли 12, 2011 11:25 am |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
Мисля, че те разбирам и изобщо не се опитвам да те разубеждавам, както и никой от колегите, напротив!
По-скоро те предупреждаваме, че нещата не са чак толкова розови. Не гледай на линукса като някакъв абсолютен стандарт дето като го научиш няма да имаш никакви проблеми. Пак ще се обвързваш с платформи и пак ще си "хванат за топките" донякъде
Хубавото на линукса е, че все пак има "някакви" правила и стандарти и ако ги спазваш пренасянето е по-лесно... Но не исъвсем без проблеми
Макар, че те тия правила може (и е редно) да се спазват и без Линукс. Разликата е, че това става в много по-малки общности, оттам и файдата от спазването им е по-малка.
Тъй де, няма кво да го умуваме... Хващаш и пробваш! А ние ти стискаме палци
А пък ако все пак решиш да отложиш (не че те разкандардисвам, напротив) - обади се. Има и компромисни решения... най-малкото може още от сега да минеш на GNU развойни средства 
|
| Вто Юли 12, 2011 12:15 pm |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
Да се използва Qt за Embedded Linux е прекалено голям оптимизъм. Само за пример ще дам, че Opera е писана на C++ с Qt, но който се е интересувал знае, че е по-лакома за памет отколкото Firefox,Safari,Crome и Internet Explorer взети заедно. Директен пример, на моите компютри Opera 11.50 харчи с 4-5 отворени таба към 210МБ ! Наскоро написах една елементарна графична програма използвайки Qt 4.7, чета през USB PICKit2 , който пък чете една I2C памет, след което правя и показвам в табличен вид един CSV с размер около 800kB, в Debug и Release версия заема към 25 MB RAM, без значение дали я пускам под Ubuntu или WinXP ! Така че тая Embedded Linux платформа трябва да е доста добре подплатена с RAM.
Ако все пак решиш да използваш Qt инсталирай си Qt Creator ( от сайта на Nokia ), работи на Win/Lin/MAC, генерира изпълними файлове за Win/Lin/MAC/Symbian. Ако ти трябват книги имам 2-3 много добри книги за Qt в електронен формат, не са за последните Qt версии, но общо взето нещата и стила на дизайните е един и същ. Наскоро си купих една книжка, "The Definitive Guide to GCC" мисля се казва, довече ще постна точното име и автора. Книжката е трепач, препоръчвам я на всеки, който ще използва GCC...
Ubuntu 10.04 LTS ( GNOME ) при мен се търкаля почти 2 пъти по-бързо от WinXP на лаптоп модел 2007г. с 2GB RAM, вградена графична карта и диск 5400. На сървъра е пак с 2GB, вградена видео карта, но процесора е доста по-добър, там няма грешка, откак съм го пуснал миналата година не съм го спирал, кеф ти графична среда, кеф ти конзола, няма монитор, управлявам го чрез VNC. Настолния ми компютър е с 4GB RAM, някаква NVidia 256MB, диск 7200, там просто хвърка. На всички машини процесорите ми са двуядрени, модели 2007-2009г, между 1.4GHZ & 2.2GHz честота. На едната машина има още Kubuntu, а на другата се каня да сложа NetBSD. И на трите машини се зарежда за под 30 секунди и се спира за около 5-7 секунди без значение колко приложения съм отворил, нещо което ме кефи особено много на фона бозите. За развойна среда основно използвам Qt Creator, MPLAB X, KiCad, Eagle. Тия дни ще сложа VirtualBox на всички машини, просто за да мога кога ми се наложи да използвам и Protel 99 SE. Представям си какво ще е ако го пусна на i7....
Забравих да вметна, използвам Linux от 1998г, кажи речи цели 13г., все още имам тъмни петна, особено когато ми се наложи да чета/пиша/променям скриптове. Минал съм през RedHat, Mandriva, SUSE, Debian, Fedora, Ubuntu. Не си прави илюзии, че ще можеш за няколко месеца или година да подкараш нещо стабилно. Според мен ще ти са нужни между 1 и 2г. , за да се научиш и да разбираш какво правиш.
_________________ Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....
|
| Вто Юли 12, 2011 6:28 pm |
|
 |
|
Wise
Ранг: Форумен бог
Регистриран на: Нед Дек 19, 2004 6:26 pm Мнения: 1628 Местоположение: Сливен
|
Това ли е книжката?
hagen-the-definitive-guide-to-gcc-2e-apress-2006.pdf
http://www.google.bg/url?sa=t&source=we ... Mw&cad=rja
тази е 
Последна промяна Wise на Сря Юли 13, 2011 2:08 pm, променена общо 1 път
|
| Сря Юли 13, 2011 9:31 am |
|
 |
|
radolin
Ранг: Форумен бог
Регистриран на: Пон Дек 19, 2005 12:21 pm Мнения: 1037
|
Embedded-a не е вече това, кето беше  . Миналата година ходих на една конференция за embedded Linux и когато производителите на чипове като TI представяха новите двуядрени и над 1 гигахерцови ARM системи част от публиката каза - е, то това какъв embedded e с тея параметри?
Малко отклонение - конференцията се провежда 2 пъти годишно - един в US и един в Европа. Тази година европейската ще е в Прага, ако някой се интересува http://events.linuxfoundation.org/event ... nce-europe
По принцип има интересни презентации. Добрите хора от http://free-electrons.com правят пълни видео записи и на европейското и на американското издание. Като цяло на сайта им освен видеотата от конференциите и има и доста документация в PDF. За начало примерно тук - http://free-electrons.com/blog/elce-201 ... al-videos/
За мен дефиницията на embedded по-скоро се измества към принципа, че това е специализирана компютърна система, която е част от някаква машина, система или нещо такова. Традиционно тези системи имат и ограничени ресурси, но това вече не е съвсем така. В момента е съвсем нормално embedded Linux система да има повече хардуерни ресурси от десктоп компютър от преди 10-на години.
Относно QT и паметта - по принцип измерването на използваната памет от дадено приложение в Линукс е малко разтегливо понятие, главно заради ползването на споделени библиотеки. Ти тези стойности как точно ги измери?
Основното предимство на QT за ембеддед, освен огромния набор готови компоненти е възможността да се избегне X-a. QT си има специална embedded версия, която сама може да рендира графиката директно във frame buffer-a, така че се премахва изцяло X windows системата и съответно се освобождава ползваната от нея памет.
Примерно в момента ползвам QT-embedded с доволно сложно приложение върху система със 128MB RAM, 7" touch screen за графиката в 800x480 и няма никакви проблеми с недостиг на памет. Ако ще произведеш 100 бройки от дадено устройство, според мен е по-добре да сложиш 128МБ РАМ и да ползваш QT за графичния интерфейс, отколкото да сложиш 32MB RAM и да си напишеш сам супер оптимизирана графична библиотека. Освен това QT не е само графичен а цялостен toolkit за разработка на приложения, който предлага много улеснения и пести време.
Тука може да бъркам малко с цените, но да кажем, че 128МБ рам чипове струват към $10, за 100бр=$1000. Сметнете си горе-долу по вашата разценка за час това колко часа са и каква част от QT примерно можете да реализирате за това време.
Съгласен съм, че е кеф да се оптимизира всичко максимално и видяхме с какъв процесор може да се управлява полет до луната. Мисълта ми е, че ако целта е да се оптимизира печалбата в малки серии не е това начина.
|
| Сря Юли 13, 2011 11:34 am |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
Е то не е ли открай време такъв смисълът? embedded=вграден компютър, какъвто и да е той. Просто не е
самоцелен/универсален като приложение, инак може и да е универсален и пак вграден и да се води
embedded. Аз си броя за embedded компютри тия и в първия нюкман (68340), и във втория (68340+8240),
за netmca серията пък нямам и съмнения (ако и да е 400 MHz/близо 800 MIPS power, с 64 M RAM [които при цялата
ми щедрост към DSP сметките откъм памет/буфери са с огромен резерв, ама средите не са линукс...]).
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Сря Юли 13, 2011 12:57 pm |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
Книжката е "The Definitive Guide to GCC" от Kurt Wall and William von Hagen, 2004, ISBN 1-59059-109-7, http://www.amazon.com/gp/product/159059 ... 4TQ1RVD20NРазтегливо, разтегливо, ама колко да е разтегливо  Е как с какво съм ги измерил, с рулетката разбира се Има си монитор на ресурсите, разбира се там гледах кое приложение с колко памет се е налаполо.
За под $20 не виждам как ще се "търкаля" Linux с Qt приложения. Пък 128МБ ако струва $10, то половината от мечтаната цена е отишла само за памет, ами професор, платка, осцилатори, дисплей, печалба и т.н. ?? Т.е. отива се към решение за къде минимум $100. То не че ако не използваш Qt няма да отидеш пак къде стотака, но идеята ми беше, че Qt харчи значително повече ресурси, отколкото се предполага от него. Не че не го харесвам, напротив, Qt ми харесва, защото е много добре структуриран, кеф ти боза, кеф ти мак, кеф ти симбиан, без да пипам нищо, само с една прекомпилация и се подкарва от едната на другата система.
_________________ Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....
|
| Сря Юли 13, 2011 1:50 pm |
|
 |
|
gicho
Ранг: Форумен бог
Регистриран на: Пон Мар 13, 2006 1:59 pm Мнения: 3867 Местоположение: Габрово
|
Къде го хвърлихте човека към QT-то (което е много повече е графична библиотека), тая платформа, за която той говори, няма начин да и закачиш дисплей ... Е, освен по SPI или подобно.
Да, с линукс получаваш неизмерим обем готов код и гъвкави инструменти. Получаваш възможност да работиш на различни езици - за свръх бърз развой Python е перфектен, ресурсоемките неща елементарно се изхвърлят в библиотеки на C. За други java е лесна - ми ок, ползваш джава. Отделно C кода на приложението ти е портируем е "дебъгваем" на PC, стига да спазваш определени (не трудни) правила.
И като направиш целия развой преди хардуера да има още готова схема, какво повече можеш да искаш?
На една RTOS система това е, да не казвам невъзможно, ама невероятно и трудно да се постигне.
Относно сроковете за започване - зависи от каква база тръгваш. По-точно, хубаво е да подбереш платформа със солидна база. Ако ти се налага да правиш kernel-mode драйвери, значи тая платформа е със слаба поддръжка. Солидните неща има драйвери за всичката им периферия, кога ще ти се наложи да пипаш нещо kernel-mode?
Който не се е докоснал до сладкото на линукса, той може да го отхвърля категорично.
Единственото място, където може да се каже че какъвто и да е линукс е неподходящ, е hard-real time системите с високи изисквания. На подобни ARM-ове трудно се постигат под 100мкс време за реакция, дори с rtkernel и подобни. Да не казвам че са единици избраните чипове, които имат поддръжка в тия пачове. И определено не е лесно да интегрираш своите неща там, в смисъл доста допълнителни детайли има спрямо стандартния линукс.
Но за такива случаи двучипово решение върви - микроконтролер за истинските real-time неща, и някакъв интерфейс (SPI, UART, USB, ...) към арм-а дето търкаля линукса. Няколко долара отгоре, а получаваш "the best of both worlds".
|
| Сря Юли 13, 2011 2:24 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 3 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|