Jump to content
BulForum.com

Програмиране на COM порт


mIRCata

Recommended Posts

Мой приятел ме моли да му помогна да напише програма, за един контролер (ARM9 арх), на който ще има линуксче и иска да управлявам ком портовете му.

Навсякъде намирам примери изполващи POSIX стандарта, а аз все си мисля, че на това контролерче няма да върви. Смятам да използвам

http://www.uclibc.org/ тази библиотека.

Та да питам някой може ли да ми предложи подходящо четиво за идеята на програмиране на ком портове под линукс като цяло. Попадам на обяснения, че се гледа на тях като на файлове, с малко по-различна специфика в работа, но всичко е много повърхностно и набързо обяснено. А като по-начинаещ, ми трябва нещо с по-разширени обяснения.

Link to comment
Share on other sites

Не мога точно да разбера какво разбираш под програмиране на com?

 

Това, което аз разбирам от написаното, е че искаш да сложиш цяла ОС, за да можеш да четеш и пишеш серийно.... което е меко казано безумно... - ако това ти е идеята - общо взето единственото което ти трябва е да напишеш точно 4 функции + 1 за инициализиране на контролера.

 

Аз мога да е свърша тази работа, но съответно срещу заплащане :).

Link to comment
Share on other sites

Питам за работа с комове под Линукс, а не предлагам работа. Мен ми е интересно аз да го направя, пари тука не играят. Мислех да не се обяснявам излишно, но ще трябва.

Устройството е с тъч скрийн, няколко USB и COM порта и е с инсталиран Линукс. (Може да върви и с Win- там е лесно, ама ми е интересно под Linux как става - това си е нов опит) Не е някое реле дето само ще ми щрака.

Четенето и писането на комовете е само началото. на тия комове може да се вържат няколко различни устройства. В зависимост от устройството, ще се четат различни данни и ще се правят различни неща.

Та така.

Link to comment
Share on other sites

Сетих се още нещо важно! Трябва да си в групата на ползватели на порта. Най добре виж как се казва групата със

 

ls -l /dev/ttyS*

 

едната е root, другата варира според дистрото, uucp, dialout...

Link to comment
Share on other sites

Стана. За момента използвам POSIX структурата и функциите за настройка. Даже и прочетох от входа :)

Обаче излезе, че едната команда връща низ с няколко реда, а май четенето ми спира до първия \n. В смисъл че използвам read функцията и или тя спира до първия \n, което ме съмнява - все пак си мисля че си чете до запълване на буфера, който съм подал. А той е по-голям от целия резултат. Или устройството чака няколко пъти да се прочете от него. Или пък не съм настроил нещата както трябва и ми липсва нещо, което да казва да праща данните до дупка без да спира. Понеже с една програмка през конзолата вади всички редове.

Довечера ще пробвам с while цикъл да въртя докато read връща резултати, да видим.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...