Имеется железка (не материнка!) с 386 процем, кое-какими портами, ПЗУ и ОЗУ. Как воспользоваться VS 7.1 для написания программ под нее? Проблема в том, что программа должна быть в ПЗУ, а переменные в ОЗУ, не говоря уже о том, что линкер должен их разместить по вполне определенных адресам. Кроме того необходим стартап — его обязательно писать на ассемблере? Если да то можно ли MASM'овский obj воткнуть в основной проект — у них формат одинаков? И как оттуда этого вызвать main?
06.11.07 15:28: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
Здравствуйте, Аноним, Вы писали:
А>Если ты имеещь в виду Manual на контроллер, то он отсутствует.
У тебя скорее всего 386EX — это действительно микроконтроллер, существенно отличающийся от писишного 386-го. Документации по нему достаточно, начни с официального сайта intel (правда, интел считает его устаревшим, но врядли удалили мануалы)
А>Если же на VS, то я как раз и спрашиваю о том месте, где об этом написано.
Нигде.
---
The optimist proclaims that we live in the best of all possible worlds; and the pessimist fears this is true
Re[4]: Программирование i386 как микроконтроллера
От:
Аноним
Дата:
06.11.07 07:19
Оценка:
Здравствуйте, wallaby, Вы писали:
W>У тебя скорее всего 386EX — это действительно микроконтроллер, существенно отличающийся от писишного 386-го. Документации по нему достаточно, начни с официального сайта intel (правда, интел считает его устаревшим, но врядли удалили мануалы)
Я там нашел только предложение запускать свою программу под "ROMable DOS". Но ставить ОС на микроконтроллер — это по меньшей мере странно, а ДОС — в особенности. А как оттранслировать свою программу для ROM нигде — нет.
Поможет Windows CE. Найти BSP, собрать образ, загрузить в ПЗУ.
WinCE Platform Builder позволяет написать и отладить загрузчик начального уровня,
то есть это и будет программа без операционной системы.
Re[2]: Программирование i386 как микроконтроллера
От:
Аноним
Дата:
06.11.07 08:58
Оценка:
Здравствуйте, aloba, Вы писали:
A>Поможет Windows CE. Найти BSP, собрать образ, загрузить в ПЗУ.
Что такое BSP?
A>WinCE Platform Builder позволяет написать и отладить загрузчик начального уровня, A>то есть это и будет программа без операционной системы.
WinCE Platform Builder — это что-то отдельное или входит в состав Visual Studio?
A>Поможет Windows CE. Найти BSP, собрать образ, загрузить в ПЗУ. A>WinCE Platform Builder позволяет написать и отладить загрузчик начального уровня, A>то есть это и будет программа без операционной системы.
Э.... Platform Builder вроде как денюшку стОит — и ЕМНИП немаленькую
Здравствуйте, Аноним, Вы писали:
А>Я там нашел только предложение запускать свою программу под "ROMable DOS". Но ставить ОС на микроконтроллер — это по меньшей мере странно, а ДОС — в особенности. А как оттранслировать свою программу для ROM нигде — нет.
В корне не согласен с выделенным утверждением. Мне доводилось писать под контроллеры на базе i386EX без использования ОС. Поверьте гемор еще тот, так как приходилось реализовывать часть функционала ОС самим (task scheduling, timers etc.). Но я тогда еще не понимал как хорошо жить, если есть ОС, даже совсем примитивная с урезанным до невозможности функционалом. В то время мы использовали в качестве компилятора Borland C++ 3.11 и большая часть кода писалась на ANSI C. Компилили обычный ехе-ник и зашивали во флешку. Во флеши так же лежал самописный бутлоадер, который делал первоначальную инициализацию проца и необходимой переферии, далее разворачивал в ОЗУ нашу прогу и передавал ей управление.
А вообще рекомендую посмотреть все же в сторону Embedded OS. Конечно все еще зависит от задач, возложенных на контроллер. У нас это была цифровая АТС.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, aloba, Вы писали:
A>>Поможет Windows CE. Найти BSP, собрать образ, загрузить в ПЗУ.
А>Что такое BSP?
Board Support Package — адаптация WinCE под конкретную плату (драйвера устройств и т.п).
А>WinCE Platform Builder — это что-то отдельное или входит в состав Visual Studio?
Для версии CE 5 это отдельный продукт. Для версии 6 это уже плагины для VS 2005 Pro.
Можно скачать ознакомительную версию, размер внушительный, но оно того стоит. http://www.microsoft.com/embedded
Здравствуйте, Аноним, Вы писали:
А>Я там нашел только предложение запускать свою программу под "ROMable DOS". Но ставить ОС на микроконтроллер — это по меньшей мере странно, а ДОС — в особенности.
Ничего странного. Видел массу устройств именно со встроенной DOS. Правда, использование DOS накладывает определеные ограничения на архитектуру, и вообще ее распространенность в этом деле больше связана с инерцией мышления. А других ОС для встроенных систем великое множество, от крохотных, размером несколько килобайт до монстров. RTDOS, QNX, uCOS, scmRTOS, RTEMS, WinCE и другие. Думается, без ОС Вам не обойтись. Я, последнее время, ОС даже в разработки на 8-ми разрядных контроллерах пихаю, а уж для 32-разрядного — сам Бог велел. По поводу ОС Вам, возможно, вот здесь помогут.
Компилировать под 386EX можно, например BC++ 5.0. Он, вроде бы, бесплатный
Здравствуйте, Аноним, Вы писали:
А>Имеется железка (не материнка!) с 386 процем, кое-какими портами, ПЗУ и ОЗУ. Как воспользоваться VS 7.1 для написания программ под нее? Проблема в том, что программа должна быть в ПЗУ, а переменные в ОЗУ, не говоря уже о том, что линкер должен их разместить по вполне определенных адресам. Кроме того необходим стартап — его обязательно писать на ассемблере? Если да то можно ли MASM'овский obj воткнуть в основной проект — у них формат одинаков? И как оттуда этого вызвать main?
Если на эту железку нельзя поставить что-нибудь вроде WinCE, то VS 7.1 можно использовать только в качестве редактора. Чтобы раскидывать переменные и код по определенным адресам, а также для написания стартапа, по возможности без ассемблера, наверняка потребуется компилятор вроде gсс или watcom (у этих компиляторов есть специфические фичи для подобных целей) и соответствующий линкер.