RTV forum PL | NewsGroups PL

Inteligentne zarządzanie konfiguracją modułów w wielu projektach C i Assemblerze

[OT] Zarządzanie konfiguracją modułów ko du źródłowego

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Inteligentne zarządzanie konfiguracją modułów w wielu projektach C i Assemblerze

Goto page Previous  1, 2, 3

mk
Guest

Sun May 06, 2012 11:25 pm   



W dniu 2012-05-06 22:05, Sebastian Biały pisze:
Quote:
On 2012-05-06 21:32, mk wrote:
Uzywając def.
Np. tak:
default-config: #define UART_STOP_BITS 1
project-config: #include "default.h", #define UART_STOP_BITS 2
Redefiniowanie makra nową wartością jest nielegalne!!!

Masz rację, jak zwykle pisze skrótami i nie wszystko podaje. Oczywiscie
że jest #undef ale tylko dlatego że nie da się zrobić wprost #define
ponownie (w gcc da się). Samo undef jest wyłacznie wytrychem a nie
sednem metody. Sendem metody jest ponowne zdefiniowanie symbolu
nadpisując default.

GCC jest tu tolerancyjny, ale i tak daje warningna.

Quote:
Jak napisałem - dla mnie nie ma znaczenia którą metodą inkludowania
wybierzesz - obydwie sa mizerne i sprwadzają się do tej samej sieczki w
define.

Takie uroki tworzenia kodu uniwersalnego. Sieczki programowania
generycznego C++ często wcale nie wyglądają lepiej :-)

Quote:
jest niezgodne np. z MISRA-C i w ogóle niepotrzebnie zaciemnia plik
konfiguracji użytkownika.

Nie mam targetu na misra-c. Więc ich zalecenia nie są dla mnie kluczowe.
Czy zaciemnia - to już inna sprawa. W odwrotnej konfiguracji zaciemnia
#ifdef. Tak czy inaczej - to nie wygląda dobrze.

Ale to z plikiem konfiguracji użytkownika użytkownik będzie w pierwszej
kolejności pracować. Nadawanie konfiguracji domyślnej to już bebechy...

Nie ma co sobie obrzydzać, tak wygląda język C :-)

Quote:
Prawde mowiąc korzystam znacznie częściej ze statycznego polimorfizmu.
#define to odprysk w kilku miejscach.

Mam taki nieskończony projekcik (który strasznie zaniedbałem, ale
obiecuje poprawę) na SF, możesz sobie zerknąć co mam na myśli:

http://sourceforge.net/projects/microheap/

Inny język, inna bajka... Świecą mi się oczy jak widzę takie rzeczy,
choć C++ daleki jest w programowaniu generycznym od tego co można sobie
wymarzyć. W wolnej chwili nie omieszkam lepiej się przyjrzeć projektowi.

I dla odmiany (też jeśli chodzi o rozwiązania generyczne i też jeśli
chodzi o zarządców pamięci): mam ostatnio do czynienia z biblioteczką
lwIP (stos TCP/IP). Mam tu w szczególności na myśli pule pamięci z tego
projektu (pliki memp.c, memp_std.h).

Wygląda to mniej więcej tak:

const u16_t memp_sizes[MEMP_MAX] = {
#define LWIP_MEMPOOL(name,num,size,desc) LWIP_MEM_ALIGN_SIZE(size),
#include "lwip/memp_std.h"
};

i na końcu pliku memp_std.h odwołujemy makro LWIP_MEMPOOL.
Plik memp_std.h tworzy ciało listy inicjalizacyjnej tablicy memp_sizes.

następnie znowu:
static const u16_t memp_num[MEMP_MAX] = {
#define LWIP_MEMPOOL(name,num,size,desc) (num),
#include "lwip/memp_std.h"
};

itd...

W ten sposób dzięki podmienianiu definicji LWIP_MEMPOOL obskoczono
wytwarzania wszystkich struktur danych niezbędnych do pracy pól pamięci
Smile Grrrrrrrrrrrrrrr... No i teraz próbuj to człowieku debugować... Aż
się prosi o szablony i trejty (ale to nie C++).

Ale w boost też tą technikę (redefiniuj makro i włącz nagłówek) się
stosuje... Paskustwo!

Quote:
sygnalizować już na wczesnym etapie rozpoznania konfiguracji użytkownika
np. zgodność wersji modułu bibliotecznego i jej użytkownika, czy wiele
innych parametrów o globalnym charakterze.

W moim przypadku nie sposób w momencie inkludowania default wykryć czy
dopuszczalne jest mieć uart o 2 bitach stopu. Przy czym "nie sposób" w
sensie, że jakikolwiek sposób powoduje wyciek wiedzy o hardware do
miejsca o innym poziomie abstrakcji. Im niej zależności tym lepiej dla
projektu.

Oczywiście, że taki warunek jest związany ściśle z implementacją
hardware, więc warunek ten powinien być możliwie blisko tyłka drajwera
tego modułu.

pzdr
mk

Michoo
Guest

Mon May 07, 2012 12:21 am   



On 07.05.2012 01:25, mk wrote:

Quote:
Ale w boost też tą technikę (redefiniuj makro i włącz nagłówek) się
stosuje... Paskustwo!
Bo nie było kiedyś m.i. variadic templates.


M.i. dlatego zacząłem programowanie magisterki od kompilacji g++ 4.7 -
mam lamby, mam variadic, mam inicjalizację przez {}, mam enum class, mam
constexpr etc.

--
Pozdrawiam
Michoo

Paweł
Guest

Tue May 08, 2012 5:56 am   



RoMan Mandziejewicz wrote:

Quote:
Hello Paweł,

Monday, May 7, 2012, 9:42:46 PM, you wrote:

[...]

na zalaczonym przykladzie masz w bibliotece obslugujacej costam

Z jakiej choinki się urwałeś, że na grupie dyskusyjnej załączniki
wpychasz?

zalacznik tekstowy jest gorszy od wklejenia przykladu do tresci wiadomosci?
przeciez to nie megabajtowe pliki, zeby je slac na bin.*, a tak wszystko
widac od reki i mozna latwo sobie zapisac przyklad na dysku.

RoMan Mandziejewicz
Guest

Tue May 08, 2012 6:50 am   



Hello Paweł,

Tuesday, May 8, 2012, 7:56:24 AM, you wrote:

Quote:
na zalaczonym przykladzie masz w bibliotece obslugujacej costam
Z jakiej choinki się urwałeś, że na grupie dyskusyjnej załączniki
wpychasz?
zalacznik tekstowy jest gorszy od wklejenia przykladu do tresci wiadomosci?

Tak, bo go część serwerów wytnie. A inna część serwerów wytnie razem
z wiadomością.

[...]

--
Best regards,
RoMan
Nowa strona: http://www.elektronika.squadack.com (w budowie!)

janusz_kk1
Guest

Tue May 08, 2012 1:13 pm   



Dnia 08-05-2012 o 08:50:07 RoMan Mandziejewicz <roman@pik-net.pl.invalid>
napisał(a):

Quote:
Hello Paweł,

Tuesday, May 8, 2012, 7:56:24 AM, you wrote:

na zalaczonym przykladzie masz w bibliotece obslugujacej costam
Z jakiej choinki się urwałeś, że na grupie dyskusyjnej załączniki
wpychasz?
zalacznik tekstowy jest gorszy od wklejenia przykladu do tresci
wiadomosci?

Tak, bo go część serwerów wytnie. A inna część serwerów wytnie razem
z wiadomością.
Eee tam marudzisz, gazeta niczego nie wycieła i widać wszystkie załączniki,

a ważą raptem mniej niż kilo.


--
Pozdr
JanuszK

Artur M. Piwko
Guest

Wed May 09, 2012 7:07 am   



In the darkest hour on Tue, 08 May 2012 15:13:27 +0200,
janusz_kk1 <janusz_kk@o2.pl> screamed:
Quote:
na zalaczonym przykladzie masz w bibliotece obslugujacej costam
Z jakiej choinki się urwałeś, że na grupie dyskusyjnej załączniki
wpychasz?
zalacznik tekstowy jest gorszy od wklejenia przykladu do tresci
wiadomosci?

Tak, bo go część serwerów wytnie. A inna część serwerów wytnie razem
z wiadomością.
Eee tam marudzisz, gazeta niczego nie wycieła i widać wszystkie załączniki,
a ważą raptem mniej niż kilo.


Gazeta nie, ale inne tak. Przyjmij do wiadomości, że załączników się
nie wysyła.

--
[ Artur M. Piwko : Pipen : AMP29-RIPE : RLU:100918 : From == Trap! : SIG:227B ]
[ 09:06:45 user up 13163 days, 21:01, 1 user, load average: 0.97, 0.81, 0.15 ]

The world is coming to an end... SAVE YOUR BUFFERS!!

janusz_kk1
Guest

Wed May 09, 2012 8:03 am   



Dnia 09-05-2012 o 09:07:24 Artur M. Piwko <milusi.pysiaczek@buziaczek.pl>
napisał(a):

Quote:
In the darkest hour on Tue, 08 May 2012 15:13:27 +0200,
janusz_kk1 <janusz_kk@o2.pl> screamed:
na zalaczonym przykladzie masz w bibliotece obslugujacej costam
Z jakiej choinki się urwałeś, że na grupie dyskusyjnej załączniki
wpychasz?
zalacznik tekstowy jest gorszy od wklejenia przykladu do tresci
wiadomosci?

Tak, bo go część serwerów wytnie. A inna część serwerów wytnie razem
z wiadomością.
Eee tam marudzisz, gazeta niczego nie wycieła i widać wszystkie
załączniki,
a ważą raptem mniej niż kilo.


Gazeta nie, ale inne tak. Przyjmij do wiadomości, że załączników się
nie wysyła.
A to ja wysłałem?




--
Pozdr
JanuszK

Artur M. Piwko
Guest

Fri May 25, 2012 2:09 pm   



In the darkest hour on Wed, 09 May 2012 10:03:49 +0200,
janusz_kk1 <janusz_kk@o2.pl> screamed:
Quote:
Tak, bo go część serwerów wytnie. A inna część serwerów wytnie razem
z wiadomością.
Eee tam marudzisz, gazeta niczego nie wycieła i widać wszystkie
załączniki,
a ważą raptem mniej niż kilo.

Gazeta nie, ale inne tak. Przyjmij do wiadomości, że załączników się
nie wysyła.
A to ja wysłałem?


A gdzie ja pisałem, że tak?

--
[ Artur M. Piwko : Pipen : AMP29-RIPE : RLU:100918 : From == Trap! : SIG:234B ]
[ 16:09:01 user up 13179 days, 4:04, 1 user, load average: 0.50, 0.04, 0.87 ]

As far as we know, our computer has never had an undetected error.

Goto page Previous  1, 2, 3

elektroda NewsGroups Forum Index - Elektronika Polska - Inteligentne zarządzanie konfiguracją modułów w wielu projektach C i Assemblerze

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map