Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Пакет програмирования
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > MCS51
Starsystem
Здрайсвуйти уважаемые!! Помогите пожалуста!
Имеется микроконтролер AT89C51 писал программки на ассемблере, решил перейти на Си. Скажите с чего начать и если можно дать ссылочки на комплект с программами:
1)Сама программа в чем писать
2)Компилятор чтобы из файла допустим test.c компилировал в test.hex

Заранее огромное спасибо!!!
smile.gif
scifi
У меня сложилось впечатление, что большинство использует набор Keil для C51. Туда входит "интегрированная среда разработки" с менеджером проектов, редактором, отладчиком. Естественно, там есть ассемблер, компилятор Си, компоновщик, стандартная библиотека Си. Есть симулятор, который симулирует не только процессор, но и периферийные устройства микроконтроллера. В общем, всё, что нужно.
Halfback
Starsystem
Создавайте проекты в кейле. Там отличный отладчик и можно симулировать работу МЦУ вкупе с переферией.
evg123
Есть KEIL, Franklin и IAR. Есть ещё и PASCAL-51. Самый лучший - KEIL. Поищите на форуме ссылки где его взять. Войдите на фирменный сайт и скачайте trial-версию. Она вскрывается путём нехитрых манипуляций. Я когда-то выкладывал здесь как я это делал два года назад. Думаю, что сработает и сейчас.
Starsystem
Недавно нашел вот такой компилятор С-51 попробывал вроде ничего а на счет Keil уж очень она к написанию самого языка придерается, незнаю правда может и можно в ней писать но мне как новичку она показалась не очень удобной. Но все равно всем спасибо за советы!!!
Alsha
Если оставаться на "светлой стороне силы" и не тратить денег, то можно взять SDCC (sdcc.sourceforge.net). GPL, есть исходники. Отличный компилятор Си для архитектуры 8051, успешно использую. В качестве редактора можно применить что угодно, например Блокнот :-). Я пишу в Vim.
DSIP
Есть ещё пакет RIDE IDE (компании Raisonance), по содержанию похож на Keil - тоже в стиле "всё в одном".
Slug
К тем кто пользовал Silabs IDE + SDCC. Если можно то по-подробнее, какие есть недостатки? Хочу попробовать вместо Keil. Жизнь заставляет идти в бедные джедаи maniac.gif
tsvtsvtsv
Цитата(Starsystem @ Apr 13 2007, 17:32) *
Недавно нашел вот такой компилятор С-51 попробывал вроде ничего а на счет Keil уж очень она к написанию самого языка придерается, незнаю правда может и можно в ней писать но мне как новичку она показалась не очень удобной. Но все равно всем спасибо за советы!!!

Не заморачивайтесь, однозначно Keil!, привыкните быстро.
Kolia
Цитата(Slug @ May 8 2007, 07:49) *
К тем кто пользовал Silabs IDE + SDCC. Если можно то по-подробнее, какие есть недостатки? Хочу попробовать вместо Keil. Жизнь заставляет идти в бедные джедаи maniac.gif


1. Нет симулятора.
2. Отсутствует галочка для генерирования hex.
3. В режима отладки регистры периферии отображаются как есть ( в кейле все наглядно smile.gif ) приходится постоянно смотреть в datasheet.
Kirill Frolov
Цитата(Starsystem @ Apr 7 2007, 19:47) *
[font=Tahoma]
Имеется микроконтролер AT89C51 писал программки на ассемблере, решил перейти на Си. Скажите с чего начать и если можно дать ссылочки на комплект с программами:


Размещение ссылочек на комплект с ворованным KEIL C51...

Цитата
1)Сама программа в чем писать


Очевидно, в текстовом редакторе. В том, который больше нравится. Разумеется не
в notepad, а в чём-то приспособленом для программных текстов. Лично я использую Vim.
Кому-то нравится multi-edit или emacs. Или в "IDE". Но приличных IDE сильно меньше,
чем разнообразных компиляторов. А microchip так вообще выбора не оставляет.
Редактор должен уметь подсветку синтаксиса, автодополнение, навигацию по исходникам,
"фолдинг" (свёртку строк текста), поиск по группе файлов, поиск и замену с использованием регулярных выражений, операции над блоками текста, множественные буферы обмена,
возможность разделения экрана на множество окон, закладки, отмену редактирования и другие функции присущие современным редакторам "для программиста"

Цитата
2)Компилятор чтобы из файла допустим test.c компилировал в test.hex


Компилятор -- это несколько обобщённое понятие, ПРОГРАММНЫЙ КОМПЛЕКС, если по-русски. Непосредственно компилятор, cc (c51) выполняет лишь функцию разбота опций командной строки и вызова соответствующих программ в соответствующем порядке (C-препроцессора, кодогенератора, ассемблера, компоновщика...) Впринципе, если бы компоновщик из состава KEIL C умел непосредственно генерировать hex было бы достаточно задания соответствующей
командной строки компилятору.

Проблема в том, что преобразованиями форматов компилятор, типично, не занимается. Для этого, обычно, используется отдельная программа. obj2hex у hitech, oh51 у keil, objcopy у FSF (GNU)... Из программы-компилятора (cc) не управляемая. Поэтому *.hex из *.c получается, обычно, как минимум в 2 этапа -- вначале появляется объектный файл (*.omf), потом из него генерируется hex.

Кроме того, часто более-менее серьёзный проект размещается более чем в одном файле,
для разных файлов применяются разные правила компиляции, отдельно задаётся список
аргументов (опций) для компоновщика... В итоге процесс сборки программы одной командой вряд ли может быть выражен. Для чего больше подходит запись правил или сценария сборки программы на каком-либо высокоуровневом ЯП. Впринципе, можно обойтись и *.bat-файлом, задав в нём полную последовательность сборки всех частей программы. При этом обнаружится пара неудобств: при запуске сценария будут пересобираться все модули программы (даже если они не изменялись), и правила сборки на столь примитивном языке будет записать сложно. Практически есть специализированные ЯП. Классикой является использование make, где сценарий сборки записываются не в императивном виде, в виде последовательности инструкций, а в виде правил преобразований одних типов файлов в других, make же самостоятельно решает какие из них применять. Может показаться излишне сложным, но на практике это сильно упрощает описание сценария сборки.


Цитата(Slug @ May 8 2007, 07:49) *
К тем кто пользовал Silabs IDE + SDCC. Если можно то по-подробнее, какие есть недостатки?


У SDCC? Ну -- поделки финских студентов...

У Silabs IDE? Тоже вобщем ещё та поделка. С другой стороны, альтернативы
ей как ОТЛАДЧИКУ-МОНИТОРУ для работы с MCU фирмы silabs (cygnal) -- нет.
Т.е. просто нет. Но как редактор (IDE) её использовать никакого смысла нет.
Она просто нефункциональна. В итоге у меня пишется в Vim, собирается с
помощью make и keil c51, а отлаживается, если надо, в silabs IDE.

Цитата
Хочу попробовать вместо Keil. Жизнь заставляет идти в бедные джедаи maniac.gif


Вместо -- не получится. Это не более чем редактор с функцией вызова компилятора и встроенный монитор-отладчик. Собственно компилятор ещё нужен, как минимум.




Цитата(Kolia @ May 11 2007, 09:54) *
1. Нет симулятора.


А симулятора C8051Fxxxx ВООБЩЕ НЕТ... (и в keil uvision тоже).

Цитата
2. Отсутствует галочка для генерирования hex.


Я даже догадываюсь почему. Получить hex из 4-х банок для загрузки в 128 килобайт FLASH нетривиально, мягко выражаясь. И, догадываюсь, тот же keil без применения рук по месту этого не умеет. hex -- он принципиально ограничен в 64кб. Да и зачем нужен hex? Эта IDE прямо из *.omf и символы берёт и программу зашивает. Разве что программатором ихним (flashutil) если. Тот только *.hex понимает. Я вобщем мучался с ним, с банками. Итог такой: сейчас программатором раз и навсегда загружается 2-кбайтный загрузчик (bootloader). Который через COM-порт принимает остальной код в виде зашифрованного *.bin. И с защитой программы всё в порядке, и с банками никаких мучений. *.bin получается из того же hex, hex из omf...

Цитата
3. В режима отладки регистры периферии отображаются как есть ( в кейле все наглядно smile.gif ) приходится постоянно смотреть в datasheet.


В gdb оно тоже так же отображается. Разве, что можно конкретный бит подглядеть... Другое дело, что gdb умеет структуры, массивы и т.п. нормально показывать. Отладчик, да, противный, совсем. Скорей -- монитор. Дамп регистров выдаёт и ладно.
Starsystem
Ребят я понимаю что использования различных комплексов таких как Keil и многих других облегчает жизнь. Но мне нужен именно пакет с компилятором Си. Пишется bat-ник и прожки компилируются вот на таком уровне, а использования громозких программ в большей степени кроме как компиляции ни чего не использую. Симулировать можно и в протеусе.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.