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

Embedded VC для ARM

Сейчас работаю с ARM кросс-компиляторами IAR (4.11) и GCC (самосбор 3.2).

Работаю, возможно, несколько извращенно - MS VC++ 6.0 в качестве среды.

(для Windows тоже много писать приходится) К проекту прикручивается makefile который собственно билдает, тулзы программирования и мониторинга и проч.

Матюки кросс-компиляторов пропускаются через perl-скрипты и выдаются в VC в стиле "аля MS". Поэтому навигация по ошибкам пашет на ура.

А теперь мне вот еще очень source-browse захотелось - очень уж с ним классно в чужих сырцах разбираться.

Ну взял я MS EVC++ 4.0. Все выглядит привычно, но вот никак не получается у меня MS линкер уговорить разместить код с адреса 0. Заточено оно под WinCE/Win32, а там эта область - железное табу (NULL pointer area).

В-общем-то, можно и не линковать - другой компилятор использовать, а MS только для построения bsc-файла запускать. Но я так посмотрел - у MS ARM компилер тоже неплохой, так что линкер таки тоже желательно уговорить.

Кто-нибудь такую проблему уже решал?

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


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

Проблема не в том, чтобы код слинковать с нулевого адреса (адреса в программе все относительные), проблема в задании адреса для сегмента данных. Тут два варианта - использование не MS линкера (ld, например) или применить релокатор, который выдернет информацию из exe-файла и перекинет данные по нужным адресам.

 

Да, и не поделишься информацией, как тебе удалось в eVC++ проекте запускать makefile? Там такой возможности по умолчанию вроде как нет.

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


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

Проблема не в том, чтобы код слинковать с нулевого адреса (адреса в программе все относительные), проблема в задании адреса для сегмента данных. Тут два варианта - использование не MS линкера (ld, например) или применить релокатор, который выдернет информацию из exe-файла и перекинет данные по нужным адресам.

Действительно, релокатор написать - не проблема, формат PE хорошо документирован, тем более приходилось уже писать релокаторы (для MZ-exe). Дык, лень же :) - после великолепных универсальных линкеров

xlink и ld. Если никто более приличного не посоветует, возможно-таки и напишу релокатор.

Да, и не поделишься информацией, как тебе удалось в eVC++ проекте запускать makefile? Там такой возможности по умолчанию вроде как нет.

А я в eVC makefile не прикручивал. Я прикрутил его в обычный VC :). А в eVC

пока makefile был без надобности - линкер вот уговариваю.

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


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

Да, но VC 6.0 не понимает bsc файл, который генерит ARM evC++ компилятор!

Жаль, это был один из вариантов, который я собирался пробовать. А может быть можно cod файлы скормить штатному bscmake из VC6?

Чтобы не было неясностей, изложу ситуацию подробней:

- сейчас работаю VC6 + makefile + кросс-компилятор + perl-фильтры

- поставил eVC, скомпилил проект по умолчанию - проблемы с линкером

- _отдельно_ от eVC написал makefile (запускаю nmake из Far-а) из которого

вызываю строчные тулзы от eVC. Согласитесь - VC/eVC не самая лучшая среда для отладки makefile :) Командная строчка удобней. Вот на этом этапе я и подзадержался :( - надо "уговорить линкер"

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


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

В догонку. Я тут погорячился насчет bsc ARM evc++ в VC. Все нормально понимается, сам раньше неправильно ключи компилятора установил. Прошу прощения за дезу.

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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