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

 
 
> Как сделать смешаный проект?, С *.c и *.asm файлами
777777
сообщение Apr 30 2008, 04:22
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



И calling convention я нигде не найду sad.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
mdmitry
сообщение Apr 30 2008, 08:55
Сообщение #2


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Возможно, Вам надо отредактировать makefile в плане подключения исходных текстов на ассемблере и ключей запуска для ассемблера. Кажется, в makefile в текущей версии не все поправили в флагах. Посмотрите bugreports на предыдущие выпуски Winavr. Где-то были сообщения о флагах. И еще, прототипы функций в *.с должны быть указаны.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
777777
сообщение Apr 30 2008, 09:19
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Кое-что начало получаться (хотя и не все sad.gif ), но главная проблема, которую я увидел - ассемблерный файл транслируется вовсе не AVR-овским ассемблером. Подозреваю что это транслятор, который берет промежуточный ассемблерный файл, который получается после компиляци C-файла. Он не понимает никаких директив - ни .equ, ни .def

PS. А без мейкфайла, непосредственно в IDE нельзя указать что файл является ассемблерным?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 30 2008, 10:34
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(777777 @ Apr 30 2008, 12:19) *
но главная проблема, которую я увидел - ассемблерный файл транслируется вовсе не AVR-овским ассемблером.
Хм... а каким? Возможно, вы имели ввиду атмеловский AvrAssembler? Так и не должен - у avr-gcc есть собственный ассемблер, с собственным синтаксисом. Документация в Doc/binutils/as.
Цитата(777777 @ Apr 30 2008, 12:59) *
Не факт.
Да, это не факт. Это больше, чем факт - так оно и есть на самом деле. gcc в обычном режиме передает ассемблерный текст от компилятора к ассемблеру через pipe, т.е. файл на диске не создается. Вы можете попросить его создать такой файл, но это уже из другой оперы. А выходом уже ассемблера является объектный файл, но поскольку промежуточное ассемблирование вызывается неявно, снаружи выглядит так, что выходом компилятора является объектный файл. Поправьте меня кто-нибудь, если я не прав.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
777777
сообщение Apr 30 2008, 11:23
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(Сергей Борщ @ Apr 30 2008, 14:34) *
Хм... а каким? Возможно, вы имели ввиду атмеловский AvrAssembler?

Ну да, конечно.
Цитата(Сергей Борщ @ Apr 30 2008, 14:34) *
Так и не должен - у avr-gcc есть собственный ассемблер, с собственным синтаксисом.

И наверное с собственным форматом объектных файлов.
Цитата(Сергей Борщ @ Apr 30 2008, 14:34) *
Документация в Doc/binutils/as.

О, вот это ценная вещь. И директива .global там действительно есть smile.gif
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 30 2008, 12:25
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(777777 @ Apr 30 2008, 14:23) *
И наверное с собственным форматом объектных файлов.
Естественно. А зачем его скрещивать с атмеловским ассемблером? avr-gcc представляет собой законченный набор инструментов.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
777777
сообщение May 1 2008, 11:45
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



В общем, все получилось за исключением одной "мелочи". В регистр Z надо поместить адрес таблицы, находящейся в памяти программ. Для этого надо его умножить на 2 и взять старшую и младшую часть. Но этот ассемблер, похоже, не позволяет выражений над перемещаемыми символами. Может таблицу надо поместить в какую-нибудь другую секцию?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 777777   Как сделать смешаный проект?   Apr 30 2008, 04:22
- - MrYuran   А вчём проблема? посмотрите примеры из состава GCC...   Apr 30 2008, 05:01
|- - 777777   Цитата(MrYuran @ Apr 30 2008, 09:01) А в ...   Apr 30 2008, 05:38
|- - aesok   Цитата(777777 @ Apr 30 2008, 09:38) Где о...   Apr 30 2008, 06:38
|- - MrYuran   Цитата(777777 @ Apr 30 2008, 12:19) Подоз...   Apr 30 2008, 09:30
||- - 777777   Цитата(MrYuran @ Apr 30 2008, 13:30) посл...   Apr 30 2008, 09:59
|- - mdmitry   Цитата(777777 @ Apr 30 2008, 13:19) PS. А...   Apr 30 2008, 09:36
|- - xelax   Цитата(Сергей Борщ @ Apr 30 2008, 14:34) ...   May 4 2008, 05:46
- - InsolentS   Пишу так Код EXPORT Test EXTERN func1 ...   May 3 2008, 20:23
|- - 777777   Цитата(InsolentS @ May 4 2008, 00:23) Пиш...   May 4 2008, 11:03
|- - aesok   Цитата(777777 @ May 4 2008, 15:03) В нем ...   May 4 2008, 11:46
|- - 777777   Цитата(aesok @ May 4 2008, 15:46) Опишите...   May 4 2008, 13:02
- - aaarrr   ИМХО, правильнее было бы так: Код EXPORT Test ...   May 3 2008, 20:54
|- - InsolentS   Хмм..в случае с Си действительно работает. А как ж...   May 3 2008, 21:18
|- - meister   Цитата(InsolentS @ May 4 2008, 01:18) Хмм...   May 4 2008, 05:51
- - ReAl   GNU as для AVR поддерживает байтовую адресацию фле...   May 4 2008, 19:42
- - _Pasha   Пока большинство с успехом пользуется С, у меня пр...   May 29 2008, 13:25
- - singlskv   Цитата(_Pasha @ May 29 2008, 17:25) Плаги...   May 29 2008, 15:33


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

 


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


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