abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 17:22 | IT novinky

    Microsoft představil Azure Cobalt 200, tj. svůj vlastní SoC (System-on-Chip) postavený na ARM a optimalizovaný pro cloud.

    Ladislav Hagara | Komentářů: 0
    dnes 12:00 | IT novinky

    Co způsobilo včerejší nejhorší výpadek Cloudflare od roku 2019? Nebyl to kybernetický útok. Vše začalo změnou oprávnění v jednom z databázových systémů a pokračovalo vygenerováním problém způsobujícího konfiguračního souboru a jeho distribucí na všechny počítače Cloudflare. Podrobně v příspěvku na blogu Cloudflare.

    Ladislav Hagara | Komentářů: 4
    včera 23:44 | Nová verze

    Byla vydána (Mastodon, 𝕏) první RC verze GIMPu 3.2. Přehled novinek v oznámení o vydání. Podrobně v souboru NEWS na GitLabu.

    Ladislav Hagara | Komentářů: 1
    včera 23:22 | Komunita

    Eugen Rochko, zakladatel Mastodonu, tj. sociální sítě, která není na prodej, oznámil, že po téměř 10 letech odstupuje z pozice CEO a převádí vlastnictví ochranné známky a dalších aktiv na neziskovou organizaci Mastodon.

    Ladislav Hagara | Komentářů: 0
    včera 19:44 | Nová verze

    Byla vydána nová major verze 5.0 svobodného 3D softwaru Blender. Přehled novinek i s náhledy a videi v obsáhlých poznámkách k vydání. Videopředstavení na YouTube.

    Ladislav Hagara | Komentářů: 0
    včera 14:00 | Upozornění

    Cloudflare, tj. společnost poskytující "cloudové služby, které zajišťují bezpečnost, výkon a spolehlivost internetových aplikací", má výpadek.

    Ladislav Hagara | Komentářů: 10
    včera 04:22 | Pozvánky

    Letos se uskuteční již 11. ročník soutěže v programování Kasiopea. Tato soutěž, (primárně) pro středoškoláky, nabízí skvělou příležitost procvičit logické myšlení a dozvědět se něco nového ze světa algoritmů – a to nejen pro zkušené programátory, ale i pro úplné začátečníky. Domácí kolo proběhne online od 22. 11. do 7. 12. 2025 a skládá se z 9 zajímavých úloh různé obtížnosti. Na výběru programovacího jazyka přitom nezáleží – úlohy jsou

    … více »
    SoutezKasiopea | Komentářů: 1
    včera 04:11 | Nová verze

    Byla vydána nová verze 2.52.0 distribuovaného systému správy verzí Git. Přispělo 94 vývojářů, z toho 33 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    17.11. 18:00 | Nová verze

    VKD3D-Proton byl vydán ve verzi 3.0. Jedná se fork knihovny vkd3d z projektu Wine pro Proton. Knihovna slouží pro překlad volání Direct3D 12 na Vulkan. V přehledu novinek je vypíchnuta podpora AMD FSR 4 (AMD FidelityFX Super Resolution 4).

    Ladislav Hagara | Komentářů: 0
    17.11. 03:11 | Nová verze

    Poštovní klient Thunderbird byl vydán v nové verzi 145.0. Podporuje DNS přes HTTPS nebo Microsoft Exchange skrze Exchange Web Services. Ukončena byla podpora 32bitového Thunderbirdu pro Linux.

    Ladislav Hagara | Komentářů: 2
    Jaké řešení používáte k vývoji / práci?
     (35%)
     (46%)
     (19%)
     (18%)
     (23%)
     (15%)
     (23%)
     (15%)
     (17%)
    Celkem 369 hlasů
     Komentářů: 16, poslední 12.11. 18:21
    Rozcestník

    Dotaz: ARMbian, raspberry přerušení, timer, sleep?

    11.6.2019 09:48 Fiuala
    ARMbian, raspberry přerušení, timer, sleep?
    Přečteno: 411×
    Nemam mohho zkušensotí s programováním pro linux a potřebuji napsat drobnost pro Raspberry Pi 2 v C/C++. To s čím si nevím tak uplně rady je ve své podsttě čítač ,který má počítat náběžné hrany signálu na jednom z GPIO za řekněme 100s.

    Knihovna Wiring PI má funkci pro obsluhu přerušení wiringPiISR (),kterou vyvola zvolená událost na GPIO , tady problém není stačí v přerušení inkementovat proměnnou předstvující počet pulsů. Zde si jen nejsem jist, jak je to s prioritou, pokud půjde uloha do sleep, funguje i ve sleep ulohy přerušení od Winirng Pi?

    Předevšěím,ale nevím jak co nejpřesněji změřit oněch 100s? Ideální by bylo pokud by šlo přímo využít některý z hw čítačů v procesoru, který by opět při přetečení vyvolat přerušení. Jasně jde to udělat i jako cyklus se sleep 1ms a ten nechat projít 100.000 krát a asi i exituje nějaká funkce navázanaá na některý z čítačů času linuxu. Jde o to, že nevím a potřebuji poradt pokud možno co nejpřesnější a co nejméně zatěžuijící způsob .

    Poradíte. Děkuji

    Odpovědi

    11.6.2019 10:25 NN
    Rozbalit Rozbalit vše Re: ARMbian, raspberry přerušení, timer, sleep?
    pokud půjde uloha do sleep
    Tim je mysleno co konkretne?
    11.6.2019 11:42 Tešař
    Rozbalit Rozbalit vše Re: ARMbian, raspberry přerušení, timer, sleep?
    Předpokládal bych volání některé s sleep funkci z unistd.h nebo timer.h tj. sleep() , případně usleep() či nanosleep().

    Jendа avatar 16.6.2019 11:23 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: ARMbian, raspberry přerušení, timer, sleep?
    Zde si jen nejsem jist, jak je to s prioritou, pokud půjde uloha do sleep, funguje i ve sleep ulohy přerušení od Winirng Pi?
    Ano.
    Předevšěím,ale nevím jak co nejpřesněji změřit oněch 100s?
    Pokud to stačí s přesností na řádově milisekundy, tak to dělám tak, že zjistím aktuální čas pomocí clock_gettime, a pak si naplánuju usnutí pomocí poll na správný počet milisekund. Pokud potřebuješ větší přesnost, tak bych zkusil naplánovat pomocí poll probuzení o trochu dříve a následně točit gettime ve smyčce. Pro ještě vyšší přesnost tohle spusť jako separátní proces, nastav mu vlastní CPU a vyřaď z toho CPU jiné procesy (isolcpus). Někde na Rootu k tomu psali že
    Myslím, že i non-RT kernel má /proc/irq/$IR­Q/smp_affinity, kam lze zapsat CPU mask. Kernel s RT-Preempt navíc vytváří pro každý interrupt handler vlastní kernel thread, kterému lze nastavit RT scheduling class a RT prioritu přes chrt, a případně na něj použít taskset (to ale možná není ani potřeba, když už je nastaveno smp_affinity).

    Linux má v tomhle ale pořád ještě rezervy, jeden z největších problémů je, že na všech CPU (i těch vyjmenovaných v isolcpus) se spouští nějaké servisní operace s periodou CONFIG_HZ. Nějakou dobu je k dispozici NO_HZ_FULL option, ale to si podle našich zkušeností moc nerozumí s RT-Preempt, a stejně to funguje jen když je na daném CPU jen jeden thread - viz https://lwn.net/Articles/549580/. Kromě toho pomáhá ještě kernel option rcu_nocbs=<cpu­list>. Na ARM Cortex-A9 se nám ještě osvědčila konfigurace L2 cache CPU locking, tedy pevné vyhrazení části L2 cache pro CPU s realtime tasky. Jak moc je tohle zdokumentované u RPi jsem zatím nezkoumal. Ta izolace ale pořád není úplně dokonalá, zejména při vytváření nových procesů na non-realtime CPU dochází k drobnému "zakopnutí", jehož příčina mi zatím není úplně jasná, možná něco s TLB.
    Ideální by bylo pokud by šlo přímo využít některý z hw čítačů v procesoru, který by opět při přetečení vyvolat přerušení.
    Možná by kernelový čas mohl mít paradoxně lepší přesnost než čítač ze kterého je odvozený, protože NTP říká, jestli jde špatně, a počítají se korekce.
    16.6.2019 11:47 VSi | skóre: 28
    Rozbalit Rozbalit vše Re: ARMbian, raspberry přerušení, timer, sleep?
    Pro přesné odměření času je nejlepší použít clock_nanosleep() např. podle příkladu: https://rt.wiki.kernel.org/index.php/Squarewave-example - přesnost je v zásadě nejlepší možná na daném HW, po zprůměrování jitteru minimálně na mikrosekundy. Řešit nějak přímý přístup k HW čítači nemá smysl.

    RT-PREEMPT by určitě pomohl, zvlášť pokud na tom HW poběží ještě další úlohy. Vyhrazení jednoho CPU pro tuto úlohu by také pomohlo, ale je třeba nastavit i to IRQ affinity.

    Další tipy zde: https://wiki.linuxfoundation.org/realtime/documentation/howto/applications/application_base

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.