Problem jest następujący:
Tworzę kilka projektów, które zawierają (oprócz specyficznych funkcji) blok kilku funkcji identycznych dla każdego z projektów. W skład tego bloku wchodzą funkcje, obsługa przerwań, wektory przerwań i definicje rejestrów, pól w DSEG, EESEG itp. W przypadku konieczności wprowadzenia poprawek w funkcjach wspólnego bloku zmuszony jestem modyfikować każdy projekt ręcznie - co niesie za sobą stratę czasu i możliwość przedostania się nowych, niekoniecznie pożądanych funkcjonalności (tzw. błędów
)
Istnieje co prawda możliwość wrzucenia części wspólnej kodu do pliku ASM i zrobienia .include, jednak to wyjście jest kulawe, gdyż:
- w bloku funkcji muszę mieć zdefiniowane wektory przerwań używanych przez te funkcje. Uniemożliwia mi to definiowanie wektorów przerwań w głównym programie, gdyż wektory przerwań będą w pliku włączanym - którego nie chcę modyfikować dla każdego projektu inaczej.
- blok funkcji używa konkretnych nazw rejestrów, konkretnych komórek RAM, co powinno być zdefiniowane w oddzielnym pliku. Pojawia się problem, gdy w głównym programie chcę dodefiniować jakiś obszar.
- symulacja takiego kodu jest uciążliwa - AVR Studio nie przełącza widoku na okno w którym obecnie znajduje się wykonywany kod. Przez to, jak wywołuję funkcję, która jest w innym pliku muszę sam odnaleźć okno, w którym ona się znajduje - inaczej nie widać co się dzieje w procku.
Czy ktoś stanął przed takim problemem? Jest jakieś wyjście?
Na pierwszy rzut oka, fajne byłoby zbudować bibliotekę wkompilowywaną w cały projekt. Czy spotkał się ktoś z dodatkowymi narzędziami, współpracującymi z avrasm/avrasm2, które pozwalają na tworzenie bibliotek?
(Jakby ktoś pytał: nie, nie da się tego napisać w C)
Poprawiłem tytuł - regulamin p.11
[zumek]
Tworzę kilka projektów, które zawierają (oprócz specyficznych funkcji) blok kilku funkcji identycznych dla każdego z projektów. W skład tego bloku wchodzą funkcje, obsługa przerwań, wektory przerwań i definicje rejestrów, pól w DSEG, EESEG itp. W przypadku konieczności wprowadzenia poprawek w funkcjach wspólnego bloku zmuszony jestem modyfikować każdy projekt ręcznie - co niesie za sobą stratę czasu i możliwość przedostania się nowych, niekoniecznie pożądanych funkcjonalności (tzw. błędów
Istnieje co prawda możliwość wrzucenia części wspólnej kodu do pliku ASM i zrobienia .include, jednak to wyjście jest kulawe, gdyż:
- w bloku funkcji muszę mieć zdefiniowane wektory przerwań używanych przez te funkcje. Uniemożliwia mi to definiowanie wektorów przerwań w głównym programie, gdyż wektory przerwań będą w pliku włączanym - którego nie chcę modyfikować dla każdego projektu inaczej.
- blok funkcji używa konkretnych nazw rejestrów, konkretnych komórek RAM, co powinno być zdefiniowane w oddzielnym pliku. Pojawia się problem, gdy w głównym programie chcę dodefiniować jakiś obszar.
- symulacja takiego kodu jest uciążliwa - AVR Studio nie przełącza widoku na okno w którym obecnie znajduje się wykonywany kod. Przez to, jak wywołuję funkcję, która jest w innym pliku muszę sam odnaleźć okno, w którym ona się znajduje - inaczej nie widać co się dzieje w procku.
Czy ktoś stanął przed takim problemem? Jest jakieś wyjście?
Na pierwszy rzut oka, fajne byłoby zbudować bibliotekę wkompilowywaną w cały projekt. Czy spotkał się ktoś z dodatkowymi narzędziami, współpracującymi z avrasm/avrasm2, które pozwalają na tworzenie bibliotek?
(Jakby ktoś pytał: nie, nie da się tego napisać w C)
Poprawiłem tytuł - regulamin p.11
[zumek]
