Перейти к содержанию
    

Вопросы по Eclipse, CDT, Zylin embedded CDT

У меня. А что?

Значит есть полное основание переставить операционку и поставить с нуля.

Кстати, стоит на Windows?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Значит есть полное основание переставить операционку и поставить с нуля.

Кстати, стоит на Windows?

Yagarto не может стоять не на Windows. У меня WinXP(SP2 и SP3).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос по компилятору.

Проект собирается нормально когда флаг -О 1 2 или 3. Когда ставлю 0 то выползают ошибки.

Например функция:

extern inline unsigned int min(unsigned int dValue1, unsigned int dValue2)
{
   if (dValue1 < dValue2) {

       return dValue1;
   }
   else {

       return dValue2;
   }
}

 

Она находится в файле common.h

Вызывая эту функцию из других файлов получаю ошибку undefined reference to `min'

Если убрать extern inline то выдает ошибку multiple definition хотя это не так.

 

Хелп.

Изменено пользователем MegaFPGA

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С этой ошибкой разобрался. Просто скопировал перед каждым вызовом тело функции.

Осталось последняя ошибка.

Строка:unsigned int baud_value = ((main_clock*10)/(baud_rate * 16));

 

undefined reference to `__aeabi_uidiv' lib_AT91SAM7S256.h

Вот тут совсем не понятно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Она находится в файле common.h

Вызывая эту функцию из других файлов получаю ошибку undefined reference to `min'

При -O0 встраивание отключено.

Если убрать extern inline то выдает ошибку multiple definition хотя это не так.
Это действительно так. Убрав inline (extern тут совершенно лишний, скорее нужен static) вы сделали функцию глобальной, а поскольку она находится в заголовочном файле - вы получили по копии функции в каждом файле, о чем и сообщил компилятор. Зачем -O0?

undefined reference to `__aeabi_uidiv' lib_AT91SAM7S256.h
Поскольку вы отключили оптимизацию, компилятор должен выполнить все действия на этапе выполнения, т.е. и умножение и деление. А функции деления в библиотеке почему-то нет. Почему нет - это уже вопрос к авторам сборки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Народ, подскажите, это только у меня или закономерность: JLinkGDBServer.exe иногда вышибает во время отладки... В остальном не жалуюсь :)

Использую Galileo, Keil, J-Link, отлаживаю axf при -O0.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Народ, подскажите, это только у меня или закономерность: JLinkGDBServer.exe иногда вышибает во время отладки... В остальном не жалуюсь :)

Использую Galileo, Keil, J-Link, отлаживаю axf при -O0.

 

В логе: Failed to measure CPU clock frequency: second loop count is less than first one!

При этом замечено, что вышибает, когда несколько "неудачных:)" бреакпоинтов стоит. Если их убираешь, проходит "на ура"....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть вопрос при переходе на Гелиос:

 

Есть два еклипса (гелиос и галилео).

 

Воркспейс для гелиоса взял пустой, настроил так же, как и галилео, добавил проект. В Галилео отладка через open-ocd/mt-link идет "на ура", а в Гелиосе идет запуск, можно нажать паузу - камушек остановится, НО в окне кода такая строка: No source available for ""

 

 

 

Повторюсь: при тех же настройках в Галилео все отлично работает, более того, это проявляется на двух разных машинах.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Использую связку FT2232_JTAG + OpenOCD + Eclipse для отладки тестового проекта под STM32F103RBT6.

 

JTAG c OpenOCD соединяется, при запуске отладки в лог выводиться сообщение

Open On-Chip Debugger 0.3.0-in-development (2009-09-05-16:24) Release

$URL: http://svn.berlios.de/svnroot/repos/openoc...k/src/openocd.c $

For bug reports, read http://svn.berlios.de/svnroot/repos/openocd/trunk/BUGS

1000 kHz

jtag_nsrst_delay: 100

jtag_ntrst_delay: 100

Warn : use 'stm32.cpu' as target identifier, not '0'

Info : device: 4 "2232C"

Info : deviceID: 67330064

Info : SerialNumber: FT29304050A

Info : Description: USB <-> Serial Cable A

Info : clock speed 1000 kHz

Info : JTAG tap: stm32.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)

Info : JTAG tap: stm32.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)

Info : accepting 'gdb' connection from 0

Warn : target was in unknown state when halt was requested

Warn : acknowledgment received, but no packet pending

Info : device id = 0x20036410

Info : flash size = 128kbytes

Info : device id = 0x20036410

Info : flash size = 128kbytes

flash 'stm32x' found at 0x08000000

stm32x mass erase complete

Error: No flash at address 0x00000000

 

wrote 0 byte from file main.bin in 0.062500s (0.000000 kb/s)

Info : JTAG tap: stm32.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)

Info : JTAG tap: stm32.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)

target state: halted

target halted due to debug-request, current mode: Thread

xPSR: 0x01000000 pc: 0xfffffffe msp: 0xfffffffc

requesting target halt and executing a soft reset

target state: halted

target halted due to debug-request, current mode: Thread

xPSR: 0x01000000 pc: 0xfffffffe msp: 0xfffffffc

Warn : negative acknowledgment, but no packet pending

 

Похоже, что не хочет прошивать flash , так как не находит ее по заданному адресу.

Аналогичный лог выводит и при отладке проекта для stm_p103 от Olimex.

В чем может быть причина такого поведения?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть вопрос при переходе на Гелиос:

 

Есть два еклипса (гелиос и галилео).

 

Воркспейс для гелиоса взял пустой, настроил так же, как и галилео, добавил проект. В Галилео отладка через open-ocd/mt-link идет "на ура", а в Гелиосе идет запуск, можно нажать паузу - камушек остановится, НО в окне кода такая строка: No source available for ""

 

Вобщем, решилось достаточно просто: пришлось заново создать проект в гелиосе.

 

 

Так что при переходе недостаточно взять чистый воркспейс, вместо импорта старых проектов нужно новые создавать.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пытаюсь запустить отладку в Eclipse - пока безуспешно.

Использую JTAG - адаптер на ft2232C, микроконтроллер STM32F103RBT6( 128кб флеш 20кб ОЗУ ) ,

 

openocd запускаю с конфигурационными файлами -f interface/ftdi_jtag.cfg -f target/stm32.cfg

 

stm32.cfg cтандартный из директории openocd

 

содержимое ftdi_jtag.cfg:

 

interface ft2232

ft2232_device_desc "USB <-> Serial Cable A"

ft2232_layout usbjtag

ft2232_vid_pid 0x0403 0x6010

 

скрипт компоновщика для загрузки в SRAM :

 

MEMORY

{

rom (rx) : ORIGIN = 0x00000000, LENGTH = 128K

ram (rwx) : ORIGIN = 0x20000000, LENGTH = 20K

}

SECTIONS

{

. = 0x00000000; /* From 0x00000000 */

.text : {

*(vectors) /* Vector table */

*(.text) /* Program code */

*(.rodata) /* Read only data */

}>ram

. = 0x20000000; /* From 0x20000000 */

 

.data : {

*(.data) /* Data memory */

}>ram

.bss : {

*(.bss) /* Zero-filled run time allocate data memory */

}>ram

}

 

команды отладчика:

 

target remote localhost:3333

monitor halt

monitor load_image out/arm_project.elf

monitor verify_image out/arm_project.elf

thbreak main

continue

 

в консоль выводит:

 

target remote localhost:3333

0x00000000 in ?? ()

monitor halt

monitor load_image out/arm_project.elf

264 bytes written at address 0x20000000

downloaded 264 bytes in 0.343750s (0.750 kb/s)

monitor verify_image out/arm_project.elf

checksum mismatch - attempting binary compare

Verify operation failed address 0x20000000. Was 0x02 instead of 0x00

 

Command handler execution failed

in procedure 'verify_image' called at file "command.c", line 650

called at file "command.c", line 361

thbreak main

Hardware assisted breakpoint 1 at 0x20000084

continue

stm32.cpu -- clearing lockup after double fault

 

Program received signal SIGINT, Interrupt.

0x20000004 in VectorArray ()

 

Судя по логу верификация дает несовпадение записанного и считанного образа.

Надпись "stm32.cpu -- clearing lockup after double fault" вызывает недоумение, к чему это?

 

Для загрузки в флеш использовал :

 

target remote localhost:3333

monitor halt

monitor flash probe 0

monitor stm32x mass_erase 0

monitor flash write_bank 0 out/arm_project.elf 0x08000000

monitor reset halt

monitor soft_reset_halt

thbreak main

continue

 

и подправил соответственно в скрипте компоновщика для секции кода "> rom" , для data и bss "> ram AT>rom"

 

Лог следующий :

 

target remote localhost:3333

0x00000000 in VectorArray ()

monitor halt

monitor flash probe 0

device id = 0x20036410

flash size = 128kbytes

flash 'stm32x' found at 0x08000000

monitor stm32x mass_erase 0

stm32x mass erase complete

monitor flash write_bank 0 out/arm_project.elf 0x08000000

not enough working area available(requested 16384, free 16336)

stm32.cpu -- clearing lockup after double fault

error executing stm32x flash write algorithm

flash writing failed with error code: 0xfffffc7a

error writing to flash at address 0x08000000 at offset 0x08000000 (-902)

Command handler execution failed

in procedure 'flash' called at file "command.c", line 650

called at file "command.c", line 361

monitor reset halt

JTAG tap: stm32.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)

JTAG tap: stm32.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)

target state: halted

target halted due to debug-request, current mode: Handler HardFault

xPSR: 0x00000003 pc: 0x20000004 msp: 0x20004fe0

monitor soft_reset_halt

requesting target halt and executing a soft reset

target state: halted

target halted due to debug-request, current mode: Thread

xPSR: 0x01000000 pc: 0x20000108 msp: 0x20005000

thbreak main

Hardware assisted breakpoint 1 at 0xc0

continue

stm32.cpu -- clearing lockup after double fault

 

Program received signal SIGINT, Interrupt.

0x20000004 in ?? ()

 

Подскажите в каком направлении копать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще-то этот вопрос к Эклипсе практически никак не относится.

Вот мой рабочий скрипт (отладка из flash):

target remote localhost:3333
load
monitor soft_reset_halt
set mem inaccessible-by-default off
compare-sections
tbreak main
continue

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще-то этот вопрос к Эклипсе практически никак не относится.

Вот мой рабочий скрипт (отладка из flash):

target remote localhost:3333
load
monitor soft_reset_halt
set mem inaccessible-by-default off
compare-sections
tbreak main
continue

 

Вопрос не по оболочке Eclipse, но зато в Eclipse все эти инструменты вместе используются.

 

 

За скрипт спасибо .

 

 

Ошибки выводит те же.

 

Похоже, что проблемы с железкой, на кварце 8МГц высокий уровень, проскакивают короткие нулевые импульсы частотой 1 - 2 Гц, устройство собрано на макетной плате, разобраться будет непросто.

 

В документации на STM32 пишут , что у этих кристаллов есть внутренний RC-генератор, можно ли выбросить кварц 8МГц?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В документации на STM32 пишут , что у этих кристаллов есть внутренний RC-генератор, можно ли выбросить кварц 8МГц?

Можно, JTAG замечательно цепляется и без кварца.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...