реклама на сайте
подробности

 
 
> нужна помощь
forastr
сообщение Jun 28 2011, 09:23
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 28-03-11
Из: Минск
Пользователь №: 63 930



Дали задание перегнать проет из win avr в iar(проект очень большой).Только установил IAR. помогите какой инфой для "самых маленьких" (начинающих) по iar и winavr на русском (как начать что делать).с каким трудностями предется столкнуться при переходе к iar?
Go to the top of the page
 
+Quote Post
3 страниц V  < 1 2 3 >  
Start new topic
Ответов (15 - 29)
forastr
сообщение Jul 6 2011, 12:41
Сообщение #16


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 28-03-11
Из: Минск
Пользователь №: 63 930



Цитата(zltigo @ Jul 6 2011, 10:37) *
Печально sad.gif, но это не "библиотека".
Давайте сначала самостоятельно разберитесь, что такое "библиотека", как она "подключается" и что такое "заголовочный файл". Без этого "ну и тд" нельзя.

Я понимаю отличие между этими двумя понятиями. просто я в этом посте так и раньше писал , вроде все понимали и я всех понимал)Буду стараться писать правильно.

Сообщение отредактировал forastr - Jul 6 2011, 12:57
Go to the top of the page
 
+Quote Post
forastr
сообщение Jul 7 2011, 08:37
Сообщение #17


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 28-03-11
Из: Минск
Пользователь №: 63 930



По прежнему нуждаюсь в помощи))Многое уже переделал, вот застрял над ошибками такого рода:


Error[Pe125]: expected a "(" D:\forastr\Console\Console\1\hardware\hw_io.c 309
Error[Pe125]: expected a "(" D:\forastr\Console\Console\1\hardware\hw_io.c 309
Error[Pe125]: expected a "(" D:\forastr\Console\Console\1\hardware\hw_io.c 309
Error[Pe125]: expected a "(" D:\forastr\Console\Console\1\hardware\hw_io.c 309
Error[Pe125]: expected a "(" D:\forastr\Console\Console\1\hardware\hw_io.c 313
Error[Pe125]: expected a "(" D:\forastr\Console\Console\1\hardware\hw_io.c 313
Error[Pe125]: expected a "(" D:\forastr\Console\Console\1\hardware\hw_io.c 313
Error[Pe125]: expected a "(" D:\forastr\Console\Console\1\hardware\hw_io.c 313
Error[Pe125]: expected a "(" D:\forastr\Console\Console\1\hardware\hw_io.c 316
Error[Pe125]: expected a "(" D:\forastr\Console\Console\1\hardware\hw_io.c 316
Error[Pe125]: expected a "(" D:\forastr\Console\Console\1\hardware\hw_io.c 316
Error[Pe125]: expected a "(" D:\forastr\Console\Console\1\hardware\hw_io.c 316

Прикрепленное изображение


#define ASM_NOP asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop");


пробовал менять на __asm {"nop"};__asm {"nop"};__asm {"nop"};__asm {"nop"};
не помогло.подскажите ,пожалуйста, в чем ошибка?


Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 7 2011, 09:51
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (forastr @ Jul 7 2011, 11:37) *
пробовал менять на __asm {"nop"};__asm {"nop"};__asm {"nop"};__asm {"nop"};
не помогло.

У раввина из анекдота были еще идеи sm.gif
QUOTE
подскажите ,пожалуйста, в чем ошибка?

Не читаете документацию на компилятор. Совсем не читаете sad.gif. Я понимаю, что там много букв, но надо читать. В данном случае раздел Intrinsic function.
И никогда, никогда не делайте ассемблерные вставки в сишные исходники, как это часто делается в GCC, для других компиляторов.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
forastr
сообщение Jul 7 2011, 10:55
Сообщение #19


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 28-03-11
Из: Минск
Пользователь №: 63 930



Цитата(zltigo @ Jul 7 2011, 08:51) *
У раввина из анекдота были еще идеи sm.gif

Не читаете документацию на компилятор. Совсем не читаете sad.gif. Я понимаю, что там много букв, но надо читать. В данном случае раздел Intrinsic function.
И никогда, никогда не делайте ассемблерные вставки в сишные исходники, как это часто делается в GCC, для других компиляторов.



Спасибо огромное за помощь и терпение,zltigo! [стыдно(]
Go to the top of the page
 
+Quote Post
ar__systems
сообщение Jul 7 2011, 12:35
Сообщение #20


self made
****

Группа: Свой
Сообщений: 855
Регистрация: 7-03-09
Из: Toronto, Canada
Пользователь №: 45 795



Цитата(forastr @ Jul 6 2011, 03:10) *
Спассибо за помощь. Проект очень большой: кучу файлов включающих друг друга , использует

На AVR не может быть очень большого проекта. Для очень большого проекта надо хотя бы PC. sm.gif 500 000 строк и несколько тысяч файлов - вот это большой проект. sm.gif
Go to the top of the page
 
+Quote Post
forastr
сообщение Jul 11 2011, 08:22
Сообщение #21


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 28-03-11
Из: Минск
Пользователь №: 63 930



Структура проекта вот такая:
Прикрепленное изображение

Необходимо чтобы
1) все *.с были вынесены в корень проекта
2)*.с включали только *.h
3)*.h включали только *.h


Выношу любой *.с (к примеру queue.c ) в корень , удаляю запись #include "lib\queue.c".Делаю ребилд и тут куча ошибок типа:
Warning[Pe223]: function "*" declared implicitly D:\forastr\Console\Console\1\os\os_main.c 3854 (как то так).Поясните ,пожалуйста , из-за чего так происходит?
Go to the top of the page
 
+Quote Post
XVR
сообщение Jul 11 2011, 08:51
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата
Поясните ,пожалуйста , из-за чего так происходит?
Включите вместо *.c соответствующий *.h
Go to the top of the page
 
+Quote Post
forastr
сообщение Jul 11 2011, 09:55
Сообщение #23


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 28-03-11
Из: Минск
Пользователь №: 63 930



Цитата(XVR @ Jul 11 2011, 06:51) *
Включите вместо *.c соответствующий *.h

Попробовал то ,что Вы предложили -> не получилось.Не у всех *.с есть *.h. Компилятор не подхватывает ни функции которые находятся в другом *.с , ни дефайны которые находятся там же((
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Jul 11 2011, 09:58
Сообщение #24


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(forastr @ Jul 11 2011, 13:55) *
Попробовал то ,что Вы предложили -> не получилось.Не у всех *.с есть *.h.
Выход напрашивается весьма очевидный: создайте недостающие заголовочные файлы и вдумчиво их отредактируйте.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
forastr
сообщение Jul 13 2011, 06:52
Сообщение #25


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 28-03-11
Из: Минск
Пользователь №: 63 930



Расскажите ,пожалуйста, из-за чего возникает такая ошибка:
Error[e27]: Entry "BoardPresent" in module can ( D:\...... \can.r90) redefined in module
hw_eeprom ( D:.....\hw_eeprom.r90 ) ?

Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Jul 13 2011, 06:56
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(forastr @ Jul 13 2011, 09:52) *
Расскажите ,пожалуйста, из-за чего возникает такая ошибка:
Error[e27]: Entry "BoardPresent" in module can ( D:\...... \can.r90) redefined in module
hw_eeprom ( D:.....\hw_eeprom.r90 ) ?

Поищите BoardPresent поиском по всем файлам проекта и выложите здесь.
Cкорее всего в хедере не поставили extern


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Палыч
сообщение Jul 13 2011, 07:09
Сообщение #27


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(forastr @ Jul 13 2011, 10:52) *
Error[e27]
Такая ошибка возникает, если некая переменная (массив, структура,...) объявлена более чем в одном файле.
В Вашем случае: BoardPresent присутствует в файлах can.с и hw_eeprom.с
Вполне вероятно: необходимо добавить extern в одном из файлов.
Go to the top of the page
 
+Quote Post
forastr
сообщение Jul 13 2011, 07:19
Сообщение #28


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 28-03-11
Из: Минск
Пользователь №: 63 930



Цитата(Dog Pawlowa @ Jul 13 2011, 05:56) *
Поищите BoardPresent поиском по всем файлам проекта и выложите здесь.
Cкорее всего в хедере не поставили extern


Не могу почему то прикрепить эти файлы(Неудачная загрузка. Вам запрещено загружать такой тип файлов).
Имеется два файла где эта переменная исполльзуется:
os_main.c - она просто приравнивается константе(BoardPresent = 1;)
os_main.h - uint8_t BoardPresent = 0;
пробовал extern uint8_t BoardPresen = 0; -> не помогло(


Цитата(Палыч @ Jul 13 2011, 06:09) *
Такая ошибка возникает, если некая переменная (массив, структура,...) объявлена более чем в одном файле.
В Вашем случае: BoardPresent присутствует в файлах can.с и hw_eeprom.с
Вполне вероятно: необходимо добавить extern в одном из файлов.

Самое интересное то ,что этой переменой там нету(А это мб из-за того что у меня все *.h включены в один большой main.h , а этот файл включается почти в каждом файле?)
Go to the top of the page
 
+Quote Post
Палыч
сообщение Jul 13 2011, 07:40
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(forastr @ Jul 13 2011, 11:19) *
пробовал extern uint8_t BoardPresen = 0; -> не помогло(
Осталась та же ошибка? Попробуйте сделать "Rebuild All".
Кроме того:
1. Где то (вероятно в main.c) должно быть uint8_t BoardPresen = 0; ( без extern ).
2. В h-файле оставьте только extern uint8_t BoardPresen; ( без =0 )
Go to the top of the page
 
+Quote Post
forastr
сообщение Jul 13 2011, 08:24
Сообщение #30


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 28-03-11
Из: Минск
Пользователь №: 63 930



Цитата(Палыч @ Jul 13 2011, 06:40) *
Осталась та же ошибка? Попробуйте сделать "Rebuild All".

Осталась та же ошибка.
Цитата
Кроме того:
1. Где то (вероятно в main.c) должно быть uint8_t BoardPresen = 0; ( без extern ).

Такого объявления больше нету.

Цитата
2. В h-файле оставьте только extern uint8_t BoardPresen; ( без =0 )

Помогло!Спасибо. Как только убираешт такую ошибку появляется такая же но с другой переменной.
Я делал (как мне посоветовали) для каждого *.с свои *.h скорее всего я их криво сделал((

А как исправить такую ошибку для :
Цитата
struct {
uint8_t acr[4];
uint8_t amr[4];
uint8_t btr0;
uint8_t btr1;
uint8_t fixed_rate;
} CAN_init_val= {
{0x00, 0x00, 0x00, 0x00},
{0xff, 0xff, 0xff, 0xff},
BTR0_100k,
BTR1_100k,
0
};


Ругается на перменную CAN_init_val.
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 04:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.01554 секунд с 7
ELECTRONIX ©2004-2016