|
|
  |
Пытаюсь освоить ASM вставку |
|
|
|
Dec 2 2008, 19:41
|

Гуру
     
Группа: Свой
Сообщений: 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
|
|
|
|
|
Dec 4 2008, 07:50
|

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

|
Цитата(zltigo @ Dec 4 2008, 11:32)  Понимание самых основ отсутствуют начисто  . И не спорю - второй день на си смотрю... поэтому и спросил в теме "В помощь начинающему" Цитата(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. Не подскажите подраздел справки?
--------------------
|
|
|
|
|
Dec 4 2008, 08:36
|
;
     
Группа: Участник
Сообщений: 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 $<
|
|
|
|
|
Dec 4 2008, 09:40
|

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

|
Цитата(777777 @ Dec 4 2008, 12:55)  Как тебе удалость с такими знаниями стать основным разработчиком? Все мы, конечно, были когда-то начинающими, но мы работали под руководством более опытных товарищей. А тут сразу - основной разработчик...  Я на дэльфи и на асме пишу уже лет 10... на си смотрю только второй день... Ты на второй день все тонкости знал? Мои разработки на сайте и на данный момент не имеют бесплатных аналогов (я про хэширование) И используются во многих программных продуктах (Слай, ПерехватЪ и т.д.) а на твои разработки такого же класса глянуть можно? а про сайт написал только для уточнения что я не студент делающий дипломную и работа бесплатная - страдаю альтруизмом и пытаюсь сделать для всех.
--------------------
|
|
|
|
|
Dec 4 2008, 10:38
|

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

|
Цитата(777777 @ Dec 4 2008, 15:23)  Извини если чем-то обидел. На второй день я всех тонкостей, конечно, не знал. Я бы с удовольствием код на си на кого-нибудь скинул... но остальные заняты основной работой и освободятся от отчётов похоже уже только в следующем году... к тому же в нашей команде никого нет кто бы в тонкостях знал си под мк... под комп пишут... поэтому ковыряться приходится мне... Теперь к нашим си файлам... Для тех кто Makefile от WinAVR-20080610 видел давно... там нет гуи. это текстовый файл который меня уже достал, но в комплекте с драйвером был только он с пояснениями поставить редактор Notepad2 а всё это собирать в hex запустив cmd и набрать ручками make hex. оно то собирается, но как сюда что либо добавить я не знаю... правильней сказать чем скомпилировать файл *.o добавляющий АСМ просто в Makefile подключаются *.o Но т.к. я с СИ вожусь только второй день я НЕ ЗНАЮ на что с него перейти. Тут вспоминали про руководителя - нет вокруг никого кто си знает даже на комп. все на дэльфях сидят...
--------------------
|
|
|
|
|
Dec 4 2008, 10:52
|
;
     
Группа: Участник
Сообщений: 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 Теперь понятно ?
|
|
|
|
|
Dec 4 2008, 13:58
|

Местный
  
Группа: Участник
Сообщений: 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
--------------------
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|