-
Data: 2012-05-06 15:44:02
Temat: Re: [OT] Zarządzanie konfiguracją modułów kodu źródłowego
Od: "Andrzej Ekiert" <d...@t...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Dnia 06-05-2012 o 15:23:06 Zbych <z...@o...pl> napisał(a):
>>> A to już zwykłe makra, definy, funkcje inline, specjalizacje szablonów
>>> nie wystarczą do ukrycia fizycznego położenia pinów?
>>
>> Wystarczą, ale dla każdego projektu trzeba te define'y inaczej ustawić -
>> ta sama nazwa, inna wartość.
>
> Zgadza się i zakładam, że rzeczy specyficzne dla projektu trzymasz w
> osobnym pliku, który leży sobie w katalogu z projektem i jest przez
> bibliotekę tylko includowany. Zgadza się?
>
Tak.
> Ja jak na razie na I2c wieszałem jakieś pamięci, RTC itp. badziewie. Do
> jego obsługi wystarczały mi 3 funkcje typu wyślij blok danych, odbierz
> blok danych, sprawdź gotowość. Współdzielenie zabezpieczałem mutexami.
> Funkcje RTC czy obsługa pamięci wprost wołały te funkcje. W innym procku
> dodawałem tylko inną bibliotekę do I2c. Interface zostawał ten sam. Zero
> narzutu.
Masz driver do RTC w bibliotece. Procesor ma 2 moduły sprzętowe I2C1 i
I2C2. Musisz przekazać driverowi RTC informację, funkcje dotyczące którego
modułu ma wywołać: odbierz_blok_danych_z_I2C1() czy
odbierz_blok_danych_z_I2C2(). Albo to robisz na poziomie #define, albo
definiując "driver" do I2C i przekazując modułowi I2C handle do tego
drivera (jest narzut). Ja chcę na poziomie #define, ale pragnę sobie
usprawnić zarządzanie takimi #define.
>>> Wolę zrobić kopię biblioteki z projektu x-1 i nanieść poprawki.
>>
>> Wykrywasz błąd albo robisz usprawnienie w x-1 i dopiero masz poprawianie
>> wszędzie gdzie ta kopia jest. Brrr...
>
> To jest niewątpliwie wada. Ale powiedzmy sobie szczerze, ile można
> spieprzyć w kodzie obsługi I2C, uarta itp?
Spieprzyć zawsze można. Poza tym moduł może być czymś bardziej złożonym.
Np. implementacją protokołu sieciowego.
> A teraz weź projekt sprzed kilku lat (bo klient chce drobną poprawkę) i
> skompiluj go z nową biblioteką. Jaką masz gwarancję, że nie wyjdą jakieś
> wredne bugi związane np. z zależnościami czasowymi?
Gwarancji nie mam, choć moja ciągła dbałość o to, by kawałek kodu, w
którym zależności czasowe występują, nie mógł być zakłócony przez inne
niezwiązane z nim moduły wykonywane równolegle, daje mi spore szanse.
Generalnie uważam, że zysk ze współdzielonych bibliotek znacznie
przewyższa koszty.
ae
Następne wpisy z tego wątku
- 06.05.12 15:49 Sebastian Biały
- 06.05.12 15:54 Michoo
- 06.05.12 15:59 Zbych
- 06.05.12 16:10 Andrzej Ekiert
- 06.05.12 16:24 Jacek Domański
- 06.05.12 16:28 Zbych
- 06.05.12 16:42 Sebastian Biały
- 06.05.12 16:50 Andrzej Ekiert
- 06.05.12 16:55 Michoo
- 06.05.12 17:08 Andrzej Ekiert
- 06.05.12 17:21 mk
- 06.05.12 17:35 Sebastian Biały
- 06.05.12 17:41 marek
- 06.05.12 17:41 Andrzej Ekiert
- 06.05.12 18:18 mk
Najnowsze wątki z tej grupy
- w czasach LED komary mają ciężko
- walizka z kodami
- Rejestrator temperatur - termopara, siec
- Router LTE z możliwością zmian MTU
- Fajny film widziałem...
- Jaka ładowarka sieciowa do Iphona?
- Taśma izolacyjna do prac elektrycznych
- Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Wkrętarki, wiertarki...
- Zasilacz impulsowy 12V 10A, coś godnego uwagi jako zamiennik akumulatora wkrętarki
- Mouser - koszt wysyłki
- [OT] Jak wycinac ksztalt w piance lub styropianie?
Najnowsze wątki
- 2025-07-17 Warszawa => Senior IT Recruitment Consultant <=
- 2025-07-17 Warszawa => IT Hardware Specialist - Wsparcie i Konfiguracja <=
- 2025-07-17 Warszawa => Przedstawiciel handlowy / KAM (branża TSL) <=
- 2025-07-16 deltaT w pompie ciepla
- 2025-07-16 dron na granicy polsko niemieckiej
- 2025-07-16 Warszawa => Senior IT Recruitment Consultant <=
- 2025-07-16 Gdańsk => Mainframe (z/OS, Assembler) Developer <=
- 2025-07-16 Gdańsk => Delphi Programmer <=
- 2025-07-16 Warszawa => BI Developer <=
- 2025-07-16 Gdańsk => Programista Delphi <=
- 2025-07-16 chroń PESEL dziecka
- 2025-07-16 Rzeszów => Spedytor Międzynarodowy <=
- 2025-07-16 Gdańsk => Konsultant wdrożeniowy (systemy controlingowe) <=
- 2025-07-16 Kraków => Kotlin Developer <=
- 2025-07-16 Warszawa => Inżynier oprogramowania .Net <=