| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| GCC NewLib http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=16661 |
Страница 1 от 1 |
| Автор: | TheWizard [ Чет Юли 18, 2019 9:10 pm ] |
| Заглавие: | GCC NewLib |
някой играл ли си е на "ниско" ниво с newlib, по специално - да се превърже към съществуваща LIB / stdio - файлова система, конзола(уарт), драйвери... проблема е че нямам истински файлови дескриптори ( FD ), плюса е че имам thread-safe API към кернела начи базата stdio е fopen, fclose, fread, fwrite, fseek, и с няколко подскока сочат syscall - open, close, read, write, seek, първите манипулират FILE, преминават през file->cookie и стигат до syscall FD, да ама аз нямам FD индекси... индексирах ги към -1 демек stream "докопах" се до __swrite_r __sread_r ... които се занимават с куките и са чудя как да процедирам най-добре (cookie съдържа повече инфо) одеве ме споходи музата да сложа в куката "обект-struct" в началото, който сочи API-то с неговите опен, клосе по подобие на FILE структурата начи като подмених fopen, fclose, fread, fwrite, fseek с мои тръгна 80% "добре", включително printf, fprintf екстри ... та реших да "оптимизирам" демек опитвам се да транслирам ThreadX API към stdio да стане по по най user-friendly същото става и с FreeRtos - ама тук може да се "стъкмисат" дескриптори ... без да се прекомпилира newlib |
|
| Автор: | TheWizard [ Пет Юли 19, 2019 12:06 pm ] | |||||||||
| Заглавие: | Re: GCC NewLib | |||||||||
мдам... откривам топлата вода за да запазя 100% stdio ще правя виртуална FS за syscall тест:
|
||||||||||
| Автор: | TheWizard [ Сря Юли 24, 2019 9:35 pm ] | ||||||||||||||||||
| Заглавие: | Re: GCC NewLib | ||||||||||||||||||
питанка:
създава буфериран "файл" by default 1024 байта (mode няма опция за _IONBF не буфериран) след него ако ползвам
няма проблем.... обаче тъй като няма да ползвам истинска файлова система, всичките ми FILE ще са не буферирани ( имам API ) та питанката е има ли начин ( без да прекомпилирам newlib ) __SNBF да е активен by default утре мисля да реплейсна функцията __sflags( ... ) <---- обработва mode стринга, връща int flags където дето __SNBF е нула - ще го сетна да видя какво ще стане ако не намеря "лесен хак" ще си остане със setvbuf ЕДИТ: остава си така както си е файловете ще са повече от стримовете, а стрим или периферия ще се сетва със setvbuf() |
|||||||||||||||||||
| Автор: | TheWizard [ Вто Юли 30, 2019 6:26 pm ] |
| Заглавие: | Re: GCC NewLib |
нящо такова се получава с "виртуална" файлова система ( EFS ) покриваща почти цялото STDIO ( в моя случай е много орязана, колкото да покрива embedded - грубо казано 20к либ, 20 printf, 20k екзампъл ) работи с UART и FILE-s към stdio, сокети и периферия Пример за TCP-HTTP https://github.com/Wiz-IO/platform-quec ... n-process- |
|
| Автор: | TheWizard [ Чет Авг 01, 2019 2:54 pm ] |
| Заглавие: | Re: GCC NewLib |
за сега става така https://www.youtube.com/watch?v=hLB4ZztEt6M |
|
| Автор: | TheWizard [ Пет Авг 09, 2019 11:35 pm ] |
| Заглавие: | Re: GCC NewLib |
Linux питанка ... socket int rc = ioctl(_sock, FIONREAD, &count); липсва ми ioctl ... Azure Sphere API ... хидъра е празен, в библиотеката липсва функцията търся алтернативно решене за проверка колко байта има във rx fifo-то за реализация на int wifiClient::available() { ... } в краен случай чета 1 байт и го пазя за read() първи върнат |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|