sse 0 24 сентября, 2007 Опубликовано 24 сентября, 2007 · Жалоба hi есть кит ADSP-BF537 STAMP Board, VisualDSP_4.5 Update June 2007, гружусь по COM-portу . В загрузчике: -инициализ-ся SDRAM -по адресу в 3 банке SDRAM пишется число(чтоб в основной проверить что нормально всё) -одну ножку в output перевожу(чтоб видно было что загрузчик выполнился) . В main -Проверяю что загрузчик записал в 3 банк SDRAM (правильно) -Пишу во всю SDRAM и потом проверяю, непосредстенно по адресам с 0x4 - fffffe u32 слов(правильно) -вся статистика по COM-порту в комп шлется (пишу прямо в регистры) . Это все работает. Но когда в глобальных пишу: section ("sdram0_bank1") u8 my_table[0xfffff]; main не выполняется , загрузчик нормально выполняется . В чем проблема может быть? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
west 0 25 сентября, 2007 Опубликовано 25 сентября, 2007 · Жалоба Сперва вам следует проверить, куда линкер поместил вашу переменную. Для вашего кода загрузчик должен записать выделенный объем памяти нулями, может он где-то и ошибается. Попробуйте сделать вашу переменную неинициализируемой, чтобы снять с загрузчика задачу записи этого объема нулями, если поможет - проблема в нем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sse 0 25 сентября, 2007 Опубликовано 25 сентября, 2007 · Жалоба Сперва вам следует проверить, куда линкер поместил вашу переменную. Для вашего кода загрузчик должен записать выделенный объем памяти нулями, может он где-то и ошибается. Попробуйте сделать вашу переменную неинициализируемой, чтобы снять с загрузчика задачу записи этого объема нулями, если поможет - проблема в нем. . -В ExpertLinker я указал куда положить этот массив, он в нужном банке. -Т.е. мне в загрузчике нужно написать заполнение нулями? У меня этого нет(там только настраиваются регистры для работы SDRAM). Или имеете ввиду в Startup ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
west 0 26 сентября, 2007 Опубликовано 26 сентября, 2007 · Жалоба Собственно, да. Все переменные, которые вы используете, по умолчанию должны быть инициализированы - соответственно, ваш массив тоже, и инициализиция происходит нулями. Что приводит к появлению в загрузочном файле нескольких блоков, в которых написано, какую область следует заполнять нулями. Это задача именно загрузчика. Рекомендую дописать загрузчик. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sse 0 3 октября, 2007 Опубликовано 3 октября, 2007 · Жалоба Собственно, да. Все переменные, которые вы используете, по умолчанию должны быть инициализированы - соответственно, ваш массив тоже, и инициализиция происходит нулями. Что приводит к появлению в загрузочном файле нескольких блоков, в которых написано, какую область следует заполнять нулями. Это задача именно загрузчика. Рекомендую дописать загрузчик. Думается проблема в другом совсем. В первой строчке statUP вставил дергать ногой. Не исполняется startUP!!! когда убрал выделение памяти - все нормально. Шаманил с ревизией камня и размером выделяемого блока - в 2 совпадениях заработало. То ли линковщик чего то не туда рассовывает, то ли одно из двух. (в самой проге, когда нормально запускается, последовательный тест SDRAM по адресам 0x4 - 64MB без ошибок) куда копать Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Itch 0 4 октября, 2007 Опубликовано 4 октября, 2007 · Жалоба Была похожая хрень на BF531: поместил system heap в L3 SDRAM, задал в опциях проекта minimum size=256K. В итоге malloc работал абы как, а calloc вообще зависал. Оказалось, что если minimum size сделать поменьше, 2К например, то все нормально, видимо там где-то 16 битовая переменная, которая при 256К переполняется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sse 0 5 октября, 2007 Опубликовано 5 октября, 2007 · Жалоба Была похожая хрень на BF531: поместил system heap в L3 SDRAM, задал в опциях проекта minimum size=256K. В итоге malloc работал абы как, а calloc вообще зависал. Оказалось, что если minimum size сделать поменьше, 2К например, то все нормально, видимо там где-то 16 битовая переменная, которая при 256К переполняется. Эффекта не обнаружилось. Я говорю, там StartUP даже не стартует. Я там в первой строке вставил дерганье ногой. Выполняется только INI_CODE (который отдельным DXE подсоединяется к проекту) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sse 0 22 октября, 2007 Опубликовано 22 октября, 2007 · Жалоба Может кто, имеющий ADSP-BF537 EZ-KIT Lite, проверит мою прогу на плате? Нужно всего *.ldr загрузить по com порту и посмотреть что в терминалке покажет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bmf 0 22 октября, 2007 Опубликовано 22 октября, 2007 · Жалоба А так ? #pragma section("sdram0_bank1",NO_INIT) u8 my_table[0xfffff]; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ATname 0 21 февраля, 2008 Опубликовано 21 февраля, 2008 · Жалоба Эффекта не обнаружилось. Я говорю, там StartUP даже не стартует. Я там в первой строке вставил дерганье ногой. Выполняется только INI_CODE (который отдельным DXE подсоединяется к проекту) Ну дык усё верно. И не будет ваш черный фин запускаться-)! Вы же пытаетесь иницианализировать массив в SDRAM, т.е. писать туда данные (!!), на этапе загрузки BF!!, ДО того как у вас будет настроен контроллер SDRAM!. Потому проц и виснет на стартапе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться