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

 
 
5 страниц V  « < 2 3 4 5 >  
Reply to this topicStart new topic
> MSP-GCC 4. Кто-нибудь пробовал?, Случайно наткнулся:)
MrYuran
сообщение Jun 17 2010, 08:45
Сообщение #46


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Вот кстати интересно:
Кто структуры пакует - компилятор или линкер?
В смысле - кто виноват?
И что делать?

Так и придётся, видимо, как встарь - макросы, битовые масочки... Тупо, зато работает


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Jun 17 2010, 09:25
Сообщение #47


неотягощённый злом
******

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



Про упаковку всех структур:
Код
CFLAGS += -fpack-struct

Про перетасовку, возможно, что-то из этого (некогда сейчас вникать):
Код
CFLAGS += -fno-reorder-blocks
CFLAGS += -fno-reorder-blocks-and-partition
CFLAGS += -fno-reorder-functions
CFLAGS += -fno-toplevel-reorder

Цитата(MrYuran @ Jun 17 2010, 12:45) *
Вот кстати интересно:
Кто структуры пакует - компилятор или линкер?
Думается, что компилятор.
Линкер лишь связывает.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jun 17 2010, 09:31
Сообщение #48


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(demiurg_spb @ Jun 17 2010, 13:25) *
CFLAGS += -fpack-struct
CFLAGS += -fno-reorder-blocks
CFLAGS += -fno-reorder-blocks-and-partition

Ура, заработало!
Вотжеж, засады поджидают на каждом шагу на пути к культуре...
А я уж было на плюсы намылился, чтобы, как АНТОХА, писать WatchDog->Clear(); biggrin.gif
Код
    Myport4.in.pin4 = 1;
    5178:    f2 d0 10 00     bis.b    #16,    &0x001c;#0x0010
    517c:    1c 00
D:\ex_work\work\Программы\1003D_430_01_00\NEW_DOSER/main/../platform/watchdog_lo_level.h:31
    Myport4.out.pin4 = 1;
    517e:    f2 d0 10 00     bis.b    #16,    &0x001d;#0x0010
    5182:    1d 00
D:\ex_work\work\Программы\1003D_430_01_00\NEW_DOSER/main/../platform/watchdog_lo_level.h:32
    Myport4.dir.pin4 = 1;
    5184:    f2 d0 10 00     bis.b    #16,    &0x001e;#0x0010
    5188:    1e 00
D:\ex_work\work\Программы\1003D_430_01_00\NEW_DOSER/main/../platform/watchdog_lo_level.h:33
    Myport4.sel.pin4 = 1;
    518a:    f2 d0 10 00     bis.b    #16,    &0x001f;#0x0010
    518e:    1f 00


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jun 17 2010, 12:34
Сообщение #49


Гуру
******

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



Цитата(MrYuran @ Jun 17 2010, 12:31) *
Ура, заработало!
При этом все структуры стали упакованными. С вытекающими тормозами там, где не нужно. Давным-давно была бага с невыровненным доступом, я ее исправлял. В mspgcc3. Не было никаких проблем с доступом к портам. Скорее собака зарыта в описании структур. Как объявлен ioregister_t? Судя по пословному доступу в первом примере - он объявлен как двухбайтовый. И, соответственно, выровнен. С упаковкой при помощи __attribute__((packed)) тоже никаких проблем. У меня сейчас mspgcc не стоит, но если есть желание разобраться - могу поставить.


--------------------
На любой вопрос даю любой ответ
"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
MrYuran
сообщение Jun 17 2010, 15:49
Сообщение #50


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Сергей Борщ @ Jun 17 2010, 16:34) *
С упаковкой при помощи __attribute__((packed)) тоже никаких проблем.

Вот и у меня не было, как говорится, пришла беда, откуда не ждали.
Причём пробовал и старую версию (в мэйкфайле меняю MSPGCC_ROOT c С:\mspgcc4 на C:\mspgcc) - то же самое.
Причём раньше-то точно работало. В нескольких проектах.
После этого, правда, пару раз систему переставляли, может чего упустили...
А сегодня, в разгар разборок, вообще винчестер сдох. Не выдержал...

Видимо, таки придётся учиться собирать из исходников.
на bzr, я так понял, готовых сборок не выкладывают


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jul 6 2010, 06:41
Сообщение #51


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Перекомпилил старый ИАРовский прожект, который раньше был меньше 20к.
Результат - больше 30...
cranky.gif
манипуляции с ключами пока особого эффекта не дают (наверно, не знаю нужную комбинацию)
В конце концов, полфлэша свободно, так что пока не жмёт.
А вот если бы пришлось утаптывать в Fx47, то критично..


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Apr 5 2012, 06:16
Сообщение #52


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



В последнее время проект реанимирован, произошло (насколько я понял) слияние старой ветки GCC 3 с новаторской 4-й, обновили страничку на sf.net, прибрались порядочно.
К сожалению, выкинули python-овские тулзы, и даже файл ihex2txt.exe, преобразующий ihex понятно во что.
io.h теперь deprecated, равно как signal.h
Цитата
c:\mspgcc_new\bin\..\lib\gcc\msp430\4.5.3\..\..\..\..\msp430\include\signal.h|43|warning: #warning msp430-libc <signal.h> deprecated, using <legacymsp430.h>|
c:\mspgcc_new\bin\..\lib\gcc\msp430\4.5.3\..\..\..\..\msp430\include\io.h|1|warning: #warning <io.h> is deprecated, please include <msp430.h>|


Автоматом редирект на новые с предупреждением.
Прогнал старый проект, выловил кучу фатальных ошибок, которые раньше пролетали даже без предупреждений.
Результат:
Код
text       data        bss        dec        hex    filename
  27832         24       1040      28896       70e0    xxx.elf
msp430-gcc (GCC) 4.5.3


Было:
Код
text       data        bss        dec        hex    filename
  29076         40       1016      30132       75b4    xxx.elf
msp430-gcc (GCC) 3.2.3

Оптимизация -Os

Минус кило двести даже при прочих равных. А ведь можно и потоньше настроить.

В целом очень рад, что проект получил новое развитие. Хотя в перспективе можем от msp430 отказаться в пользу новых Cortex M0/M3


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Apr 5 2012, 07:40
Сообщение #53


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Попробовал дополнительные ключики
Цитата
CFLAGS += -combine
CFLAGS += -fwhole-program


:

Код
text       data        bss        dec        hex    filename
  26870         24       1031      27925       6d15    xxx.elf


Ещё минус кило.
Итого, минус 2200 с 29000.
-7,59%

А ведь один проект недавно совсем чуть-чуть в 60к не влез, пришлось ИАР эксплуатировать, в порядке исключения.
А теперь бы не пришлось.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Apr 5 2012, 07:59
Сообщение #54


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Это про какой mspgcc? Про просто mspgcc или про mspgcc4? Второй вроде уже не суппортед давно.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Apr 5 2012, 08:21
Сообщение #55


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(AHTOXA @ Apr 5 2012, 11:59) *
Это про какой mspgcc? Про просто mspgcc или про mspgcc4?

Это про просто mspgcc, который теперь 4.5.3 и к тому же
mspgcc 2012-03-31
Напомню, крайний официальный релиз 3-го на sf.net был где-то в районе 301208

Цитата
Uniarch continued the work of mspgcc4, returning those contributions to the mspgcc project and generalizing the infrastructure to support all 300+ variants of the MSP430 microcontroller. The name "uniarch" is no longer used: the project is again simply "mspgcc".


PS:
а я путем коммента
#CFLAGS += -fno-reorder-blocks
#CFLAGS += -fno-reorder-blocks-and-partition
ещё 128 байт отжал sm.gif
Итого, -8% ровно.

Я бы на месте TI премию выписал всем новым (и старым) энтузиастам, или хотя бы радиочасики подарил, на память sm.gif


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Apr 5 2012, 08:32
Сообщение #56


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



А, ну с этим мы уже немножко познакомились sm.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Apr 5 2012, 08:36
Сообщение #57


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(AHTOXA @ Apr 5 2012, 12:32) *
А, ну с этим мы уже немножко познакомились sm.gif

Там что-то все про баги, а я вот старый проект просто тупо собрал, и все работает как надо.
Более того, исчез один мелкий, но необъяснимый глюк. Просто сам по себе.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Apr 5 2012, 10:54
Сообщение #58


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Попробовали крайнюю версию 4.6.2 - опять -combine отломали...
maniac.gif


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Apr 5 2012, 13:02
Сообщение #59


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(MrYuran @ Apr 5 2012, 14:36) *
Там что-то все про баги, а я вот старый проект просто тупо собрал, и все работает как надо.

Глюки там были при -ffunction-sections -fdata-sections + -gc-sections. Остальное нормуль вроде. Но я пока на старой версии, не хочу экспериментировать.
Цитата
Попробовали крайнюю версию 4.6.2 - опять -combine отломали...
Да это ещё нигде толком не работает, имхо. По крайней мере, закладываться на работоспособность этой фичи я бы не стал ещё год как минимум.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Apr 6 2012, 09:44
Сообщение #60


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(AHTOXA @ Apr 5 2012, 17:02) *
Глюки там были при -ffunction-sections -fdata-sections + -gc-sections. Остальное нормуль вроде. Но я пока на старой версии, не хочу экспериментировать.
Да это ещё нигде толком не работает, имхо. По крайней мере, закладываться на работоспособность этой фичи я бы не стал ещё год как минимум.

Глюков с секциями не обнаружено.
Комбайновая фича конечно необязательная, но иногда очень полезная, когда упихиваешь в прошивку последнюю сотню-другую байт.
И тут вдруг пару кБ нахаляву...


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post

5 страниц V  « < 2 3 4 5 >
Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


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


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