Re: HW aj SW vyvojove prostriedky pre STM32, Was: STlink programátor - bylo Re: perspektiva řady Xmega od Atmelu

František Burian BuFran na seznam.cz
Pátek Květen 29 18:47:21 CEST 2015


Zdravim,

  Jelikoz jsem aktivnim autorem libopencm3 tak reaguji. Snad nikoho 
neurazim.

Libopencm3 je podle meho nazoru prozatim to nejlepsi co jsem zatim nasel, 
ale tahne za sebou velmi dlouhou historii s bourlivym vyvojem, a kazdy napad
je dlouho probirany nez se dostane do masteru. Ja jsem mel dost problemu s 
obhajobou disertace tak jsem se odmlcel, pravda uz dlouho jsem ty stm32 
nemel v ruce, takze bych se mel pripojit.

Od libopencm3 ve skutecnosti maji klice tri lide, karlp, esden, a ja. Esden 
mel hodne prace a karlp je proti nejakemu hlubsimu cisteni knihovny ve 
smyslu narovnani prehistorickych API ktere funguji jen na F1 kde to vsechno 
zacalo. Bohuzel toto je presne ten duvod jakym funguje opensource - kazdy 
strom roste, do doby nez narazi na prekazku a od te doby roste do vice stran
aby obesel prekazku. A jen cas ukaze ktera vetev je silnejsi a uchyti se.

Soucasny stav je takovy:

- API je navrzeno tak ze je nekompatibilni mezi F1 a zbytkem (F02347) - 
zejmena nastaveni GPIO porad kritizuji a posledni pull requesty delaji hodne
noveho a dobreho ale nikdo je nechce schvalit. Dale je nekompatibilni 
nastaveni RCC clocku, ikdyz diky me se to podarilo aspon castecne narovnat.

- Vetsina modulu je zapsana dle datasheetu, velmi malo je skutecne testovano
! Kdyz se podivate do F1 knihovny, objevite i pouhym okem diry v deklaracich
a nesrovnalosti v pozicich bitu ! V tomto vidim velky problem, pokusy o 
vytvoreni testu tu nejake byly (jsou v maintainer-tools) a opet vedeme s 
karlp hruby spor o to co je to TEST a co je to EXAMPLE, kdy karlp by to rad 
mel v jednom a ja separovane. Proto nejdeme dal protoze nas nikdo dalsi 
nerozsoudil (Esden toho casu mel mnoho prace a nereagoval).

- Examply jsou jen na F1 a vzhledem k nekompatibilite API mezi F1 a zbytkem 
nejdou pouzit jinde. Na zbytek jsou ale je jich jako safranu. Je malo 
dobrovolniku kteri by psali dobre pochopitelne a jednoduche examply. Spor s 
karlp TEST vs EXAMPLE (on tlaci variantu ze example by mel byt jeden c 
soubor zamakrovany do pate urovne, zkompilovatelny pro uplne vsechny 
platformy, ja tlacim variantu ze example by mel byt ladeny na architekturu 
(napr STM32, SAM3 ..) a pouzivat api na nejnizsi urovni, primo volani API 
funkci, co mozna nejmene skryvani se za makra - spor zatim bezi neni 
rozresen)

- Knihovna si historicky ssebou tahne prasarnu jako dynamicky generovane 
headery z nejakych "datovych" souboru, ktere jsou stejne architekturove 
zavisle, a diky tomuto generovani si ssebou tahne zavislost na docela 
konkretni verzi Pythonu coz nese velke komplikace pro sestrojeni windows 
toolchainu ktery to schrousta. Opet karlp zablokoval jakykoliv pokus tuto 
zavislost odstranit a kod vycistit. Resenim pro me bylo ze studentum nabizim
jeden exe ve kterem je vsechno predchystane a nainstaluje to vse potrebne 
vcetne spoluprace s IDE CodeBlocks (ale jde to pouzivat i s makefile). Na 
githubu mam forky kde je v gitu i s vygenerovanymi headery takze je ocistena
zavislost na Pythonu - jenze v masteru probehly mezitim zmeny, byly pridany 
architektury tak tato vetev zastarala.

- Knihovna si ssebou tahne hodne necisty zpusob buildovani jednotlivych 
knihoven, kdy neni zaruceno ze vsechny budou mit stejne parametry 
kompilatoru (napriklad f1 je kompilovana s mene warningy nez f4 a z toho 
plynouci prekvapeni ze ruzne architektury se chovaji ruzne). Muj pokus to 
sjednotit byl zastaven (pravda uznavam, ja to o hodne prekomplikoval jeste s
linker script generatorem a dalsimi moduly ... chce to revizi a vic smeru)

- DOKUMENTACE - kdo nekdy pracoval s knihovnou, ktera ma dokumentaci jen v 
Doxygenu, pochopi.

- Navaznost na jine knihovny - zeleny je strom zivota, a uplne stejne 
plesnivy je svet dalsich knihoven. Udelat API takove, aby se dobre 
navazovalo na dalsi knihovny, a fungovalo to spolehlive je prace na plny 
uvazek. Ja se zasekl na spolupraci s lwIP, musel jsem prvne prepsat celou 
nizkou uroven lwIP, odstranit tam hrube memleaky (co si vzpominam, byly v 
ARPu ale tim CodingStyle kterym je to psane, s makry v makrech byly okem 
neodhalitelne) aby mi to fungovalo spolehlive. Jenze to nemohu prohlasit, ze
pouzivam lwip, kdyz z lwip je pouzito pouze par vyssich funkci, takze 
ethernet je tam stale rozpracovany, byt mi to jiz na stole a v robotech jede
docela slusne.

Toto jsou zatim jedina negativa, na kterych se snazime zapracovat - a jak je
tomu u opensource zvykem - vsechno chce cas, delame to po praci, ve svem 
volnem case. Kazdy mame ten volny cas nekdy jindy, a holt jsou problemy, 
jejichz reseni v pullrequestech se nam libi, ale nemame odvahu je dostat do 
masteru. 

Jdu si opeci spekacek, nez bych sedel za monitorem,

mejte se

Franta.




---------- Původní zpráva ----------
Od: Jan Waclawek <konfera na efton.sk>
Komu: HW-news <hw-list na list.hw.cz>
Datum: 29. 5. 2015 17:14:03
Předmět: Re: HW aj SW vyvojove prostriedky pre STM32, Was: STlink 
programátor - bylo Re: perspektiva řady Xmega od Atmelu

">> Potom existuje aj nejaka open-source iniciativa urobit SPL open-source 
>> protikus, ale jednak neviem ako sa to vola, a druhak sa mi zda, ze to 
>> ustrnulo v pohybe, ale nesledujem to. 
>
>libopencm3? http://libopencm3.org
>

Ten, dakujem. Sledujete to? V akom je to stave?

wek




_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list"
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20150529/f17995be/attachment.html>


Další informace o konferenci Hw-list