|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 10:08 pm
Основни положения при писане на С за ПИК
| Автор |
Съобщение |
|
sparkybg
Ранг: Форумен бог
Регистриран на: Вто Авг 23, 2005 12:02 pm Мнения: 3070 Местоположение: София
|
 Re: Основни положения при писане на С за ПИК
И какъв е проблема на C да се напише инициализация, вместо да се ползват готовите библиотеки? Пак според примера за i2c е 5-6 реда програмен код и значително по-малко краен обем.
Никой не е налагал мислене. Просто пикльовците са масово достъпни, от там и пикоборците много, и голяма част от тях не мислят. От всичките периферии, с които съм си играл (а те са почти всичките без ethernet), на почти всички инициализацията се състои в писане в няколко регистъра. Някой като го мързи да чете чаршафи, намира пример и го преписва. Като му свърши паметта, взима по-голям процесор, и така до безкрай. Аз от готовоте ползвам само USB стека, просто защото не ми се пише собствен. И това животно е наистина огромно за нещата, дето върши.
|
| Пет Окт 04, 2013 10:40 pm |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9119 Местоположение: Разград
|
 Re: Основни положения при писане на С за ПИК
Миро - това ми беше първото пипване на 24-ка. Ти как мислиш, че не съм си ги направил после нещата както си знам ли? И не си мисля че компилатора е "длъжен" да ги може тия работи. Просто дадох един конкретен пример - който може и да е изключение. Спарки - тая проба беше преди да му прочета даташита. Както и да е - не ме слушайте много много - не съм кой знае къв програмист че да давам акъл. Мога само да споделям личен опит и толкова.
|
| Съб Окт 05, 2013 1:00 am |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
 Re: Основни положения при писане на С за ПИК
Cekins, определено бъркаш компилатор и библиотека....
|
| Съб Окт 05, 2013 1:16 am |
|
 |
|
sparkybg
Ранг: Форумен бог
Регистриран на: Вто Авг 23, 2005 12:02 pm Мнения: 3070 Местоположение: София
|
 Re: Основни положения при писане на С за ПИК
Така де, а някои хич не го и четат. От там и останалото. Даже не съм сигурен дали е до това колко някой е програмист или не. Народа масово гледа да ползва готови неща, вместо да измисля. Точно с пикльовците масово се борят и хора на съвсем начално ниво. Просто са лесни за подкарване - безплатна среда, безплатни компилатори, тулче, дето програмира всичко на тая фирма, малко изводи за което, продават ги навсякъде и общо взето са непретенциозни. Мигалка върху прототипна платка се прави за 5 минути без да четеш почти нищо. Всичкия софтуер тръгва от раз. От там нататък - всеки според мързела, възможностите и времето, с което разполага. Като добавиш и масовата нагласа "щом нещо работи не се пипа" - резултата става съвсем логичен. Аз затова и дадох пример - микрочипските USB библиотеки ме дразнят неистово, ама ги ползвам. А могат да се смалят сигурно поне 2 пъти, а вероятно 4. Мръщя се, ама ги ползвам. Още не са ме докарали до там да пиша собствени. Отвратително ми е това USB, и от страна PC, и от страна MCU. Има нещо фундаментално гламаво в него, хич и да не гледаме откровената тъпотия с платените VID и PID. Все пак - и на C има начин за оптимизация до по-човешко ниво - пишеш, компилираш, и после гледаш какви ги е натворило в асемблерския листинг. Опитваш друг подход, пак гледаш, и т.н. Малко по малко свикваш как е удачно да правиш нещата така че копилатора да не сере прекалено. И така, додето не се прехвърлиш на друго MCU, което си има неговите особености, и при което половината ти натрупани подходи играят в грешна посока. Да е една архитектура - да му свикне човек. Някога си бацах x86 асемблер без въобще да ми мигне окото, а това за много хора е отвратителна работа. Ама като човъркаш с години едно и също ставаш спец. Това при мен отдавна е загубена кауза. Към момента може би си струва човек да копа върху ARM, защото има всякакви. Ама да си спец по всички PICльовци + творения на още няколко фирми, нямащи нищо общо с PICльовците просто не виждам как би могло да стане.
|
| Съб Окт 05, 2013 1:26 am |
|
 |
|
Н'бабане Гт'муан'га
Ранг: Форумен бог
Регистриран на: Сря Яну 25, 2012 9:14 am Мнения: 5298
|
 Re: Основни положения при писане на С за ПИК
имате късмет че е онлайн форум, а не кръчма, както би било преди 30-на години. Иначе който е най-силен в юмручния бой, щеше да има най-добри доводи в спора 
_________________ 'просто' е технически синоним на 'красиво'
|
| Съб Окт 05, 2013 2:00 am |
|
 |
|
bobyper
Ранг: Ориентиран
Регистриран на: Вто Яну 31, 2006 11:11 pm Мнения: 295 Местоположение: София
|
 Re: Основни положения при писане на С за ПИК
Това е правилен подход. Може да докараш компилатора да твори по почти същия начин както би го написал на асемблер. Предимството е по лесен за четене C сорс от скопения пикльовски асемблер
|
| Съб Окт 05, 2013 9:37 am |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
 Re: Основни положения при писане на С за ПИК
Ооо без моя намеса няма как да тръгне на платформа дето не съм го подкарвал на нея, не са просто "изненади"  . Но и не е да се търкаля само при мене де, все пак всеки анализатор излязъл оттук работи под dps, дотук в 5 страни по света (БГ+4, 4-те все по-развити от БГ, една даже извън ЕС).
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Съб Окт 05, 2013 10:14 am |
|
 |
|
palavrov
Ранг: Форумен бог
Регистриран на: Вто Окт 11, 2011 11:53 pm Мнения: 4582 Местоположение: Brussels / Пловдив
|
 Re: Основни положения при писане на С за ПИК
х86 интел сами си го осраха - мисля, че до 386 включително кода се оптимизираше по един и същи начин, от там нататък настана боза - с тия пайплайни, преподреждане на инструкции ... всичкото хубаво ама различните им генерации искат различни оптимизации - просто няма начин да напишеш оптимизиран код който да работи еднакво бързо на всяко ПЦ на което ще се стартира след това. При това положение направо си се обезмисля да си губиш времето да пишеш на асемблер. Ако не бъркам, май последната голяма ПЦ игра писана изцяло на асемблер беше ролеркостер тайкун - някъде около 2000-та. АРМ засега вървят доста по бавно по интелския път, и определено архитектурата е много по елегантна - най ме кефи колко хитро са направили няколкото инструкшън сета на едно и също ядро. Та за арм ГЦЦ инлайн асемблера в Ц позволява да пишеш оптимизирано все едно си на асемблер - разбира се трябва да му хванеш цаката - най ме кефи как алокацията на регистри става донякъде автоматично и компилатора си решава сам според контекста кои да ползва. Ей един пример, че е полесно отколкото да го обяснявам: Е, на това ТГИ с право ще се смее - глей колко сорс си написал за да врапнеш 2 реда на асемблер 
_________________ Мразя да мразя ...
|
| Съб Окт 05, 2013 10:29 am |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
 Re: Основни положения при писане на С за ПИК
Бе не ми е до смях бе  . Всъщност е добре да го можеш все пак, то C от ден първи насам мигрира към асемблер, като остане една платформа на тоя свят ще измигрира напълно, предполагам. Човек като програмира няма ли регистровия модел на машината в главата си все кара на ниво "разговорник". Автоматично алокиране на регистрите - та да не помниш в кой какво ти е - помага но не е кой знае какво предимство, тия неща се помнят лесно (а и за какво са коментарите на всеки ред). А има разни регистрови модели, такива дето помагат, такива дето не пречат и такива дето баш пречат  . После ако регистровият модел е 8 бита и трябва да му баеш непрекъснато за multiprecision сметки и т.н. е също мъка, разбира се. Power с 32-та си GP и още толкова FP регистъра помага, ARM с почти 16-те си предполагам не пречи, а оттам надолу (и като почнат да стават тоя за това оня за онова) направо пречат. Разбира се в load/store машина е криво да трябва непрекъснато да пишеш какво откъде четеш и къде го пишеш, нали не може да кажеш примерно add.l (address1),(address2),(address3) . Затова и VPA (Virtual Processor Assembly) такива работи ги "компилира" до колкото инструкции трябват. 68k беше много добър старт, то VPA-то само е разширило неговия език. Там като напишеш add (address),d0 това си беше една инструкция. Или add d0,(address). Но не можеше add (address1),(address2) ; камо ли add (address1),(address2),(address3). То това с трите адреса най-често разбира се е в употреба между регистри като ги има 32 човек и прави много голяма разлика спрямо двуадресния модел (не знам в power ли е въведено, аз там го получих за първи път за ползване).
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Съб Окт 05, 2013 11:11 am |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
 Re: Основни положения при писане на С за ПИК
Не знам, просто отбелязвам че много хора имат такова мислене и ми е любопитно откъде идва. Доколкото съм разглеждал майкрочепски библиотеки мога да твърдя че са сравнително добре написани. Даже в сравнение с повечето арм-ски са направо супер, освен това са документирани 100 пъти по-добре. Така че не мога и Майкрочеп да обвинявам. Освен може би че са си свършили работата и клиентите им не им се налага да мислят, затова и постепенно престават да мислят  По стечение на обстоятелствата съм разглеждал около 10-на usb стека. Само за един мога да кажа че е по-добър от майкрочепския, но не беше безплатен. Така че няма какво да съжаляваш, ползвай си майкрочепския стек с чиста съвест. Иначе си прав - USB стандарта е пълно недомислие...но такъв е животът...
|
| Съб Окт 05, 2013 1:04 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 2 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|