Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Переход с IAR на GCC
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
_Артём_
Чему соответствуют ключевые слова ( extended keywords) компилятора IAR в GCC.
Интересующие keywords: __monitor, __flash, _no_init, __root.

__flash можно заменить на __attribute__ ((section (".text"))). Или я не прав?

Еще вопрос: Где правильнее искать документацию на компилятор/линкер?
Есть ли документ(ы) наподобие EWAVR_CompilerReference.pdf?

Интересует AVR GCC и ARM GCC (Yagarto).

Спасибо.
zöner
первый/четвертый не знаю, второй,третий - атрибуты PROGMEM и noinit:
http://www.nongnu.org/avr-libc/user-manual/mem_sections.html

Цитата
__flash можно заменить на __attribute__ ((section (".text")))
верно, или PROGMEM (из pgmspace.h http://www.nongnu.org/avr-libc/user-manual/pgmspace.html )

еще полезный документик:
http://www.nongnu.org/avr-libc/user-manual/porting.html

документация - на официальном сайте GNU GCC, где же еще ?
http://gcc.gnu.org/onlinedocs/gcc/Variable...able-Attributes
http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html
_Артём_
Цитата(zöner @ Mar 13 2012, 22:34) *
первый/четвертый не знаю, второй,третий - атрибуты PROGMEM и noinit:
http://www.nongnu.org/avr-libc/user-manual/mem_sections.html

верно, или PROGMEM (из pgmspace.h http://www.nongnu.org/avr-libc/user-manual/pgmspace.html )

еще полезный документик:
http://www.nongnu.org/avr-libc/user-manual/porting.html

документация - на официальном сайте GNU GCC, где же еще ?
http://gcc.gnu.org/onlinedocs/gcc/Variable...able-Attributes
http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html


Спасибо за ссылки.
Цитата(zöner @ Mar 13 2012, 22:34) *
первый/четвертый не знаю, второй,третий - атрибуты PROGMEM и noinit:


PROGMEM - это только для АВР?
Можно конечно свой макрос определить, но хотелось бы чего-то единообразного, кроссплатформенного (типа __flash в IAR).

_Pasha
Цитата(_Артём_ @ Mar 14 2012, 03:10) *
PROGMEM - это только для АВР?
Можно конечно свой макрос определить, но


Код
#include <avr/pgmspace.h>
........................................
#define __flash PROGMEM

Но это не всё, доступ к объектам оттуда будет через pgm_read_***()
Такшта, от беспорядочного употребления флешованных констант придется избавляться.
Для ARMоводов всё проще - const и все дела.
_Артём_
Цитата(_Pasha @ Mar 14 2012, 04:29) *
Код
#include <avr/pgmspace.h>
........................................
#define __flash PROGMEM

Но это не всё, доступ к объектам оттуда будет через pgm_read_***()

Ну, не страшно.

Цитата(_Pasha @ Mar 14 2012, 04:29) *
от беспорядочного употребления флешованных констант придется избавляться.

Что ж тут беспорядочного: ОЗУ экономим.

Цитата(_Pasha @ Mar 14 2012, 04:29) *
Для ARMоводов всё проще - const и все дела.

И оно во флеш разместится?
_Pasha
Цитата(_Артём_ @ Mar 14 2012, 13:41) *
Что ж тут беспорядочного: ОЗУ экономим.
И оно во флеш разместится?

1. Я о том, что способ доступа через функцию очень влияет на всё, что касается выражений. Т.е. так просто "ездить" от компилера к компилеру становится проблемой.
2. Да.
Сергей Борщ
QUOTE (_Артём_ @ Mar 14 2012, 12:41) *
И оно во флеш разместится?
Оно разместится туда, куда будет указано в скрипте линкера. А поскольку адресное пространство одно и доступ к любому адресу однообразен (неважно, что по этому адресу находится - флеш, ОЗУ или периферия), то его можно безболезненно поместить во флеш, что и делается в большинстве готовых скриптов.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.