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

 
 
> Простые вопросы по IAR
Beginning
сообщение Aug 30 2007, 15:00
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053



Учусь работать в IAR. Много вопросов. Как обозначить глобальную переменную, что бы она была видна в других подлинковачных файлах.

Как обозначить переменную, что бы она лежала по конкретному адрессу.


--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Beginning
сообщение Sep 4 2007, 09:01
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053



В симуляторе в функцию входит и выходит (как там винипух говорил). Но при зашитии в проц он фиснит. Т.е. код выолняется нормально, но когда доходит до localtime() зависает. Когда просматривал asm функции, то всречал редкие коментарии вставленные IAR типа "malloc" или "heap".

delete tm_p - это не использовал

Определяю структуру в main.c как глобальную:

struct {
uint8 a[6];
uint8 b[5];
uint8 c[4];
uint8 d[3];
uint8 e[3];
uint8 f[6];
} data;

В другом файле хочу использовать её:

extern strucr data;

data.a[0]=10;

Возникает предупреждение:
Warning[Pe1000]: a storage class may not be specified here E – на вот это ”extern strucr data;

И далее ошибки:

Error[Pe020]: identifier "data" is undefined

В чём засада?


Пробывал обычный int x; в другом файле extern int x; Всё прокатывает. Struct воспринимается же, тоже как переменная. Но не работает.

Сообщение отредактировал Beginning - Sep 4 2007, 09:02


--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 4 2007, 09:50
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Beginning @ Sep 4 2007, 12:01) *
В симуляторе в функцию входит и выходит (как там винипух говорил). Но при зашитии в проц он фиснит. Т.е. код выолняется нормально, но когда доходит до localtime() зависает.
Ну, возможно ваша версия использует heap. Вы еще где-то используете malloc, new и т.д.? Если нет, сколько памяти вы выделили под сегмент HEAP? Возможно зависание происходит из-за невозможности выделить достаточно памяти. Хотя тогда должно и в симуляторе виснуть. Я все же склонен считать, что чудес не бывает и "зависание" происходит по причине нехватки памяти, например - стека.
Цитата(Beginning @ Sep 4 2007, 12:01) *
Определяю структуру в main.c как глобальную:
А ведь говорили - внимательно прочитайте учебник про extern. Когда вы компилируете другой файл, компилятор понятия не имеет ни о main.c, ни о том, какие поля есть у описанной там структуры.
Цитата(Beginning @ Sep 4 2007, 12:01) *
Возникает предупреждение:
Warning[Pe1000]: a storage class may not be specified here E – на вот это ”extern strucr data;
strucr вместо struct.
Цитата(Beginning @ Sep 4 2007, 12:01) *
И далее ошибки:

Error[Pe020]: identifier "data" is undefined

В чём засада?
Пробывал обычный int x; в другом файле extern int x; Всё прокатывает.
Потому что int, char, float, указатели - это встроенные типы. А структуры - это типы, определяемые пользователем. Попробуйте так:

"в другом файле":
extern struct {
uint8 a[6];
uint8 b[5];
uint8 c[4];
uint8 d[3];
uint8 e[3];
uint8 f[6];
} data;

Потом когда захотите внести изменение в эту структуру и полезете по всем файлам искать и править ее объявление - прочитайте в букваре по С про заголовочные файлы.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Beginning   Простые вопросы по IAR   Aug 30 2007, 15:00
- - jorikdima   тут не иар, тут с надо учить. 1. прочитайте про e...   Aug 30 2007, 15:08
- - =F8=   На первый вопрос уже ответели, по поводу как разме...   Aug 30 2007, 15:33
|- - rezident   Цитата(=F8= @ Aug 30 2007, 21:33) констан...   Aug 30 2007, 18:46
- - zltigo   Цитата(Beginning @ Aug 30 2007, 18:00) Ка...   Aug 30 2007, 15:33
- - Beginning   Где в настройках IAR включить, что бы внешние пере...   Aug 30 2007, 16:37
|- - zltigo   Цитата(Beginning @ Aug 30 2007, 19:37) Гд...   Aug 30 2007, 16:52
- - Beginning   Про EXTERN знаю. Я писал много под AVR. Гарвардска...   Aug 30 2007, 17:49
|- - zltigo   Цитата(Beginning @ Aug 30 2007, 20:32) Пр...   Aug 30 2007, 18:14
- - Beginning   Да причём сдесь компилятор. Я же вам говорил, что ...   Aug 30 2007, 18:25
|- - zltigo   Цитата(Beginning @ Aug 30 2007, 21:25) .....   Aug 30 2007, 19:53
- - Beginning   У меня есть функция обработки векторного прерывани...   Aug 31 2007, 12:57
- - Beginning   В IAR в симуляторе перефирийные регистры работают?...   Aug 31 2007, 17:07
|- - Сергей Борщ   Цитата(Beginning @ Aug 31 2007, 20:07) В ...   Aug 31 2007, 21:22
- - Beginning   Какие все умные, всё в документацию тычут. Много с...   Aug 31 2007, 22:14
- - one_man_show   Уважаемый Beginning, пожалуйста не горячитесь. Поч...   Sep 1 2007, 05:32
- - Beginning   Да ладно, ни на кого зла не держу. Всё понимаю. Во...   Sep 1 2007, 08:59
|- - zltigo   Цитата(Beginning @ Sep 1 2007, 11:59) zlt...   Sep 1 2007, 09:14
|- - Сергей Борщ   Цитата(Beginning @ Sep 1 2007, 11:59) И в...   Sep 1 2007, 09:14
- - Beginning   N что __irq нашёл почти сразу. Вторая часть вопрос...   Sep 1 2007, 09:48
- - Beginning   Какую библиотеку в IAR для ARM надо подключить что...   Sep 1 2007, 19:54
|- - rezident   Цитата(Beginning @ Sep 2 2007, 01:54) Как...   Sep 1 2007, 21:09
- - Beginning   В IAR нет itoa. Использую во это: Цитатаuint8* ito...   Sep 1 2007, 22:00
|- - zltigo   Цитата(Beginning @ Sep 2 2007, 01:00) В I...   Sep 2 2007, 08:58
- - Beginning   Есть 32-bit переменная. И есть 8-bit переменная. К...   Sep 2 2007, 14:45
- - zltigo   Общий случай элементарные логические операции: Код...   Sep 2 2007, 15:07
- - Beginning   Народ может, кто алгоритм подкинет, если есть, а т...   Sep 2 2007, 15:28
|- - zltigo   Цитата(Beginning @ Sep 2 2007, 18:28) Он ...   Sep 2 2007, 15:36
- - Beginning   Ну почему же нежелание. Не было б желания, вообще ...   Sep 2 2007, 16:11
|- - zltigo   Цитата(Beginning @ Sep 2 2007, 19:11) изу...   Sep 2 2007, 16:39
- - Beginning   Я 24 часа на ногах в монитор смотрю. У меня в голо...   Sep 2 2007, 18:12
- - Beginning   Помогите найти засаду. Использую функцию localtime...   Sep 3 2007, 19:04
|- - Сергей Борщ   Цитата(Beginning @ Sep 3 2007, 22:04) Так...   Sep 3 2007, 21:15
|- - Сергей Борщ   Цитата(Сергей Борщ @ Sep 4 2007, 00:15) И...   Sep 4 2007, 07:34
|- - zltigo   Цитата(Сергей Борщ @ Sep 4 2007, 10:34) Ф...   Sep 4 2007, 10:13
- - Beginning   Цитатаstrucr вместо struct. Очепятка. В исходника...   Sep 4 2007, 11:41
- - Beginning   Попробывал использовать Гринвичское время gmtime()...   Sep 5 2007, 07:09
|- - zltigo   Цитата(Beginning @ Sep 5 2007, 10:09) Поп...   Sep 5 2007, 08:25
- - Beginning   А что вы имели под "лето/зима/временная_она...   Sep 5 2007, 11:50
|- - zltigo   Цитата(Beginning @ Sep 5 2007, 14:50) А ч...   Sep 5 2007, 12:08
- - Beginning   Как-то странно работает float. Например: float f; ...   Sep 6 2007, 07:35
- - zltigo   А что, интересно, должно было получиться, если дел...   Sep 6 2007, 08:02
|- - Сергей Борщ   Цитата(zltigo @ Sep 6 2007, 11:02) Кодflo...   Sep 6 2007, 14:11
- - Beginning   const uint8 x[4][4]= { (1,2,3,4), ...   Sep 6 2007, 13:11
- - zltigo   Кодconst uint8 x[4][4]= { (1,2...   Sep 6 2007, 13:11
- - Beginning   Вырезка из книги Керинан и Ричи: STATIC INT DAY_T...   Sep 6 2007, 13:46
|- - zltigo   Цитата(Beginning @ Sep 6 2007, 16:46) И к...   Sep 6 2007, 14:04
- - Beginning   Какой же это правильный компилятор, если не по ANS...   Sep 6 2007, 14:12
|- - zltigo   Цитата(Beginning @ Sep 6 2007, 17:12) луч...   Sep 6 2007, 14:35
|- - Сергей Борщ   Цитата(Beginning @ Sep 6 2007, 17:12) Как...   Sep 6 2007, 14:46
- - Beginning   Присвоение недоглядел, разумеется в программе равн...   Sep 6 2007, 14:56
- - jorikdima   терпиливые у нас гуру   Sep 6 2007, 15:09
- - Beginning   На то они и гуру.   Sep 6 2007, 16:32
- - Beginning   Создаю массив ссылок на строки: const uint8 *men0[...   Sep 6 2007, 19:51
|- - zltigo   Цитата(Beginning @ Sep 6 2007, 22:51) Но ...   Sep 7 2007, 06:43
- - Beginning   Ну вы прям меня вообще за идиота считаете. Цитата...   Sep 7 2007, 07:02
|- - zltigo   Цитата(Beginning @ Sep 7 2007, 10:02) Нич...   Sep 7 2007, 08:00
- - Beginning   "2.Пункт 2 Коментарии удалял и удалил лишку....   Sep 7 2007, 08:32
|- - Сергей Борщ   Цитата(Beginning @ Sep 7 2007, 11:32) Есл...   Sep 7 2007, 10:59
|- - zltigo   Ладно, на прощание . Цитата(Beginning @ Sep 7...   Sep 7 2007, 12:35
- - Beginning   За...ца - универсальный интерфейс, через него можн...   Sep 7 2007, 14:13
- - Beginning   Вообщем попотел, но с траблом разобрался. Короче п...   Sep 7 2007, 21:46
|- - Сергей Борщ   Цитата(Beginning @ Sep 8 2007, 00:46) Кор...   Sep 8 2007, 07:50
- - Beginning   Вас затмило ваше сияние и это вы нечего не поняли ...   Sep 8 2007, 10:26
|- - zltigo   Цитата(Beginning @ Sep 8 2007, 13:26) Вас...   Sep 8 2007, 10:44
|- - Сергей Борщ   Цитата(Beginning @ Sep 8 2007, 13:26) Реш...   Sep 8 2007, 11:14
- - Beginning   Хорошо указатели. Так в том то и дело, что я хотел...   Sep 8 2007, 12:01


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

 


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


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