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.


Příspěvky - mhi

Stran: 1 [2] 3 4 ... 34
16
Hardware / Re:Doporučte hobby mikropáječku
« kdy: 30. 07. 2023, 14:44:22 »
Konkrétní objednací kód nalezený namátkou v datasheetu mi pak Google ukázal u globálních distributorů - tzn. na termistor za 40 Kč přibyde pár stokorun dopravné...

Jo a prej je to nějaká keramika, tzn. teoreticky je to křehký materiál. A nevím, co to má za kontakty. Možná dva polepy/elektrody, z každé strany jednu...

Koukal jsem, je i na DigiKey, kde jsem v zivote dopravne neplatil :) ... a zda se, ze se to normalne paji, takze je potreba nejspis dat pozor i na teplotu, aby se sam neodpajel.

17
Vývoj / Re:PIC32Mx vývoj v Linuxu
« kdy: 30. 07. 2023, 12:38:17 »
Zapomnel jsem dodat, ze workaround na specificky atribut adress toho xc32 je zde: https://godbolt.org/z/rMrz4j71W, to by melo prinest urcitou miru kompatibility na urovni zdrojaku, i kdyz idealni to rozhodne neni. CMSIS-style mi prirostl mnohem vic k srdci.

18
Vývoj / Re:PIC32Mx vývoj v Linuxu
« kdy: 30. 07. 2023, 12:29:59 »
Ano, xc32 je zalozene na gcc, zdrojaky (asi nejake ne uplne kompletni) jsou zde: https://ww1.microchip.com/downloads/aemDocuments/documents/DEV/ProductDocuments/SoftwareTools/xc32-v4.30-src.zip

(da se tam doklikat pres https://www.microchip.com/en-us/tools-resources/archives/mplab-ecosystem )

Jenze to clovek zase skonci s Microchipim prekladacem se vsemi nevyhodami. Proc, kdyz tu je fungujici GCC pro MIPS ?

(otazka mimo tema-nemate nekdo zdrojaky gcc+binutils pro TriCore a C166 ? )

19
Hardware / Re:Doporučte hobby mikropáječku
« kdy: 30. 07. 2023, 12:18:52 »
Jdou mi trochu oči křížem... pozitivní termistor jako topné tělísko? Topení a termostat monoliticky v jednom :-)

Tohle je běžná praxe, ve vzduchotechnice se používají mnoha-kilowattové PTC ohřívače. Má to výhodu zpětné vazby (měřením odporu) a bezpečnosti (při selhání regulátoru se to nepřehřeje).

Poradite mi, kde se da tohle koupit jako "soucastka" ? Googlem jsem nic pouzitelneho a rozumne draheho nenasel.

Otazka obecne: Cim provadite ohrev plosnych spoju zespoda pri pajeni nejakych narocnejsich obvodu ?

20
Hardware / Re:Doporučte hobby mikropáječku
« kdy: 25. 07. 2023, 01:27:55 »
Mel jsem nekolik mikropajecek, ale skoncil jsem u nejake superlevne cinske s T12 hroty. Ted jsem koukal jaky hrot pouzivam, na 90% prace to je T12-KU (a to s tim procinovavam celkem tluste slanene vodice na jedne strane, az po pajeni ruznych IC typu LQFP48 s 0.5mm rozteci, nebo na 'opraveni' blbe zapajenych QFN).

Vyjimecne treba na ta QFNka kdyz potrebuju sahnout bez tavidla jen na konkretni pad mam hrot T12-JLO2 (a jde to i spickou -KU, jen musi byt cista).

Hrotu mam hromadu, po koupi jsem chvili zkousel k cemu je ktery dobry, nakonec pouzivam opravdu jen ty dva.

21
Vývoj / PIC32Mx vývoj v Linuxu
« kdy: 24. 07. 2023, 10:36:46 »
Pouzivate nekdo standardni mips-gcc pro vyvoj pro PIC32Mx (MIPS SoCy od Microchipu) v Linuxu  ?

Existuje xc32 pro Linux, ano, vim o tom, ale rad bych pouzil idealne mips-gcc (v Ubuntu je crosscompiler, kterym jsem vygeneroval zda se spravnou binarku). Hlavni problem tam je s atributem "address", ktery se pouziva na vsechny registry - to umim obejit pres #define pro celociselne registry.

Motivace meho asi nezvykleho prani je to, ze vyvoj v Linuxu (vi, gcc,make) je pro mne mnohem rychlejsi nez v MPLABu X, navic obcas crosscompiluju na ARM hostu, pro ktery xc32 neni. Presne takhle resim ruzne Cortexy-M. Popravde jsem byl dost prekvapen tim jak MPLAB X funguje, uplne jiny svet, nez na ktery jsem zvykly.

22
Vývoj / Re:Tester x86 (zejm.) ALU instrukcí
« kdy: 29. 06. 2023, 11:26:43 »
Ano, v jinem projektu jsem to resil tak, ze u kazdeho basic blocku byl krome startadresy ulozeny i rezim. Tady to ale nebude potreba, default je 32bit a vse dal uz urci addr/op prefixy.

23
Jen takovy maly priklad, existuje obor, kde se pirati SW pres nakupy na eBayi (Ali, ... a ja nevim kde). "Faktura" na tyhle nakupy samozrejme vzdycky je, minimalne jako nejaky order confirmation. Co jsem vypozoroval, je tam resena otazka 'dobre viry', a protoze v danem oboru SW stoji treba 50k/rok, tak se s tim obzalovani maji celkem problem popasovat, jak mohl uverit, ze to koupil s licenci za tisicovku, kdyz to pomalu ani nestoji zelezo propojene se SW.

Pokud jde o lokalni prodeje, z oznamujici strany muzu rict, ze u vyslechu preprodejci (nakoupi na Ali, prihodi 100% a tady proda) vzdy tvrdili "ze oni byli v dobre vire", ale OCTR jim to neuverily :). Narazil jsem i na cloveka, ktery sedel za nejake unosy a tohle mel asi jako bokovku :).

Situace je asi jina u veci typu Windows, kde ty original licence skutecne mohou byt velmi levne, az skorozadarmo.

24
Vývoj / Re:Tester x86 (zejm.) ALU instrukcí
« kdy: 28. 06. 2023, 15:46:06 »
Jako chapu autorovu potrebu mit testovaci sadu, a z duvodu dvojite chyby by takovy test mel napsat nekdo jinej nez on. A az budou mit oba hotovo, tak to muzou poustet behem vyvoj dokola a dokola.. a odhalovat pripadne regrese v kodu.

Nakonec to asi budu muset naprogramovat sam. Zvazuju jestli mam vubec resit PF. A jestli ma smysl AF. V target kodu se myslim ani jedno nepouziva, ale muzu se samozrejme plest. PF vyresit muzu celkem snadno tim, ze si nekam po ukonceni translace basic bloku NEBO informaci ze potrebuju plne flagy ulozim vysledek a pak pouziju lookup table, to same na ten AF, jen to jsou uplne zbytecne cykly navic.

K otestovani jsou:

- vypocty EA
- prehozy mezi registry: pushpop, segmentove
- ALU operace rozdelen i na 8  / 16 / 32 bitu a ruzne formaty zapisu X testy ruznych flagu x ruzne vstupy (rozdily horniho bitu, preteceni, apod.).

Prvni reseni bude asi udelat nejakou tabulku, ktera bude obsahovat tyhle ruzne vektory a pak nejspis pres random nagenerovat sadu testu, kde si treba na stacku budu naxorovavat vysledky, a srovnam realne CPU vs. translaci. Sice to neni idelani, ale odhali to asi spoustu chyb. Nektere vyzivnejsi sady si ulozim jako testvektory.

Jsem zvedav, jestli najdu i nejakou chybu v nejakych emulatorech a jestli to treba dobehne dobre na Win/ARM :).

25
Vývoj / Re:Tester x86 (zejm.) ALU instrukcí
« kdy: 24. 06. 2023, 11:51:55 »
Dekuji za odpovedi,

ad qemu: tam toho zase tak moc nevidim, nejzajimavejsi je asi toto https://github.com/qemu/qemu/blob/master/tests/tcg/i386/test-i386.c - jenze to neresi uplne muj problem, potrebuju intenzivnejsi testy. Prusvih jsou takove ty ruzne drobnosti typu ze nejaka instrukce nastavuje nebo nenastavuje flagy, obcas se treba parity flag pouziva na neco obskurniho, apod. (ne ze bych tohle zrovna potreboval, to se v mem prekladanem kodu nebude vyskytovat, je to jen priklad).

ad bruteforce: pokud udelam skutecne bruteforce, tak to bude neskutecne dlouhe. Dlouhe to bude i kdyz omezim sady tech imm konstant a vstupu. Po precteni mne napadlo jeste udelat random testsuite, ze by to generovalo pseudonahodne ruzne testovaci sady (zkusime co udela adc nad signed pos a neg 8bit cislem, a pak zkusime jestli jnX bude fungovat vzdy stejne (a preskocime podminene dalsi testovaci pseudorandom kod).

Jinak tohle je reset kod pocitace TNS HC16:

Kód: [Vybrat]
seg000:E104 reset_routine   proc near
seg000:E104                 sub     ax, [bx+si]
seg000:E106
seg000:E106 loc_FE106:                              ; CODE XREF: int9_irq1_kbd+100
seg000:E106                 cli
seg000:E107                 cld
seg000:E108                 xor     ax, ax
seg000:E10A                 sahf
seg000:E10B                 jb      short err01
seg000:E10D                 jz      short err01
seg000:E10F                 jp      short err01
seg000:E111                 js      short err01
seg000:E113                 daa
seg000:E114                 or      al, al
seg000:E116                 jnz     short err01
seg000:E118                 not     ah
seg000:E11A                 sahf
seg000:E11B                 jnb     short err01
seg000:E11D                 jnz     short err01
seg000:E11F                 jnp     short err01
seg000:E121                 jns     short err01
seg000:E123                 daa
seg000:E124                 cmp     al, 66h ; 'f'
seg000:E126                 jnz     short err01
seg000:E128                 mov     ax, 5555h
seg000:E12B                 cmp     al, ah
seg000:E12D                 jnz     short err01
seg000:E12F                 shl     al, 1
seg000:E131                 or      al, ah
seg000:E133                 cmp     al, 0FFh
seg000:E135                 jnz     short err01
seg000:E137                 mov     ah, al
seg000:E139
seg000:E139 loc_FE139:                              ; CODE XREF: reset_routine+4Fj
seg000:E139                 mov     ds, ax
seg000:E13B                 mov     bx, ds
seg000:E13D                 mov     es, bx
seg000:E13F                 mov     cx, es
seg000:E141                 mov     ss, cx
seg000:E143                 mov     dx, ss
seg000:E145                 mov     sp, dx
seg000:E147                 mov     bp, sp
seg000:E149                 mov     si, bp
seg000:E14B                 mov     di, si
seg000:E14D                 sub     ax, di
seg000:E14F                 jnz     short err01
seg000:E151                 shl     cx, 1
seg000:E153                 jnb     short loc_FE139
seg000:E155                 jmp     short loc_FE159
seg000:E155 ; ---------------------------------------------------------------------------
seg000:E157                 db  90h ; É
seg000:E158 ; ---------------------------------------------------------------------------
seg000:E158
seg000:E158 err01:                                  ; CODE XREF: reset_routine+7j
seg000:E158                                         ; reset_routine+9j ...
seg000:E158                 hlt


26
Vývoj / Tester x86 (zejm.) ALU instrukcí
« kdy: 23. 06. 2023, 15:11:30 »
Doporucite mi prosim nekdo nejaky blob na testovani x86 emulatoru (translatoru), aby to umelo v idealni podobe:

- otestovat oddelene 16 a 32bit ruzne ALU operace (tzn. aby slo testovat jen 80(1,2)86 sadu) - na spravny vypocet
- to same na SPRAVNOU praci s flagy
- otestovat ruzne silenosti typu https://www.timdbg.com/posts/useless-x86-trivia/
- otestovat ruzne dalsi instrukce pro pametove operace, opet oddelene 16 (80(1)86) a 32bit (386+) rezim

Jde mi primarne skutecne jen o ALU. Znam treba https://github.com/barotto/test386.asm - takhle presne si to nejak predstavuju, tam bohuzel to ALU +/- chybi.

Doplnujici otazka - potrebuju neco podobneho i na jine sady, konkretne PowerPC a TriCore, 8051,  80166, Z80. Opet primarne zamerene na ALU, nepotrebuju zadne veci jako testy MMU apod.

Po minulych zkusenostech se nezlobte, ale na reakce rikajici mi ze delam blbost nebo ze to mam udelat jinak (pokud to nebude z meho pohledu dobry napad) nebudu vubec reagovat.

27
Mam v Debianu vice balicku, teda alespon se zda, o nic jsem se ale nesnazil, neco jsem udelal myslim debian friendly a udelal definice pro zabalickovani - a nejak se to do Debianu dostalo.

Nevim, zda to je odpoved na otazku.

28
Vývoj / Re:C pre-preprocesor
« kdy: 20. 04. 2023, 12:22:33 »
Tohle forum je opravdu zajimave. Clovek si tak rika, jestli autor prispevku vubec cetl na co reaguje.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

RDa: oddeleni pomoci newline mam, sice trosku jinak, ale ano, takhle to delam. Mne jde skutecne jen o tu indentaci. Staci si (napr.) v IDA otevrit defacto jakoukoliv binarku se slozitejsim optimalizovanym algoritmem (nejake zanorene cykly a if-y v sobe) a k tomu se zamyslet nad indentacnimi pravidly. Primitivni pravidlo ze telo kazdeho if-else-endif a while-endwhile indentuju o jednu uroven neni uplne nejprehlednejsi. ChatGPT tohle umi mnohem lip, akorat tam nic nedisassembluje, ale generuje novy kod, kde ten vyznam zna, a indentaci to AI nekdo zrejme naucil (otazka je zda sikovnymi pravidly, nebo opet pres uceni).

29
Vývoj / Re:C pre-preprocesor
« kdy: 18. 04. 2023, 15:36:35 »
Ja to nemyslel ze bych to resil pres AI, ale ze konkretne ChatGPT to obcas tiskne moc hezky a vidim v tom nejaky smysl.

To co pises je celkem jasne, ale prave ta pravidla jak to delat uz tak jasna nejsou. Kdyz si vezmu ruzne ukazky praktickych kodu, tak obcas sam nevim jak to udelat "hezky". Treba kde se v loopu skace tam-zpet a je tam treba nejaka dvojita podminka ... tohle nevim jak udelat aby to bylo dostatecne čitelné (ani rucne v editoru nemam jasno, dabel je v tech detailech).

Ona ta indentace asm je takova nouzovka pro zprehledneni, ale je to "zadarmo" - zrovna to bych mohl trivialne implementovat, moje disassemblery oznacuji skoky i terminacni instrukce (jump && !terminace ==> podmineny skok) pro analyzu flow.

30
Vývoj / Re:C pre-preprocesor
« kdy: 18. 04. 2023, 10:06:23 »
Problem techto nastroju je, ze kdyz chce clovek neco specifickeho, stoji casto vic casu jejich prepracovani, nez udelat vyvoj "skoro od nuly". Myslim tim to, ze nekde najdu vhodny zdroj opkodu a ten pouziju-napsat jednoduchy disasm pro novou architekturu je pak otazka odpoledne. Diky nejakemu odkazu tady jsem objevil, ze Ghidra ma slusnou definici opkodu pro TriCore, ktery ted budu potrebovat udelat.

Mam tu ale dalsi tema a to je indentace assembler kodu (podobne jako IDA umi udelat strom). Hezky to obcas dela ChatGPT, zde je priklad:

Kód: [Vybrat]
        ; Load array address into r0
        LDR r0, =ARRAY
        ; Load array size into r1
        LDR r1, =SIZE
        ; Subtract 1 from array size
        SUBS r1, #1
        ; Loop outer
        outer_loop:
                ; Move outer loop index to r2
                MOV r2, r1
                ; Move outer loop index to r3
                MOV r3, r1
                ; Loop inner
                inner_loop:
                        ; Load ARRAY[r2].x into r4
                        LDRB r4, [r0, r2]
                        ; Load ARRAY[r2].y into r5
                        LDRB r5, [r0, r2, LSL #1]
                        ; Load ARRAY[r3].x into r6
                        LDRB r6, [r0, r3]
                        ; Load ARRAY[r3].y into r7
                        LDRB r7, [r0, r3, LSL #1]
                        ; Compare x values
                        CMP r4, r6
                        ; If ARRAY[r2].x >= ARRAY[r3].x, skip swap
                        IT GE
                        MOVGE r9, r2
                        MOVGE r2, r3
                        MOVGE r3, r9
                        ; Compare y values
                        CMP r5, r7
                        ; If ARRAY[r2].y >= ARRAY[r3].y, skip swap
                        IT GE
                        MOVGE r9, r2
                        MOVGE r2, r3
                        MOVGE r3, r9
                        ; Decrement inner loop index
                        SUBS r2, r2, #1
                        ; Loop inner while inner loop index >= 0
                        BGE inner_loop
                ; Decrement outer loop index
                SUBS r1, r1, #1
                ; Loop outer while outer loop index >= 0
                BGE outer_loop
        ; Return
        BX lr

Mate nejaky napad na pravidla jak tohle delat? Jsou jasne ruzne if-else-endif, pokud jdou po sobe, ale ne vzdy to tak je. Uvital bych odkazy na pripadne dalsi nastroje, ktere tohle nejak umi. ChatGPT jsem se ptal jestli mi napise pravidla ktera pouziva a kdybych veril ze tam je "rozum", tak bych rekl, ze "jsme si vubec neporozumeli" :-). Ani na nekolikaty pokus ji vysvetlit co mne zajima.

Stran: 1 [2] 3 4 ... 34