|
|
 |
Ответов
(1 - 9)
|
Sep 25 2007, 15:37
|

Участник

Группа: Участник
Сообщений: 20
Регистрация: 8-03-05
Из: Россия, Суздаль
Пользователь №: 3 159

|
Цитата(WEST128 @ Sep 25 2007, 07:58)  Сперва вам следует проверить, куда линкер поместил вашу переменную. Для вашего кода загрузчик должен записать выделенный объем памяти нулями, может он где-то и ошибается. Попробуйте сделать вашу переменную неинициализируемой, чтобы снять с загрузчика задачу записи этого объема нулями, если поможет - проблема в нем. . -В ExpertLinker я указал куда положить этот массив, он в нужном банке. -Т.е. мне в загрузчике нужно написать заполнение нулями? У меня этого нет(там только настраиваются регистры для работы SDRAM). Или имеете ввиду в Startup ?
--------------------
Serj
|
|
|
|
|
Oct 3 2007, 13:08
|

Участник

Группа: Участник
Сообщений: 20
Регистрация: 8-03-05
Из: Россия, Суздаль
Пользователь №: 3 159

|
Цитата(WEST128 @ Sep 26 2007, 09:33)  Собственно, да. Все переменные, которые вы используете, по умолчанию должны быть инициализированы - соответственно, ваш массив тоже, и инициализиция происходит нулями. Что приводит к появлению в загрузочном файле нескольких блоков, в которых написано, какую область следует заполнять нулями. Это задача именно загрузчика. Рекомендую дописать загрузчик. Думается проблема в другом совсем. В первой строчке statUP вставил дергать ногой. Не исполняется startUP!!! когда убрал выделение памяти - все нормально. Шаманил с ревизией камня и размером выделяемого блока - в 2 совпадениях заработало. То ли линковщик чего то не туда рассовывает, то ли одно из двух. (в самой проге, когда нормально запускается, последовательный тест SDRAM по адресам 0x4 - 64MB без ошибок) куда копать
--------------------
Serj
|
|
|
|
|
Oct 5 2007, 07:20
|

Участник

Группа: Участник
Сообщений: 20
Регистрация: 8-03-05
Из: Россия, Суздаль
Пользователь №: 3 159

|
Цитата(Itch @ Oct 4 2007, 12:12)  Была похожая хрень на BF531: поместил system heap в L3 SDRAM, задал в опциях проекта minimum size=256K. В итоге malloc работал абы как, а calloc вообще зависал. Оказалось, что если minimum size сделать поменьше, 2К например, то все нормально, видимо там где-то 16 битовая переменная, которая при 256К переполняется. Эффекта не обнаружилось. Я говорю, там StartUP даже не стартует. Я там в первой строке вставил дерганье ногой. Выполняется только INI_CODE (который отдельным DXE подсоединяется к проекту)
--------------------
Serj
|
|
|
|
|
Oct 22 2007, 07:06
|

Участник

Группа: Участник
Сообщений: 20
Регистрация: 8-03-05
Из: Россия, Суздаль
Пользователь №: 3 159

|
Может кто, имеющий ADSP-BF537 EZ-KIT Lite, проверит мою прогу на плате? Нужно всего *.ldr загрузить по com порту и посмотреть что в терминалке покажет.
--------------------
Serj
|
|
|
|
|
Oct 22 2007, 08:26
|

Частый гость
 
Группа: Свой
Сообщений: 146
Регистрация: 6-01-05
Из: Украина
Пользователь №: 1 831

|
А так ? Код #pragma section("sdram0_bank1",NO_INIT) u8 my_table[0xfffff];
|
|
|
|
|
Feb 21 2008, 11:06
|
Участник

Группа: Свой
Сообщений: 60
Регистрация: 4-04-06
Пользователь №: 15 797

|
Цитата(sse @ Oct 5 2007, 10:20)  Эффекта не обнаружилось. Я говорю, там StartUP даже не стартует. Я там в первой строке вставил дерганье ногой. Выполняется только INI_CODE (который отдельным DXE подсоединяется к проекту)  Ну дык усё верно. И не будет ваш черный фин запускаться-)! Вы же пытаетесь иницианализировать массив в SDRAM, т.е. писать туда данные (!!), на этапе загрузки BF!!, ДО того как у вас будет настроен контроллер SDRAM!. Потому проц и виснет на стартапе.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|