|
Виж темите без отговор | Виж активните теми
Дата и час: Вто Юли 28, 2026 1:19 am
RQ: Помощ за първа проба на C-проект на AVR Studio-4
| Автор |
Съобщение |
|
NikB
Ранг: Почетен член
Регистриран на: Съб Сеп 25, 2004 10:32 pm Мнения: 710
|
 RQ: Помощ за първа проба на C-проект на AVR Studio-4
За първи път пробвам C с AVR Studio 4 (ползвам май последното 4.18, билд 716)
Опитвам се да компилирам сорса на един програматор (AVR/89S съвместим с AVR910)
Указал съм файла main.c като единствен в сорса (пробвах разни варианти  )
Струва ми се доста тъпо в полето за съобщения да пише само това, по-долу и не виждам никаква интерактивна възможност за повече иноформация:
(разгледах и makefile - и то е в приложения rar, но не разбрах нищо  )
MAKE Version 5.2 Copyright (c) 1987, 1998 Inprise Corp. Error Makefile 80: Command syntax error *** 1 errors during make *** Build failed with 1 errors and 0 warnings... MAKE Version 5.2 Copyright (c) 1987, 1998 Inprise Corp. Error Makefile 71: Command syntax error *** 1 errors during make *** Build failed with 1 errors and 0 warnings...
Прилагам и проекта - моля, помогнете да му пусна компилирането на това  , благодаря!
Последна промяна NikB на Чет Мар 10, 2011 10:12 pm, променена общо 1 път
|
| Вто Фев 08, 2011 4:52 pm |
|
 |
|
michev
Ранг: Форумен бог
Регистриран на: Сря Юли 11, 2007 10:16 am Мнения: 1730
|
WinAVR инсталира ли?
Гледам че, мейк командата ти е борландска, а не би трябвало. Не съм 100% сигурен дали ще работи с нея, но за по - сигурно си използвай тази която ти идва с WinAVR-a (или ако си изтеглил toolchain-a от сайта на атмел).
|
| Вто Фев 08, 2011 5:45 pm |
|
 |
|
NikB
Ранг: Почетен член
Регистриран на: Съб Сеп 25, 2004 10:32 pm Мнения: 710
|
Благодаря много - с това инсталиране поне се стига до нормално съобщения за грешки (10 грешки и 2 предупреждения).
Повечето са от рода:
../usbdrv.h:315: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'unsigned'
Вероятно проектът е за друг комполатор или за друга версия. Може би не разпознава kлючовата дума "extern" или очаква друг синтаксис? (следващия фрагмент са 314, 315 и 316 ред от usbdrv.h)
ПП
Пише, че е компилирано с IAR v.4.10B
|
| Сря Фев 09, 2011 1:12 am |
|
 |
|
head_up
Ранг: Форумен бог
Регистриран на: Нед Юни 01, 2008 9:54 pm Мнения: 1503 Местоположение: Пловдив
|
нито съм по AVR-тата, нито съм им пипал някога средата, но PROGMEM би трябвало да означава, че масива usbDescrConfig[] се намира в флаша, ще рече - само за четене. И то е така по неговия смисъл в структурата на USB комуникацията - това само се докладва на хоста. Странното е, че сефре го виждам записано по този начин. w/e може би и твоя компилатор го среща тепърва? На първо време опитай се да разбереш какво означава тази дума в средата, с която е компилирано в оригинал (IAR v.4.10B) и в последствие виж каква е ключовата дума в AVR Studio-4. А това AVR Studio-4 случайно да ползва Гнус отдолу?
колкото до extern - не може да не се подържа, ще е светотатство
Едит: какво ще кажеш да пробваш да заместиш PROGMEM с const на всякъде където го има, като там където върви в комплект с extern просто да го премахнеш, компилатора ще се усети какво да направи? Би трябвало да познае const и да го сложи във флаша пак.
|
| Сря Фев 09, 2011 1:50 am |
|
 |
|
marcuka68
Ранг: Ориентиран
Регистриран на: Пет Авг 07, 2009 4:58 pm Мнения: 273
|
Не четох кода, но мой съвет е, при много грешки в процеса на компилиране, закоментирваш кода, докато всичко се компилира. След като се компилира всичко, по малко махаш коментарите , докато не оправиш всички грешки.
|
| Сря Фев 09, 2011 4:41 pm |
|
 |
|
goose
Ранг: Популярен
Регистриран на: Сря Окт 03, 2007 3:39 pm Мнения: 311
|
PROGMEM ти е проблема, не намира дефиниция на нещо такова :>
Изрови какво е то и подозирам, че ще решиш проблема :>
_________________ In God we trust. All others must submit an X.509 Certificate
|
| Сря Фев 09, 2011 5:20 pm |
|
 |
|
michev
Ранг: Форумен бог
Регистриран на: Сря Юли 11, 2007 10:16 am Мнения: 1730
|
PROGMEM "проблема" се решава като си инклуднеш -
Следващият проблем който ще лъсне е "__delay_cycles" - решение:
Обаче след това, проблемът се превръща в още 1 тон проблемчета  - една торба статични функции, които не са декларирани в началото на файла като статични и съотвено gcc-то се сърди.
Успех
|
| Сря Фев 09, 2011 9:39 pm |
|
 |
|
NikB
Ранг: Почетен член
Регистриран на: Съб Сеп 25, 2004 10:32 pm Мнения: 710
|
Благодаря!
Това се оправи  вече дава по-разбираеми грешки  :
1. Например, ако в някой файл прототипът на някоя функция е декларирана в началото на файла без "static", а по-нататък, там, където е тялото й, е декларирана като static, компилатора посочва две грешки:
а. ../avr910.c:594: error: static declaration of 'GetDevCodes' follows non-static declaration
б. ../avr910.c:196: error: previous declaration of 'GetDevCodes' was here
(оправям го, като слагам static и на първата декларация.
Това двойно деклариране за четливост ли се прави или заради forwarding ли или защо?)
(ПП така, с грешки, имаше декларирани близо 30 функции)
и
2. В асемблерските проекти, в списъка на сорс файловете се указва един като entry. В проекта на C няма такова нещо. Какъв е критерия за определяне на входната точка в програмата? Името на файла main.c или търси функция main(void)?
Последна промяна NikB на Чет Фев 10, 2011 1:02 pm, променена общо 2 пъти
|
| Чет Фев 10, 2011 12:41 pm |
|
 |
|
michev
Ранг: Форумен бог
Регистриран на: Сря Юли 11, 2007 10:16 am Мнения: 1730
|
Функция - , името на файла не е от значение. Можеш и преди мейн-а да сложиш твой код, но за целта ще трябва да RTFM 
|
| Чет Фев 10, 2011 12:58 pm |
|
 |
|
NikB
Ранг: Почетен член
Регистриран на: Съб Сеп 25, 2004 10:32 pm Мнения: 710
|
И 3. Не открива референциите, декларирани в asm файлове, дори и файлът да е добавен в ПРОЕКТА в секцията за сорс файлове (в IDE дървото на сорс файловете) Вероятно не знам как да укажа на проекта, че е вмъкнат asm файл (когато трябва да добавя "c" файл е достатъчно да го добавя в дървото на сорс файловете в проекта)
(Ще си чета книгите  )
|
| Чет Фев 10, 2011 1:03 pm |
|
 |
|
NikB
Ранг: Почетен член
Регистриран на: Съб Сеп 25, 2004 10:32 pm Мнения: 710
|
AVR Studio, WinAVR:
Каква може да е причината за грешка:
"../USBDRVASM.s:88: Error: number must be positive and less than 64"
на ред със съдържание:
in x1,SREG ;1
в .s файл вмъкнат в "C" проект?
|
| Нед Фев 13, 2011 8:50 pm |
|
 |
|
Ники
Ранг: Почетен член
Регистриран на: Съб Окт 30, 2004 11:19 pm Мнения: 609
|
по спомен инструкция IN е за вход-изход и работи с регистри до адрес 63...
|
| Пон Фев 14, 2011 3:06 am |
|
 |
|
NikB
Ранг: Почетен член
Регистриран на: Съб Сеп 25, 2004 10:32 pm Мнения: 710
|
Благодаря, точно такова изглежда.
Тоя сорс е писан за IAR и, вероятно в него се компилира вярно (но аз няма как да проверя  ).
И къде ли е ключа за бараката? За WinAVR или някой хедър файл е различен (нeправилно указан), или някоя директива или условно компилиране са объркани. Ще имам проблем с търсенето, но съм се заял с тоя проект и ще видя до къде ще я докарам
Впрочем, докато стигна до тук, в няколко хедър файла се наложи да сложа условно компилиране, защото се цитираха и в "C" и в "S" файлове, а хедър файловете, вмъкнати в "S" (asm) даваха грешки на директива "typedef" (асемблера не ги разпознава): по препоръка от гугъл  , добавих конструкция от рода:
#ifndef __ASSEMBLER__
typedef ...
...
#endif
|
| Пон Фев 14, 2011 10:04 am |
|
 |
|
michev
Ранг: Форумен бог
Регистриран на: Сря Юли 11, 2007 10:16 am Мнения: 1730
|
Прав си - работи с адреси от 0 до 63 включително, само дето SREG e = 63 , т.е си е на коректен адрес.
Понеже компилатора не реве SREG да е недефиниран, то значи е дефиниран някъде, но не сочи на правилн адрес.
NikB, не знам защо толкоз се тормозиш с този проект да го подкараш с gcc..
Ако толкова много държиш на тоя тип програматори, отиди ей тук, изтегли си кода и си свиркай с уста  (тесван е и се компилира с WinAVR, че даже и работи..)
|
| Пон Фев 14, 2011 4:53 pm |
|
 |
|
NikB
Ранг: Почетен член
Регистриран на: Съб Сеп 25, 2004 10:32 pm Мнения: 710
|
Aбе мисля, че това е същото (това, което препоръчваш ползва ATMega8-16, а не успях да му намеря DIP корпус  , за да го спретнат колегите).
Впрочем, програматорът не е проблем - тука ползвам някакъв.
Просто се опитвам да свикна с C и WinAVR средата (но, като цяло AVR Studio-то за сега е доста дразнещо, поне за мен  )
|
| Пон Фев 14, 2011 5:12 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 3 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|