Jump to content

    

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

Импортировал некоторые лишние файлы в проект.

А как можно убрать файл из Project Explorerа, так чтобы он не удалялся с винта физически?

Выделяете этот файл в Project Explorer и нажимаете delete. Никуда он с винта не денется. Всегда так делаю.

Share this post


Link to post
Share on other sites
Выделяете этот файл в Project Explorer и нажимаете delete. Никуда он с винта не денется. Всегда так делаю.

У меня он спросил "Are you sure you want to delete 'file' from filesystem?" И когда я ответил yes - действительно потер файл. По-моему, ваш способ работает только для руками созданных ссылок на файлы...

Share this post


Link to post
Share on other sites
Выделяете этот файл в Project Explorer и нажимаете delete. Никуда он с винта не денется. Всегда так делаю.

post-33646-1210137258_thumb.jpg

Нажимаешь ес - честно удаляет из файловой системы и проекта.

но - оставляет и там, и там

Share this post


Link to post
Share on other sites
У меня он спросил "Are you sure you want to delete 'file' from filesystem?" И когда я ответил yes - действительно потер файл. По-моему, ваш способ работает только для руками созданных ссылок на файлы...

Файлы в проект я добавляю через Import -> File System всю папку скопом с подпапками, потом удаляю ненужное, но на диске файлы, удалённые из проекта остаются.

Не знаю то ли Вы имели в виду под ручным созданием ссылок на файлы.

Share this post


Link to post
Share on other sites

У меня файл удаляется полностью с винта и с проекта. Если файл предварительно скопировать в другое место, затем удалить его из проекта (удалится физически), затем копию файла снова поместить в папку, где до этого был оригинал, то в ProjectExplorere снова он появится (после обновления проекта).

 

Я до этого работал в вислике (Visual Slick Edit), решил перебраться на фришный софт. Пытаюсь перетащить проект под эклипс.

 

Как мне это сделать быстро и безболезнено???

 

Мне не нужно видеть все файлы, которые у меня есть на винте в папках, но и удалять их нельзя. По файлу добавлять - не дело. Проект большой с множеством файлов и папок.

 

P.S. Делал через Import -> File System

Edited by LessNik

Share this post


Link to post
Share on other sites
Файлы в проект я добавляю через Import -> File System всю папку скопом с подпапками, потом удаляю ненужное, но на диске файлы, удалённые из проекта остаются.

Не знаю то ли Вы имели в виду под ручным созданием ссылок на файлы.

Насколько я понимаю, импорт->файлсистем просто копирует файлы из файловой системы в подпапки проекта. При этом когда вы удаляете файл из проекта, он физически удаляется с диска. Изначальный файл, разумеется, при этом никуда не девается.

Ручное создание ссылок - это new\file\advanced\link to filesystem. При этом файл в проект не копируется. При удалении такого файла из проекта удаляется только ссылка. Файл на диске остается.

 

 

У меня файл удаляется полностью с винта и с проекта. Если файл предварительно скопировать в другое место, затем удалить его из проекта (удалится физически), затем копию файла снова поместить в папку, где до этого был оригинал, то в ProjectExplorere снова он появится (после обновления проекта).

В проект входят все файлы и папки, которые лежат на диске в папке с проектом. Если руками добавить\потереть файлы оттуда, то они станут видны в проекте после обновления.

 

Я до этого работал в вислике (Visual Slick Edit), решил перебраться на фришный софт. Пытаюсь перетащить проект под эклипс.

 

Как мне это сделать быстро и безболезнено???

 

Мне не нужно видеть все файлы, которые у меня есть на винте в папках, но и удалять их нельзя. По файлу добавлять - не дело. Проект большой с множеством файлов и папок.

 

P.S. Делал через Import -> File System

Тоже сидел на слике. Сейчас делаю так: пусть project - корневая папка проекта. Проект эклипса создаю в папке project. При этом он отображает в проекте все содержимое папки project. Часть содержимого можно выкинуть, настроив фильтры в project explorer. В принципе, мне оно особо не мешает, поэтому не заморачиваюсь. В таком режиме работы import(export)\to filesystem использовать не надо.

Насколько я понял igor kossak, он создает папку с проектом eclipse "сбоку" от реального проекта. Чтобы засосать файлы в проект, надо выполнить import\filesystem. При засасывании вы можете указать только те файлы и папки, которые вам реально нужны. Но при этом вы будете работать с копиями оригинальных файлов и чтобы "сохранить" ваши изменения в папке с проектом, надо сделать export\filesystem.

Share this post


Link to post
Share on other sites
Насколько я понял igor kossak, он создает папку с проектом eclipse "сбоку" от реального проекта. Чтобы засосать файлы в проект, надо выполнить import\filesystem. При засасывании вы можете указать только те файлы и папки, которые вам реально нужны. Но при этом вы будете работать с копиями оригинальных файлов и чтобы "сохранить" ваши изменения в папке с проектом, надо сделать export\filesystem.

Да, увы, так и есть. Не в ту папку смотрел.

Но делать экспорт нет необходимости, т. к. применяю Subclipse.

Share this post


Link to post
Share on other sites
все было шеколадно пока не обновился ....

 

работаю для АRМ

 

после обновления имею

Eclipse 3.3.2 Build id: M20080221-1800

ZylinCDT версии 4.1.16

CDT 4.0.3.200802251018

gdb6.8

 

косяк в том что теперь CDT упорно создает в корне воркспейса папку zylin-cdt-debugging и почему то при отладке ищет именно там собранный бинарник. :07: с какого перепоя????

Вышел ZylinCDT версии 4.1.17. Нет желания проверить на предмет указанного косяка?

Share this post


Link to post
Share on other sites
косяк в том что теперь CDT упорно создает в корне воркспейса папку zylin-cdt-debugging и почему то при отладке ищет именно там собранный бинарник. с какого перепоя????

В zylin discuss появилась ветка с описанием этого бага, но утвердительного ответа автора пока не последовало, хотя новая версия уже вышла.

Share this post


Link to post
Share on other sites

чичас проверю - мне ужо терять нечего.

а Вы пока погодите :)

 

пытаюсь эклипсу для всего насвете приладить... скатина падает под линуксом при отладке (GDB нипричем - с командной строки все шурует на оценку 5++)

 

и вооще поповоду качества всего насвете...

причем тенденция виднеется не только в железе и софте а в мировом-глобальном масштабе, уж не конец света наступает ли. Мысль конечно смешная но я иногда диву даюсь - признаки налицо.

 

обновлюсь проверю отпишусь

 

Нихера не поправили, желающим обновится можно не парится. Только если еще раз меня проверить - сделать копию рабочей папки эклипсы, провести апдейт, потестить и снести ее нах. Мож кому повезет :)

 

вот скрипт

symbol-file out/image.elf
target remote localhost:3333
monitor poll
monitor arm7_9 dcc_downloads enable
monitor flash probe 0
monitor flash erase_sector 0 0 26
monitor flash write_bank 0 out/image.bin 0x0
monitor reset run
monitor soft_reset_halt
monitor arm7_9 force_hw_bkpts enable
thbreak main
continue

 

openocd по режнему забирает бинарник где нада и сует его в флеш.

gdb по режнему получает инструкции свеху о том что все искать нада в .....\EclipseWorkspace_arm\zylin-cdt-debugging\out

 

 

я уж грешным делом подумываю а не помоч ли Zylin, доки по плагинам есть даже на русском. Както ковырялся в исходниках Zylin CDT из интереса - чисто эмбедерских примочек было кране в них мало.

Share this post


Link to post
Share on other sites
чичас проверю - мне ужо терять нечего.

а Вы пока погодите :)

Поздно :)

я уж грешным делом подумываю а не помоч ли Zylin, доки по плагинам есть даже на русском. Както ковырялся в исходниках Zylin CDT из интереса - чисто эмбедерских примочек было кране в них мало.

Думаю быстрее дело пойдёт.

Share this post


Link to post
Share on other sites

1 Мне помог разобраться в начальных настройках проекта в эклипсе вот этот атмеловский ман:GNU-Based Software Development on AT91SAM Microcontrollers (2,9 М). Внятно написано.

2 klen, не могли бы Вы описать процесс сборки arm-elf тулз в таком виде:

какой пакет с какими ключами конфигурите и в какой последовательности? Типа, конфигурим бинутилы с ключами бла-бла, собираем, конфигурим гцц с ключами бла-бла, и т.д.

Share this post


Link to post
Share on other sites
2 klen, не могли бы .......

 

 

для ARM elf

 

binutils: --prefix= --disable-nls --enable-multilib --enable-interwork --target=arm-elf

 

gcc: --prefix= --disable-nls --disable-threads --disable-shared --enable-languages=c,c++,fortran --target=arm-elf --enable-interwork --enable-multilib --with-float=soft --with-newlib --with-headers=../../src/newlib/src/newlib/libc/include

 

newlib: --prefix= --target=arm-elf --enable-interwork --enable-multilib

 

gdb: --prefix= --disable-nls --enable-multilib --enable-interwork --target=arm-elf

Share this post


Link to post
Share on other sites

2 klen - спасибо, все собралось, только пришлось поправить ручками файл gcc-4.3.0/libstdc++-v3/configure.ac на предмет AC_LIBTOOL_DLOPEN.

Share this post


Link to post
Share on other sites

А кто-нибудь пробовал собрать проект иаром (создать elf с отладочной информацией), а отлаживаться через эклипс, исползуя JLinkGDBServer + arm-elf-gdb?

 

Наблюдается какое-то странное поведение:

Ставлю точку останова на строчке while(1) в main.cpp. Видно, что программа прерывает выполнение, но while(1) не подсвечивается (вообще ничего не подсвечивается) как строчка останова. Значение глобальной переменной отображается неверно, дизасемблер не отображается. В консоль выводится следующее:

 

785-exec-continue

785^running

(gdb)

785*stopped,reason="signal-received",signal-name="SIGTRAP",signal-meaning="Trace/breakpoint trap",thread-id="0",frame={addr="0x90020000",func="??",args=[]}

(gdb)

786 info threads

&"info threads\n"

&"warning: RMT ERROR : failed to get remote thread list.\n"

786^done

(gdb)

787-stack-info-depth

787^done,depth="1"

(gdb)

788-stack-list-frames 0 1

788^done,stack=[frame={level="0",addr="0x90020000",func="??"}]

(gdb)

789-var-update var1

789^done,changelist=[]

(gdb)

790-var-update var2

790^done,changelist=[]

(gdb)

791-data-list-changed-registers

791^done,changed-registers=[]

(gdb)

792-data-disassemble -s 0x90020000 -e 0x90020064 -- 0

&"Cannot access memory at address 0x90020000\n"

792^error,msg="Cannot access memory at address 0x90020000"

(gdb)

793-stack-list-arguments 0 0 0

Cannot access memory at address 0x90020000

793^done,stack-args=[frame={level="0",args=[]}]

(gdb)

794-stack-list-locals 0

794^done,locals=[]

(gdb)

795-var-evaluate-expression var1

795^done,value="167772160" // Такого значения переменной быть не может

(gdb)

796-var-evaluate-expression var2

796^done,value="{...}"

(gdb)

797-data-evaluate-expression Led

797^done,value="{<No data fields>}"

(gdb)

 

Может что-то с elf файлом не так?

 

#C++ compiler options

-z2 --no_cse --no_unroll --no_inline --no_code_motion --no_tbaa

--no_clustering --no_scheduling --debug --cpu_mode

arm --endian little --cpu ARM7TDMI --stack_align 4

--interwork -e --fpu None --eec++ --dlib_config $(LIB_DIR)\dl4tpainl8n.h

 

# Assembler options

--cpu ARM7TDMI --fpu None -O$(OBJ_DIR)/ -s+ -M<> -w+ -r

 

# Linker options

...

-Oelf,as=$(TARGET).elf -Oraw-binary=$(TARGET).a79

...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now