реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Переход с IAR на GCC
_Артём_
сообщение Mar 13 2012, 19:14
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Чему соответствуют ключевые слова ( extended keywords) компилятора IAR в GCC.
Интересующие keywords: __monitor, __flash, _no_init, __root.

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

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

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

Спасибо.
Go to the top of the page
 
+Quote Post
zöner
сообщение Mar 13 2012, 20:34
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 195
Регистрация: 16-02-12
Пользователь №: 70 299



первый/четвертый не знаю, второй,третий - атрибуты 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, 20:41
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Mar 13 2012, 23:10
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(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).

Go to the top of the page
 
+Quote Post
_Pasha
сообщение Mar 14 2012, 02:29
Сообщение #4


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



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


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

Но это не всё, доступ к объектам оттуда будет через pgm_read_***()
Такшта, от беспорядочного употребления флешованных констант придется избавляться.
Для ARMоводов всё проще - const и все дела.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Mar 14 2012, 10:41
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(_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 и все дела.

И оно во флеш разместится?
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Mar 14 2012, 11:08
Сообщение #6


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



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

1. Я о том, что способ доступа через функцию очень влияет на всё, что касается выражений. Т.е. так просто "ездить" от компилера к компилеру становится проблемой.
2. Да.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 14 2012, 11:41
Сообщение #7


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (_Артём_ @ Mar 14 2012, 12:41) *
И оно во флеш разместится?
Оно разместится туда, куда будет указано в скрипте линкера. А поскольку адресное пространство одно и доступ к любому адресу однообразен (неважно, что по этому адресу находится - флеш, ОЗУ или периферия), то его можно безболезненно поместить во флеш, что и делается в большинстве готовых скриптов.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th July 2025 - 01:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01399 секунд с 7
ELECTRONIX ©2004-2016