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

 
 
> нужна помощь
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
 
Start new topic
Ответов
forastr
сообщение Jul 6 2011, 07:10
Сообщение #2


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

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



Спассибо за помощь. Проект очень большой: кучу файлов включающих друг друга , использует библиотеки разных компиляторв. Я очень молодой специалист (4 курс) и еще тока учусь sm.gif) если честно то я сча в панике и не знаю с чего начать((

Цитата(M_Andrey @ Jul 5 2011, 13:28) *
#if !defined(CONFIG_H)
#define CONFIG_H 1
#include <main.h>
#define HW_VER 0x01 // hardware version
#define SW_VER 0x0004 // software version

__eeprom uint16_t deviceid = 0x0558;
__eeprom uint8_t serial[] = "MSI245460711"; // store device serial

#endif /* !defined(CONFIG_H) */



А чем можно объяснить эти ошибки?(ведь раньше компилировался, мб я в настройках проекта ошибся?)
Go to the top of the page
 
+Quote Post
XVR
сообщение Jul 6 2011, 08:29
Сообщение #3


Гуру
******

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



Цитата(forastr @ Jul 6 2011, 11:10) *
А чем можно объяснить эти ошибки?(ведь раньше компилировался, мб я в настройках проекта ошибся?)
Тем, что __attribute__ это фича исключительно gcc (win avr)
Go to the top of the page
 
+Quote Post
forastr
сообщение Jul 6 2011, 08:52
Сообщение #4


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

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



Цитата(XVR @ Jul 6 2011, 06:29) *
Тем, что __attribute__ это фича исключительно gcc (win avr)

Ага ,вот оно как.понятно.спасибо.

Цитата
Можете поискать в интернете открытые универсальные (в смысле компилятора) проекты и подглядеть идеи чтобы не изобретать велосипед.


Не совсем понял то, чт Вы имели ввиду.Разъясните ,пожалуйста, или киньте ссылку.
Go to the top of the page
 
+Quote Post
XVR
сообщение Jul 6 2011, 09:05
Сообщение #5


Гуру
******

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



Цитата(forastr @ Jul 6 2011, 12:52) *
Не совсем понял то, чт Вы имели ввиду.Разъясните ,пожалуйста, или киньте ссылку.
Имелось в виду, что все компиляторно зависимые части нужно собрать в один файл и завернуть в макросы, что бы использование их уже не отличалось для разных компиляторов. Например
common.h
Код
#ifdef __GNU__

#define EEPROM_ __attribute__ ((section (".eeprom")))

#else

#define EEPROM_ __eeprom

#endif


использование:
Код
#if !defined(CONFIG_H)
#define CONFIG_H 1
#include <main.h>
#include "common.h"
#define HW_VER 0x01 // hardware version
#define SW_VER 0x0004 // software version

EEPROM_ uint16_t deviceid = 0x0558;
EEPROM_ uint8_t serial[] = "MSI245460711"; // store device serial

#endif /* !defined(CONFIG_H) */
будет работать и на win avr и на iar

Go to the top of the page
 
+Quote Post
forastr
сообщение Jul 6 2011, 09:14
Сообщение #6


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

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



Цитата(XVR @ Jul 6 2011, 07:05) *
Имелось в виду, что все компиляторно зависимые части нужно собрать в один файл и завернуть в макросы, что бы использование их уже не отличалось для разных компиляторов. Например
common.h
Код
#ifdef __GNU__

#define EEPROM_ __attribute__ ((section (".eeprom")))

#else

#define EEPROM_ __eeprom

#endif


использование:
Код
#if !defined(CONFIG_H)
#define CONFIG_H 1
#include <main.h>
#include "common.h"
#define HW_VER 0x01 // hardware version
#define SW_VER 0x0004 // software version

EEPROM_ uint16_t deviceid = 0x0558;
EEPROM_ uint8_t serial[] = "MSI245460711"; // store device serial

#endif /* !defined(CONFIG_H) */
будет работать и на win avr и на iar



Классная фишка.Спасибо.А ссылки на др сайты можно?


P.s. вопрос про заменяемость библиотек: например подключается такаая библ avr/io.h
я так понял ее надо заменить на ioavr.h для iar. Но avr/io.h тянет за собой еще кучу :avr/sfr_defs.h,avr/portpins.h,avr/version.h,avr/version.h и др.Как правильно сделать переход от одних библоитек к другим?за любую инфу и ссылки буду очень благодарен.

Сообщение отредактировал forastr - Jul 6 2011, 09:20
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Jul 6 2011, 11:53
Сообщение #7


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(forastr @ Jul 6 2011, 13:14) *
я так понял ее надо заменить на ioavr.h для iar. Но avr/io.h тянет за собой еще кучу :avr/sfr_defs.h,avr/portpins.h,avr/version.h,avr/version.h и др.Как правильно сделать переход от одних библоитек к другим?за любую инфу и ссылки буду очень благодарен.

Аналогично можно поступить и с заголовочными файлами. Сделать что-то подобное:
Код
#ifndef CMPLHEAD_H_
#define CMPLHEAD_H_

#if defined(__GNUC__)  && !defined(__IAR_SYSTEMS_ICC__)
        /*GCC */
#include <io.h>
#include <signal.h>
#include <iomacros.h>
#include <sys/types.h>
/*  и другие заголовочные файлы */
#elif !defined (__GNUC__)  && defined(__IAR_SYSTEMS_ICC__)
        /* IAR */
#include <inttypes.h>
/*  и другие заголовочные файлы */
#else
#error Compiler not defined!
/* Ошибка, если собирать не GCC или IAR */
#endif

#endif /* CMPLHEAD_H_ */



Такой файл включать в качестве заголовочного.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
forastr
сообщение Jul 6 2011, 12:23
Сообщение #8


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

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



Цитата(mdmitry @ Jul 6 2011, 09:53) *
Аналогично можно поступить и с заголовочными файлами. Сделать что-то подобное:
Код
#ifndef CMPLHEAD_H_
#define CMPLHEAD_H_

#if defined(__GNUC__)  && !defined(__IAR_SYSTEMS_ICC__)
        /*GCC */
#include <io.h>
#include <signal.h>
#include <iomacros.h>
#include <sys/types.h>
/*  и другие заголовочные файлы */
#elif !defined (__GNUC__) && !defined(__MSP430__) && defined(__IAR_SYSTEMS_ICC__)
        /* IAR */
#include <inttypes.h>
/*  и другие заголовочные файлы */
#else
#error Compiler not defined!
/* Ошибка, если собирать не GCC или IAR */
#endif

#endif /* CMPLHEAD_H_ */



Такой файл включать в качестве заголовочного.


Спасибо,но это немножко не то ,что я имел ввиду.
Я бы хотел узнать информацию такого типа: такая-то библиотека IAR соотвествует такой-то библиотеке gcc.Например, какие именно библиотеки IAR надо подключить вместо #include <avr/io.h> ну и тд.

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


Гуру
******

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



QUOTE (forastr @ Jul 6 2011, 15:23) *
Я бы хотел узнать информацию такого типа: такая-то библиотека IAR соотвествует такой-то библиотеке gcc.Например, какие именно библиотеки IAR надо подключить вместо #include <avr/io.h> ну и тд.

Печально sad.gif, но это не "библиотека".
Давайте сначала самостоятельно разберитесь, что такое "библиотека", как она "подключается" и что такое "заголовочный файл". Без этого "ну и тд" нельзя.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- forastr   нужна помощь   Jun 28 2011, 09:23
- - KRS   1. Calling conversion разный, если в проекте есть ...   Jun 28 2011, 10:07
- - forastr   Подскажите в IAR есть макрос-файл где определены т...   Jul 5 2011, 12:23
|- - Палыч   Есть, называется он stdint.h   Jul 5 2011, 12:37
|- - forastr   Цитата(Палыч @ Jul 5 2011, 11:37) Есть, н...   Jul 5 2011, 14:07
|- - M_Andrey   #if !defined(CONFIG_H) #define CONFIG_H 1 #in...   Jul 5 2011, 15:28
|- - demiurg_spb   Глядя на ваши исходники, могу предположить о весьм...   Jul 6 2011, 06:00
||- - forastr   Цитата(zltigo @ Jul 6 2011, 10:37) Печаль...   Jul 6 2011, 12:41
|- - ar__systems   Цитата(forastr @ Jul 6 2011, 03:10) Спасс...   Jul 7 2011, 12:35
- - forastr   По прежнему нуждаюсь в помощи))Многое уже передела...   Jul 7 2011, 08:37
|- - zltigo   QUOTE (forastr @ Jul 7 2011, 11:37) пробо...   Jul 7 2011, 09:51
|- - forastr   Цитата(zltigo @ Jul 7 2011, 08:51) У равв...   Jul 7 2011, 10:55
- - forastr   Структура проекта вот такая: Необходимо чтобы 1) ...   Jul 11 2011, 08:22
- - XVR   ЦитатаПоясните ,пожалуйста , из-за чего так происх...   Jul 11 2011, 08:51
|- - forastr   Цитата(XVR @ Jul 11 2011, 06:51) Включите...   Jul 11 2011, 09:55
|- - demiurg_spb   Цитата(forastr @ Jul 11 2011, 13:55) Попр...   Jul 11 2011, 09:58
- - forastr   Расскажите ,пожалуйста, из-за чего возникает такая...   Jul 13 2011, 06:52
|- - Dog Pawlowa   Цитата(forastr @ Jul 13 2011, 09:52) Расс...   Jul 13 2011, 06:56
||- - forastr   Цитата(Dog Pawlowa @ Jul 13 2011, 05:56) ...   Jul 13 2011, 07:19
||- - Палыч   Цитата(forastr @ Jul 13 2011, 11:19) проб...   Jul 13 2011, 07:40
||- - forastr   Цитата(Палыч @ Jul 13 2011, 06:40) Остала...   Jul 13 2011, 08:24
||- - Палыч   Цитата(forastr @ Jul 13 2011, 12:24) Тако...   Jul 13 2011, 08:54
||- - forastr   Спасибо за помощь! Поясните пожалуста следующи...   Jul 15 2011, 07:19
||- - Палыч   Цитата(forastr @ Jul 15 2011, 11:19) ошиб...   Jul 15 2011, 14:57
|- - Палыч   Цитата(forastr @ Jul 13 2011, 10:52) Erro...   Jul 13 2011, 07:09
- - forastr   Всем огромное спасибо за помощь и советы. Проект с...   Jul 19 2011, 06:47


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

 


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


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