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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Пытаюсь освоить ASM вставку
zltigo
сообщение Dec 2 2008, 19:41
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(_Pasha @ Dec 2 2008, 21:29) *
и volatile

Не нужно. Совсем не нужно.
Цитата
Из асма лучше не вызывать сишных функций с параметрами.

Соблюдая соглашения совершенно без проблем.



Цитата(QuickWitted @ Dec 2 2008, 20:58) *
Первое там много и под все платформы

Так читайте под свою.


Цитата(QuickWitted @ Dec 2 2008, 16:59) *
Я основной..

По-русски "Об Авторе", а не "О Авторе"...


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Dec 2 2008, 20:11
Сообщение #17


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Неа, Об авторе.
Go to the top of the page
 
+Quote Post
QuickWitted
сообщение Dec 3 2008, 16:18
Сообщение #18


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596



Ну и финальный вопрос

как в си указать куда компилить.

в асме было
.org адресс


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Dec 3 2008, 16:48
Сообщение #19


Гуру
******

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



Цитата(QuickWitted @ Dec 3 2008, 18:18) *
в асме было
.org адресс
А в СИ (да и в асмах тоже) этим занимается линкер. Читайте описание ld в binutils.


--------------------
На любой вопрос даю любой ответ
"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
QuickWitted
сообщение Dec 4 2008, 06:07
Сообщение #20


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596



Прочитал предложенную документацию, но понимания не прибавилось...
может я конечно слепой, но там разжёвано как вставить одну или пару команд на асме
проще говоря списком...

а мне не списком в кавычках а целиком прилепить внешний асм файл.
прочитал дважды так ответа и не нашёл.
Т.к. были интенденты поясню в файле асм код типа “inc R16”

тот пример что я слал цепляется по #include из *.s файла, а он в свою очередь из *.o файла напрямую из маке филе...
просмотрел построчно - ничего похожего на запись - далее код АСМ я не видел...
там вперемешку СИ и асм...

любые мои эксперименты с include приводят к тому что си сообщает что это не си команды...

Т.е. вопрос остаётся в силе "Как прицепить асм файл?"

можно в любом из вариантов
1 - процедура без параметров объявленная в этом файле
2 - процедура оболочка на СИ в которую вставляется файл с асм кодом. (предпочтительнее)

С массивами разобрался - спасибо...
с линкером в процессе...


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post
zltigo
сообщение Dec 4 2008, 06:32
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(QuickWitted @ Dec 4 2008, 09:07) *
......

Понимание самых основ отсутствуют начисто sad.gif. Ибо 'ASM' файл-ы никакими-то 'include' цепляются, а из них ASSEMBLER делает ОБЪЕКТНЫЕ файл-ы. Из 'C' файлов уже КОМПИЛЯТОР (возможно через стадию ASM) делает тоже обьектные файлы, а уже ЛИНКЕР собирает эти объектые файлы в единое целое, причем, вместе с БИБЛИОТЕКАМИ.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
QuickWitted
сообщение Dec 4 2008, 07:50
Сообщение #22


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596



Цитата(zltigo @ Dec 4 2008, 11:32) *
Понимание самых основ отсутствуют начисто sad.gif.


И не спорю - второй день на си смотрю...
поэтому и спросил в теме "В помощь начинающему"

Цитата(zltigo @ Dec 4 2008, 11:32) *
Ибо 'ASM' файл-ы никакими-то 'include' цепляются, а из них ASSEMBLER делает ОБЪЕКТНЫЕ файл-ы. Из 'C' файлов уже КОМПИЛЯТОР (возможно через стадию ASM) делает тоже обьектные файлы, а уже ЛИНКЕР собирает эти объектые файлы в единое целое, причем, вместе с БИБЛИОТЕКАМИ.


И какой алгоритм дальнейших действий из этого следует?
ну назовём их приконекченными через стадию ОБЪЕКТНОГО файла.
но суть то осталась - файл входящий в проект.

Что асм файлы званого пересобираются при сборке - вижу
Что асм файлы конектятся к проекту и в них находятся ошибки - вижу

единственное что явно из этого следует, так это то, что пункт 2 невозможен...
"2 - процедура оболочка на СИ в которую вставляется файл с асм кодом. "

Но первый, то пункт остался...
"1 - процедура, без параметров объявленная в асм файле"

И как её создать и приконектить?
(если можно с примером. Например Mov PortB, 0x15)


Цитата(Сергей Борщ @ Dec 3 2008, 21:48) *
А в СИ (да и в асмах тоже) этим занимается линкер. Читайте описание ld в binutils.


20 минут ковырялся...
если по поиску, то асм оператор ld встречается во мнигих местах текста доки binutils, но на сколько я понял надо функцию или ключь ld.

Не подскажите подраздел справки?


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post
777777
сообщение Dec 4 2008, 07:55
Сообщение #23


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

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



Цитата(QuickWitted @ Dec 4 2008, 10:33) *
И какой алгоритм дальнейших действий из этого следует?

Нужно .s файл включить в проект. Примерно так:
Прикрепленное изображение
Директива же #include занимается тем, что вставляет указанный файл в С-файл. То есть компилятр транслирует его так, как будто на месте этой директивы находится текст вставляемого файла. Но компилятор-то С-шный, а ты ему подсовываешь ассемблер. А ассемблерные файлы он транслировать не умеет.

Цитата(QuickWitted @ Dec 2 2008, 16:59) *
Я основной разработчик и концептор сайта http://www.swordgreenline.narod.ru/

Как тебе удалость с такими знаниями стать основным разработчиком? Все мы, конечно, были когда-то начинающими, но мы работали под руководством более опытных товарищей. А тут сразу - основной разработчик... smile.gif
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Dec 4 2008, 08:36
Сообщение #24


;
******

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



Цитата(QuickWitted @ Dec 4 2008, 10:07) *
Т.е. вопрос остаётся в силе "Как прицепить асм файл?"

Файл *.S - это не инклюдится, это единица компиляцмм.
Простейший пример здесь:
пост №16
В мейке, сгенеренном студией видно, где асмовый текст компилится
Код
## Assembly specific flags
ASMFLAGS = $(COMMON)
ASMFLAGS += $(CFLAGS)
ASMFLAGS += -x assembler-with-cpp -Wa,-gdwarf2
#..........................................................................
## Build
all: $(TARGET) test.hex test.eep test.lss## Compile
testas.o: ../testas.S
    $(CC) $(INCLUDES) $(ASMFLAGS) -c  $<
test.o: ../test.c
    $(CC) $(INCLUDES) $(CFLAGS) -c  $<
Go to the top of the page
 
+Quote Post
QuickWitted
сообщение Dec 4 2008, 09:40
Сообщение #25


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596



Цитата(777777 @ Dec 4 2008, 12:55) *
Как тебе удалость с такими знаниями стать основным разработчиком? Все мы, конечно, были когда-то начинающими, но мы работали под руководством более опытных товарищей. А тут сразу - основной разработчик... smile.gif


Я на дэльфи и на асме пишу уже лет 10...
на си смотрю только второй день...
Ты на второй день все тонкости знал?

Мои разработки на сайте и на данный момент не имеют бесплатных аналогов (я про хэширование)
И используются во многих программных продуктах (Слай, ПерехватЪ и т.д.)
а на твои разработки такого же класса глянуть можно?

а про сайт написал только для уточнения что я не студент делающий дипломную и работа бесплатная - страдаю альтруизмом и пытаюсь сделать для всех.


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post
777777
сообщение Dec 4 2008, 10:23
Сообщение #26


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

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



Цитата(QuickWitted @ Dec 4 2008, 12:40) *
Ты на второй день все тонкости знал?

Извини если чем-то обидел.
На второй день я всех тонкостей, конечно, не знал. Но я тогда и главным разработчиком не был - вот я о чем.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Dec 4 2008, 10:24
Сообщение #27


Гуру
******

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



Цитата(QuickWitted @ Dec 4 2008, 09:50) *
если по поиску, то асм оператор ld встречается во мнигих местах текста доки binutils, но на сколько я понял надо функцию или ключь ld.

Не подскажите подраздел справки?
В первом посте вы указали, что используете WinAVR. документация на ld лежит в WinAVR/DOC/binutils/ld. Не спрашивайте, какой именно раздел вам нужен - вам нужно прочитать ее всю, начиная с index.html


--------------------
На любой вопрос даю любой ответ
"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
QuickWitted
сообщение Dec 4 2008, 10:38
Сообщение #28


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596



Цитата(777777 @ Dec 4 2008, 15:23) *
Извини если чем-то обидел.
На второй день я всех тонкостей, конечно, не знал.


Я бы с удовольствием код на си на кого-нибудь скинул...
но остальные заняты основной работой и освободятся от отчётов похоже уже только в следующем году...

к тому же в нашей команде никого нет кто бы в тонкостях знал си под мк...
под комп пишут...

поэтому ковыряться приходится мне...

Теперь к нашим си файлам...

Для тех кто Makefile от WinAVR-20080610 видел давно...
там нет гуи. это текстовый файл который меня уже достал,
но в комплекте с драйвером был только он с пояснениями поставить редактор Notepad2
а всё это собирать в hex запустив cmd и набрать ручками make hex.
оно то собирается, но как сюда что либо добавить я не знаю...
правильней сказать чем скомпилировать файл *.o добавляющий АСМ
просто в Makefile подключаются *.o

Но т.к. я с СИ вожусь только второй день я НЕ ЗНАЮ на что с него перейти.
Тут вспоминали про руководителя - нет вокруг никого кто си знает даже на комп.
все на дэльфях сидят...


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Dec 4 2008, 10:52
Сообщение #29


;
******

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



Цитата(QuickWitted @ Dec 4 2008, 14:38) *
Для тех кто Makefile от WinAVR-20080610 видел давно...
там нет гуи.

Понял, повторяю более развернуто:
0. ставим WinAVR (поставлено)
1. Ставим AVRstudio (поставлено?)
2. Создаем в AVRstudio проект. Тип проекта Avr-GCC
3. Веселые окошечки студии как раз и призваны помочь освоить дебри в написании makefile, и при том, что все продвинутые программеры матюкаются на генерируемый студией makefile, Вам оно - как раз то что надо. Есть еще меню project/Export Makefile - потом можно покопаться в гумусе.
А так - просто добавляете файлы в проект, созданный в AVRstudio
Теперь понятно ?
Go to the top of the page
 
+Quote Post
QuickWitted
сообщение Dec 4 2008, 13:58
Сообщение #30


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596



Цитата(_Pasha @ Dec 4 2008, 15:52) *
Понял, повторяю более развернуто:
0. ставим WinAVR (поставлено)
1. Ставим AVRstudio (поставлено?)


было да... но проекта не видел (только асм)
пришлось снести и ставить всё заново...
появился...
если бы не сказал, я бы его до следующего падения винды и перестановки софта не видел…

ковыряю дальше...

Цитата(_Pasha @ Dec 4 2008, 15:52) *
2. Создаем в AVRstudio проект. Тип проекта Avr-GCC
3. Веселые окошечки студии как раз и призваны помочь освоить дебри в написании makefile, и при том, что все продвинутые программеры матюкаются на генерируемый студией makefile, Вам оно - как раз то что надо.


Я свой собирал сам в блокноте...

Цитата(_Pasha @ Dec 4 2008, 15:52) *
Есть еще меню project/Export Makefile - потом можно покопаться в гумусе.


Это видел ещё в первый день...
но к тому времени уже собрал...
а асм файл туда не лезет...
пункт есть, а при указании пишет файл не найден

Цитата(_Pasha @ Dec 4 2008, 15:52) *
А так - просто добавляете файлы в проект, созданный в AVRstudio
Теперь понятно ?


Куда копать да...
копаю...

а про точку компиляции - решил сделать линкер-патчер сам...
намного быстрее его написать чем два вечера доку изучать…
(да кстати я их пишу ко всем проектам в качестве настройщика...
например в IgorRele блок математики и таблицы импортируются патчером по данным замера пульта пользователя...)

Всем большое спасибо - тема закрыта.

Сообщение отредактировал QuickWitted - Dec 4 2008, 14:09


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post

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

 


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


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