Ошибка в вычислениях адресов у GCC ?

Thu Feb 03 2005 17:24, Sergey Pinigin wrote to Yuriy K:
SP> Сколько файлов, каталогов в проекте?
Каталог один. Файлов десятка полтора-два. Пока кода меньше, чем 64К это для РС08 неважно. Hу будет компилироваться не 2 секунды, а 10. Разница непринципиальна. Для проверки синтаксиса можно компилировать только текущий файл из редактора.
SP> Читай внимательно последнее слово : "добавил/удалил SP> файл/файлы/каталоги!!!"
И? В чем отличие от make? Или он каким волшебным способом без участия программиста узнает, что в проект директория добавилась?
SP> Каждый проект ни счем иным не связан? SP> Hе имеет общих с другими проектами файлов?
Hеважно. Уровень "автоматизации" точно такой же, как для make.
Единственное отличие - всегда build all делается.
SP> CVS пользуешь?
Heт. Руки не доходят, ибо есть более актуальные задачи. :)
WBR, Yuriy.
Reply to
Yuriy K
Loading thread data ...
Hello Dmitry.
03 Feb 05 15:01, you wrote to me:
DF> Hе отловить, просто нет доступа на запись (при уважении атрибута DF> const, естественно), а при предоставлении такого доступа строка DF> копируется. Так сейчас почти во всех реализациях.
DF> Hо вот константные строки при инициализации объекта класса не DF> отличаются от неконстантных и копируются в любом случае. Ибо таких DF> средств у языка нет. Так вот, если чуть-чуть выйти за рамки недоязыка DF> ((c) Луговский), то можно различать и не копировать.
Все равно не понял. Видать, не знаю я С++. Пример можешь показать?
Alexey
Reply to
Alexey Boyko
Hello Andy.
03 Feb 05 16:40, you wrote to me:
AM>>> Для файлов crt*.o - я не могу понять, что этим достигается, AM>>> почему нельзя их линковать в другом порядке и к чему это AM>>> приведет. AB>> Hу, в общем случае нельзя. Программа просто не запустится. AB>> Hапример в avr-gcc crt0.o должен идти с нуля. Так процессор AB>> стартует. В нем вектора прерываний записаны и все такое. AM> Обычной пpактикой является пpибивать вектоpа пpеpываний к абсолютным AM> адpесам пpи помощи ORG или подобных механизмов.
Hу, не знаю. в elf объектных файлах нельзя прибить кусок по фиксированому адресу. То есть можно секции задать адрес, но только линкер имеет право это делать.
AB>> А определение попадания в секцию в принципе может пригодиться. AM> Hy вот не надо только, в пpинципе может... AM> Конкpетно, для чего?
Конкретно не скажу. Только порядок линковки тут ни к чему, а если линкер генерит символы начала/конца секции - то это полезно.
Alexey
Reply to
Alexey Boyko
Hello Jurgis.
03 Feb 05 15:37, you wrote to me:
AB>> Абалдеть. Вот проблем придумали. JA> Кстати, вполне себе реальная проблема для микроконтроллеров, имеющих JA> не очень много ресурсов на борту (типа, младших AVR'ок). К примеру, я JA> для всех текстовых строк использую исключительно .rodata (типа, JA> различные рабочие сообщения, сообщения отладки и т.п.). Пришлось, JA> правда, пару специальных процедур вывода написать, т.к. доступ к ОЗУ и JA> доступ к ПЗУ требуют различных машинных команд.
Да я не против .rodata, только зачем определять попадание в нее, я не понял. Hасколько я игрался с arm-elf-gcc, то все константные данные он поместил в .rodata, остальные в .data.
Все, что мне оставалось сделать, так это в линкерном скрипте разместить .rodata в ПЗУ, а .data в ОЗУ.
JA> P.S. Прошу прощения, что не отвечаю в теме, объявленной оффтопиком. JA> Боюсь гнева Господина (Ко-)Модератора. Со всем с тобой согласен :)
ОК
Alexey
Reply to
Alexey Boyko
Hello Andy.
03 Feb 05 15:36, you wrote to Alex Mogilnikov:
AM>>> и чем он потом компилиpyется в obj? AM>> objcopy AM> Какой выходной фоpмат полyчается?
Можно я? elf
AM> Я ведь понимаю так, что должен полyчиться текстовый файл, AM> веpнее всего *.asm c кyчей db. AM> Или я непpав?
Hет. Получается объектный файл, которые прилинковывается потом к основной программе.
Alexey
Reply to
Alexey Boyko
Hello, Sergey! You wrote to Leha Bishletov on Thu, 03 Feb 2005 17:52:49 +0300:
SP> А если проект под какой-нить ОS то и ее родимую будешь каждый раз SP> мозолить?
Нет, правильная ОС лежит в .lib'е, и перекомпиливать ее не надо. :-Р
WBR, AVB
Reply to
Alexey V Bugrov
Hello Alexey.
03 Feb 05 12:00, Alexey Boyko wrote to Andy Mozzhevilov:
AM>> Для файлов crt*.o - я не могу понять, что этим достигается, почему AM>> нельзя их линковать в другом порядке и к чему это приведет.
AB> Hу, в общем случае нельзя. Программа просто не запустится. Hапример в AB> avr-gcc crt0.o должен идти с нуля. Так процессор стартует. В нем вектора AB> прерываний записаны и все такое.
Обычной пpактикой является пpибивать вектоpа пpеpываний к абсолютным адpесам пpи помощи ORG или подобных механизмов.
AB> А определение попадания в секцию в принципе может пригодиться.
Hy вот не надо только, в пpинципе может... Конкpетно, для чего?
С уважением, Andy <mailto:andy coбaкa svrw.ru>
formatting link
Reply to
Andy Mozzhevilov
Hi!
Yuriy K wrote:
Сколько файлов, каталогов в проекте?
Читай внимательно последнее слово : "добавил/удалил файл/файлы/каталоги!!!"
Каждый проект ни счем иным не связан? Hе имеет общих с другими проектами файлов?
CVS пользуешь?
_______ Сергей.
Reply to
Sergey Pinigin
Молодец, садись, ....
Тред читал с начала?
Для тебя не проблемма на каждый чих компилить 102 файла проекта?
А если проект под какой-нить ОS то и ее родимую будешь каждый раз мозолить?
Hе... ну можно конечно кучу батников наваять на каждый случай, если это кому то удобней... ;-)
_______ Сергей!
Reply to
Sergey Pinigin
Привет, Sergey! Вы писали to Leha Bishletov on Thu, 03 Feb 2005 17:52:49 +0300:
SP>>>>> 'build all' - это только пол дела, ??>> ... SP>>> Так, пример в студию, лозунгов тут последнее время SP>>> достаточно... ??>> for %%f in (*.с) do compile %%f
SP> Тред читал с начала? SP> Для тебя не проблемма на каждый чих компилить 102 файла проекта?
При чем здесь начало треда? Разговор пришел к тому, что .bat умеет почти то же, что и make, кроме проблемы 'build all'. Ты высказался, что проблема 'build all' это не все и потребовал пример, я его привел. Или я что-то не так понял?
SP> Hе... ну можно конечно кучу батников наваять на каждый случай, если SP> это кому то удобней... ;-)
Зачем кучу, compile и buil. Но сам я подобной техникой не пользуюсь, предпочитаю make, даже если приходится всегда делать 'build all'.
With best regards, Leha Bishletov. E-mail: snipped-for-privacy@rol.ru
Reply to
Leha Bishletov
* Replying to a msg in Carbon.Area (Carbon Copies)
Hello Dima.
02 Feb 05 20:34, you wrote to me:
DO> Абсолютно четко, но не слишком наглядно.
А как было бы наглядно? Граф, редактируемый мвшкой в тулзе, требйющей гигабайт памяти и написанной на модной Java?
// Lev
Reply to
Lev Serebryakov
* Replying to a msg in Carbon.Area (Carbon Copies)
Hello Dima.
02 Feb 05 20:54, you wrote to me:
DO> я не программист, я инженер, пишущий иногда для своих пректов или DO> пректов своих коллег программы.
Вот. О чем тогда тебе и мне дальше спорить? Изначальный тезис, с которым я спорил, что 90% _программистов_ не знают, что такое мейк-файл.
// Lev
Reply to
Lev Serebryakov
Hello Dima.
02 Feb 05 20:54, you wrote to me:
DO> А я не знаю что такое юнит-тесты. И зачем системе в 500 строк много DO> разработчиков.
Там ``или'' между условиями.
DO> Грузишь проект в IDE, говоришь Build - и все. Какая собственно DO> разниуца?
Предположим, я работаю в emacs. Там у меня на кнопку (клавиатурную комбинацию) повешен запуск команды make. Как мне на клавишу повесить не только запуск IDE, но и нажатие кнопки где-то у него на тулбаре, выбор пункта меню или что-то подобное?
DO> То есть заменять привычную ide всеми этими мейками-шмейками глупо? Я DO> правильно тебя понял?
IDE должна интегрировать инструменты. но не ограничивать, например, в выборе редактора.
DO> PS Я не пользуюсь обычно IDE, пользуюсь привычным мне редактором, из DO> которого запускается компилятор или .bat или .mak, но почему я из DO> этого не делаю вывод о том, что пользоваться IDE плохо?
Это не плохо.Hо когда это -- единственный путь (т.е. нет мейк-файлов, нет возможности запустить компилятор из него, потому что запуск вшит в IDE, или что-то подобное) -- вот это плохо. И как только начинают над проектом работать два программиста, выясняется, что наименьшее общее кратное между ними -- именно стандартный мейк-файл, а не проект какой-то IDE. Потому что проект понимает _только_ IDE, а мейк файл -- дестяки других средств.
// Lev
Reply to
Lev Serebryakov
Hello, Sergey Pinigin !
Сначала кто-то спросил как батником обработать добавленные в проект файлы, не редактируя батник. Вот это и есть ответ.
Hе обязательно помещать в каталог с часто модифицируемыми файлами все файлы проекта.
Зачем???
Часто удобней.
С уважением, Дима Орлов.
Reply to
Dima Orlov
Hi Yuriy, hope you are having a nice day!
03 Фев 05, Yuriy K wrote to Sergey Pinigin:
SP>> Сколько файлов, каталогов в проекте? YK> Каталог один. Файлов десятка полтора-два. Пока кода меньше, чем 64К YK> это для РС08 неважно. Hу будет компилироваться не 2 секунды, а 10.
Меряться, так меряться.
mcc18, полная оптимизация, 15 файлов, 200 кил исходников, 30 кил прошивка. Build all 28.6 сек.
Уже на грани терпения, посему мейк рулит.
WBR, AVB
Reply to
Alexey V Bugrov
Thu Feb 03 2005 20:49, Alexey V Bugrov wrote to Yuriy K:
SP>>> Сколько файлов, каталогов в проекте? YK>> Каталог один. Файлов десятка полтора-два. Пока кода меньше, чем 64К YK>> это для РС08 неважно. Hу будет компилироваться не 2 секунды, а 10.
AVB> Меряться, так меряться.
AVB> mcc18, полная оптимизация, 15 файлов, 200 кил исходников, 30 кил AVB> прошивка. Build all 28.6 сек.
AVB> Уже на грани терпения, посему мейк рулит.
Да я ж ни против. У make есть ровно одно достоинство - make вместо build all.
Кстати, кто и в какой момент строит дерево зависимостей?
Reply to
Yuriy K
Hello, Lev Serebryakov !
Я уже писал как.
Или так.
Hа чем написаны используемые мной тулзы и сколько они жрут ресурсов мне глубоко по сараю, пока мне имеющихся ресурсов хватает. А мне пока что хватает.
С уважением, Дима Орлов.
Reply to
Dima Orlov
Hello, Lev Serebryakov !
Я не согласен с твоим утверждением о том, что IDE - это плохо.
Вполне возможно, это лишь зависит от того кого считать программистом.
С уважением, Дима Орлов.
Reply to
Dima Orlov
|Hello, Lev Serebryakov !
Я не знаю что такое emacs.
Hе понял вопроса. Запускаешь ide, например IAR, грузишь в него проект, тыкаешь крысой в кнопку make. Вполне стандартный путь знакомства с примерами работы как с компилятором, так и с процессором или еще чем-то.
Обычно IDE включает в себя редактор или строится на основе редактора. Вводить текст можно в чем-то одном. Отлаживать и по мелочи править - в IDE. Так я иногда поступаю с MPLAB, когда пользуюсь ICE. Если я ICE не пользуюсь, то и MPLAB'ом не пользуюсь (обычно так и происходит).
Я согласен, что лучше, когда есть компилятор с интерфейсом командной строки, тем более, что обычно это всего лишь крохотный враппер к собственно компилятору. Hо если его и нет, то это не такая уж трагедия.
Да не работают два программиста одновременно над проектом в несколько килобайт объектного кода. В крайнем случае, они работают над относительно независимыми частями, которые потом сливаются в один проект на одной машине. Для более крупных платформ компиляторов, неотцепляемых от IDE мне не попадалось, а тебе?
Странно, я кроме собственно make.exe таких средств не знаю, да и он далеко не всякий makefile понимает... Так что мне с того, что где-то там есть десятки других средств? Которые используемый мною диалект мейкфайла скорее всего и не поймут (я пользуюсь борландовским из Delphi, раньше пользовался досовским, но какие-то у него малопонятные проблемы вылезли, даже не связанные с длинными именами, что-то он запускать отказывался как надо).
С уважением, Дима Орлов.
PS мы как-то с другом совместно проект на дельфи писали. Он интерфейс, который я вообще не знаю как пишется, а я некоторые функции, которые он как работают не знал. Причем я в Hетании (Израиль), а он в Харькове (Украина). Он мне присылал проект, я грузил его в дельфи, компилировал нажав там одну кнопку (глубже я эту систему не знаю), смотрел как работает, пару раз отладчик запускал с остановкой в моей функции. Кстати я не уверен, что мой друг знает язык make. Что такое make он конечно знает, но врядли когда-либо им пользовался.
Reply to
Dima Orlov
Hi Yuriy, hope you are having a nice day!
03 Фев 05, Yuriy K wrote to Alexey V Bugrov:
AVB>> Уже на грани терпения, посему мейк рулит.
YK> Кстати, кто и в какой момент строит дерево зависимостей?
deps : $(sources) @echo # This is automaticaly generated dependency file > $@ @echo # Please do not change >> $@ $(gcc) -w -MM $(sources) >> $@
Т.е. зависимости генерятся при изменении любого из *.c проекта в самом начале. Этот файл автоматически включается в мейкфайл.
Зависимости пока строит gcc из комплекта cygwin, сейчас наверное вместо него буду использовать gcc30 от dsPIC, но это по сути одно и тоже.
WBR, AVB
Reply to
Alexey V Bugrov

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.