Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Am186_188 (80С186_80С188) - среда разработки
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
interesuuwiysia
Здравствуйте. Я студент. Столкнулся с небольшой проблемой. У меня курсовая работа с промышленной платой CPU188 5v3 компании Prosoft на базе ядра Am188. Нужно написать на Си программу. Подскажите пожалуста какую-нибудь среду разработки, может симуляторы проца имееются в наличии, что бы можно было у себя дома компилировать и отлаживать... А то прям для новичка получается система уравнений уж с слишком большим числом неизвестных smile.gif да и Prosoft ничего не предоставляет по данному вопросу в комплекте со своим оборудованием...

Спасибо!
AlHakim
погляди на ftp://prosoft.ru/pub/Hardware/Fastwel/CPx/CPU188/CPU188-5v3/
вроде бы много что есть, сам не работал с этим контоллером , у нас используется ispdas I7188 и 8000
программировал на BC3.1

Насчет отладки, я смотрел у низ предоставляется отладчик не помню точно (читал мельком и давно) типа TDR188
interesuuwiysia
Цитата(AlHakim @ Mar 10 2007, 15:52) *
погляди на ftp://prosoft.ru/pub/Hardware/Fastwel/CPx/CPU188/CPU188-5v3/
вроде бы много что есть, сам не работал с этим контоллером , у нас используется ispdas I7188 и 8000
программировал на BC3.1

Насчет отладки, я смотрел у низ предоставляется отладчик не помню точно (читал мельком и давно) типа TDR188


Я уже давно скачал и выучил почти наизусть содержимое по данному адресу smile.gif я скажу что там лежит: там описание самой платы, pdf на am188, готовые прошивки и куча примеров программирования этих плат на Си. но дело в том что все эти примеры, так же как и мои собственные программы написаны под am188. Но в комплекте нет ни среды разработки, ни компилятора, ни отладчика. Когда я написал письмо в прософт, они ответили, что ничего не предоставляют, и что если хочешь программировать на си - ищи все сам.
BC 3.1 поставил вчера. но откомпилировать так и не смог... вроде компилирую уже готовые проекты, со всеми .h файлами в комплекте, а все-равно миллион ощибок. причем судя по ошибкам, он не может открыть файды заголовки... пишет что не может открыть bios.h. а остальные ошибки типа "there is no prototype of printf function"... судя по тому что пишет копилятор - он не может открыть остальные стандартные файлы-заголовки... У меня еще стоит Visual C++ 6.0... но при компиляции он так же не может открыть bios.h... это все и ставит-то меня в тупик... sad.gif
LMT
В ВС3.1 нужно выставить правильные пути к заголовочным файлам и библиотекам: меню Options/Directories. (Несоответствие случается, если переносишь с места на место инсталляцию ВС целиком копированием.)
interesuuwiysia
Цитата(LMT @ Mar 10 2007, 19:26) *
В ВС3.1 нужно выставить правильные пути к заголовочным файлам и библиотекам: меню Options/Directories. (Несоответствие случается, если переносишь с места на место инсталляцию ВС целиком копированием.)



Спасибо!!!! Я поправил пути и все скомпилировалось! ну почти все smile.gif
Столкнулся с новой проблемой:
У меня в проекте включен файлы N0.asm и N0.h. В первом файле написаны на ассемблере (как раз на ассемблере Am188ES) функции для работы, а в N0.h размещены заголовки этих функций. Когда я компилирую весь проект, он все исходные файлы компилирует без ошибок, а когда доходит до N0.asm пишет что:

Error: "cannot find executable: TASM"...

это что такое? smile.gif как мне скомпилировать весь проект?
И как мне сделать из этого проекта
LMT
Пропишите в переменной окружения path каталог x:\bc31\bin (или x:\borlandc\bin, смотря, как какталог зовётся и на каком диске размещается). Дело в том, что при компиляции среда ищет транслятор ассемблера TASM в каталогах, перечисленных в этой переменной.
Dog Pawlowa
Цитата(interesuuwiysia @ Mar 10 2007, 21:10) *
И как мне сделать из этого проекта

Да-да... Ну, получите Вы EXE-файл.
А как Вы собираетесь делать из этого проекта файл для загрузки или программирования?
Там что-нибудь написано?
AlHakim
Цитата(Dog Pawlowa @ Mar 11 2007, 23:42) *
Да-да... Ну, получите Вы EXE-файл.
А как Вы собираетесь делать из этого проекта файл для загрузки или программирования?
Там что-нибудь написано?

загрузка, наверняка реализована ак во многих пром -контроллерах через уарт
в том с которыя я работаю i7188 есть операционка Mini07, которая и позволяет прошить скомпилированный исходник во флеш котроллера...
как я уже и говорил. у них есть еще стандартное средство отладки типа TDR188, должно помочь в отладке в самом кристалле
evg123
Цитата(AlHakim @ Mar 12 2007, 10:42) *
Цитата(Dog Pawlowa @ Mar 11 2007, 23:42) *

Да-да... Ну, получите Вы EXE-файл.
А как Вы собираетесь делать из этого проекта файл для загрузки или программирования?
Там что-нибудь написано?

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

Возился с этим контроллером около полугода. Ничего лучше не нашел, чем TurboC 3.0 (образца 1991 года). Далее есть сайт www.cta.ru (прософтовский или фаствеловский - не помню) - выходите на форум - и там есть темы посвященные этому контроллеру. Некоторые пишут на TurboPascal 7.0 под ДОС
Основные моменты - система команд - 8086 или 80186 (иначе виснет безнадежно). В последних контроллерах обнаружен серьезный Баг - на BC++3.1 - все зависнет сразу же, т.к. он определит процессор не как 80188, а как 80386 и сразу начнет пихать в него инструкции для 386-го (несмотря на то, что программа откомпилирована под 188-ой). Есть к ней antibug. C Turbo C++3.0 - такого глюка не возникает. Да и размер генерируемого кода - гораздо меньше. TurboDebugger работает относительно надёжно (важно не напутать с версией). Программа генерируется на обычном компе, затем закачивается через trans188.exe (RS232) или через TD на DOC (disk on chip), и затем запускается из командной строки уже на контроллере. Я использовал для этого самый стандартный гипертерминал.
interesuuwiysia
Цитата(evg123 @ Mar 12 2007, 18:11) *
Цитата(AlHakim @ Mar 12 2007, 10:42) *

Цитата(Dog Pawlowa @ Mar 11 2007, 23:42) *

Да-да... Ну, получите Вы EXE-файл.
А как Вы собираетесь делать из этого проекта файл для загрузки или программирования?
Там что-нибудь написано?

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

Возился с этим контроллером около полугода. Ничего лучше не нашел, чем TurboC 3.0 (образца 1991 года). Далее есть сайт www.cta.ru (прософтовский или фаствеловский - не помню) - выходите на форум - и там есть темы посвященные этому контроллеру. Некоторые пишут на TurboPascal 7.0 под ДОС
Основные моменты - система команд - 8086 или 80186 (иначе виснет безнадежно). В последних контроллерах обнаружен серьезный Баг - на BC++3.1 - все зависнет сразу же, т.к. он определит процессор не как 80188, а как 80386 и сразу начнет пихать в него инструкции для 386-го (несмотря на то, что программа откомпилирована под 188-ой). Есть к ней antibug. C Turbo C++3.0 - такого глюка не возникает. Да и размер генерируемого кода - гораздо меньше. TurboDebugger работает относительно надёжно (важно не напутать с версией). Программа генерируется на обычном компе, затем закачивается через trans188.exe (RS232) или через TD на DOC (disk on chip), и затем запускается из командной строки уже на контроллере. Я использовал для этого самый стандартный гипертерминал.



Огого! На самом деле я еще пока не смог толком загрузить все в контроллер. Просто с лабораторией в универе напряг: времени было мало. А вообще пробовал через ftrans.exe так же через обычный гипертерминал через rs232. но вот что самое непонятное, при использовании ftrans.exe он не может загрузить файл в контроллер. Привожу полный лог:

CPU188-5 C:\>cd UTILS
CPU188-5 C:\UTILS>dir

Volume in drive C has no label

Directory of *.*
BELL.EXE 6800 03-02-2000 12:20
ISP188.COM 3232 05-24-2001 15:18
ISL188.COM 2784 05-24-2001 15:18
TDR188.EXE 23852 06-07-2001 17:19
FTRANS.EXE 6660 03-23-2004 18:56

43328 bytes in 5 file(s)
664576 bytes free

CPU188-5 C:\UTILS>ftrans
Am188ES/RDC R8830 microcontroller UART

missing parameters

FILE TRANSFER Version 2.8 Copyright © 2001..2004 Fastwel, Inc.

uses the XMODEM protocol
supports: PC/XT/AT, Am188ES, Am186CC/CH/CU, RDC R8830, RDC R1610

usage: ftrans [options] filename [filesize]
options:
/r - receive a file (default)
/s - send a file
/b# - set baud rate (default is 115200 if /com# is specified)
/com# - use com# (1/2) port (default is com1)
if /b# and /com# are left off com1 at current baud rate is used
/crc - initiate CRC error checking only (for "receive" mode)
filesize - exact size (decimal) of the file to be received

examples:
ftrans /s /b9600 /com1 c:test.exe
ftrans /crc c:control.com 32611
CPU188-5 C:\UTILS>ftrans /r c:g01g01.bit 22336
Am188ES/RDC R8830 microcontroller UART
timeout. mission cancelled.

Непонятно, он перед эти с минуту думает выводя последовательно мне на экран последовательность символов: "СССС СССС СССС СССС" а потом выдает сообщение что "Am188ES/RDC R8830 microcontroller UART timeout. mission cancelled."... что такое может быть?

И еще вопрос, насколько сильно отличаются по архитектуре и набору команд 8086_8088 и 80186_80188???
interesuuwiysia
Цитата(evg123 @ Mar 12 2007, 18:11) *
Возился с этим контроллером около полугода. Ничего лучше не нашел, чем TurboC 3.0 (образца 1991 года). Далее есть сайт www.cta.ru (прософтовский или фаствеловский - не помню) - выходите на форум - и там есть темы посвященные этому контроллеру. Некоторые пишут на TurboPascal 7.0 под ДОС
Основные моменты - система команд - 8086 или 80186 (иначе виснет безнадежно). В последних контроллерах обнаружен серьезный Баг - на BC++3.1 - все зависнет сразу же, т.к. он определит процессор не как 80188, а как 80386 и сразу начнет пихать в него инструкции для 386-го (несмотря на то, что программа откомпилирована под 188-ой). Есть к ней antibug. C Turbo C++3.0 - такого глюка не возникает. Да и размер генерируемого кода - гораздо меньше. TurboDebugger работает относительно надёжно (важно не напутать с версией). Программа генерируется на обычном компе, затем закачивается через trans188.exe (RS232) или через TD на DOC (disk on chip), и затем запускается из командной строки уже на контроллере. Я использовал для этого самый стандартный гипертерминал.


Я несовсем понял про баг с BCPP31... Там же вроде в настройках компилятора можно выставить Instruction Set: OPTIONS->COMPILER->ADVANCED CODE GENERATION... а там раздел Instruction Set и среди них все семейство на выбор... А если прога скопилена под 188 и exe тоже под 188, то тогда кто и как определяет проц как 386и пихает туда 386ой набор команд?
Я просто еще не смог пока запустить свой софт в контроллере и убедиться в этом воочию...
Dog Pawlowa
Цитата(evg123 @ Mar 12 2007, 19:11) *
Возился с этим контроллером около полугода. Ничего лучше не нашел, чем TurboC 3.0 (образца 1991 года). Далее есть сайт www.cta.ru (прософтовский или фаствеловский - не помню) - выходите на форум - и там есть темы посвященные этому контроллеру. Некоторые пишут на TurboPascal 7.0 под ДОС
Основные моменты - система команд - 8086 или 80186 (иначе виснет безнадежно). В последних контроллерах обнаружен серьезный Баг - на BC++3.1 - все зависнет сразу же, т.к. он определит процессор не как 80188, а как 80386 и сразу начнет пихать в него инструкции для 386-го (несмотря на то, что программа откомпилирована под 188-ой). Есть к ней antibug. C Turbo C++3.0 - такого глюка не возникает. Да и размер генерируемого кода - гораздо меньше. TurboDebugger работает относительно надёжно (важно не напутать с версией). Программа генерируется на обычном компе, затем закачивается через trans188.exe (RS232) или через TD на DOC (disk on chip), и затем запускается из командной строки уже на контроллере. Я использовал для этого самый стандартный гипертерминал.

Я стал спрашивать про загрузку EXE, так как 15 лет назад делал проект на 186. Среда - TurboPascal 6.0 - 7.0. Контроллер был самодельный, EXE-файл обрабатывался специальной утилитой (релокация по физическим адресам) и прошивался в EEPROM. Поэтому я и спрашивал, как делается теперь. Кроме установки в настройках системы команд x86 нужно было (при работе с EEPROM) запретить симуляцию сопроцессора, так как в этом случае генерируется самомодифицирующий код, который в EEPROM работать не может, конечно. Сейчас это неактуально, как я вижу.
А вообще-то возможность выполнения программы на компьютере очень удобна для отладки. Тогда никаких JTAG' ов не было, все отладочные сервисы нужно было писать самому, а тут встроенный отладчик. Счастье по тем временам smile.gif
evg123
---------------------------------------------------------
CPU188-5 C:\>cd UTILS
CPU188-5 C:\UTILS>dir

Volume in drive C has no label

Directory of *.*
BELL.EXE 6800 03-02-2000 12:20
ISP188.COM 3232 05-24-2001 15:18
ISL188.COM 2784 05-24-2001 15:18
TDR188.EXE 23852 06-07-2001 17:19
FTRANS.EXE 6660 03-23-2004 18:56

43328 bytes in 5 file(s)
664576 bytes free

CPU188-5 C:\UTILS>ftrans
Am188ES/RDC R8830 microcontroller UART

missing parameters
******************************************
Естественно запуск ftrans надо делать с параметрами
Иначе он выдает Help: (как и все старые досовские программы)
******************************************
FILE TRANSFER Version 2.8 Copyright © 2001..2004 Fastwel, Inc.

uses the XMODEM protocol
supports: PC/XT/AT, Am188ES, Am186CC/CH/CU, RDC R8830, RDC R1610

usage: ftrans [options] filename [filesize]
options:
/r - receive a file (default)
/s - send a file
/b# - set baud rate (default is 115200 if /com# is specified)
/com# - use com# (1/2) port (default is com1)
if /b# and /com# are left off com1 at current baud rate is used
/crc - initiate CRC error checking only (for "receive" mode)
filesize - exact size (decimal) of the file to be received

examples:
ftrans /s /b9600 /com1 c:test.exe
ftrans /crc c:control.com 32611
CPU188-5 C:\UTILS>ftrans /r c:g01g01.bit 22336
Am188ES/RDC R8830 microcontroller UART
timeout. mission cancelled.
**************************************************************
То есть понятно, что надо набирать:
ftrans /s /b9600 /com1 c:test.exe
Что означает, что ftrans будет сейчас отправлять
файл c:test.exe через порт com1 на скорости 9600
по протоколу XMODEM

Скорость надо выбирать такую, на какой работает соединение с контроллером
Скорее всего это 115200bps
Порт нужно выбирать такой, который задействован в контроллере (а не в хост-компе!!)
/s - означает отправка /r - получение (но /r - можно не писать т.к. это по умолчанию

Далее после набора команды возникает следующее:
СССС СССС СССС СССС

Это означает, что он ждет отправки и дождаться никак не может, чтобы файл, который
он хочет отправить кто-то по X-MODEMу запросил

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

То же самое и с отправкой со стороны гипертерминала и получением на стороне
контроллера ftrans c:test.exe
файл получаем через COM1 на 115200
**************************************************************
Непонятно, он перед эти с минуту думает выводя последовательно мне на экран последовательность символов: "СССС СССС СССС СССС" а потом выдает сообщение что "Am188ES/RDC R8830 microcontroller UART timeout. mission cancelled."... что такое может быть?

И еще вопрос, насколько сильно отличаются по архитектуре и набору команд 8086_8088 и 80186_80188???
***************************************************************
По набору команд - разница в коде 8086_8088 и 80186_80188??? - у последнего (т.е.80186_80188)
на 0.5% - 1% код короче
По архитектуре 186 - 188 - у первого шина данных - шестнадцати разрядная,
а у второго восьми разрядная (то же справедливо и для 8086_8088)

По сути 186 от 86 отличается тем, что у первого вся переферия (обработчик прерываний, таймеры и т.д.) всунуты во внутрь а у 86 - всё делается внешними чипами
***************************************************************


Цитата(interesuuwiysia @ Mar 13 2007, 17:27) *
Я несовсем понял про баг с BCPP31... Там же вроде в настройках компилятора можно выставить Instruction Set: OPTIONS->COMPILER->ADVANCED CODE GENERATION... а там раздел Instruction Set и среди них все семейство на выбор... А если прога скопилена под 188 и exe тоже под 188, то тогда кто и как определяет проц как 386и пихает туда 386ой набор команд?
Я просто еще не смог пока запустить свой софт в контроллере и убедиться в этом воочию...

Всё правильно, но это касается вашей программы, а BCPP31 перед программой вставляет свой код,
который инициализирует переменные своей борландовской среды, и в частности, определяет тип процессора. Код стандартный, вставляется везде без исключения.

Если на Фаствельной плате установлен родной Amd188 - нет вопросов. Если же установлен
совместимый процессор фирмы RDC - (а именно их последний год и продавал прософт)
то этот сам процессор с багом - борланд не правильно определяет его тип (как 386). И в этом
самом коде начинает пулять туда 386-ые инструкции - все сразу валится.
Во времена TurboCPP (91г)- таких процессоров массово не было, поэтому и проблемы не было.
Как в сталинские времена - нет процессора - нет проблемы.
Прософт разработал антибаг, (у меня его с собой нету, по-моему я его за ненадобностью утратил),
который комментирует этот код.



Цитата(Dog Pawlowa @ Mar 14 2007, 10:09) *
Я стал спрашивать про загрузку EXE, так как 15 лет назад делал проект на 186. Среда - TurboPascal 6.0 - 7.0. Контроллер был самодельный, EXE-файл обрабатывался специальной утилитой (релокация по физическим адресам) и прошивался в EEPROM. Поэтому я и спрашивал, как делается теперь. Кроме установки в настройках системы команд x86 нужно было (при работе с EEPROM) запретить симуляцию сопроцессора, так как в этом случае генерируется самомодифицирующий код, который в EEPROM работать не может, конечно. Сейчас это неактуально, как я вижу.
А вообще-то возможность выполнения программы на компьютере очень удобна для отладки. Тогда никаких JTAG' ов не было, все отладочные сервисы нужно было писать самому, а тут встроенный отладчик. Счастье по тем временам smile.gif

Там берется стандартный tdremote, который адаптируется под архитектуру и операционную систему фаствела. Фаствел (или прософт) ведь сам написал совместимую операционку и биос (который имеет совсем другие системные адреса и данные типа реального времени, УАРТов и т.д., портов, которые совсем не бъют со стандартной архитектурой, и под неё им пришлось адаптировать и биос и дос, далее турбо-дебаггер. Я даже поговорил с человеком, который это всё делал. Т.к. я из Минска, а он в Москве, то мы с ним напрямую поговорили. Турбодебаггер-ремоут - это драйвер для слабых в то время компьютеров, чтобы можно было отлаживать на них большие программы, которые в нормальной турбо-среде не отлаживались, т.к. по-просту не хватала памяти. Тогда на рабочей машине загружпался
драйвер, а на вспомогательной машине загружался турбо-дебаггер, который связывался с драйвером
по последовательному порту и закачивал туда в пошаговом режиме голый код, в то время, как всю отладочную информацию держал у себя. Это же и сделал прософт у себя, только в роли рабочей машины выступает CPU188. Проблема с TD в том, что при интенсивном использовании переферии по
прерываниям и по DMA, он часто зависает. Хотя если грамотно подойти к проблеме - можно отлаживать успешно куски программы.
zltigo
Цитата(evg123 @ Mar 16 2007, 16:51) *
Всё правильно, но это касается вашей программы, а BCPP31 перед программой вставляет свой код,
который инициализирует переменные своей борландовской среды, и в частности, определяет тип процессора. Код стандартный, вставляется везде без исключения.

Это startup. Его исходные тексты лежат с /LIB/STARTUP/s0.asm
И ДОСТУПНЫ изменению пользователем и совершенно спокойно МОГУТ НЕ ЛИНКОВАТСЯ, буде такая надобность имется. Никакакого "определения типа процессора" там отродясь не было, по причине полной нахренненужности.
interesuuwiysia
Спасибо smile.gif мне тут на неделю пищи для размышления smile.gif
SasaTheProgrammer
Я тоже когда-то отдал этому дань smile.gif. Программы писались на С с изменённым загрузчиком и на тасме, компилятором выступал ТС (третий?), а прграммы потом обрабатывались EXE2BIN (то-ли из состава квик-С, то-ли из самого дос-а). Потом прошивались в РФ-ку.
Кажется так.
agg
Делал и еще продолжаю делать нечто подобное.
Все самодельное (плата, прог.монитор, загрузчики и т.д.)
Процессор 80C188EB-20. Все программное обеспечение разрабатывалось из под Linux. (Это принципиаоьно)
Ассемблер - Nasm. Си - bcc. Для преобразования выходных форматов (bin,hex,s-rec) оказалось достаточно
стандартного линуксового objcopy, хотя есть весьма хороший пакет srecord. В bcc немножко самодельная
libc, понравилось то что сделать ее (либс) можно как угодно (в меру своего тяма) Так как проект с 0 мой,
то проблем по заливке флеша и т.д. нет. Делал как мне удобно. Неудобства - Если пишешь на асме - без проблем. На си - не проглючь с сегментной организацией. Но у меня нет сишных прог больше 64 кб. Так,что это не проблема.
tadzimir
Здравствуйте участники форума!
Вот снова стала актуальной эта тема...
Я тоже работаю сейчас с CPU188 5v3, точнее пытаюсь её "оживить", замигать встроенными диодиками, т.е. загрузить и запустить простейшую программу, которая даже есть в exampl'ах сопровождения контроллера, но как всегда неопытность сразу стала большой преградой, возникало множество ошибок, как банальных, так и серьезных, но вот настал момент, когда уже казалось бы все должно работать, а я в тупике, очень надеюсь на ваш совет, итак:
Плата контроллера подключена к ПК на который установлено ПО, требуемое документацией,
Smart Link - пакет для установки связи комп - контроллер, прислан тех. поддержкой прософта, работает.
ftrans или trans188 - приложение для загрузки программы в память контроллера.
led.exe - откомпилирована с помощью turbo C

С разных ОС запускаличь эти программы - WinXP, milenium, ms-dos, все время возникали ошибки, от совсем страшных, до просто непонятных:
в режиме ms-dos shell из windows с использованием trans188 "incorrect version BIOS"
при использовании ftrans "timeout. mission cancelled"
в режиме чистого ms-dos: "Am188ES/ RDC R8830 microcontroller UART cannot find/open file"

Будет очень приятно при любом отклике.

Спасибо!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.