|
|
  |
WinAVR-20100110, Пишем отзывы сюда |
|
|
|
Aug 9 2012, 07:53
|

Профессионал
    
Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634

|
Цитата(demiurg_spb @ Aug 9 2012, 09:10)  ... наличия гораздо более удобного механизма с ключевым словом __flash. Отлично! 1) указатель на данные во flash, расположенный во flash? 2) указатель на данные в RAM, расположенный во flash? 3) указатель на данные во flash, расположенный в RAM? Как выглядят описания? ps: что-то применение этого ключевого слова приводит к классическому ../tc1.c:294:16: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'const'
Сообщение отредактировал Genadi Zawidowski - Aug 9 2012, 07:57
|
|
|
|
|
Aug 9 2012, 08:28
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
думаю что где-то так Код #define flash const __flash или typedef const __flash flash;
1) flash void* flash 2) void* flash 3) flash void* http://gcc.gnu.org/onlinedocs/gcc/Named-Address-Spaces.html+ гляньте доку на IAR, как это не странно звучит, но там вы найдёте ответы на все ваши 3 вопроса. Цитата(Genadi Zawidowski @ Aug 9 2012, 11:53)  ps: что-то применение этого ключевого слова приводит к классическому ../tc1.c:294:16: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'const' CSTANDARD = -std=gnu99
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Aug 9 2012, 08:39
|

Профессионал
    
Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634

|
Цитата(demiurg_spb @ Aug 9 2012, 12:28)  CSTANDARD = -std=gnu99 Стоит (ключик в командной строке компилятора, если я правильно понял намёк). В какой версии avr gnu toolchain это (ключевое слово __flash) работает? Цитата найдёте ответы на все ваши 3 вопроса То что это по применению похоже на квалификаторы, я догадался. Я не пойму, куда это поставить, чтобы работало. У меня не получается.
Сообщение отредактировал Genadi Zawidowski - Aug 9 2012, 08:42
|
|
|
|
|
Aug 9 2012, 08:45
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(Genadi Zawidowski @ Aug 9 2012, 12:39)  Стоит (ключик в командной строке компилятора, если я правильно понял намёк). хорошо Цитата В какой версии avr gnu toolchain это (ключевое слово __flash) работает? начиная с 4.7.0, правда изначально его называли __pgm, поэтому для первых сборок 4.7.0 нужно ещё и это: #define __flash __pgm
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Aug 9 2012, 09:18
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(Genadi Zawidowski @ Aug 9 2012, 13:04)  И я тоже: Код avr-gcc -v
Using built-in specs. COLLECT_GCC=c:\gcc\avr-gcc\bin\avr-gcc.EXE COLLECT_LTO_WRAPPER=c:/gcc/avr-gcc/bin/../libexec/gcc/avr/4.7.1/lto-wrapper.exe Target: avr Configured with: ../../gcc.gnu.org/gcc-4_7-branch/configure --target=avr --prefix=/local/gnu/install/gcc-4.7-mingw32 --host=i386-mingw32 --build=i686-linux-gnu --enable-languages=c,c++ --disable-nls --disable-shared --with-dwarf2 : (reconfigured) ../../gcc.gnu.org/gcc-4_7-branch/configure --target=avr --prefix=/local/gnu/install/gcc-4.7-mingw32 --host=i386-mingw32 --build=i686-linux-gnu --enable-languages=c,c++ --disable-nls --disable-shared --with-dwarf2 Thread model: single gcc version 4.7.1 20120606 (prerelease) (GCC) HINT: в этой сборке avr-size не пропатченый поэтому возмите его из последнего WinAVR или из атмеловской сборки.
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Aug 10 2012, 07:24
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Я её тоже находил, но и также находил инфу что с ней что-то не так, возможно уже пофиксили. В ней binutils какой-то экспериментальный Код Binutils 2.22.52.20120702 (development snapshot) и вот с ним что-то не совсем чисто. Так что я бы её не советовал использовать в боевых условиях.
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Aug 10 2012, 07:40
|

Профессионал
    
Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634

|
Цитата(demiurg_spb @ Aug 10 2012, 11:24)  Я её тоже находил, но и также находил инфу что с ней что-то не так, возможно уже пофиксили. В ней binutils какой-то экспериментальный Код Binutils 2.22.52.20120702 (development snapshot) и вот с ним что-то не совсем чисто. Так что я бы её не советовал использовать в боевых условиях. Эта сборка чуть похуже с объёмом FLASH обходится (на 32 кило - 300 байт проигрыша). Она поновее (компилятор не пререлиз)... Интересно, что не так... Вот у halfdoom проект не собрался в режиме совместимости - у меня собирался нормально... Перевёл проект на использование __flash вместо pgm_read_xxx - в основном приводило к маленьким уменьшениям кода (на 4..10 байт на одну правку, если оптимизатор не мог использовать это. Если мог - до сотни байт). Иногда к увеличению на десяток байт. В основном уменьшает.
|
|
|
|
|
  |
7 чел. читают эту тему (гостей: 7, скрытых пользователей: 0)
Пользователей: 0
|
|
|