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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Проблема со статическими переменными в IAR 4/10
Andy Mozzhevilov
сообщение Jan 10 2006, 09:25
Сообщение #16


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



startup используется свой или библиотечный?


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
Пришелец
сообщение Jan 10 2006, 09:43
Сообщение #17


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

Группа: Участник
Сообщений: 183
Регистрация: 28-01-05
Пользователь №: 2 272



подключил оба файла
avr\src\lib\low_level_init.c
avr\src\lib\segment_init.c
хоть ф-ции эти и не переопределяются. используются по умолчанию


попробовал иаровским debugerom значение переменной не присваивается но вместо ff начальное значение = 0

В near_id я имел в виду записывается значение инициализатора.

поставил галки как Вы сказали - то же самое sad.gif
______________

что дальше делать? самому писать segment_init smile.gif ???
Go to the top of the page
 
+Quote Post
GxOST
сообщение Jan 10 2006, 10:44
Сообщение #18


Участник
*

Группа: Свой
Сообщений: 58
Регистрация: 6-12-05
Из: Санкт-Петербург
Пользователь №: 11 878



Цитата(Пришелец @ Jan 10 2006, 12:43) *
что дальше делать? самому писать segment_init smile.gif ???
Я бы попробовал заново проект создать (с прежними исходниками, конечно).


--------------------
cul8r!
* #ru_embedded - эмбеддерский чат
Go to the top of the page
 
+Quote Post
Пришелец
сообщение Jan 10 2006, 12:24
Сообщение #19


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

Группа: Участник
Сообщений: 183
Регистрация: 28-01-05
Пользователь №: 2 272



создал новый проект sad.gif sad.gif sad.gif sad.gif sad.gif sad.gif sad.gif sad.gif sad.gif sad.gif sad.gif sad.gif

не помогло.

Код
__x_z void __flashcpy(DstPtr_Type dst, SrcPtr_Type src, Counter_Type size)
{
  do {
    *dst++ = *src++;
  } while(--size != 0);
}


эта ф-ция в файле segment_init.c
она неправильно работает - если поменять *dst++ = *src++; на *dst++ = 1;
то все статические переменные инициализируются единицами
т.е. видимо src не на нужную область указывает
в файле кода смотрел структуры SegmentInitBlock (их всего две для near_i и near_z)сформированы правильно с нужными адресами
инициализаторов.
т.е. всё вроде правильно написано и должно работать - но не работает.

только размер сегментов Near_i и near_id не совпадает первый больше
и цикл копирования из flash в RAM выполняется по длине near_i
__________но это наверное не страшно blink.gif
Go to the top of the page
 
+Quote Post
Пришелец
сообщение Jan 10 2006, 13:39
Сообщение #20


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

Группа: Участник
Сообщений: 183
Регистрация: 28-01-05
Пользователь №: 2 272



Всем большое спасибо!!!
Ура !!! всё понятно!!!

дело было вот в чём:

проект состоит из файлов на C и на ассемблере, я как-то давно повелось, не задумываясь в ассемблерных файлах данные определял в сегмент NEAR_I. Отсюда у меня и получались разные размеры сегментов NEAR_I и NEAR_ID - терялось их соответствие данные копировались из flash в ram со сдвигом.

Поменял сегменты для данных в ассемблерных файлах на NEAR_Z и всё заработало!!!

РАЗМРЫ СЕГМЕНТОВ NEAR_I и NEAR_ID ДОЛЖНЫ БЫТЬ РАВНЫ ! ! !

biggrin.gif biggrin.gif biggrin.gif biggrin.gif biggrin.gif biggrin.gif biggrin.gif biggrin.gif biggrin.gif biggrin.gif biggrin.gif
Go to the top of the page
 
+Quote Post
Виктория
сообщение Jan 10 2006, 14:05
Сообщение #21


инженер
****

Группа: Свой
Сообщений: 520
Регистрация: 19-09-05
Из: Самара
Пользователь №: 8 701



Поздравляю! blush.gif
Go to the top of the page
 
+Quote Post
GxOST
сообщение Jan 10 2006, 14:12
Сообщение #22


Участник
*

Группа: Свой
Сообщений: 58
Регистрация: 6-12-05
Из: Санкт-Петербург
Пользователь №: 11 878



За простенькой проблемой крылся огромный баг. 8)


--------------------
cul8r!
* #ru_embedded - эмбеддерский чат
Go to the top of the page
 
+Quote Post

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

 


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


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