Andy_Mozzhevilov 0 10 января, 2006 Опубликовано 10 января, 2006 · Жалоба startup используется свой или библиотечный? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Пришелец 0 10 января, 2006 Опубликовано 10 января, 2006 · Жалоба подключил оба файла avr\src\lib\low_level_init.c avr\src\lib\segment_init.c хоть ф-ции эти и не переопределяются. используются по умолчанию попробовал иаровским debugerom значение переменной не присваивается но вместо ff начальное значение = 0 В near_id я имел в виду записывается значение инициализатора. поставил галки как Вы сказали - то же самое :( ______________ что дальше делать? самому писать segment_init :) ??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GxOST 0 10 января, 2006 Опубликовано 10 января, 2006 · Жалоба что дальше делать? самому писать segment_init :) ???Я бы попробовал заново проект создать (с прежними исходниками, конечно). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Пришелец 0 10 января, 2006 Опубликовано 10 января, 2006 · Жалоба создал новый проект :( :( :( :( :( :( :( :( :( :( :( :( не помогло. __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: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Пришелец 0 10 января, 2006 Опубликовано 10 января, 2006 · Жалоба Всем большое спасибо!!! Ура !!! всё понятно!!! дело было вот в чём: проект состоит из файлов на C и на ассемблере, я как-то давно повелось, не задумываясь в ассемблерных файлах данные определял в сегмент NEAR_I. Отсюда у меня и получались разные размеры сегментов NEAR_I и NEAR_ID - терялось их соответствие данные копировались из flash в ram со сдвигом. Поменял сегменты для данных в ассемблерных файлах на NEAR_Z и всё заработало!!! РАЗМРЫ СЕГМЕНТОВ NEAR_I и NEAR_ID ДОЛЖНЫ БЫТЬ РАВНЫ ! ! ! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Виктория 0 10 января, 2006 Опубликовано 10 января, 2006 · Жалоба Поздравляю! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GxOST 0 10 января, 2006 Опубликовано 10 января, 2006 · Жалоба За простенькой проблемой крылся огромный баг. 8) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться