плата MSC1211 - посоветуйте free С компилятор

User avatar
dot
Уже с Приветом
Posts: 4461
Joined: 17 Jun 2003 04:41

плата MSC1211 - посоветуйте free С компилятор

Post by dot »

А может кто-нибудь посоветовать такой компилятор для Вин95/98/етс(это процессор 8051)? А то у тех компиляторов, которые на СД вместе с платой ограничение 4К.
,,, ^. .^ ,,,
User avatar
idle0
Уже с Приветом
Posts: 2846
Joined: 28 Jun 2000 09:01
Location: Milwaukee, WI

Post by idle0 »

как насчет gcc?
moria# show running-config
User avatar
dot
Уже с Приветом
Posts: 4461
Joined: 17 Jun 2003 04:41

Post by dot »

как насчет gcc?

вроде нашла gcc под винды, не знаю, буду пробовать. Меня смущает только, что в "родных" компиляторах пишут, что они "специально" для этих плат - т.е. могут быть проблемы с совместимостью?

Сорри, если вопрос глупый - я на С последний раз лет 6 назад писала... Под Дос. :?
,,, ^. .^ ,,,
ven27
Уже с Приветом
Posts: 5034
Joined: 11 Jan 2003 07:50
Location: ROV -> ICN -> LED -> ICN -> YYZ -> SFO -> ?

Post by ven27 »

idle0 wrote:как насчет gcc?

Гм?! А что, уже появился порт gcc для 8051??? 8O Быстрый поиск по гуглу ничего не дал.
ЗЫ: да и на http://gcc.gnu.org/ ничего про это нет (да и для 8086 тоже) :?
ven27
Уже с Приветом
Posts: 5034
Joined: 11 Jan 2003 07:50
Location: ROV -> ICN -> LED -> ICN -> YYZ -> SFO -> ?

Re: плата MSC1211 - посоветуйте free С компилятор

Post by ven27 »

dot wrote:А может кто-нибудь посоветовать такой компилятор для Вин95/98/етс(это процессор 8051)? А то у тех компиляторов, которые на СД вместе с платой ограничение 4К.

Посмотрите здесь http://www.lawicel.com/e_links_8051.htm
User avatar
dot
Уже с Приветом
Posts: 4461
Joined: 17 Jun 2003 04:41

Post by dot »

ven27, спасибо вам огромное, это то что нужно!!!
,,, ^. .^ ,,,
User avatar
dot
Уже с Приветом
Posts: 4461
Joined: 17 Jun 2003 04:41

Post by dot »

А вот еще вопрос, наверно к тем, кто занимается embedded programming. В документации по sdcc написано буквально так:
As usual on embedded systems you have to provide your own getchar() and putchar() routines. SDCC does not know whether the system connects to a serial line with or without handshake, LCD, keyboard or other device. You'll find examples for serial routines f.e. in sdcc/device/lib.

примеры я вроде нашла, но не для моей карты - не для MSC. Поиск по интернету, пока ничего не дал.

Меня интересует вот какой вопрос - вообще-то карта будет общаться через серийный порт с VB-программой. Т.е. использовать функцию getkey/putkey - и если их придется тоже переопределять - то достаточно просто прочитать документацию и писать/читать в тот регистр, который указан в manual как регистр для обмена через RS232 порт(ну, и проверять - пришли новые данные или нет еще)? Или здесь есть какие-то подводные камни, и алгоритм д.б. сложнее?

В-общем, буду благодарна если кто расскажет, какой обычно алгоритм используется в таких случаях?
,,, ^. .^ ,,,
Sanych
Уже с Приветом
Posts: 7728
Joined: 10 Jan 1999 10:01
Location: OH->TX->MI->MA->VA->FL->...

Post by Sanych »

У Вас само устройство работает в качестве терминала для проги на VB или наоборот, PC выступает в роли терминала для 8051-based устройства? Сколько клавиш надо обрабатывать?

Я заимствовал код из юниксовых примеров и переделывал его под эмбедед платформы, с буферами и прочими фичами. Не знаю, как в Вашем случае, а у меня просто переопределялась функция низкого уровня в библиотеке, которая уже была встроена в набор putchar/getchar/fprint и т.д. Платформа была Мотороловская...
User avatar
dot
Уже с Приветом
Posts: 4461
Joined: 17 Jun 2003 04:41

Post by dot »

Sanych wrote:У Вас само устройство работает в качестве терминала для проги на VB или наоборот, PC выступает в роли терминала для 8051-based устройства? Сколько клавиш надо обрабатывать?

Я заимствовал код из юниксовых примеров и переделывал его под эмбедед платформы, с буферами и прочими фичами. Не знаю, как в Вашем случае, а у меня просто переопределялась функция низкого уровня в библиотеке, которая уже была встроена в набор putchar/getchar/fprint и т.д. Платформа была Мотороловская...

так, а можно более подробно, а то я все-же чайник, на С лет 6-7 не писала... Ничего про терминалы не поняла... :(

Там ситуация такая - есть 2 части - на С написанная программа(в процессе разработки), которая грузится в плату MSC - скажем, сервер. И к ней VB(еще конь не валялся) - клиент(?), который 1) собственно файл в плату загружает и потом в зависимости от ввода пользователя передает команды через RS232 на плату. Т.е. по идее, события клавиатуры и мыши обрабатываются VB-программой, но для стадии дебага - все равно пока принтф нужен пока.

Сколько клавиш - ну, пока десять набралось. Потом может быть и больше. Есть у меня Keil-компилятор, но у него что ассемблер, что С использует немного другой синтаксис, и исходников этих функций нет.

Примеры из Юникса... В sdcc вроде как printf, vprintf и прочие функции определены, надо только getchar/putchar переопределить. Я вроде нашла пример putchar функции, но он на ассемблере 8O и собственно, код этот просто пишет соотв. keycode в регистр (насколько я поняла).
,,, ^. .^ ,,,
ven27
Уже с Приветом
Posts: 5034
Joined: 11 Jan 2003 07:50
Location: ROV -> ICN -> LED -> ICN -> YYZ -> SFO -> ?

Post by ven27 »

Дело в том, что на ваш вопрос сложно ответить однозначно не зная формат команд которые будут использоваться для общения с платой и типа UART на плате.

Если все общение будет заключаться в достаточно редкой посылке однобайтной команды, то, ИМХО, городить буфферизацию и обработку прерываний совершенно излишне. putch() должен просто запихнуть байт в Tx регистр UARTа (предварительно подождав освобождения регистра), getch() - просто ждет выставления флага готовности в регистре контроля и затем читает байт из Rx регистра. (в принципе для реализации printf() больше и не нужно).

Если же нужен более-менее надежный прием/передача (например, вы отсылаете в плату буффер данных), то уже нужно делать буфферизацию, цепляться к прерыванию и особенно желательно делать контроль потока (если UART не поддерживает HW flow control, то делать программно XON/XOFF контроль).

Return to “Вопросы и новости IT”