Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Témata - mhi

Stran: [1] 2 3
1
Vývoj / GCC optimalizace pro různé ISA
« kdy: 23. 10. 2021, 22:47:53 »
Resim aktualne takovy problem, jehoz vystup asi uplne nepotesi priznivce RISC-V ekosystemu (nebo ukaze nejakou moji  neznalost). Pomoci velmi podmineneho prekladu s gcc ( -Os )  vytvarim 'code snippety', ktere nasledne nejaky automat bude skladat za sebe (jde o dynamicky translator). Protoze chci zjistit, jestli to bude pouzitelne i jinde nez v x86 svete, nasbiral jsem ruzne prekladace a zkusil tyto code snippety vygenerovat pro ruzne architektury. Zde je vysledek; pocet vygenerovanych instrukci pro nejakou sadu tech snippetu; cim nizsi, tim kratsi kod. CISC je zde zvyhodnen, protoze instrukce hlavne u x86_64 jsou mnohem delsi nez jinde, hlavne u ARM (thumb2). Co jsem zkoumal vystup, obvykle vic instrukci rovna se i vyrazne mene optimalni kod a zbytecne zonglovani s daty.

Kód: [Vybrat]
  10527 report-arm-noflags.txt  (thumb2)
  10938 report-armv8-noflags.txt
  11209 report-x64-noflags.txt
  12311 report-ppc32-noflags.txt
  12371 report-sparc64-noflags.txt
  12809 report-xtensa-noflags.txt
  13036 report-x86-noflags.txt
  14718 report-mips32-noflags.txt
  16903 report-rv32-noflags.txt
  18407 report-rv64-noflags.txt

Mam jeste jednu sadu, kde se vyhodnocuji nejake operace, to pridava ale do vetsiny snippetu  celkem dost podobneho kodu, ktery by sel resit za pouziti flagu (cf/of/if) kdyby to gcc umelo lepe (typicky pushf a pozdeji v kodu popf pro nasledne snadne zpracovani ruznych overflow/carry/apod.). Spis jen pro priklad vlozim i to:

Kód: [Vybrat]
  13151 report-x64-flags.txt
  13225 report-arm-flags.txt
  15175 report-ppc32-flags.txt
  15535 report-x86-flags.txt
  15770 report-sparc64-flags.txt
  17118 report-xtensa-flags.txt
  22410 report-rv32-flags.txt
  23900 report-rv64-flags.txt

Krome RV64 a mam i realne zelezo, tak mohu porovnat i vysledky v rychlosti, nejak upravene na nejake MHz procesoru (xtensa je ESP32 LX6, tezko srovnavat primo s PowerPC nebo x86 dospelym pocitacem).

Nicmene mam i otazku. GCC mi generuje kod, ve kterem se skace a rutina nekonci nejakym "ret/blr", priklad (ppc32):

Kód: [Vybrat]
   0: 94 21 ff e0 stwu    r1,-32(r1)
   4: 7c 08 02 a6 mflr    r0
   8: 90 01 00 24 stw     r0,36(r1)
   c: 93 e1 00 1c stw     r31,28(r1)
..
  48: 7d 4a 40 39 and.    r10,r10,r8
  4c: 41 82 00 18 beq     64
  50: 48 00 00 01 bl      50
50: R_PPC_REL24 spec_read
  54: 7c 7f 1a 14 add     r3,r31,r3
  58: 98 7d 00 00 stb     r3,0(r29)
  5c: 39 61 00 20 addi    r11,r1,32
[b]  60: 48 00 00 00 b       60 <exec86+0x60>
60: R_PPC_REL24 _restgpr_31_x   (!!!)[/b]
  64: 81 3d 00 2c lwz     r9,44(r29)
  68: 7c 69 18 ae lbzx    r3,r9,r3
[b]  6c: 4b ff ff e8 b       54 [/b]

Na adrese 60 je netypicke ukonceni (dusledek -Os), kazdopadne i kdyby tam bylo blr, nekonci tim rutina. Ja bych potreboval, abych z konce rutiny (0x6c) mohl jen odriznout blr a nebyl tam nejaky odskok "nahoru". A tim by slo trivialne retezit snippety za sebe v dynamicky generovanem kodu. Tusite jak k necemu takovemu primet gcc? Nedela to jen na powerpc, ale i jinych architekturach, typicky ARM. Reseni by bylo "linearizovat" kod, aby sel odshora dolu, a neskakal si nekam vzhuru. Jenze to musim naprogramovat. Dale bych uvital, kdybych nejak prekladaci umel rici, aby se treba vyvaroval nejakeho konstruktu, treba nejake relokaci, apod. Diky za pripadne tipy.

Prekvapenim je RISC-V, ktery ciselne, ale i pohledove generuje pomerne sileny kod. Tam, kde ma ARM uz spocitano, se risc-v potaci nekde v tom jak vidlemi prehazovat data... registru ma pritom mnohem vic RISC-V.

2
Hardware / ESP32 MMU/MPU
« kdy: 18. 10. 2021, 17:19:54 »
Potreboval bych na ESP32 SoC v zakladni verzi (LX6), pripadne -S2 (LX7) a -C3 (Risc-V) udelat detekci zapisu do nekolika stranek (pametovych rozsahu). Jsem obeznamen s tim, jak funguje ARM MPU, Tensilica/Cadence LX6/LX7 by mely mit neco podobneho. V datasheetu je to nejak popsane, ale moc moudry z toho nejsem. RISC-V by taky neco mel mit, ale opet me zkusenosti jsou nulove. A navic si nejsem jist jak je to u toho ESP, protoze na foru pisou ze "neni otestovano"...

Tusite tu nekdo jak se LX6/7 MMU(MPU) da pouzit na detekci toho zapisu? Predstava je, ze budu mit pro N stranek definovane radky v MPU, ktere povoli cteni, ale faultnou pri zapisu. Ve fault handleru pak udelam pres tyto data invalidate a povolim zapis.

A jeste navic ... potrebuju aby to u ESP32-WROVER chodilo nad externi PSRAM :). To uz jsem z datasheetu nevycetl vubec, jestli je takhle mozne.

3
Vývoj / Geolokace ideálně zdarma
« kdy: 12. 09. 2021, 12:41:01 »
Potreboval bych sluzbu, ktere se posle adresa kdekoliv na svete a sluzba vrati idealne zpet "opravenou" adresu v nejake normalizovane podobe (ulice, cislo, ...), zem, ... a informace k tomu jak presna adresa je (pripadne muze dat i GPS souradnice, ale ty nepotrebuju).

Jde o to, ze potrebuju validovat adresy, aby z toho vypadlo treba kdyz nekdo zada misto polska zemi USA, aby to naslo spravne "Polsko".

Idelani by bylo nejake free api, ktere je treba omezene, tech adres neni moc za den, abych nemusel resit nejake subscription.  nominatim.openstreetmap.org znam, jeho problem je kdyz je zadan kus adresy spatne (napr. USA misto Poland, pripadne v adrese jsou nejake nesmysly typu adresat USA ale ve zbytku adresy je !!! POLAND !!! :-) ), to by mozna slo resit tak, ze bych vyzkousel jednotlive casti vyhazovat - pokud je spatne jen jeden udaj tak by se to mohlo na jednu adresu chytit. Neresi to ale problem preklepu/jineho zapisu nez znaji OSM. Google geolocation to pritom umi docela slusne.

Nebo .. ?

4
Hardware / ESP32-C3 (RISC-V) vs ESP32 (Tensilica Xtensa LX6)
« kdy: 28. 08. 2021, 22:35:13 »
COVID zpusobil zamrznuti jednoho projektu postaveneho na ESP32 s LX6. Vyuzivaji se tam Wifi, CAN-BUS, UART, nejake saskarny s GPIO, nic svetoborneho. Nejedna se o aplikaci, kde je vyzadovana 100% spolehlivost (on jen ten CAN-BUS jim treba uplne nechodi jak by mel). Pouziva se tam +- jen to jejich IDF. Projekt jako takovy byl funkcne vicemene hotovy, co chybelo je doladeni uzivatelske privetivosti.

Ted resim vzkriseni tohoto projektu a zvazuji pouziti RISC-V varianty, ESP32-C3, ze bych to jeste preportoval (vyrabet se bude jen nejaka stovka kusu, ale nechci do budoucna resit nutnost noveho firmware). Ma cenu se tim zabyvat? Nechci usetrit $2 na modulu, spis mi jde o dostupnost do budoucna, treba za 5 let, proto pokukuji po novejsi soucastce.



A jeste mam otazku, mate nekdo u ESP32 ("stareho" i -C3) vyreseny nejak chytre bootloader, aby to nebylo ze je firmware A a firmware B, ale skutecne neco co treba umi z aplikace stazenim z nejakeho URL preflashovat aplikaci (tedy aplikace preda bootloaderu URL, skoci do nej, ten si stahne bez re-autentizace novy fw a flashne ho, a pak do nej skoci) ?

V pripade selhani je OK kdyz to zustane tupe viset v bootloaderu, ktery treba rozjede nejakou docasnou wifi pro rucni nahrani pres formular, apod.

5
Hardware / Low power ARM SBC na sběr dat
« kdy: 27. 08. 2021, 13:54:08 »
Potrebuji sbirat pomoci nejakeho ARMu typu RPi data. Je toho denne cca 60GB, data se postupne pridavaji a nema to konektivitu. Myslenka je takova, ze vezmu nejake SSD pres SATA/USB pripadne SD kartu (to bych radsi), napojim to do toho SBC. Dale tam bude obycejny 3,5" HDD, na ktery jednou nebo dvakrat denne odleju vsechna data, po zbytek casu bude uspany (setrim kazdy watt). Nevyzaduji uplne 100% spolehlivost, pokud by se napr. SD karta jednou za 2 roky rozpadla je to resitelne a akceptovatelne. Pochopitelne bych radsi mel na ta temporary data SD kartu ze ktere to rovnou nabootuje nez dalsi USB-SATA/SSD.

Resil jste nekdo neco podobneho? Ma cenu se snazit o takove vyuziti SD karty (postupne zaplnovani, prepis vzdy za cca 1-2 dny), pripadne jaky typ zvolit ?

6
/dev/null / COVID očkovací certifikát
« kdy: 21. 07. 2021, 17:06:47 »
Byl jsem dneska na 2. davce ockovani a do mailu mi prislo ze si muzu vyzvednout certifikat. Stahnul jsem si PDFko bez digitalniho podpisu, s textem a QR kodem. Data QR kodu zacinaji HC1: , snadno jsem nasel popis; specifikaci a pak i clanky.

Rikam si co se to deje, proc tam neni digitalni podpis ? Predpokladam, ze uz nekde existuje generator fake certifikatu :-). Znamena to asi, ze pro overeni se podle SN certifikatu musi v nejake lokalni databazi v dane zemi dohledat zda udaje odpovidaji. Je takova praxe, nebo ... ? Pri predstave jak kvalitne "funguje" treba VIES (platci DPH v EU) bych se nedivil, kdyby se spolehalo pouze na to co je v QR kodu. Nebo je to jinak?

7
Software / Výpočet a modelování krovů
« kdy: 07. 06. 2021, 16:31:12 »
Potreboval bych navrhnout krov pro budovu pudorysu nepravidelneho sestiuhelniku, je to takova 'vezicka', pomerne nestandardni vec. V principu jde o to napocitat a vymodelovat celou radu moznosti. Nechci se tady rozepisovat do detailu, delat to rucne je opravdu hodne prace, takze bych na to napsal program. Vypoctove to neni az tak slozite (teziste + sily, delky reziva), potreboval bych ale udelat i model, idealne takovy kde budou i jednotlive krokve a vazniky, aby to slo pak rozrezat a podivat se jestli tam neni nejaka kravina (typicky nemozne provest nekde nejakou vazbu apod.). A k tomu vytisknout treba 3D model.

Neni resenim, aby to nekdo modeloval rucne, tech parametru tam je cela rada, zabije na tom tyden casu.. Vznikne treba 50 modelu, z toho na 10ti si sednu se stavarem a pak tesarem.

V podstate mam 2 vodorovne rezy formou souradnic (nebo dxf), horni bude mit celou radu variant. Vytahnout jejich souradnice z DXF umim. A potreboval bych napr. rict aby mi program do STL polozil hranol/fosnu z bodu a1 do bodu a2 (+pak z podobnych bodu vyskove posunutych udelal krytinu, tzn. polozil dalsi n-uhelnik mezi n body).

Mozna neco takoveho jde udelat v openscadu, mohl si nagenerovat zdrojak, zatim jsem o tom moc nepremyslel, principielne se mi s tim ale zase moc dobre nepracovalo, ale nebranim se tomu. Idealni se mi jevi nejaka knihovna v C, ktera by umela pracovat s 3D objekty a pak vygenerovala STL/OBJ, se kterym by se dalo dal pracovat standardnimi nastroji.

8
Mam asi tisicovku ruznych historickych map, maji velmi ruznou kvalitu. Prikladem (je to nazvetsovane vic nez rozliseni obrazku) je https://pasteboard.co/JVu5Q1Q.png ;

Potreboval bych strojove vsech vsechny mapy  (jpegy) nejak prezpracovat. Idealni by bylo, aby se zvetsilo rozliseni treba na 4-nasobek, pritom doslo k zlepseni detailu ("zaostreni", vime ze vsude byly puvodne ostre cary), ale obrazek se nijak zasadne neposkodil (minimalne aby jeho resize na puvodni velikost nebyl pak viditelne horsi nez original, tzn. aby se ty zmeny primarne promitly do tech pixelu navic). Take bych preferoval zmenit vyvazeni barev do nejake normalizovanejsi podoby a u malo kontrastnich obrazku zvetsit kontrast.

A to vse bych rad udelal idealne ze shellu, treba nejakym volanim ImageMagick, nebo gimpu. Jsem laik, sice tusim jak nejake filtry funguji, ale praxi mam v oblasti grafiky limitne se blizici k nule.

Dekuji !

9
Hardware / DIY PC case
« kdy: 27. 03. 2021, 15:46:53 »
Otazka od excentrika: Budu asi zanedlouho menit pocitac a docela rad bych nejaky pekny maly case, ktery bude mit nasledujici parametry:

- vsechny konektory vc. motherboardu a zdroje z jedne strany (te predni)
- standardni sehnatelne komponenty, tzn. zadne minizdroje, ale normalni ATX
- uvnitr MicroATX, zdroj, 3,5" HDD, 2.5" SSD, mozna nejaka slim CD-ROM
- moznost vestavet klidne pres nejake drcpasky USB hub, pripadne dalsi periferie (ctecka karet, wifi, ...)
- moznost pridelat na case nejaky jednoduchy "cable management system"

Standardne se nic takoveho asi neda koupit. Napadlo mne, jestli by takova vec nesla vytisknout - nemyslim cely case, ale jen nejake prvky a zbytek udelat ze zeleza. Bud' z plechu, nebo to nechat otevrene a pomoci hlazenek (nebylo by nutne je ani opracovat na naprosto presny delkovy rozmer), pripadne plochacu (maji bohuzel zemedelske tolerance). Neznate nekdo takovy design? Naivni predstava je sada ruznych uchytu, ktere by pripevnily zdroj, desku, karty, atd. do "ramu" z 12ti hlazenek chycenych do 8mi rohovych plastovych dilu.

Navrhovat se mi to ale od nuly opravdu nechce. V 90. letech jsem mel takhle postaveny cely "dvojpocitac" z hlinikovych profilu, mozna to je pokus o navrat do meho teen-veku ;-).

10
Hardware / Síťové audio rozhraní k zesilovači (ESP32?)
« kdy: 31. 01. 2021, 13:23:22 »
Mam doma nekolik zesilovacu (nic profi, "lepsi bedny 5.1"), ktere jsou analogove vetsinou pripojene k nejakemu zarizeni, casto i pomoci volneho kabelu (k projektoru+zesilovaci pripojuji notebook, moje "volne" male ARM krabicky nejak neumi HEVC).

Celkem rad bych vyresil moznost prenaset audio do zesilovacu bezdratove. Vyzkousel jsem bluetooth audio modulky z CN, ale byla to celkem tragedie, vzdy to nejak rusilo zesilovac, i kdyz byl modul uplne mimo. Rad posloucham klasickou hudbu. Navic dynamicka hudba toho domaciho kina zrejme vylucuje nejake uplne amaterske bastlirske reseni.

Idealni by bylo aby to melo wifi, tzn. slo tam poslat snadno audio pres sit, idealne z Linuxu/Windows/Androidu, klidne i pres nejake 3rd party app. A pak abych mohl treba na nejake ARM desticce kterych mam doma vicero udelat playlist a poslat si mp3ky do zesilovace). A samozrejme kdyby to reseni samo osobe umelo dekodovat mp3, tak by to bylo uplne skvele. A bylo to open-source, a pokudmozno to nebylo postavene na nejakem "velkem" zeleze typu Raspberry.

Videl jsem par pro tento ucel nepouzitelnych projektiku ktere dekodovaly na ESP32 nejake MP3, poslala se tam na nejaky port (cat *.mp3 | nc...), nektere to sypaly do PWMky (uff), nebo pres I2S na nejaky chytry DAC. Nicmene zadna dalsi integrace pro me pouziti.

Nebo jsem zaspal dobu a moje 5.1 reseni je dnes nahrazno dvema chytre chrasticimi bluetooth repracky ? :). Mam celkem starou televizi Philips, ktera umela i se dvema integrovanymi chrastitky udelat prostorovy zvuk ze jsem si casto rikal je to v televizi nebo realite?

11
Windows a jiné systémy / Mini-posix knihovna s Win32 API
« kdy: 18. 12. 2020, 15:31:16 »
Mam celou radu ruznych Unixovych C programku, ktere zpracovavaji ruzna data (jedna se o hodne specificke veci). Nepouziva to nic vic nez standardni posixove fce (fopen/fread,open/read, strcmp, malloc, ..). Obvykle je pouzivam v Linuxu, jenze obcas bych potreboval mit aktualni verzi i pro Windows.

Prevest .elf na .exe umim, potreboval bych ale nejakou mini libc POSIX knihovnu, na jejimz druhem konci bude Windows API.Tzn napr. open bude volat CreateFileA(/W). Tedy abych udelal 'ld -r -o file.elf *.o winposix.a' a pak ten ELF jen uz prevedl na EXE (COFF/PE) s importem nutnych fci kernel32/user32. Znate nekdo neco takoveho?

Jasne, je tu mingw ktere pouziva msvcrt, ale tomu se chci vyhnout (tzn toto mi nevyhovuje https://stackoverflow.com/questions/39622501/mingw-installation-on-linux )

12
/dev/null / KLUB 602, Praha 6
« kdy: 17. 09. 2020, 20:15:32 »
Jako maly kluk jsem nekdy v letech 1989-1990 navstevoval kurzy programovani, zrejme v BASICu na ruznych 8-bitech, ve Veleslavinske ulici, v Praze 6. Tehdy mne to k pocitacum zase nejak moc nelakalo, ani si nepamatuji o jake pocitace tam slo a co jsme programovali. Obdobi meho zajmu prislo asi o 3 roky pozdeji na zakladni skole, uz s PCcky. Nicmene tento "kurz" (nevim jak to spravne nazvat) mi dal do zivota mnohem vic, nez jsem si do dnesni doby dokazal uvedomit: dal mi nekolik prozitku emoci a mezilidskeho chovani*, ktere jsem jako dite "ve sve" rodine nezazival. Nechci tady zabihat do vlastni psychoanalyzy, to zde asi nikoho nebude zajimat. Ale kdyby to tu nahodou cetl nekdo z tehdejsich organizatoru: Moc Vam dekuji. Ani nemate predstavu, jak jsem Vam vdecny.

Narazil jsem dneska na stranku https://z00m.speccy.cz/?file=docs/svazarm-602-spectrum pri hledani neco o ULA obvodu :). Konkretne na casopis https://z00m.speccy.cz/files/Sinclair602-90-1.pdf kde se ta Veleslavinska 42 zminuje. Rad bych zapracoval trochu na svych vzpominkach, pokud jste tam nekdo chodili, nebo znate nekoho, kdo tam vyucoval, budu moc rad za jakoukoliv informaci, odkazy, fotky, apod. A samozrejme bych rad treba jen e-mailem podekoval tem lidem, kteri se tam o to starali.

----
* Moje vzpominky jsou velmi kuse, vlastne mam jen 2, ani jedna z nich se netyka techniky, ale chovani lidi.

13
Vývoj / Software-only USB host
« kdy: 24. 07. 2020, 15:37:42 »
Existuje nekolik implementaci ciste SW USB device (nejznamejsi je asi vusb, ale je jich cela rada); tzn. v MCU, ktery nema USB periferii se pomoci 2 GPIO udela softwarove USB zarizeni.

Hodilo by se mi ted opacne reseni, ktere by implementacne nemuselo byt nijak extremne slozite - aby genericky MCU (pocitejme nejaky ARM Cortex-Mx/MIPS na 50+ MHz) umel udelat USB host pro pripojitelny FS device (12Mbps). Cilem je pripojit mass storage, o rychlost tu nejde-spis velikost kodu a nutne periferie hostitelskeho MCU, pocitejme ze pujde pouzit DMA (a nejaky capture/compare, aby byl co nejvetsi offload do HW). Akceptovatelna je i druha alternativa kdy to na chvili plne vytizi MCU a bude to treba i bez interruptu. Znate nekdo nejaky takovy projekt ? Staci mi ta USB komunikace, mass storage se pokusim na to potom nejak naroubovat, pripadne mi staci i nejaka inspirace "jak na to".

Predpokladam, ze to je uplne mimo USB spec, ale je mozne FS zarizeni ktere mi spravne signalizuje pres pullup ze je FS provozovat jako LS, tzn. na 1,5Mbps ? Ze bych mu vnutil LS komunikaci i kdyz je FS ?

14
Najde se zde nejaky dobrosrdecny majitel nainstalovaneho historickeho Apple Mac OS X 10.4.4–10.6.8  na x86, ktery by mel funkcni Rosettu https://en.wikipedia.org/wiki/Rosetta_(software) a poskytl mi jeji binarky na analyzu?

(/usr/libexec/oah/translate),
(/usr/libexec/oah/translated)
(/usr/libexec/oah/Shims/*)

Dale shanim nekoho kdo ma preview verzi BigSur a tusi, zda se z ni da vytahnout nova Rosetta (x86->ARM), pripadne jak je implementovana (ARM Apple dev desku tu predpokladam jeste nikdo nema a nevim zda v x86 instalaci BigSuru bude ?).

Nejde mi ani tak zkoumani binarniho translatoru jako takoveho, spis o vrstvu prevadejici ABI cally mezi architekturami (na rozdil od qemu-sys... je totiz prekladana jen ta nezbytne nutna cast a jinak se pouzivaji nativni knihovny, tedy alespon tak jsem to pochopil).

No a do tretice mimo tema shanim stroj kde se da spustit Sun Wabi, je to hodne velka historie, umoznovalo to na Sparcu poustet Win aplikace (balicek SUNWwabiX z roku cca 1996). Klidne i na remote, binarky jako takove mam, ale nemam zelezo.

15
Software / OpenSCAD vs. dxf soubor s filletovanými tvary
« kdy: 17. 06. 2020, 16:38:24 »
Mate nekdo zkusenost s DXF souborem, ktery ma tvary upravene prikazem "fillet" a ktery je extrudovany v openscadu ?

https://pasteboard.co/Jdw3Xur.png (barevne jsou ruzne layery)

na toto jsem zavolal rutiny tohoto typu:

Kód: [Vybrat]
module obd2_trapezoid() {
   
    translate([0,0,FLANGE1_SIZE+FLANGE2_SIZE+FLANGE3_SIZE])
    difference() {
       
    linear_extrude(height=TRAPEZOID_HEIGHT, bottom=true) {
import(file="obd2.dxf", layer="trapezoid");
};

    linear_extrude(height=TRAPEZOID_HEIGHT+1, bottom=true) {
import(file="obd2.dxf", layer="obdtab");
       
    };
}
}

vysledek v Prusovi:

https://pasteboard.co/Jdw4lHh.png

jde mi o to, ze misto krasneho radiusu mam tento nespojity hnus - u te dolni "priruby" (zelena v DXF) je to uplne desive, u lichobezniku to je trochu lepsi.

Je mi jasne, ze si muzu udelat v openscadu primo ty tvary, ale to NECHCI (potrebuju to mit cele definovane v DXF a v openscadu jen jak udelat extruze/rozdily/uniony.

Stran: [1] 2 3