American English British English Български Čeština Français Deutsch (Du) Magyar Italiano 日本語 Lietuvių Polski Српски Slovenčina Español (Tú) Türkçe Українська
Select language:

release_27082013 не собирается новым тулчайном от ATMEL

<<

_dx

User avatar

Posts: 120

Joined: 17 May 2013, 21:25

Location: Крым, Ялта


Has thanked: 0 time
Been thanked: 12 times

Post 17 Oct 2013, 01:17

release_27082013 не собирается новым тулчайном от ATMEL

В общем то имеем
Atmel Studio 6 (Version: 6.0.1996 - Service Pack 2)
OS Version: Microsoft Windows NT 6.1.7601 Service Pack 1

Installed Packages: AVRGCC - 3.4.1.95
AVR Toolchain 8 Bit
Version: 3.4.1.830 - GCC 4.6.2
Package GUID: a3796ad3-98fe-4e60-bd15-57100d343560
Company: Atmel

В PATH прописал путь к тулчайну
P:\_Projects\SECU-3\Firmware+Manager\secu-3_software_release_27082013\secu3app>where make
C:\Program Files (x86)\Atmel\Atmel Studio 6.0\extensions\Atmel\AVRGCC\3.4.1.95\AVRToolchain\bin\make.exe


Т.е. всё как-бы по уму, но
1. configure M32 GCC ругается на OBJDIR.
Прошелся по makefile, заменил / на \\
там ещё кажется виндовый mkdir не понимает ключ -p и создаётся папка -p рядом с output... но это мелочи
2. make успокоился, начинает ругаться компилятор
sources\ckps.c:207:1: error: unknown type name 'prog_uint32_t'

ладно, понятно, prog_uint32_t у нас уже DEPRECATED, поэтому добавляю в makefile
-D__PROG_TYPES_COMPAT__ который включает поддержку старых типов
вроде прокатило, но
sources\ckps.c:207:1: warning: 'prog_uint32_t' is deprecated: prog_uint32_t type is deprecated. [-Wdeprecated-declarations]
sources\ckps.c:207:15: error: variable 'frq_calc_dividend' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
make.EXE: *** [.\\output\ckps.o] Ошибка 1


Конеш дальше щас разберусь, const добавлю куда надо, но просто чтобы знали, что тут такие дела со сборкой новым тулчайном.

Или старенький WINAVR это не просто так и там дальше меня новые грабли будут ждать?
The truth is out there....
<<

_dx

User avatar

Posts: 120

Joined: 17 May 2013, 21:25

Location: Крым, Ялта


Has thanked: 0 time
Been thanked: 12 times

Post 17 Oct 2013, 02:29

Re: release_27082013 не собирается новым тулчайном от ATMEL

const добавил, всё хорошо, но дальше такие дела
sources\diagnost.c: In function 'diagnost_process':
sources\diagnost.c:305:23: error: 'PINC_Bit5' undeclared (first use in this function)
sources\diagnost.c:305:23: note: each undeclared identifier is reported only once for each function it appears in
make.EXE: *** [.\\output\diagnost.o] Ошибка 1


исправил
d->diag_inp.carb = PINC_Bit5; //in SECU-3 it is digital input

на
d->diag_inp.carb = PINC & (1 << PINC5); //in SECU-3 it is digital input

Возможно для универсальности нужно #ifdef сделать для определения компилятора....

А так то всё скомпилилось... посмотрим будет ли работать теперь )
The truth is out there....
<<

STC

User avatar

Posts: 6557

Joined: 30 Apr 2013, 23:41

Location: Ukraine

Your CAR: AZLK 2140

SECU version: DIY SECU-3


Has thanked: 804 times
Been thanked: 1321 times

Post 17 Oct 2013, 13:47

Re: release_27082013 не собирается новым тулчайном от ATMEL

Т.е. всё как-бы по уму, но
1. configure M32 GCC ругается на OBJDIR.
Прошелся по makefile, заменил / на \\
там ещё кажется виндовый mkdir не понимает ключ -p и создаётся папка -p рядом с output... но это мелочи


Так как Makefile написан для UNIX, то он пользуется командами UNIX. Для этого под Windows нужно поставить Cygwin или любой другой программный пакет, который так или иначе устанавливает консоль (Например WinAVR, MSYSGit и т.д.).

2. make успокоился, начинает ругаться компилятор

sources\ckps.c:207:1: error: unknown type name 'prog_uint32_t'


ладно, понятно, prog_uint32_t у нас уже DEPRECATED, поэтому добавляю в makefile
-D__PROG_TYPES_COMPAT__ который включает поддержку старых типов


Я использую GCC 4.3, 4.6 не пробовал, спасибо за информацию. Подумаю как лучше сделать.

исправил

d->diag_inp.carb = PINC_Bit5; //in SECU-3 it is digital input


на

d->diag_inp.carb = PINC & (1 << PINC5); //in SECU-3 it is digital input


Возможно для универсальности нужно #ifdef сделать для определения компилятора....


Было исправлено после релиза и войдет в следующий релиз. К версии компилятора GCC отношения не имеет.
Author of the SECU-3™ project http://SECU-3.org. An open source engine control unit / Ignition control system, (C) 2007.
Клуб проекта в Facebook https://www.facebook.com/groups/secu3club
Клуб проекта ВКонтакте https://vk.com/secu3club (вступаем!)
<<

_dx

User avatar

Posts: 120

Joined: 17 May 2013, 21:25

Location: Крым, Ялта


Has thanked: 0 time
Been thanked: 12 times

Post 17 Oct 2013, 16:38

Re: release_27082013 не собирается новым тулчайном от ATMEL

Ну ОК. Всегда буду рад помочь отзывами или делом.

Было исправлено после релиза и войдет в следующий релиз. К версии компилятора GCC отношения не имеет.
ну да, я имел ввиду не версию а сам компилятор IAR/GCC. Но раз пофиксено уже - то вопросов нет.
The truth is out there....
<<

STC

User avatar

Posts: 6557

Joined: 30 Apr 2013, 23:41

Location: Ukraine

Your CAR: AZLK 2140

SECU version: DIY SECU-3


Has thanked: 804 times
Been thanked: 1321 times

Post 07 Nov 2013, 17:41

Re: release_27082013 не собирается новым тулчайном от ATMEL

Исправил ошибки связанные с prog_uint32_t. Теперь последний toolchain от Atmel и последние версии GCC компилируют без ошибок.
Осталось разобраться с Makefile, а точнее c /\\. Для Windows родной формат \, а для unix /. Но у меня вроде раньше один и тот же Makefile работал и под windows и под Linux, надо разобраться с этим.
Author of the SECU-3™ project http://SECU-3.org. An open source engine control unit / Ignition control system, (C) 2007.
Клуб проекта в Facebook https://www.facebook.com/groups/secu3club
Клуб проекта ВКонтакте https://vk.com/secu3club (вступаем!)

Return to Прошивки

Who is online

Users browsing this forum: No registered users and 2 guests

Powered by phpBB® Forum Software © phpBB Group.