2013-10-07 2 views
0

Я унаследовал старый проект, в котором используется процессор Innovasic ia188em (ранее AM188 от AMD). Скорее всего, мне нужно будет изменить код, и поэтому вам нужно будет перекомпилировать. К сожалению, я не уверен, какой компилятор использовался ранее (он скомпилирован в файл .hex), и поиск исходного кода (и, в частности, файлов заголовков), похоже, тоже не указывает на это.Как скомпилировать код C для чипа ia188em

Я видел одну программу, которая могла бы работать, но мне было интересно, знают ли кто-нибудь о каких-либо бесплатных программах, которые могут это сделать. Я видел несколько форумов, на которых люди говорили, что они думали, что старый компилятор Borland или компилятор Bruce C могут работать с чипами 80188 (что я предполагаю, что мой чип падает?), Но ничего конкретного. Я не смог скомпилировать с Borland C++ 5, когда я попытался, хотя, признаюсь, я, вероятно, не настроил его правильно.

Это для встроенной платы (то есть нет ОС). Я не программирую слишком часто, поэтому мои знания компилятора ограничены. Я в основном просто пишу простые программы на С и компилирую с помощью gcc под linux. Любая помощь приветствуется.

Обновлено 10/8: Я прошу прощения, я рассматривал как этот код, так и код на стороне ПК, который говорит со встроенной платой, и перепутался. Код для ia188em (встроенная плата) на самом деле C (не C++). Обновленное название, чтобы отразить это. Я не уверен, что это имеет огромное значение или нет.

+4

Восстанавливая оригинальную цепочку инструментов без информации о ней, это будет довольно большая работа. Я бы начал с инструментов, рекомендованных производителем встроенной платы. Вероятно, это было использовано. Преобразуйте HEX-файл в двоичный файл и разверните его для текстовых строк. Возможно, один из инструментов отпечатал файл с его именем - ценным ключом. (Или, в противном случае, любые интересные выглядящие строки могут быть перфорированы в вашу любимую поисковую систему, надеемся, что это будет лидировать.) –

+0

Спасибо за ответ. Моя компания является производителем платы (ну, она сделана и населена в другом месте, но это наш дизайн), но оригинальный инженер давно ушел, так же как и большая документация и программное обеспечение (если когда-либо была документация). ПЗУ используется AM27c010 (128k x 8 бит), и у нас есть программатор для него.Я попытался связаться с Innovasic (электронная почта и телефонный звонок) о рекомендованных компиляторах для своего чипа, но так и не получил ответа. Я преобразовал hex в двоичный (hex2bin), но видел только строки, внутренние для самой программы, ничего о каких-либо инструментах компилятора. Спасибо за совет. – Thomas

+0

Небольшой поиск в Интернете показывает, что до последних нескольких версий GCC/Binutils может быть отключен для работы в режиме реального времени x86 **, если ** указано, что никакие операции указателя не выходят за пределы одного сегмента. Поэтому, если вы можете поместиться в 64K или использовать ассемблеры ассемблера для всего, что нужно для пересечения такой границы, это может сработать. –

ответ

0

Вам понадобится 16-битный компилятор «реального режима» x86. Если ваш компилятор является целевым компилятором DOS, вам понадобятся некоторые средства генерации исходного двоичного файла, а не загрузочного модуля MS-DOS (.exe), это может быть возможно через параметры компоновщика или может потребоваться не-DOS-компоновщик.

Любые скрипты сборки или make-файлы, включенные в код проекта, могут помочь вам идентифицировать используемую toolchain, но вероятность того, что она больше не доступна, вам потребуется исходное «антикварное программное обеспечение».

+0

Я думаю, что в тот же день был путь, по которому вы могли бы преобразовать * .exe в * .exe в .com, а оттуда в .hex. Я не уверен, что начальный адрес DOS-ish 0x100 остался, но даже если бы это было так, было бы нелегко написать что-то, что изменило бы бинарный или шестнадцатеричный код, чтобы добавить машинный код, чтобы перейти туда от любой ожидаемой точки входа является. –

0

Когда я делал такие вещи (1985 -> 1990), я использовал инструментальную цепочку intel, теперь устаревшую и уже недоступную от intel. Инструменты, необходимые были

  • Ic-86 - Компилятор
  • ссылка-86 - линкер
  • Loc-86 - изображение Locater.

Существует информация об этих инструментах на very old site here.

Другим методом, который использовался в то время, является обработка файла .exe, созданного стандартным компилятором ПК реального стандарта Microsoft (MS-Pascal - это язык, используемый в этом проекте), в абсолютно расположенное изображение, которое можно вдуть в EPROM. Инструмент, используемый для преобразования, был проприетарным для компании, поэтому я понятия не имею, имеется ли эквивалент

Смежные вопросы