Ассемблер и c++, совместное использование.

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Аватара пользователя
warlock114
Родился
Сообщения: 5
Зарегистрирован: Вт апр 07, 2009 06:28:24

Ассемблер и c++, совместное использование.

Сообщение warlock114 »

Возникла необходимость совместить язык программирования си++ и ассемблер для написания программы для мк. attiny2313, первой попыткой был avrstudio4.18 там доступны два компилятора: первый- AtmelAVRAssembler, второй-AVR GCC(WinAvr), асcемблер и си++ соответственно но их можно использовать только по отдельности, тоесь писать только на ассемблере в первом случае, и во втором только на си, знаю что можно интегрировать код асм
в код си++ командами #asm..код..#asmend(вроде...) но попытка не увенчалась успехом, вернее две попытки, вторая- я попытался интегрировать код на асме в среде CVAVR тоже, при настройке портов возникла ошибка-уже при линковке(Shift+f9) как я понял, компилятор не понял команду out Portd, R19;( предварительно в регистр записав значение) еще думал над тем как интегрировать код си++ непосредственно в асм. может быть прописав как функцию(си++) и вызывать в начале кода(асм), типа того.. .include "c++.h":) Если есть предложения пожалуйста дайте разъяснительный ответ. С большим уважением Алексей.
Реклама
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: Ассемблер и c++, совместное использование.

Сообщение DX168B »

warlock114 писал(а):как я понял, компилятор не понял команду out Portd, R19;
По тому что компилятор не понял, что такое PortD.
Попробуйте записать вместо PortD его физический адрес(значение). Адрес можно узнать из АСМовских заголовочников(например для тини 2313 будет файл tn2313def.inc) под конкретный контроллер. Мне пока не приходилось делать ассемблерных вставок с Сишных кодах, по этому не знаю, сработает или нет.
I am DX168B and this is my favourite forum on internet!
Реклама
Аватара пользователя
andrey_artemov
Встал на лапы
Сообщения: 136
Зарегистрирован: Сб авг 15, 2009 21:26:50
Откуда: Пенза
Контактная информация:

Re: Ассемблер и c++, совместное использование.

Сообщение andrey_artemov »

DX168B писал(а):Мне пока не приходилось делать ассемблерных вставок с Сишных кодах, по этому не знаю, сработает или нет.
Как это не приходилось - а как-же

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

 #asm("sei")
:)) :)) :))
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: Ассемблер и c++, совместное использование.

Сообщение DX168B »

Ну это да, а вот работать с периферией и портами при помощи вставок не приходилось.
В Сях под AVR я ещё новенький, а вот АСМ уже как самого себя знаю. :)
C++ для ПК вроде знаю нормально. Писал всякую хрень под MFC и консольные приложения в Visual Studio. :)

Вот что я нарыл в заголовочнике тн2313й:
tn2313def.inc писал(а): .equ PORTB = 0x18
Значит попробуй записать так:

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

out 0x18, r19
I am DX168B and this is my favourite forum on internet!
Реклама
Эиком - электронные компоненты и радиодетали
Закрыто

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