|
WinAVR: Cовмещение Си и ассемблера |
|
|
|
Feb 9 2012, 11:23
|

Местный
  
Группа: Участник
Сообщений: 253
Регистрация: 15-04-10
Из: Волгоград
Пользователь №: 56 658

|
Здраствуйте ! Использовал пример из статьи: http://we.easyelectronics.ru/AVR/avr-gcc-s...om-proekte.html"AVR-GCC: Совмещение C и ассемблера в одном проекте ". Начал править makefile, которым я обычно пользуюсь, но при указании Assembler source files... получил error: Oops, ASRC not found ! Не понимаю что не так делаю ! В чем может быть проблема ?
|
|
|
|
|
 |
Ответов
|
Feb 12 2012, 11:16
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Я давно в makefile проекта перестал вписывать отдельные файлы. Вписываю каталоги (модули). Например, так (это из примеров к scmRTOS): В makefile проектаКод ... # project modules (directories with source files) MODULES := ./src ../SamplesCommon MODULES += ../scmRTOS/Common ../scmRTOS/AVR ../scmRTOS/Extensions/Profiler ... ########### you should not need to change the following lines ############# # keep order! # avreal.make must be included after gcc-avr because of TRGPGM definition include $(COMMON_MAKEFILES)/gcc-avr.mak include $(COMMON_MAKEFILES)/avreal.mak В общем для всех проектов gcc-avr.mak Код ... SRCDIRS := $(MODULES) INCDIRS := $(SRCDIRS)
CSRC := $(wildcard $(addsuffix /*.c,$(SRCDIRS))) CPPSRC := $(wildcard $(addsuffix /*.cpp,$(SRCDIRS))) ASRC := $(wildcard $(addsuffix /*.S,$(SRCDIRS))) ... Т.е. все .c .cpp .S во всех подключенных к проекту модулях подхватываются автоматически и сортируются по типу для правильного применения компилятора. Мусора временных копий и файлов, дёрнутых из другого проекта поближе для копипастенья Код file.c file-1.c file-1a.c file-2.c some-file-from-another-project-not-to-compile.c в каталоге проекта всё равно не должно быть, поэтому проще подключать каталог-модуль целиком, в том числе опционально в makefile проекта Код ifeq ($(USE_LPS),Y) MODULES += ./src/modem ./src/lps DEFS += -DUSE_LPS p.s. одно время текущий (относительно makefile) каталог подключался автоматически, в avr-gcc.mak была точка Код SRCDIRS := . $(MODULES) но потом мне это разонравилось.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Feb 14 2012, 16:45
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(haker_fox @ Feb 13 2012, 15:58)  Мне понравился Ваш подход! Я сам не очень хорошо с Makefile знаком. Будет время, попробую таким же образом организовать. В архиве примеров к порту AVR/avr-gcc scmRTOS это всё в рабочем виде. Заодно там же в makefile проектов видно, как я одной строкой меняю версию компилятора. Причём что под WIN, что под линуксом — все остальное в проекте не меняется. Как в проекте — собирается avr-gcc, который находится по PATH. Раскомментировав одну из строк Код #TOOL = avr-kgp- #TOOL = c:/WinAVR/bin/avr- #TOOL = c:/avr-gcc/WinAVR/20071221/bin/avr- #TOOL = c:/avr-gcc/WinAVR/20100110/bin/avr- #TOOL = c:/avr-gcc/kgp/20080530/bin/avr- #TOOL = c:/avr-gcc/kgp/20100725/bin/avr- я выбираю для проверки нужное. Цитата(MaxiMuz @ Feb 14 2012, 13:50)  вообще каким образом задается место откуда должны браться исходные файлы ? Где искать файлы, которые нужны, если впрямую путь не прописан — через VPATH. Но сначала нужно собрать сам перечень необходимых файлов. Это или вручную, или через функцию $(wildcard ...), если подбора всего через wildcard нет, то автоматом ничего подключаться не будет. Зависит от того, кто и как писал makefile
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
Сообщений в этой теме
MaxiMuz WinAVR: Cовмещение Си и ассемблера Feb 9 2012, 11:23 demiurg_spb Makefile в студию... Feb 9 2012, 11:35 haker_fox QUOTE (MaxiMuz @ Feb 9 2012, 19:23) Здрас... Feb 9 2012, 12:35 MaxiMuz Цитата(haker_fox @ Feb 9 2012, 15:35) А В... Feb 9 2012, 16:06  demiurg_spb Это ваш реальный мейкфайл из проекта?
В вашем теку... Feb 9 2012, 16:15   MaxiMuz Цитата(demiurg_spb @ Feb 9 2012, 19:15) Э... Feb 9 2012, 16:20    demiurg_spb Цитата(MaxiMuz @ Feb 9 2012, 19:20) Да, в... Feb 10 2012, 05:40     Сергей Борщ QUOTE (demiurg_spb @ Feb 10 2012, 07:40) ... Feb 10 2012, 12:00  haker_fox QUOTE (MaxiMuz @ Feb 10 2012, 00:06) Счит... Feb 12 2012, 06:05   MaxiMuz Цитата(haker_fox @ Feb 12 2012, 09:05) Эт... Feb 12 2012, 16:45   MaxiMuz Цитата(haker_fox @ Feb 12 2012, 09:05) Эт... Feb 14 2012, 11:50 MaxiMuz Цитата(haker_fox @ Feb 9 2012, 15:35) Здр... Feb 14 2012, 11:05  demiurg_spb потому что по умолчанию всё берётся из текущего ка... Feb 14 2012, 11:39   MaxiMuz Цитата(demiurg_spb @ Feb 14 2012, 14:39) ... Feb 14 2012, 11:44    demiurg_spb Что задаётся?
Чтобы искалось в других каталогах?
И... Feb 14 2012, 11:46  haker_fox QUOTE (MaxiMuz @ Feb 14 2012, 19:05) в AS... Feb 15 2012, 00:49 MaxiMuz Да, вручную все добавляется и успешно собирается д... Feb 10 2012, 08:39 MaxiMuz В демо-проекте "совмещение Си и ассемблера... Feb 11 2012, 18:18 Сергей Борщ QUOTE (MaxiMuz @ Feb 11 2012, 20:18) Где ... Feb 11 2012, 21:06 MaxiMuz новый вопрос:
Для обращения к байтовой регистрово... Feb 12 2012, 18:03 demiurg_spb Цитата(MaxiMuz @ Feb 12 2012, 21:03) А ка... Feb 13 2012, 05:19 _Ivana Спасибо за упоминание про Makefile. Только что пыт... Feb 13 2012, 19:01 haker_fox QUOTE (_Ivana @ Feb 14 2012, 03:01) пропи... Feb 14 2012, 02:12 MaxiMuz Всем спасибо за разьяснение в особенности haker_fo... Feb 15 2012, 17:58 Сергей Борщ QUOTE (MaxiMuz @ Feb 15 2012, 19:58) В че... Feb 15 2012, 20:42  MaxiMuz Цитата(Сергей Борщ @ Feb 15 2012, 23:42) ... Feb 16 2012, 08:20   Сергей Борщ QUOTE (MaxiMuz @ Feb 16 2012, 10:20) поче... Feb 16 2012, 09:31 MaxiMuz Непонимаю смысл вставки:Кодasm volatile("... Feb 19 2012, 14:58 Сергей Борщ QUOTE (MaxiMuz @ Feb 19 2012, 16:58) Непо... Feb 19 2012, 17:51  MaxiMuz Цитата(Сергей Борщ @ Feb 19 2012, 20:13) ... Feb 19 2012, 18:19   haker_fox QUOTE (MaxiMuz @ Feb 20 2012, 02:19) Где ... Feb 20 2012, 08:54    MaxiMuz Цитата(haker_fox @ Feb 20 2012, 11:54) Он... Feb 21 2012, 19:40     Сергей Борщ Я никогда не использовал регистровые переменные, н... Feb 21 2012, 23:53 slavik.ksu здравствуй те уважаемые форумчане!
Перехожу н... Feb 22 2012, 06:08 demiurg_spb КодISR ( USART_RX_vect )
{
switch ... Feb 22 2012, 06:36 slavik.ksu Оказывается в конструкции switch строка выполняетс... Feb 22 2012, 06:42 slavik.ksu Оказывается в конструкции switch строка выполняетс... Feb 22 2012, 06:43 ReAl Смотря что имеется ввиду под словом «выполняется»
... Feb 22 2012, 07:49 MaxiMuz Цитата(Сергей Борщ @ Feb 22 2012, 02:53) ... Feb 22 2012, 07:50 MaxiMuz Цитата(MaxiMuz @ Feb 22 2012, 10:50) Так ... Feb 22 2012, 10:02 ReAl Кстати, да.
Если кто-то из модераторов перенесёт в... Feb 22 2012, 11:16
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|