MCU X51 a programování v C

arduino, teensy, atmega, pic a jine (software, hardware)
Odpovědět
lubbez
Příspěvky: 1984
Registrován: 21. 6. 2012, 9:26
Bydliště: Praha

27. 4. 2021, 9:22

Tak jsem si říkal, že už nebudu X51 jednočipy používat a ejhle. Mám zajímavý projekt 1 - 30 senzorů po budově a jejich stav vyhodnocenej nadřízeným PC. Případně komunikace po netu. Protože nadřízený systém mám a otestovaný stovkama hodin chodu, rád bych u něj zůstal. Protože krom toho mám z jednoho předchozího projektu cca 200 plošnejch spojů, tak bych rád zůstal u 2051. Rád bych to ale psal v C a ne v assembleru, ale nemůžu sehnat nic smysluplného. Lze stáhnout Keil, který je omezený na 2kB kódu, ale je to celé vývojové prostředí a dost složité. Líbil by se mi SDCC, ale když ho stáhnu, tak se mi sice nainstaluje, ale pouze knihovny bez kompilátoru. Je ještě něco smysluplného?
Díky za info Luboš.
Mex
Příspěvky: 8519
Registrován: 6. 2. 2014, 10:29

27. 4. 2021, 1:22

Jen čistě teoreticky, protože x51 nemám.
Jasná hvězda na poli kompilátorů obecně je (podle mě) GCC. Takže pokud pro nějaký procesor a systém existuje GCC, vždy sáhnu po něm.
Navíc je free.
GCC toolchain pro x51 pravděpodobně existuje. Takže já bych začal tady.
https://sourceforge.net/projects/mcs51gcc/

Ale jak píšu - je to jen teoretická rada od zeleného stolu. Jsem totálně v háji s časem, tak nemám teď čas to zkoumat (což bych jinak asi jen ze zajímavosti udělal).
Uživatelský avatar
Radhard
Příspěvky: 59
Registrován: 1. 7. 2020, 10:19
Bydliště: Praha
Kontaktovat uživatele:

27. 4. 2021, 9:29

Mám dlouholetou zkušenost s KEIL uV2/uV3/uV4 pro X51 i pro ARM a můžu jej jen doporučit.
Sám jsem x51 dělal v ASM i v C přes 10let. Nicméně 2KB Ti na solidnější projekt v C stačit nebude.
Za zminku ještě stojí IAR.
Naposledy upravil(a) Radhard dne 27. 4. 2021, 10:12, celkem upraveno 1 x.
Uživatelský avatar
Radhard
Příspěvky: 59
Registrován: 1. 7. 2020, 10:19
Bydliště: Praha
Kontaktovat uživatele:

27. 4. 2021, 9:51

SDCC jsem teď pro srandu zkusil nainstalovat a kompiluje to normálně.
lubbez
Příspěvky: 1984
Registrován: 21. 6. 2012, 9:26
Bydliště: Praha

27. 4. 2021, 10:24

Díky za informace, zkusím se popasovat s tím SDCC. :-)
Uživatelský avatar
Radhard
Příspěvky: 59
Registrován: 1. 7. 2020, 10:19
Bydliště: Praha
Kontaktovat uživatele:

27. 4. 2021, 10:44

Když budeš hledat dost dlouho, tak určitě narazíš na téma jak naprasit SDCC do ECLIPSE.
Ono upřímně, dělat jen commandline je pro masochisty, takže mít i nějaké IDE je fain.

Namátkou:
https://cs.wikipedia.org/wiki/MCU_8051_IDE
lubbez
Příspěvky: 1984
Registrován: 21. 6. 2012, 9:26
Bydliště: Praha

4. 5. 2021, 5:03

Tak jsem to nakonec vzdal. Primárně je problém samozřejmě v mé neznalosti angličtiny. Nějaké user friendly řešení pro 8051 je asi nenávratně v ...... a ostatní prostě vyžadují čtení vícero stránek manuálu. Pokorně po třech letech návrat k assembleru, což teda taky není žádná hitparáda. Ale je fakt, že po třech hodinách psaní a opravování kódu už umím přečíst 3 byte po sériové lince z arduina. :lol:
Mex
Příspěvky: 8519
Registrován: 6. 2. 2014, 10:29

4. 5. 2021, 5:15

To je škoda, že bydlíš v takovém vystrkově.
Kdybys bydlel v civilizovaných končinách (tj. v Brně a okolí), tak bych Ti to rád přijel zprovoznit.
A na oplátku bych z Tebe tahal moudra o laserech.
Uživatelský avatar
Radhard
Příspěvky: 59
Registrován: 1. 7. 2020, 10:19
Bydliště: Praha
Kontaktovat uživatele:

4. 5. 2021, 9:33

To je škoda. Kde si konkrétně zasekl? Ti s tím klidně helfnu, jsem místní ;-)

Pro Mexe:
GCC pro x51 bohužel není. Podařilo se mi naprasit SDCC do ECLIPSE, ale bohužel bez možnosti debugu/simulace, protože SDCBD nemá GDB kompatibilní inteface.
Mex
Příspěvky: 8519
Registrován: 6. 2. 2014, 10:29

4. 5. 2021, 10:13

Je to možné, že GCC pro to není. Škoda.

Teď si vzpomínám, že jsem kdysi to SDCC taky použil. A dokonce myslím 2x. Jednak jsem upravoval firmware v nějakém programátoru pro FPGA od Altery. Tehdy neúspěšně, bylo to hodně mizerně napsané a nestálo to za tu práci celé to předělávat.
A pak ještě firmware pro USB procesory Cypress, které jsou v těch malých logických analyzátorech z Číny.

Ten procesor Cypress CY7C68013A je mimochodem hodně zajímavá součástka. Firmware v něm neběží ve Flash ale v RAM, kam se po USB při startu nahraje z PC, ke kterému je to připojeno. Škoda, že je to postaveno ještě na historické architektuře x51.

Na styl práce mám teda ale dost odlišný názor. Pro mě je naopak nějaký moloch jako Eclipse čiré utrpení a nikdy bych to dobrovolně nepoužíval. Dávám přednost textovému interface a Make.
Uživatelský avatar
Radhard
Příspěvky: 59
Registrován: 1. 7. 2020, 10:19
Bydliště: Praha
Kontaktovat uživatele:

4. 5. 2021, 10:36

Ty Cypress jsem zkoumal. Dobré na věci co se strkaj do USB a tak. Ale podle mě vrchol x51 procesorů jsou C8051Fxxx od Silabs. Nejrychlejší běží až na 100MHz a mají dost zajímavých periférií. Na ty mám i HW debugger. Dobře se s nima dělalo, ale kdo zkusí ARM, už se nevrátí ;-)
Jedinej problém je zastaralá architektůra 51 a to hlavně co se týče zásobníku.

Eclipsu (a její klony) bytostně nesnáším, když to jen trochu jde, dělám v UV3/4/5/6 - to je snesitelné, funkční a hlavně svižné a stabilní. Problém je, že často není jiná alternativa :-(

Dělat jen v make, bez JTAG / SWD /C2 debuggeru , simulátoru a podobných věcí projekty kde máš 100+ zdrojovejch souborů, RTOS, real time HW a pod. věci a být při tom efektivní podle mě nejde.
Mex
Příspěvky: 8519
Registrován: 6. 2. 2014, 10:29

4. 5. 2021, 10:55

Tím UV3/4/5/6 je myšlený nějaký ten Keil uVision? Nebo něco jiného?

Já používám prakticky výhradně free nástroje, ideálně z rodiny GCC. Takže kompilátory GCC a G++, debugger GDB.
Simulátory nepoužívám žádné.

Dneska už vývoj na MCU prakticky jen na ARMu. Je to levné, výkonné, snadno dostupné. Z donucení (historické důvody) ještě občas AVR nebo MIPS.

Ale pokud se dělá v C, tak ta architektura není až tak podstatná. Pokud samozřejmě nemusím jít někde až na meze daného zařízení.
Větší rozdíl často je mezi ARM jednoho výrobce a druhého výrobce, než třeba mezi procesory různých architektur od jednoho výrobce, který do obou řad dal shodné periferie.
Uživatelský avatar
Radhard
Příspěvky: 59
Registrován: 1. 7. 2020, 10:19
Bydliště: Praha
Kontaktovat uživatele:

4. 5. 2021, 11:10

Ano. KEIL uVision. Máme koupenou licenci ve firmě. Nicméně pro hobby účely těch 32KB výslednýho kódu často úplně stačí.

GCC se u nás taky používá. Většinou právě tam, kde není nic jinýho. Měli jsme jeden projekt na LEON3 (SPARC V8). Hrůza - eclipse+gcc+plugin.

Z toho důvodu jsem se zařek, že budu u ARM STM. Měnit HW je strašně drahý na čas. Takhle sednu k mašině a za 2h mám poskládanou kostru programu z odladěnýho kódu.
lubbez
Příspěvky: 1984
Registrován: 21. 6. 2012, 9:26
Bydliště: Praha

5. 5. 2021, 7:50

Chlapi, díky za rady. Nakonec ten assembler nebyl tak blbej nápad. Ten umím a tím pádem můžou být problémy jenom v programu :lol: Protože to je prográmek na na tři stránky, v zásadě o nic nejde. Holt nesmím bejt moc pyšnej, že jsem se naučil "koktat" v C po 40 letech odmítání a cpát ho na všechny platformy, kde ještě občas něco dělám. Třeba Motorola 6502. I když coby důchodce si už jenom hraju, primárně se věnuju plastovejm (SLS) tisknutejm bábovičkám a když je tam nějaká elektrika, tak jenom 9000 V pulzy. A tady nemusíš nic měřit. Přítomnost elektriky poznáš. :mrgreen:
Uživatelský avatar
Radhard
Příspěvky: 59
Registrován: 1. 7. 2020, 10:19
Bydliště: Praha
Kontaktovat uživatele:

5. 5. 2021, 10:36

Ok :-)

ps: Na tu 6502 něco mám ;-)
Odpovědět

Zpět na „MCU“