| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| RQ: Помощ за първа проба на C-проект на AVR Studio-4 http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=8525 |
Страница 1 от 2 |
| Автор: | NikB [ Вто Фев 08, 2011 4:52 pm ] | ||
| Заглавие: | 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... Прилагам и проекта - моля, помогнете да му пусна компилирането на това
|
|||
| Автор: | michev [ Вто Фев 08, 2011 5:45 pm ] |
| Заглавие: | |
WinAVR инсталира ли? Гледам че, мейк командата ти е борландска, а не би трябвало. Не съм 100% сигурен дали ще работи с нея, но за по - сигурно си използвай тази която ти идва с WinAVR-a (или ако си изтеглил toolchain-a от сайта на атмел). |
|
| Автор: | NikB [ Сря Фев 09, 2011 1:12 am ] | ||||||||||||||||||
| Заглавие: | |||||||||||||||||||
Повечето са от рода: ../usbdrv.h:315: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'unsigned' Вероятно проектът е за друг комполатор или за друга версия. Може би не разпознава kлючовата дума "extern" или очаква друг синтаксис? (следващия фрагмент са 314, 315 и 316 ред от usbdrv.h)
ПП Пише, че е компилирано с IAR v.4.10B |
|||||||||||||||||||
| Автор: | head_up [ Сря Фев 09, 2011 1:50 am ] |
| Заглавие: | |
нито съм по AVR-тата, нито съм им пипал някога средата, но PROGMEM би трябвало да означава, че масива usbDescrConfig[] се намира в флаша, ще рече - само за четене. И то е така по неговия смисъл в структурата на USB комуникацията - това само се докладва на хоста. Странното е, че сефре го виждам записано по този начин. w/e може би и твоя компилатор го среща тепърва? На първо време опитай се да разбереш какво означава тази дума в средата, с която е компилирано в оригинал (IAR v.4.10B) и в последствие виж каква е ключовата дума в AVR Studio-4. А това AVR Studio-4 случайно да ползва Гнус отдолу? колкото до extern - не може да не се подържа, ще е светотатство Едит: какво ще кажеш да пробваш да заместиш PROGMEM с const на всякъде където го има, като там където върви в комплект с extern просто да го премахнеш, компилатора ще се усети какво да направи? Би трябвало да познае const и да го сложи във флаша пак. |
|
| Автор: | marcuka68 [ Сря Фев 09, 2011 4:41 pm ] |
| Заглавие: | |
Не четох кода, но мой съвет е, при много грешки в процеса на компилиране, закоментирваш кода, докато всичко се компилира. След като се компилира всичко, по малко махаш коментарите , докато не оправиш всички грешки. |
|
| Автор: | goose [ Сря Фев 09, 2011 5:20 pm ] |
| Заглавие: | |
PROGMEM ти е проблема, не намира дефиниция на нещо такова :> Изрови какво е то и подозирам, че ще решиш проблема :> |
|
| Автор: | michev [ Сря Фев 09, 2011 9:39 pm ] | ||||||||||||||||||
| Заглавие: | |||||||||||||||||||
PROGMEM "проблема" се решава като си инклуднеш -
Следващият проблем който ще лъсне е "__delay_cycles" - решение:
Обаче след това, проблемът се превръща в още 1 тон проблемчета Успех |
|||||||||||||||||||
| Автор: | NikB [ Чет Фев 10, 2011 12:41 pm ] | |||||||||
| Заглавие: | ||||||||||
Благодаря! Това се оправи 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)? |
||||||||||
| Автор: | michev [ Чет Фев 10, 2011 12:58 pm ] | |||||||||
| Заглавие: | ||||||||||
Функция -
|
||||||||||
| Автор: | NikB [ Чет Фев 10, 2011 1:03 pm ] |
| Заглавие: | |
И 3. Не открива референциите, декларирани в asm файлове, дори и файлът да е добавен в ПРОЕКТА в секцията за сорс файлове (в IDE дървото на сорс файловете) Вероятно не знам как да укажа на проекта, че е вмъкнат asm файл (когато трябва да добавя "c" файл е достатъчно да го добавя в дървото на сорс файловете в проекта) (Ще си чета книгите |
|
| Автор: | NikB [ Нед Фев 13, 2011 8:50 pm ] |
| Заглавие: | |
AVR Studio, WinAVR: Каква може да е причината за грешка: "../USBDRVASM.s:88: Error: number must be positive and less than 64" на ред със съдържание: in x1,SREG ;1 в .s файл вмъкнат в "C" проект? |
|
| Автор: | Ники [ Пон Фев 14, 2011 3:06 am ] |
| Заглавие: | |
по спомен инструкция IN е за вход-изход и работи с регистри до адрес 63... |
|
| Автор: | NikB [ Пон Фев 14, 2011 10:04 am ] |
| Заглавие: | |
Благодаря, точно такова изглежда. Тоя сорс е писан за IAR и, вероятно в него се компилира вярно (но аз няма как да проверя И къде ли е ключа за бараката? За WinAVR или някой хедър файл е различен (нeправилно указан), или някоя директива или условно компилиране са объркани. Ще имам проблем с търсенето, но съм се заял с тоя проект и ще видя до къде ще я докарам Впрочем, докато стигна до тук, в няколко хедър файла се наложи да сложа условно компилиране, защото се цитираха и в "C" и в "S" файлове, а хедър файловете, вмъкнати в "S" (asm) даваха грешки на директива "typedef" (асемблера не ги разпознава): по препоръка от гугъл #ifndef __ASSEMBLER__ typedef ... ... #endif |
|
| Автор: | michev [ Пон Фев 14, 2011 4:53 pm ] | |||||||||
| Заглавие: | ||||||||||
Прав си - работи с адреси от 0 до 63 включително, само дето SREG e = 63 , т.е си е на коректен адрес. Понеже компилатора не реве SREG да е недефиниран, то значи е дефиниран някъде, но не сочи на правилн адрес. NikB, не знам защо толкоз се тормозиш с този проект да го подкараш с gcc.. Ако толкова много държиш на тоя тип програматори, отиди ей тук, изтегли си кода и си свиркай с уста |
||||||||||
| Автор: | NikB [ Пон Фев 14, 2011 5:12 pm ] |
| Заглавие: | |
Aбе мисля, че това е същото (това, което препоръчваш ползва ATMega8-16, а не успях да му намеря DIP корпус Впрочем, програматорът не е проблем - тука ползвам някакъв. Просто се опитвам да свикна с C и WinAVR средата (но, като цяло AVR Studio-то за сега е доста дразнещо, поне за мен |
|
| Страница 1 от 2 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|