Уважаемые посетители! Форум CQHAM.RU существует исключительно за счет показа рекламы. Мы будем благодарны, если Вы не будете блокировать рекламу на нашем Форуме. Просим внести cqham.ru в список исключений для Вашего блокировщика рекламы.
Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 12

Тема: Ошибки компиляции WinAVR

  1. #1

    Регистрация
    11.05.2004
    Адрес
    LP-16
    Сообщений
    325
    Позывной
    R3GU

    Ошибки компиляции WinAVR

    Компилятор выдаёт вот такие предупреждения. Интуитивно предпологаю, что не хватает каких-то библиотек или всё дело в насттройках компилятора. Програмка простейшая.
    Из http://forum.radiospec.ru/index.php?showtopic=5612
    Листинг 2.

    -------- begin --------
    avr-gcc (GCC) 4.2.2 (WinAVR 20071221)
    Copyright (C) 2007 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


    Size before:
    AVR Memory Usage
    ----------------
    Device: atmega8

    Program: 152 bytes (1.9% Full)
    (.text + .data + .bootloader)

    Data: 0 bytes (0.0% Full)
    (.data + .bss + .noinit)




    Converting to AVR Extended COFF: avr41.cof
    avr-objcopy --debugging --change-section-address .data-0x800000 --change-section-address .bss-0x800000 --change-section-address .noinit-0x800000 --change-section-address .eeprom-0x810000 -O coff-ext-avr avr41.elf avr41.cof
    Discarding local symbol outside any compilation unit: .do_copy_data_start
    Discarding local symbol outside any compilation unit: .do_copy_data_loop
    Discarding local symbol outside any compilation unit: .do_clear_bss_start
    Discarding local symbol outside any compilation unit: .do_clear_bss_loop
    Warning: no "data" section found in output file
    Warning: file C:/WINDOWS/TEMP/ccC6Gftb.s not found in symbol table, ignoring
    Warning: ignoring function __vectors() outside any compilation unit
    Warning: ignoring function __bad_interrupt() outside any compilation unit
    avr-objcopy: --change-section-vma .eeprom+0xff7f0000 never used
    avr-objcopy: --change-section-lma .eeprom+0xff7f0000 never used
    avr-objcopy: --change-section-vma .noinit+0xff800000 never used
    avr-objcopy: --change-section-lma .noinit+0xff800000 never used
    avr-objcopy: --change-section-vma .bss+0xff800000 never used
    avr-objcopy: --change-section-lma .bss+0xff800000 never used
    avr-objcopy: --change-section-vma .data+0xff800000 never used
    avr-objcopy: --change-section-lma .data+0xff800000 never used

    Size after:
    AVR Memory Usage
    ----------------
    Device: atmega8

    Program: 152 bytes (1.9% Full)
    (.text + .data + .bootloader)

    Data: 0 bytes (0.0% Full)
    (.data + .bss + .noinit)


  2. #2
    Аватар для Explorer
    Регистрация
    07.09.2006
    Адрес
    Лисичанск
    Сообщений
    951
    Записей в дневнике
    1
    Позывной
    UR7MA
    А что пишет в конце, Process Exit Code: ?

  3. #3

    Регистрация
    11.05.2004
    Адрес
    LP-16
    Сообщений
    325
    Позывной
    R3GU
    Process Exit Code:0
    Но вот VMLAB Стопрится и выдаёт:

    [PC = $0037, Time = 2.08 ms, {PER}]: USART: MPCM mode not yet supported

    Затем:
    [PC = $003B, Time = 2.08 ms, {ADC}]: ADC: ADCH register is read-only
    [PC = $003C, Time = 2.08 ms, {ADC}]: ADC: selected MUX channel wich does not exist

    Может не в компиляции дело?

  4. #4
    GD everybody!
    Специально решил проверить все это.
    Установил с пластинки WinAVR, списал эту програмульку и протрахался все воскресенье , пытаясь протолкнуть компилятор дальше сообщения о том, что он не видит файла исходника. Видимо на пластинке авторы книги чего-то не дописали.
    Седня скачал с сайта последнюю версию WinAVR и проверил ее на заранее известном файле CW ключа, которую решил переделать а-ля RU3GA вместо кнопок переменный резюк и еще соединить с компом, чтоб записывать в память файлы, а не с рычага коробки передач заводить. Он сругался на то, что ф. main и предварительно объявленные функции не являются прототипами. Ну это по старой по старой памяти успокоил компилятор, дав им всем аргумент void.
    После этого приступил к пытке avr41.
    Первый же запуск дал тот же результат, что и у автора ветки RZ3GU, но только размер 140 байт.
    Решил поиграть с параметрами компиляции в файле Make. Установил в дебаг-инфе просто ELF, оптимизацию поставил 2.
    Все как рукой сняло, но размер остался прежним. Попробуйте поиграть этими параметрами в маке файле. Именно он конфигурирует все поведение этой громадной системы получения хекс файла.
    Дело в том, что для прогона из-под отладчика в OBJ-файл компилятором прописывается таблица символических имен функций и переменных, объявленных в исходниках программистом-автором программы. Тогда отладчик может на экране показать вместо ассемблерного текста исходный текст программы, как его видно из текстового редактора, ассемблерная текстовка будет скрыта, если не указать отладчику-жучководу «хочу видеть ассемблерный код».
    Так вот, видимо в этой куче компилятор-линкер-дебаггер разработчики решили удалять за ненадобностью НЕИСПОЛЬЗУЕМЫЕ стандартные функции и имена, которые предусмотрены их соглашениями в компиляторе.
    Именно эти сообщения Вы и видите на экране – удалено , потому, что не используется, или расположено за пределами памяти.
    Поэтому ничего страшного в этом скорей всего нет, просто объем файла для подсовывания отладчику-эмулятору или симулятору будет меньше, и меньше сожрет памяти контроллера. Для писиибм программ все символические имена компиляторами С/С++ записывались в файлы, что позволяло довольно просто дизассемблировать кривые проги (если автор не удалил или не знал, что можно удалить таблицу) и вносить в них поправки. А вот обработанные такие файлы с удаленной таблицей уже тяжело разбирать.
    ПыСЫ. Дома лежит ссылка, как поженить WinAVR и AVRStudio и получить видал-засунь 2in1.
    Завтра напишу.
    Николай.
    Попробую послать текст ключа, надо только его переименовать.
    Вложения Вложения

  5. #5
    Очень подробно описано как скрестить VMLAB и Code Vision AVR описано в http://avr123.nm.ru/ А также уроки по программированию AVR в СodeVisionAVR. Благодаря этой ссылочке я научился работать с VMLAB. Скачайте весь курс одним архивом http://avr123.nm.ru/avr123.nm.ru.rar там все есть.
    73! Александр UR4QBP

  6. #6
    Александр, добрый вечер.
    Я имел ввиду работу с С/С++ компилятором WinAVR (avr-gcc) из-под оболочки AVRStudio, что немножко не то, т.к. WinAVR изначально способно работать с VMLAB, а оболочка WinAVR текстовой редактор PN.
    Николай.

  7. #7
    Цитата Сообщение от Кукин Николай Николаевич
    Александр, добрый вечер.
    Я имел ввиду работу с С/С++ компилятором WinAVR (avr-gcc) из-под оболочки AVRStudio, что немножко не то, т.к. WinAVR изначально способно работать с VMLAB, а оболочка WinAVR текстовой редактор PN.
    Николай.
    Вы меня извените, я не внимательно топик прочитал, но тем не менее VMLAB тоже не хуже работает чем WINAVR, даже попроще...
    73! Александр UR4QBP

  8. #8
    Аватар для Explorer
    Регистрация
    07.09.2006
    Адрес
    Лисичанск
    Сообщений
    951
    Записей в дневнике
    1
    Позывной
    UR7MA
    но тем не менее VMLAB тоже не хуже работает чем WINAVR, даже попроще...
    Наверное вы имели ввиду Code Vision AVR

  9. #9
    Аватар для Explorer
    Регистрация
    07.09.2006
    Адрес
    Лисичанск
    Сообщений
    951
    Записей в дневнике
    1
    Позывной
    UR7MA
    to Кукин Николай Николаевич

    А в Makefiele какой вы процессор указали?


  10. #10
    Совместная работа старых версий AVRstudio версий менее 4 описана в AVRbegin.front.ru/for_read/AVRGCCandAVRstudio.h tm «Использование AVRGCC совместно с AVRstudio»
    Еще было обсуждение на roboclub.ru , где сказано, что версия 4.12 studio дружит автоматически с gcc.
    У меня 4.09 студио не получилось с наскока поженить на версии WinAVR 2004 года. Там откровенно не предусмотрено подключение С текстов. В WinAVR 2008 года, которую скачал вчера предусмотрено подключение отладочной информации для студио 4.12, т.е. действительно должно работать совместно, но пока нет студии 4.12, проверить не могу.

    Пока писАл, Explorer успел задать вопрос.
    Конфигурационный файл make можно редактировать любым текстовым редактором, но для этого необходимо очень хорошо знать все параметры, с которым работает вся бригада компилятора. Я пока за 2 дня не успел еще с этим разобраться, так как только приступил к теме С для микроконтроллеров. Для таких как я разработчики предусмотрели спецпрограмму (отдельное спасибо), которая сидит disk_name:\WinAVR\bi n\wish84.exe, использует в качестве шаблона mfile.tcl,сидящий в папке mfile. Запускать с этим параметром для создания make. Можно проще, програмуля имеет ярлык в виде чайника (видимо с подтекстом) в основном меню пуск/программы/WinAVR/чайникMFile(WinAVR). Там выбираете нужный параметр и корректите. Если просто зажмурить глаза, то нужно выбрать тип процика и имя файла проги-С. Больше ничего не надо трогать для первого раза. Сохраняете в одном месте с исходником сишной программы и все должно начать работать. В общем надо чаще тыкать клавиатуру и подольше анализировать результат.
    Пока вроде все.
    Николай.

Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Помогите переделать код под WinAvr!
    от RIT в разделе Для начинающих
    Ответов: 9
    Последнее сообщение: 29.03.2010, 14:19
  2. KB9DB ГС-35Б РА - ошибки в схеме
    от aov в разделе Технический кабинет
    Ответов: 7
    Последнее сообщение: 29.10.2006, 10:51

Ваши права

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