olefil 0 22 декабря, 2004 Опубликовано 22 декабря, 2004 · Жалоба Единственная причина по которой данные не появляются в памяти - они туда не записаны. Дело в том, что в LDF надо прописать секцию данных иначе не хрена ты в памяти не увидишь и это правильно. На счет ошибки с размером памяти SDRAM может быть только 32-х битным, документацию читайте по лучше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
3.14 0 22 декабря, 2004 Опубликовано 22 декабря, 2004 · Жалоба <Единственная причина по которой данные не появляются в памяти - они туда не записаны. Дело в том, что в LDF надо прописать секцию данных иначе не хрена ты в памяти не увидишь и это правильно. На счет ошибки с размером памяти SDRAM может быть только 32-х битным, документацию читайте по лучше. > К чему такая категоричность. Секция у меня прописана, иначе линкер меня бы к SDRAM на расстояние пушечного выстрела не подпустил. Насчет линковщика, в том примере что я использую (ошибся с версией VDSP в которой он был создан, не 2.0 а 1.0) в LDF файле для PM сегмента SDRAM указана ширина 48. Соответственно в первой версии этого ублюдства все компилилось нормально, теперь вышеописаный матек. Вы сами в SDRAM распологаете финкции, можете привести пример LDF. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
olefil 0 22 декабря, 2004 Опубликовано 22 декабря, 2004 · Жалоба MEMORY { seg_external { TYPE(PM RAM) START(0x00020000) END(0x0002ffff) WIDTH(32) } } SECTIONS { seg_extrnal { PACKING(6 B0 B0 B5 B6 B0 B0 B1 B2 B3 B4 B0 B0) INPUT_SECTIONS( $OBJECTS(seg_pmco) $LIBRARIES(seg_pmco)) } >seg_external Ну и соответственно OBJECTS все, что надо прописать туда. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
3.14 0 23 декабря, 2004 Опубликовано 23 декабря, 2004 · Жалоба Спасибо за пример. Вобщем какие-то чудеса у меня творятся. Во первых как не крутил, инициализировать начальные значения переменных не получилось. С функциями в SDRAM вообще фокусы. Создаю функцию которая возвращает инкрементированную внутренноо статическию переменную, все ОК. Инициализирую начально значение этой переменной, пререзагружаю проц - !!! Процессор работает со старой программой (сколько не перезагружай) !!! Выключаю питание, включаю, все приходит в норму. Создаю в теле не статическую переменную, и в теле присваиваю ей значение. Далее складываю обе переменные и присваиваю ее статической, опять тот же фокус с работой процессора, приходится включать/выключать питание. Я думаю ноги у моей трабл растут там где пременные перестают инициализироваться. Прикрепляю свой пример. TestSDRAM.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
olefil 0 23 декабря, 2004 Опубликовано 23 декабря, 2004 · Жалоба Пример гляну. Не обещаю что скоро получится, но обязательно гляну. Может два дня, а может и сегодня получтся (работы до матери!!!). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
olefil 0 23 декабря, 2004 Опубликовано 23 декабря, 2004 · Жалоба Ради интереса, что значит перезагружаю проц. Дело в том, что могут быть особенности. Я вообще работаю на платах, так скажем своего производства. И знаю особенности процессора от и до. Если перегружаешь проц программно данные могут некуда не дется. Плюс ко всему какой режим загрузки используется - это тоже важно. Я использую из ПЗУ(ФЛЭШ). Плюс ко всему, если еще используешь VDSP 2.0 совет юзать VDSP 3.1 (с 3.5 я таких глюков насмотрелся, что плохо иногда становится). Еще по личному опыту могу сказать, что есть проблемы с SDRAM так как его инитить правильно надо. На будущее, чтобы не было таких кусков R4 = 0xA84A9000; DM(0x2E) = R4; делай asm("#include <def21065l.h>") - сдецел понятней получается. На первый взгляд я естественно не чего не уловил правда пристально еще не смотрел. Как бы так сказать я вообще больше С++ использую только для навороченных алгоритмов, а вообще на asm начинал. Поэтому немного другой подход к созданию и размещению модулей в памяти (какой лучше не знаю, но свой как говорится роднее). Правда в твоей конструкции на первый взгля вроде все тоже нормально. Принципиально если есть желание можно будет потом по телефону перетрещать (если есть?). Я не обещаю, что сходу решу проблему, но вообщем-то лично мне кажется, что проблем с этим процом у меня просто больше нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
olefil 0 23 декабря, 2004 Опубликовано 23 декабря, 2004 · Жалоба Все работает инитится и прыгает (в симуляторе). В эмуляторе не пробовал, но могу сказать,скорее всего, тоже работает. Я использую похожие конструкции постоянно. Единственное, что хочется действитнельно понять процесс перезагрузки. Например, короткий RESET и не фига не сбрасывается. Или RESET вообще не поступает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
3.14 0 23 декабря, 2004 Опубликовано 23 декабря, 2004 · Жалоба Лирическое отступление. Есть в одном из блоков нашей фирмы так называемый модуль электронной карты. Содержит два Spartan2-200, два ADSP21065L (подсигара импортных тоже два ;)) ну и соответственно обвязка для DSP: 64мБ SDRAM, boot Flash 512k. В качестве видеопамяти используется скоростная синхронная статика. Я делал железо, наш программер писал для ADSP, далее это уезжало заказчику и тамашние программеры в постоянной перезвонке с нашим рисовали на телеке эелектронную карту. С год назад наш программер ушел, естественно тут все стало потихоньку накрываться медным тазом. Самому засесть за переписание всей проги я думаю с полгода потеряю (наш пришел студентом, года полтора делал, сначала чтоб под QNX просто в видеопамяти рисовалось, затем в ADSP переносил). Да и задолбают потом. Предложил такой вариант, слабаю я из этой платки крайне оптимизированную штуру для рисования карты пообъектно, тем более что еще год назад запеткал я туда четыре PicoBlazer-а в качестве аппаратных построителей линий которые сейчас простаивают, да мало-ли чего еще в плису затолкаю. Ранее в мои задачи входило только написание тестов того что есть в модуле, поступал я естественно так: просил у программера пример попроще вырезал остаток добавлял свои несколько десятков строк и тестировал. Сейчас надо с чувством с толком вылизать каждую детальку. Теперь по существу. Под "перезагрузкой" понимается следующее, программирование бутовой флешки с последующим сбросом процессора. VDSP у мена 3.0. А то что пример больше на франкинштейна похож, дак это от того что я его получал из разных тестов склеил. До тщательных разборок с настройками SDRAM пока не добрался (подозреваю что корень зла именно там окапался), просто взял их из исходного проекта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
olefil 0 23 декабря, 2004 Опубликовано 23 декабря, 2004 · Жалоба Принципиально проблема ясна. Дело в том, что я примерно занимаюсь тем же вылизываю аппаратуру, а потом пишу под нее проги, если заказчик этого не делает. Принципиально я могу конечно по настройкам сказать какой SDRAM используется, но лучше конечно микросхему самому поюзать надо. Аналогичные проблемы я встречал на заре своего знакомства с 65, но сейчас вроде нет таких проблем. Я могу пронать прогу на нашем железе, но особого понта я в этом не вижу. А.... я понял у тебя загрузчик (LDR) паченный, дело в том, что если это не так хрен ты нормально чего в SDRAM прогрузишь. там надо инит памяти проставлять, а не в проге (хотя если это визуальный пример(прога), то проблема в другом). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
3.14 0 23 декабря, 2004 Опубликовано 23 декабря, 2004 · Жалоба Спасибо за советы. Сейчас надо статистику глюков собирать и репу часать ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
olefil 0 23 декабря, 2004 Опубликовано 23 декабря, 2004 · Жалоба Да принципиально не за что, если хочешь могу тебе LDR сделать с твоим инитом SDRAM'а, потом просто пропишешь его и пользуй на здоровье. Если будут вопросы пиши, чем смогу тем помогу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться