Jak przenieść projekt ze środowiska IAR Embedded Workbench do Atollic TrueSTUDIO – poradnik migracyjny
Tab. 4. Funkcje oparte na pamięci RAM
| IAR | GCC | |
| Słowo kluczowe: | __ramfunc | __attribute__((section(“NAME”))) |
| Pragma: | ||
| Składnia: |
__ramfunc void foo (void) {…} |
void foo (void)__attribute__ ((section („RAMFNS”))) {…} |
| Komentarz: | GCC nie obsługuje bezpośrednio opcji kopiowania funkcji z pamięci ROM do RAM przy starcie programu. Uzyskanie identycznego efektu jest jednak możliwe przy pomocy mechanizmu inicjalizacji danych, poprzez utworzenie sekcji zawierającej funkcje do skopiowania (np. „RAMFNS”) i modyfikację kodu rozruchowego oraz skryptu linkera. | |
Tab 5. Przerwania i wyjątki
| IAR | GCC | |
| Słowo kluczowe: |
__swi __fiq __irq |
__attribute__((interrupt(“SWI”))) __attribute__((interrupt(“FIQ”))) __attribute__((interrupt(“IRQ”))) |
| Pragma: | swi_number=NN | |
| Składnia: |
__irq void foo (void) {…} |
void foo (void)__attribute__ ((interrupt(„IRQ”))) {…} |
| Komentarz: | Aby zdefiniować liczbę użytych przerwań programowych (SWI), oprócz słowa kluczowego __swi konieczne jest w środowisku IAR zastosowanie dyrektywy #pragma swi_number=N. | |
Tab. 6. Zagnieżdżone przerwania
| IAR | GCC | |
| Słowo kluczowe: | __nested | __attribute__((nesting)) |
| Pragma: | ||
| Składnia: |
__nested __irq void foo (void) {…} |
void foo (void)__attribute__ ((nesting)) {…} |
| Komentarz: | Atrybut ten (w połączeniu z: interrupt_handler, exception_handler lub nmi_handler) pozwala na używanie w GCC zagnieżdżonych przerwań i wyjątków. | |
Tab. 7. Funkcję niezwracające wartości
| IAR | GCC | |
| Słowo kluczowe: | __noreturn | __attribute__((noreturn)) |
| Pragma: | ||
| Składnia: |
__noreturn void foo (void) {…} |
void foo (void)__attribute__ ((noreturn)) {…} |
| Komentarz: | Funkcja z takim atrybutem jest oznaczona jako niezwracająca. | |
Tab. 8. Funkcje specyficzne dla architektury ARM
| IAR | GCC | |
| Słowo kluczowe: |
__arm __thumb __interwork |
__attribute__((short_call)) __attribute__((long_call)) |
| Pragma: | long_calls | |
| Składnia: |
__arm void foo (void) {…} |
|
| Komentarz: | Wszystkie wymienione opcje można włączyć na poziomie modułu przy pomocy linii poleceń. W GCC nie ma na obecną chwilę możliwości kontroli każdej z tych funkcji z osobna. Aby odwoływać się do funkcji thumb z kodu zlokalizowanego daleko w mapie adresów można jednak używać atrybutów long_call i short_call. | |
Tab. 9. Słabe funkcje/dane
| IAR | GCC | |
| Słowo kluczowe: | __weak | __attribute__((weak)) |
| Pragma: | weak | Weak |
| Składnia: |
__weak int i; __weak void foo (void) {…} |
int i __attribute__((weak)); void foo (void) __attribute__((weak)) {…} |
| Komentarz: | Funkcję lub zmienną definiuje się jako słabą, aby można ją było nadpisać jakąkolwiek „silną” (nie-słabą) funkcją o tej samej nazwie. Jeśli taka „silna” funkcja nie jest zdefiniowana, przy konsolidacji zostanie włączona do postaci binarnej funkcja słaba. | |
Tab. 10. Funkcje typu root i nieużywane dane
| IAR | GCC | |
| Słowo kluczowe: | __root | __attribute__((used)) |
| Pragma: | required | |
| Składnia: |
#pragma required=i int i; __root void foo (void) {…} |
int i __attribute__((used)); void foo (void) __attribute__((used)) {…} |
| Komentarz: | IAR EmbeddedWorkbench jest wyposażone w dwa niezależne mechanizmy służące do wymuszania na kompilatorze, żeby nie usuwał nieużywanego kodu i danych w czasie konsolidacji. GCC wykorzystuje do tego celu jeden atrybut. | |

Od wzmacniacza nieodwracającego do integratora i wzmacniacza ładunkowego, czyli historia z zaskakującą pointą jak w dobrym kryminale
Green czy smart? Jak decyzje ESG zaczynają optymalizować procesy produkcyjne
Firma Semicon ma w ofercie narzędzia do obróbki przewodów 

![https://www.youtube.com/watch?v=BgxJVTwYJ-s Zapraszamy do obejrzenia filmu i wysłuchania krótkich wypowiedzi prelegentów Hardware Forum 2026 i organizatorów majowej konferencji dla inżynierów z branży elektronicznej: Konrad Bruliński z Lemontech, prof. Krzysztof Kulpa z Politechniki Warszawskiej, Zbigniew Huber z FLC, Ewa Załupska z firmy KROK, Jerzy Kozieł z MPTECH, Grzegorz Potyralski z VIGO Photonics, dr Krzysztof Czuba z Politechniki Warszawskiej, Anna Beata Kalisz Hedegaard z Quantum Security Defence, Adrian Cichosz z Elhurt Dystrybucja Anna Kamińska z Creotech Quantum, oraz Łukasz Jaeszke i Adam Jaeszke z TEK.day [materiał redakcyjny]](https://mikrokontroler.pl/wp-content/uploads/2026/05/tytulowe-film-1.png)



