Программирование МК без ассемблера и готовых приложений

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
kras
Опытный кот
Сообщения: 782
Зарегистрирован: Вт апр 26, 2011 18:37:06

Программирование МК без ассемблера и готовых приложений

Сообщение kras »

Вот тут http://radiosxema.comli.com/index.php/s ... /25-dolgiy, например, немного рассказывается о коде для перфокарты. Но так и не врубаюсь, что за .hex и как мутится его загрузка. Может есть такой топик, тогда сорри. В связи с тем, что у меня не получается собрать уже 6 схему com-программатора (наверное, с компом что-то), хочу изучить, как все это делать вручную. Как видим, hex файлы короткие, а самих команд еще меньше, если это команды. Цель: генераторами импульсов (либо с помощью MATLAB и тп, либо за счет С++ библиотек, ну про это я знаю немного) прошить МК хоть каким-нибудь кодом, причем сам код написать вручную. Ищу литературу и статьи про это, а если можете помочь ответом, то привожу код прошивки, на примере которого хочу постичь это дело:

Код: Выделить всё

LIST        P=PIC16F84A
            __CONFIG    H'3FF2'
STATUS      EQU         H'0003'
TRISA       EQU         H'0005'
PORTA       EQU         H'0005'
TRISB       EQU         H'0006'
PORTB       EQU         H'0006'
            org         0           ; начало программы             
; подготовительные моменты
            bsf         STATUS,5    ; переход в Банк 1 
            movlw       b'00011111'
            movwf       TRISA
            clrf        TRISB
            bcf         STATUS,5    ; переход назад в Банк 0
            clrf        PORTB       ; очистка порта
m1          movlw       b'01010101'
              movwf       PORTB
end
Насчет схемы: хочу исходить от 5 проводков. Провода: 1 земля, 1 питание, 1 - данные, еще 2 - какой-то контроль? Можете кто-нибудь эти моменты в даташите указать, а то сейчас я сквозь него смотрю:)
На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
Реклама
Аватара пользователя
Pavel V.
Мявтор!
Сообщения: 384
Зарегистрирован: Ср май 17, 2006 18:39:01
Откуда: Москва
Контактная информация:

Re: Программирование МК без ассемблера и готовых приложений

Сообщение Pavel V. »

То, что ты привел в сообщении - исходный код на ассемблере, а не бинарный файл прошивки (то, что ты называешь hex). Прежде чем залить в процессор, его надо скомпилировать. Курсач, или действительно интересно? :)
Реклама
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: Программирование МК без ассемблера и готовых приложений

Сообщение ChipKiller »

kras писал(а):...прошить МК хоть каким-нибудь кодом, причем сам код написать вручную.
... чтобы сам код написать вручную нужно наизусть помнить мнемокоды команд и "в голове" высчитывать смещение адресов .... (вообще-то компиляторы и созданы, чтобы лишить нас этих "удовольствий" )
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Программирование МК без ассемблера и готовых приложений

Сообщение pyzhman »

Машинные коды один хрен писать надо будет через ассемблер. Это раз. Программатор спаять надо будет по-любому. Это два. Чтобы залить прошивку без программатора, т.е. просто по проволкам, надо знать протокол шитья/чтения и язык/железо машины, с которой будете заливать. Это три. Короче просто так не возьмете.
Docendo discimus
Реклама
Эиком - электронные компоненты и радиодетали
kras
Опытный кот
Сообщения: 782
Зарегистрирован: Вт апр 26, 2011 18:37:06

Re: Программирование МК без ассемблера и готовых приложений

Сообщение kras »

Курсач, или действительно интересно?
Интересно. А вообще я хотел уже забить вообще на программируемые девайсы, но как-то пока ничего интереснее не нашел, немного в программировании по виндовз пошарахался, и решил вернуться. Я писал с правильным смыслом, перечитай первый пост. Или объясни, почему так понял;)
У знакомого есть программатор, я свой не могу собрать, а так я уже пару жестких опытов над девайзом ставил, шил:) Даже калека без 2 ног есть;( Теперь просто задачи посерьезнее стали, да и не охото всем готовым без осознавания происходящего пользоваться, ну и как-то сложно влиться, решил тут поискать поддержки.
На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
Реклама
kras
Опытный кот
Сообщения: 782
Зарегистрирован: Вт апр 26, 2011 18:37:06

Re: Программирование МК без ассемблера и готовых приложений

Сообщение kras »

phyz-man, вы посмотрите в сторону работы с портами под виндовс 2000>. Есть готовые средства даже. Я про это говорю. Все с ног на голову перевернули, я хочу кустарного программирования, я не дорос до программатора:) Может вы и доросли, тогда на уровне сигналов объясните, как мой приведенный код вшивается в МК и через какие ноги. Модель PIC16F84A.
т.е. просто по проволкам
в той же первой ссылке, которую я привел, написано что-то типа того, что сейчас все необходимые устройства для прошивки встроены в МК, остается лишь подавать импульсы данных и поддерживать контроль. Беру схему 5 проводков и строчу данные на низкой частоте, либо программно на высокой. Я вас не понял.
Насчет компилятора: я использую пока MPLABовский MPASM, но писать проги на нем и на masm - две разные вещи, по-моему. Может и с мнемокодами что напутано? Где порыть в сторону мнемокодов?
Последний раз редактировалось kras Ср апр 27, 2011 16:51:21, всего редактировалось 3 раза.
На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
Реклама
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: Программирование МК без ассемблера и готовых приложений

Сообщение DX168B »

Обратитесь в местную обучалку. Там объясняются принципы работы, программирование и прошивка МК. Всё на на простом языке. Только компилятор там предлагают avrasm, но лучше скачайте AVR Studio 4. В ней намного удобнее. На счёт программатора - попробуйте UniProf.
Там есть поддержка простого программатора Громова для COM порта и возможность прошивки через LPT порт просто пятью проводками. Но только всё это для микроконтроллеров, семейства AVR (ATTINY , ATMEGA )

Да, кстати. МК - это не EEPROM с параллельными шинами, которую можно прошить хоть набором тумблеров, а устройство с последовательным обменом, у которого есть ещё свой протокол и интерфейс обмена данными.
I am DX168B and this is my favourite forum on internet!
Аватара пользователя
abc
Друг Кота
Сообщения: 3687
Зарегистрирован: Чт мар 20, 2008 01:06:40
Откуда: Севастополь

Re: Программирование МК без ассемблера и готовых приложений

Сообщение abc »

DX168B писал(а):МК - это не EEPROM с параллельными шинами, которую можно прошить хоть набором тумблеров, а устройство с последовательным обменом, у которого есть ещё свой протокол и интерфейс обмена данными.
Ну почему же ? Давайте сообща зафигачим аффтору схему из 6+8 тумблеров, сдвигового регистра, пары-тройки одновибраторов и кнопки "такт" !

kras, если все так прискорбно и
Теперь просто задачи посерьезнее стали
, то можно не мять сиськи, а отложить деньги хотя бы с обедов, и купить, наконец, пресловутый PonyProg.
>(*.*)<
Котище огромно, ушасто, пушисто, глазасто, зубасто, колючелапо и мявай. (c)
Аватара пользователя
BCluster
Собутыльник Кота
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев
Контактная информация:

Re: Программирование МК без ассемблера и готовых приложений

Сообщение BCluster »

Поверьте, проще установить программу, чем страдать херней ввиде изучения протокола программирования. А судя по вашим постам вам это кажется более простым
Аватара пользователя
Abadonna
Встал на лапы
Сообщения: 98
Зарегистрирован: Сб сен 05, 2009 08:29:53

Re: Программирование МК без ассемблера и готовых приложений

Сообщение Abadonna »

Пе заблуждайте человека, он пик использует, авр студия ему как-то не очень в помощь будет :)
Крас, не заморачивайся с протоколами. Хотя бы пока не заморачивайся. Если уж действительно интересно - через 3 месяца инфы в голове накопится, и "оно само поймется", иначе какой смысл мучить моск.

Программатор собирать - это целое искусство, имхо. Я их собирал штук 10, наверное, всяких разных. И еще буду собирать. ибо карма у меня такая, видимо. Из этого изобилия заработал только 1 :) Как раз под пики. Потом обиделся и купил за стопицот денег в магазе - и не парюсь. В инете вон моно заказать опятьже, или тут с кем договориться за валерьянку, или мастер-кит заказать, он (программатор начального уровня) стоит недорого. Зато нервы, половина денех и тонна времени будет целее.


Встречный вопрос: нафига тебе "на уровне сигналов" расписывать процесс загрузки? В любом даташите .кстати, есть описание этого таинства, да и в книженках тоже упоминается технология. И потом, без программатора у тебя один фиг ничего не получится. Ну нельзя МК прошить без программера :) У компа ком-порт видел? Слабо нацепить микрофон и свистеть в него на скорости 9600 бод? Мне слабо :) Так и тут, если мне память не изменяет, то кроме собственно подачи прошивки в последовательном виде, там еще и временные характеристики выдерживать нужно. Это же цифровая техника! 21 век!

На счет компиляторов. Уважаемый, открою Вам страшную тайну, тока не падай со стула: это не х86 процессор, так что мнемокоды тут совсем не от masm`a. Этот мнемокод вполне правилен, не бойся.

В общем, качни книжецу, какую-нить любую типа "10 устройств на микроконтроллере" и почитай 10 минут - там описаны начала, все ясно и кристально понятно :) Раз у знакомого программатор есть - запустить первый хэловорд не составит труда :) Поморгаешь светодиодиком - счастья будут полные штаны, как у меня в свое время :) Удачи :)
Все будет хорошо, я узнавал!
Аватара пользователя
Dmitry Dubrovenko
Поставщик валерьянки для Кота
Сообщения: 2360
Зарегистрирован: Вс янв 09, 2011 16:51:39
Откуда: Санкт-Ленинград
Контактная информация:

Re: Программирование МК без ассемблера и готовых приложений

Сообщение Dmitry Dubrovenko »

Abadonna писал(а):ибо карма у меня такая, видимо. Из этого изобилия заработал только 1
Плохая у Вас карма. :)
Я собрал всего два, и оба заработали.

kras писал(а):хочу исходить от 5 проводков. Провода: 1 земля, 1 питание, 1 - данные, еще 2 - какой-то контроль? Можете кто-нибудь эти моменты в даташите указать, а то сейчас я сквозь него смотрю
Если уж хотите изучит протокол программирования, то надо смотреть не даташит, а документ под названием "Programming Specification" (ищется на том же сайте Майкрочипа, по названию МК). Только поверьте, что не с этого надо начинать.
А программаторы типа JDM и Extra-PIC, и есть те самые "пять проводков". Всю работу выполняет программа-программатор, и выводит сигналы на линии порта. А "железная" часть программаторов, по сути, обычный буферный каскад.

Ну, а если так уж интересно работать с машинными кодами, могу подкинуть програмку, для изучения CPU i8080 (он же советский - 580ВМ80). Там можно заносить побайтно программный код, и наблюдать за состоянием всех регистров.
ICQ нет, и, в ближайшее время, не будет.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3384
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Программирование МК без ассемблера и готовых приложений

Сообщение Мурик »

kras писал(а):Цель: генераторами импульсов (либо с помощью MATLAB и тп, либо за счет С++ библиотек, ну про это я знаю немного) прошить МК хоть каким-нибудь кодом, причем сам код написать вручную.
Вот описание алгоритма программирования PIC контроллеров с примерами кода для программатора, типа JDM или Extra-PIC.
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6319
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Программирование МК без ассемблера и готовых приложений

Сообщение Jack_A »

kras писал(а):Вот тут http://radiosxema.comli.com/index.php/s ... /25-dolgiy, например, немного рассказывается о коде для перфокарты.
Перечитал статью А.С.Долгого - где там хоть слово про перфокарты ? Товарисч, видимо, не представляет, что это такое ( мне в свое время пришлось с ними помучиться ) и употребил это слово для большей учености.
" - Ты фунаменальный бундеркиндет !
- А что это такое ?
- Да хрен его знает.
- А говоришь...
- Так слово красивое !
" (С) "Свадьба в Малиновке"

Рекомендую прочесть про п-карты в Вики, и по ссылкам проитись - уверяю, будет интересно. Но ни к ПИКам, ни к АВРам - ни малейшего касательства.

Кстати, в любимом нашем журнале "Мурзилка" ( пардон, "Радио" ) была статья, как прикрутить к программируемому калькулятору перфосчитку - превращаем его в почти полноценный комп, можно хранить на п/л библиотеку программ. У меня к тому времени был и программируемый МК, и цельнотянутая польская фотосчитка ( ну спросите меня - а на хрена оно тебе ! ) , но природная лень не позволила заняться этой дурью, о чем не жалею.
А нормальный комп появился у меня только лет через 15.
Аватара пользователя
Abadonna
Встал на лапы
Сообщения: 98
Зарегистрирован: Сб сен 05, 2009 08:29:53

Re: Программирование МК без ассемблера и готовых приложений

Сообщение Abadonna »

Dmitry Dubrovenko писал(а):Ну, а если так уж интересно работать с машинными кодами, могу подкинуть програмку, для изучения CPU i8080 (он же советский - 580ВМ80). Там можно заносить побайтно программный код, и наблюдать за состоянием всех регистров.

Или пойти не туда, куда послали, а еще дальше: поставить квартус, скачать проект Z-PC (или как-то так), и наблюдать не толкьо регисты, но и вообще микрокод :) или даже внести свои новшества :) Вот нету у i80386, например, встроенного первокартора, а без него жизнь не мила - сделаем!
Все будет хорошо, я узнавал!
Аватара пользователя
Abadonna
Встал на лапы
Сообщения: 98
Зарегистрирован: Сб сен 05, 2009 08:29:53

Re: Программирование МК без ассемблера и готовых приложений

Сообщение Abadonna »

Dmitry Dubrovenko писал(а):
Abadonna писал(а):ибо карма у меня такая, видимо. Из этого изобилия заработал только 1
Плохая у Вас карма. :)
Чем это она плохая? :) Намедни померял генератором на 17 - вроде ничего, еще можно пользоваться :))) Главное не давать предельных нагрузок, так, на серединке остановиться - и ого-го! Я еще ничего! Правда, одышка вот замучала, и эти хрипы по ночам, и вот тут вот колет иногда, а потом там тянет... :dont_know:
Все будет хорошо, я узнавал!
kras
Опытный кот
Сообщения: 782
Зарегистрирован: Вт апр 26, 2011 18:37:06

Re: Программирование МК без ассемблера и готовых приложений

Сообщение kras »

то надо смотреть не даташит, а документ под названием "Programming Specification
Хоть какая-то мысль появилась. Але, я радиотехник по специальности. Параллельно пробую эмулировать i8086 через ISE. Что вы хотите, если кроме того, что я не знаю протоколов, я не имею пока дома осциллографа. Хотя его не сложно замутить, сейчас этим, может быть, займусь.
Намедни померял генератором на 17 - вроде ничего, еще можно пользоваться
У кого какие приоритеты. Я, например, уже умею тырить чужие решения в области, ну и покупать я умею. Теперь я хочу тырить чуть поменьше и осознавать хотя бы, что я подвожу к МК. А там, надеюсь, к программатору приду.
слово про перфокарты ? Товарисч, видимо, не представляет, что это такое
Я не знаю, что это такое, знаю только, что hex-код создавался под перфокарты. Только не думайте, что я не видел перфокарты:) Я прямо так и пишу: "так и не врубаюсь, что за .hex". Читайте книжки повнимательнее, я также сначала смотрю на книгу, думаю, на кой она вообще сдалась в этой жизни, ее писал стремный практикант для повышения авторитета, а через полгода она оказывается моим основным учебным пособием, где я долго и мучительно вычитываю абзац по полчаса:) Простите:)
На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: Программирование МК без ассемблера и готовых приложений

Сообщение DX168B »

.hex - это результат компиляции программы, которую вы выложили в первом посту.
Чтобы получить .hex файл, необходимо скомпилировать Ваш исходник.
Для написания программы и для последующей её компиляции нужен компилятор или среда разработки. Например для ПИКов это среда MPLAB. Качается с сайта МикроЧипа.
В ней Вы создаёте проект и выбираете свою модель МК. После подготовки проекта, копипастите в среду Ваш набор комманд и компилируете. В папке с проектом должен появится скомпилированный .hex файл, если в программе нет ошибок. Это файл с названием проекта и с расширением .hex
Этот файл потом и заливается программатором в МК.
Если Вы планируете далее самим писать программы, то как раз вам и нужны будут среда разработки + программатор.
Я сам ПИКами не занимаюсь, сам я AVRовец, но про ПИКи читал и знаю их архитектуру.
I am DX168B and this is my favourite forum on internet!
Аватара пользователя
md5sum
Вымогатель припоя
Сообщения: 672
Зарегистрирован: Вт окт 27, 2009 22:39:19
Откуда: Москва

Re: Программирование МК без ассемблера и готовых приложений

Сообщение md5sum »

Тема-то растет! Добавить масла?
В связи с тем, что у меня не получается собрать уже 6 схему com-программатора
Прошу прощения, но не вяжется с
Але, я радиотехник по специальности
Касательно темы
Программирование МК без ассемблера и готовых приложений
, то варианта 2:
1. Никак (без изврата)
2. Извратиться и попросить реализовать вариант от abc :Ну почему же ? Давайте сообща зафигачим аффтору схему из 6+8 тумблеров, сдвигового регистра, пары-тройки одновибраторов и кнопки "такт" !

Теперь немного практики: проверить COM порт компа не пробовали? Для проверки достаточно соеденить 2 и 3 выводы и в простой терминалке (при отключенных CTS/RTS DTR/DTE) набирать любые символы и они должны возвращаться (печататься).
Если COM порт рабочий, то может есть смысл проверить ВСЕ 6 схем на качество сборки, а не развивать заранее бредовую тему про програмирование MK без "оснастки"

А за поднятое настроение отдельное спасибо! :
знаю только, что hex-код создавался под перфокарты
— Не говорите мне что делать и я не скажу куда Вам идти...
kras
Опытный кот
Сообщения: 782
Зарегистрирован: Вт апр 26, 2011 18:37:06

Re: Программирование МК без ассемблера и готовых приложений

Сообщение kras »

Прошу прощения, но не вяжется с
Ага, я уже сам в шоке:) Рядом пацаны собирают, а у меня не получается, но с ними некогда пока пообщаться насчет этого, да и не интересно, охота самому разобраться. Порт рабочий (да уж, написать обязательно надо, что я ставил перемычку), но программа для прошивки никак не хочет общаться с программатором. Осциллограммы посмотреть пока не могу, с портом вообще немного умею работать, сейчас копаю и в эту сторону. Но интерфейс МК вообще хз, что да как. По нету лазил, кстати, есть заявления, что у них прямые руки и не работает та или иная схема. Но я пока не понимаю, почему так может быть. Тем более с таким количеством схем у меня. Может серьезно по неграмотности где-нибудь накосячил.
Извратиться и попросить реализовать вариант от abc :Ну почему же ? Давайте сообща зафигачим аффтору схему из 6+8 тумблеров, сдвигового регистра, пары-тройки одновибраторов и кнопки "такт" !
А че копипастить, когда можно сразу привести эпюры? Ты подливаешь масло, я ищу реальной помощи:)
ЗЫ не переводим тему:(
На практике можно не успеть сделать того, что можно хорошо обосновать в теории. Но без практики теория может отдаляться от нее, и когда они встретятся снова - не узнает даже неприкосновенное шампанское профессора в лаборатории. Моя практика: robofeya.ru
Аватара пользователя
coredumped
Опытный кот
Сообщения: 838
Зарегистрирован: Вт апр 12, 2011 18:38:19
Откуда: с Земли

Re: Программирование МК без ассемблера и готовых приложений

Сообщение coredumped »

pyzh_man писал(а):Машинные коды один хрен писать надо будет через ассемблер. Это раз. Программатор спаять надо будет по-любому. Это два. Чтобы залить прошивку без программатора, т.е. просто по проволкам, надо знать протокол шитья/чтения и язык/железо машины, с которой будете заливать. Это три. Короче просто так не возьмете.
Вы не поверите, но когдато, лет так наверное 20 уже назад, я вручную, те с помощью бумаги, карандаша и справочника (компа тогда не было) написал программку тестирования памяти для станочка ЧПУ (на базе Электроника-60). Она конечно была маленькая, но секаса с ней было :)) Но, на сегодняшний день, такой метод - это хардкор садо-мазо :shock:
Все будет только лучше, в крайнем случае - хуже.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»