Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

WinAver C, указатель стека

Непрочитано 20.03.2011, 19:27  
kison
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: WinAver C, указатель стека

Сообщение от svd71 Посмотреть сообщение
есть. вложил
Ну и не задана там мега8. Что и не удивительно.
Однако видимо есть расклад памяти по умолчанию.
Реклама:
kison вне форума  
Непрочитано 20.03.2011, 19:33  
kison
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: WinAver C, указатель стека

Поменяйте
Код:
#---------------- Linker Options ----------------
#  -Wl,...:     tell GCC to pass this to linker.
#    -Map:      create map file
#    --cref:    add cross reference to  map file
#LDFLAGS = -gstabs 
#LDFLAGS += -Wl,-gc-sections,--debug-stubs,-Map=$(TARGET).map,--cref
....
На
Код:
#---------------- Linker Options ----------------
#  -Wl,...:     tell GCC to pass this to linker.
#    -Map:      create map file
#    --cref:    add cross reference to  map file
LDFLAGS = -mmcu=$(MCU)
#LDFLAGS += -gstabs 
#LDFLAGS += -Wl,-gc-sections,--debug-stubs,-Map=$(TARGET).map,--cref
...

Последний раз редактировалось kison; 21.03.2011 в 04:37.
kison вне форума  
Непрочитано 20.03.2011, 19:46  
kison
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: WinAver C, указатель стека

Хотя может и не поможет. Это чуть ли не самый геморный мейкфайл, что я видел.
Дайте строку из лога сборки которая кончается main.elf
kison вне форума  
Непрочитано 20.03.2011, 21:06  
svd71
Временная регистрация
 
Регистрация: 17.09.2009
Сообщений: 68
Сказал спасибо: 13
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
svd71 на пути к лучшему
По умолчанию Re: WinAver C, указатель стека

ну как же не стоит:
Цитата:
# MCU name
MCU = atmega8
...

CFLAGS = -g3 -g$(DEBUG) -mmcu=$(MCU)
весь на экран не влез, но модули компилятся друг за другом. то есть строка вызова компилятора повторяется. А вот финальная компиляция файла с main() тут есть.
Цитата:
avr-gcc -g3 -gdwarf-2 -mmcu=atmega8 -DF_CPU=1000000UL -O1 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -ffunction-sections -Wall -Wextr
a -Wstrict-prototypes -Wundef -Wsign-compare -Wa,-adhlns=./cmd/exchange.lst -std=gnu99 -O1 -c cmd/exchange.c
In file included from cmd/exchange.c:25:
cmd/../uart/uart.h:2:1: warning: "/*" within comment
rm -f dimmer.elf
rm -f dimmer.cof
avr-gcc -Wl,-gc-sections,--defsym=__stack=0x8003ff,-Map=main.map,--cref -lm -o dimmer.elf rfm12_cmd.o dimmer.o spi.o uart.o cbdlight.o rtc.o cmd.o rfm12.
o utils.o exchange.o
#avr-objcopy --debugging -O ihex dimmer.elf dimmer.hex
avr-size dimmer.elf
text data bss dec hex filename
2734 48 86 2868 b34 dimmer.elf
avr-objcopy --debugging -O coff-ext-avr dimmer.o dimmer.cof
avr-objcopy: dimmer.o: no recognized debugging information
avr-objdump -h -S -s -z dimmer.elf›dimmer.lss
__________________
svd71 вне форума  
Непрочитано 20.03.2011, 21:06  
svd71
Временная регистрация
 
Регистрация: 17.09.2009
Сообщений: 68
Сказал спасибо: 13
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
svd71 на пути к лучшему
По умолчанию Re: WinAver C, указатель стека

Ладно. спасибо. буду делать в коде.

хотя может что-нибудь и найду, все равно на такую мелочь выходной убил
__________________
svd71 вне форума  
Непрочитано 21.03.2011, 04:39  
kison
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: WinAver C, указатель стека

Сообщение от svd71 Посмотреть сообщение
ну как же не стоит:
Это CFLAGS - опции компиляции. А нужны опции линкера.
Вот строка с опциями линковки -
avr-gcc -Wl,-gc-sections,--defsym=__stack=0x8003ff,-Map=main.map,--cref -lm -o dimmer.elf
Тут тоже должна была быть задана мега 8 - -mmcu=atmega8, но нету.
Попробуйте все же изменить мейк. Есть способ и попроще - создайте проект в студии. Там выберите кристалл, установите все опции. Добавьте в проект все Ваши файлы. И все соберется без правки выходного HEX-а Дальше можно из студии и мейкфайл экспортировать.
ЗЫ. Это похоже все же не тот мейкфайл которым Вы собираете. В приложенном тут TARGET = main, так что должно быть не dimmer.elf а main.elf.
kison вне форума  
Сказали "Спасибо" kison
svd71 (21.03.2011)
Непрочитано 21.03.2011, 13:42  
svd71
Временная регистрация
 
Регистрация: 17.09.2009
Сообщений: 68
Сказал спасибо: 13
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
svd71 на пути к лучшему
По умолчанию Re: WinAver C, указатель стека

1. Вчера вечером вычитал в описании по winavr про --defsym=__stack. Попробовал, пошло. Спасибо за помощь.
2. Вроде в описании опций линковки не стоит что либо о mcu. Да и в студии те выставляется.
3. У меня в makefile собирается несколько проектов - как создать несколько makefile в одном каталоге, я не знаю. именно этот проект называется dimmer, а не main. Да и хранить все в одном файле намного удобней - в этом юниксоиды рулят. Я не особый знаток gcc и winavr в часности, поэтому со временем makefile певращается вкучу правок, внесенных в разное время.
__________________
svd71 вне форума  
Непрочитано 21.03.2011, 15:22  
kison
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: WinAver C, указатель стека

Да, я потом повнимательнее посмотрел, там $(CC) $(LDFLAGS) -o dimmer.elf
Это результат беспорядочных правок Обычно результат сборки и имя основной цели -одно и то же. Тут dimmer - всего лишь одна из возможных целей.
А тип кристалла линкеру передавать все же надо. Он по нему скрипт выбирает для линковки. Можно правда просто указать свой скрипт, а не указывать кристалл. В скрипте кстати есть регионы памяти и стек настраивается по информации взятой оттуда. Если не задать его принудительно -minit_stack=
Хранить все в одном файле удобно, когда там все по полочкам разложено. Еще несколько изменений и Вы совсем в своем мейкфайле заблудитесь.
kison вне форума  
Непрочитано 05.07.2011, 15:39  
MaxiMuz79
Гражданин KAZUS.RUN
 
Аватар для MaxiMuz79
 
Регистрация: 06.04.2010
Адрес: Санкт-Петербург - Волжский
Сообщений: 528
Сказал спасибо: 73
Сказали Спасибо 56 раз(а) в 45 сообщении(ях)
MaxiMuz79 на пути к лучшему
По умолчанию Re: WinAver C, указатель стека

Сообщение от svd71 Посмотреть сообщение
1. Вчера вечером вычитал в описании по winavr про --defsym=__stack. Попробовал, пошло. Спасибо за помощь.
А можно поподробнее про флажки и стек в Винавр , а то чтото тоже не совсем разберусь с этим
MaxiMuz79 вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Указатель поворотов на PIC Nash Микроконтроллеры, АЦП, память и т.д 52 20.04.2010 16:24


Часовой пояс GMT +4, время: 08:11.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.