Page 6 of 8

Re: Не могу скомпилировать прошивку из исходников

Posted: 15 Apr 2014, 17:02
by кумыч
пытаюсь собрать трамблерную прошивку с управлением накопления. стянул архив "мастер". блок прошлогодний, с одним большим разъемом. тобиш - М32, правильно?

./configure.sh M32 GCC

получаю ошибку.

Code: Select all

avr-gcc -mmcu=atmega32 -DREALTIME_TABLES -DSECU3T -DTHERMISTOR_CS -DCOOLINGFAN_PWM -DDIAGNOSTICS -DHALL_OUTPUT -DFUEL_PUMP -DREV9_BOARD -DSM_CONTROL -DSTROBOSCOPE -DBL_BAUD_RATE=9600 -DSPEED_SENSOR -DINTK_HEATING -DBLUETOOTH_SUPP -DIMMOBILIZER -DLITTLE_ENDIAN_DATA_FORMAT -I. -Os -mcall-prologues  -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -ffreestanding -ffunction-sections -fno-inline-small-functions -Wl,--relax -Wall -Wstrict-prototypes -Wa,-adhlns=output/adc.o -std=gnu99 output/adc.o output/bootldr.o output/ce_errors.o output/ckps.o output/crc16.o output/eeprom.o output/fuelecon.o output/funconv.o output/idlecon.o output/ignlogic.o output/jumper.o output/knklogic.o output/knock.o output/measure.o output/params.o output/procuart.o output/secu3.o output/starter.o output/suspendop.o output/tables.o output/uart.o output/ventilator.o output/vstimer.o output/camsens.o output/fuelpump.o output/diagnost.o output/wdt.o output/ioconfig.o output/pwrrelay.o output/bc_input.o output/smcontrol.o output/choke.o output/hall.o output/bluetooth.o output/onewire.o output/immobiliz.o output/ckps2ch.o output/intkheat.o --output secu-3_app.elf -Wl,-Map=./output/secu-3_app.map,--cref -Wl,-section-start=.firmware_data=0x6EA2 -Wl,-section-start=.boot_loader=0x7C00 -lm
/usr/lib/gcc/avr/4.3.5/../../../avr/bin/ld: section .firmware_data loaded at [0000000000006ea2,0000000000007bff] overlaps section .text loaded at [0000000000000000,0000000000006f1f]
/usr/lib/gcc/avr/4.3.5/../../../avr/bin/ld: section .data loaded at [0000000000006f20,0000000000006f29] overlaps section .firmware_data loaded at [0000000000006ea2,0000000000007bff]
make: *** [secu-3_app.elf] Error 1
ak@debian:~/secu3/secu3_current/secu3app-master$ avr-gcc -v
Using built-in specs.
Target: avr
Configured with: ../src/configure -v --enable-languages=c,c++ --prefix=/usr/lib --infodir=/usr/share/info --mandir=/usr/share/man --bindir=/usr/bin --libexecdir=/usr/lib --libdir=/usr/lib --enable-shared --with-system-zlib --enable-long-long --enable-nls --without-included-gettext --disable-checking --disable-libssp --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=avr
Thread model: single
gcc version 4.3.5 (GCC) 

хотя Makefile появился..поменял опции компиляции, запустил make..ошибка

Code: Select all

avr-gcc -mmcu=atmega32 -DREALTIME_TABLES -DSECU3T -DTHERMISTOR_CS -DCOOLINGFAN_PWM -DDIAGNOSTICS -DHALL_OUTPUT -DHALL_SYNC -DDWELL_CONTROL -DREV9_BOARD -DSTROBOSCOPE -DBL_BAUD_RATE=9600 -DSPEED_SENSOR   -DLITTLE_ENDIAN_DATA_FORMAT -I. -Os -mcall-prologues  -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -ffreestanding -ffunction-sections -fno-inline-small-functions -Wl,--relax -Wall -Wstrict-prototypes -Wa,-adhlns=output/adc.o -std=gnu99 output/adc.o output/bootldr.o output/ce_errors.o output/ckps.o output/crc16.o output/eeprom.o output/fuelecon.o output/funconv.o output/idlecon.o output/ignlogic.o output/jumper.o output/knklogic.o output/knock.o output/measure.o output/params.o output/procuart.o output/secu3.o output/starter.o output/suspendop.o output/tables.o output/uart.o output/ventilator.o output/vstimer.o output/camsens.o output/fuelpump.o output/diagnost.o output/wdt.o output/ioconfig.o output/pwrrelay.o output/bc_input.o output/smcontrol.o output/choke.o output/hall.o output/bluetooth.o output/onewire.o output/immobiliz.o output/ckps2ch.o output/intkheat.o --output secu-3_app.elf -Wl,-Map=./output/secu-3_app.map,--cref -Wl,-section-start=.firmware_data=0x6EA2 -Wl,-section-start=.boot_loader=0x7C00 -lm
output/hall.o: In function `__vector_2':
hall.c:(.text.__vector_2+0x0): multiple definition of `__vector_2'
output/camsens.o:camsens.c:(.text.__vector_2+0x0): first defined here
/usr/lib/gcc/avr/4.3.5/../../../avr/bin/ld: Disabling relaxation: it will not work with multiple definitions
make: *** [secu-3_app.elf] Error 1
 

Re: Не могу скомпилировать прошивку из исходников

Posted: 15 Apr 2014, 21:52
by STC
В первом случае прошивка не влазит во FLASH
Во втором случае опции HALL_SYNC и SPEED_SENSOR несовместимы. Убери опцию SPEED_SENSOR.

Re: Не могу скомпилировать прошивку из исходников

Posted: 15 Apr 2014, 23:15
by кумыч
Спасибо! убрал датчик скорости, собралась прошивка, но при открытии менеджер ругается на несовместимость версий. менеджер тоже из ветки мастер, бинарный. собирать его пока нечем.

UPD. нашел собраный менеджер) http://secu-3.org/forum/viewtopic.php?f ... 0&start=20 все открылось как надо.

Re: Не могу скомпилировать прошивку из исходников

Posted: 16 Apr 2014, 05:26
by LVS
Прошивка для SECU-3Т или SECU-3 , поделись прошивкой. Хочу брату под холл поставить, 2 блока без дела лежат разбирать не хочется.

Re: Не могу скомпилировать прошивку из исходников

Posted: 17 Apr 2014, 17:16
by кумыч
могу собрать любую) себе под 3Т делал.

Re: Не могу скомпилировать прошивку из исходников

Posted: 08 May 2014, 14:00
by Romsb
Последнюю версии прошивки (firmware v4.3) IAR & GCC, тоже не компилируют, если убрать опцию "REALTIME_TABLES".

Компиляция проходит, только если закомментировать данный код в "uart.c":
//#ifdef REALTIME_TABLES
/**Appends sender's buffer by sequence of bytes from RAM buffer
* can be used for binary data */
static void build_rb(const uint8_t* ramBuffer, uint8_t size)
{
while(size--) build_i8h(*ramBuffer++);
}
//#endif
...
//#ifdef REALTIME_TABLES
/**Recepts sequence of bytes from receiver's buffer and places it into the RAM buffer
* can be used for binary data */
static void recept_rb(uint8_t* ramBuffer, uint8_t size)
{
#ifdef UART_BINARY
uint8_t rcvsize = uart.recv_size;
#else
uint8_t rcvsize = uart.recv_size >> 1; //two hex symbols per byte
#endif
if (size > rcvsize)
size = rcvsize;
while(size--) *ramBuffer++ = recept_i8h();
}
//#endif

Re: Не могу скомпилировать прошивку из исходников

Posted: 09 May 2014, 17:42
by STC
Спасибо за информацию, исправлено.

Re: Не могу скомпилировать прошивку из исходников

Posted: 21 Jun 2014, 20:41
by Elektron
Скачал из репозитория релиз от 14 мая. Пытаюсь со своими опциями собрать с помощью GCC - не собирает.
Вот что пишет:
2014-06-21_213208.jpg
Набор опций тот же самый, с которым собирал прошивки до выхода релиза, не менял ничего. Я правильно понимаю, что проблемы с размером файла? - для M32 не подходит.

Re: Не могу скомпилировать прошивку из исходников

Posted: 21 Jun 2014, 21:50
by STC
ДА, не влазит. Линковщик говорит что сегменты перекрываются. GCC не может сделать такой компактный код как иар. Попробуй последним, должно получиться.

Re: Не могу скомпилировать прошивку из исходников

Posted: 22 Jun 2014, 21:33
by Elektron
Ну, теперь объясняйте с IAR - как эту падлу победить?
Поставил IAR Embedded Workbench for AVR V6.10.2 Full.
Запускаю компиляцию, выдает вот такую хрень:
2014-06-22_222816.jpg
Стоит WinAVR2010, им раньше через GCC компилировал. Отдельно скачал и поставил GNU Make - может его еще настроить как-то надо?