реклама на сайте
подробности

 
 
> Пакет програмирования, все что нужно для написании программы
Starsystem
сообщение Apr 7 2007, 15:47
Сообщение #1





Группа: Новичок
Сообщений: 7
Регистрация: 7-04-07
Пользователь №: 26 843



Здрайсвуйти уважаемые!! Помогите пожалуста!
Имеется микроконтролер AT89C51 писал программки на ассемблере, решил перейти на Си. Скажите с чего начать и если можно дать ссылочки на комплект с программами:
1)Сама программа в чем писать
2)Компилятор чтобы из файла допустим test.c компилировал в test.hex

Заранее огромное спасибо!!!
smile.gif


--------------------
Изобретая новые технологии ты вспоминаешь старые!!!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Kirill Frolov
сообщение Jun 14 2007, 20:46
Сообщение #2


Частый гость
**

Группа: Новичок
Сообщений: 111
Регистрация: 10-02-07
Из: St.Petersburg, Russia
Пользователь №: 25 241



Цитата(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 умеет структуры, массивы и т.п. нормально показывать. Отладчик, да, противный, совсем. Скорей -- монитор. Дамп регистров выдаёт и ладно.


--------------------
[ZX]
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 09:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01419 секунд с 7
ELECTRONIX ©2004-2016