-
Data: 2012-05-06 14:28:03
Temat: Re: [OT] [Zlecę] wykonanie interface'u Ethernetowego do architektury Z80
Od: Michoo <m...@v...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 06.05.2012 12:13, Sebastian Biały wrote:
> G. prawda. Nic takego nie generalizuje. C++ jeśli jest przynosi
> korzyści. W różnych zakresach. Na małych procesorach pozwala używać
> częsci technik RTTI do polepszania jakości, na duzych pozwala tworzyć
> abstrakcje znane z wiekszych systemów. Od poczatku mówie, że możesz
> sobie z niego wziąśc kawałek i użyć tam gdzie polepszy jakość. Możesz
> sobie wziąśc CriticalSection i polepszyć jakość bez uzywania
> czegokolwiek innego. Świat nie jest czarno-biały. Nikt nie zmusza do
> uzywania C++, natomias jak go masz - masz darmowe ciastko.
G. prawda. C++ jest świetny, ale potrzebujesz programisty który:
- zna go na dobrym poziomie
- zna się na programowaniu uC
- zna się na programowaniu uC w C++
inaczej będzie produkował kod na niskim lub bardzo niskim poziomie.
Prosty przykład - boost::mpl działa na uC, ale np konkatenacja stringów
jeżeli nie jest robiona na variadic template to daje rezultat stałej
wielkości. Fajnie, że zrobisz generowanie napisów w czasie kompilacji,
ale przy okazji stracisz ~20 bajtów na każdym. Programista musi to
zauważyć, zrozumieć i obejść. Nie może używać c++ na zasadzie "magia:
takie zaklęcie działa, nie zmieniać"
> Zakładam że jesli ktoś wali gownianym kodem to trzeba to naprawić bo
> inaczej twoja ekonomia robije się o szybki czas pisania ale długi
> debugowania. Mam wrażenie że pracujesz w typowej firmie do odwalania
> kodu byle jak (co nie znaczy że nie działającego). Być może taka
> specyfika rynku, ale to nie jest powod do dumy i slaby background
> rozmowy o polepszaniu jakości.
Czy ty na pewno robisz w embedded?
Cytaty z przykładowego kodu od NXP:
>> Descriptions: Set the I2C stop condition, if the routine
>> never exit, it's a fatal bus error.
To się nazywa obsługa błędów.
>> Returned value: true or false, return false if the I2C
>> interrupt handler was not installed correctly
[...]
>> return( TRUE );
To się nazywa dobra dokumentacja.
>> #define I2C_IDLE 0
>> [...]
>> #define I2C_TIME_OUT 11
[...]
>> Returned value: true or false, return false only if the
>> start condition can never be generated and
>> timed out.
[...]
>> if ( timeout >= MAX_TIMEOUT )
>> {
>> I2CMasterState = I2C_TIME_OUT;
[...]
>> return ( I2CMasterState );
To nie wiem nawet jak nazwać. Sabotaż?
To wszystko w 400 liniach kodu - i potem ludzie wzorujący się na takim
kodzie otrzymanym OD PRODUCENTA mają pisać dobry soft?
> Świetnie. Zakladamy że za 2 lata ten twój klient powie - no, nadszedł
> czas na nowy ficzer.
Gorzej - potem się okazuje, że w kodzie jest dość poważny bug
logiczny[1] a flash i cykle są tak wyżyłowane do granic że buga się nie
da naprawić w sensownym czasie. Kończy się na odpaleniu watchdoga na
sztywno i resetowaniu układu co 5 sekund. ;)
[1] z powodu buga w specyfikacji wymagań, nawet nie wina programisty
--
Pozdrawiam
Michoo
Następne wpisy z tego wątku
- 06.05.12 15:04 Sebastian Biały
- 06.05.12 15:19 Jerry1111
- 06.05.12 15:37 Sebastian Biały
- 06.05.12 16:05 Michoo
- 06.05.12 16:12 Sebastian Biały
Najnowsze wątki z tej grupy
- nawigacja satelitarna
- SmartLife/Tuya i osuszanie -- mordowanie z zimną krwią...
- Głośnik piezoelektryczny
- Mala autonomiczna kamera monitoringu
- czas na emeryturę i EB
- Generowanie sumy kontrolnej z fragmentu pliku bin
- Re: Mala autonomiczna kamera monitoringu
- HDMI
- Re: Mala autonomiczna kamera monitoringu
- Kamera monitoringu z kartą SIM
- Re: Kamera monitoringu z kartą SIM
- Re: Kamera monitoringu z kartą SIM
- skąd my to znamy
- Re: Kamera monitoringu z kartą SIM
- Re: Kamera monitoringu z kartą SIM
Najnowsze wątki
- 2024-06-27 Re: Prywatny parking? Pierwsze 10 minut bezplatnie
- 2024-06-27 A co mnie to koooorwa obchodzi?
- 2024-06-28 nawigacja satelitarna
- 2024-06-28 SmartLife/Tuya i osuszanie -- mordowanie z zimną krwią...
- 2024-06-27 położyłem kafelki
- 2024-06-28 Łódź => International Freight Forwarder <=
- 2024-06-28 Łódź => Spedytor Międzynarodowy <=
- 2024-06-28 Gdańsk => Head of International Freight Forwarding Department <=
- 2024-06-28 Sopot => Team Leader E-Commerce for Foreign Markets <=
- 2024-06-28 Warszawa => Senior React Native Developer <=
- 2024-06-28 Warszawa => Frontend Developer (React) <=
- 2024-06-28 Warszawa => Software .Net Developer <=
- 2024-06-28 Warszawa => Frontend Developer (React) <=
- 2024-06-28 Warszawa => Programista Full Stack .Net <=
- 2024-06-28 Warszawa => Frontend Developer (React) <=