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

 
 
 
Reply to this topicStart new topic
> не получается выделить память в SDRAM_BANKx для BF537
sse
сообщение Sep 24 2007, 10:09
Сообщение #1


Участник
*

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



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 не выполняется , загрузчик нормально выполняется
.
В чем проблема может быть?


--------------------
Serj
Go to the top of the page
 
+Quote Post
WEST128
сообщение Sep 25 2007, 03:58
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 468
Регистрация: 13-10-06
Из: Россия, Томск
Пользователь №: 21 291



Сперва вам следует проверить, куда линкер поместил вашу переменную. Для вашего кода загрузчик должен записать выделенный объем памяти нулями, может он где-то и ошибается. Попробуйте сделать вашу переменную неинициализируемой, чтобы снять с загрузчика задачу записи этого объема нулями, если поможет - проблема в нем.
Go to the top of the page
 
+Quote Post
sse
сообщение Sep 25 2007, 15:37
Сообщение #3


Участник
*

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



Цитата(WEST128 @ Sep 25 2007, 07:58) *
Сперва вам следует проверить, куда линкер поместил вашу переменную. Для вашего кода загрузчик должен записать выделенный объем памяти нулями, может он где-то и ошибается. Попробуйте сделать вашу переменную неинициализируемой, чтобы снять с загрузчика задачу записи этого объема нулями, если поможет - проблема в нем.

.
-В ExpertLinker я указал куда положить этот массив, он в нужном банке.
-Т.е. мне в загрузчике нужно написать заполнение нулями? У меня этого нет(там только настраиваются регистры для работы SDRAM). Или имеете ввиду в Startup ?


--------------------
Serj
Go to the top of the page
 
+Quote Post
WEST128
сообщение Sep 26 2007, 05:33
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 468
Регистрация: 13-10-06
Из: Россия, Томск
Пользователь №: 21 291



Собственно, да. Все переменные, которые вы используете, по умолчанию должны быть инициализированы - соответственно, ваш массив тоже, и инициализиция происходит нулями. Что приводит к появлению в загрузочном файле нескольких блоков, в которых написано, какую область следует заполнять нулями. Это задача именно загрузчика. Рекомендую дописать загрузчик.
Go to the top of the page
 
+Quote Post
sse
сообщение Oct 3 2007, 13:08
Сообщение #5


Участник
*

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



Цитата(WEST128 @ Sep 26 2007, 09:33) *
Собственно, да. Все переменные, которые вы используете, по умолчанию должны быть инициализированы - соответственно, ваш массив тоже, и инициализиция происходит нулями. Что приводит к появлению в загрузочном файле нескольких блоков, в которых написано, какую область следует заполнять нулями. Это задача именно загрузчика. Рекомендую дописать загрузчик.


Думается проблема в другом совсем. В первой строчке statUP вставил дергать ногой. Не исполняется startUP!!!
когда убрал выделение памяти - все нормально. Шаманил с ревизией камня и размером выделяемого блока - в 2 совпадениях заработало. То ли линковщик чего то не туда рассовывает, то ли одно из двух.
(в самой проге, когда нормально запускается, последовательный тест SDRAM по адресам 0x4 - 64MB без ошибок)

куда копать help.gif


--------------------
Serj
Go to the top of the page
 
+Quote Post
Itch
сообщение Oct 4 2007, 08:12
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 358
Регистрация: 27-06-06
Из: Новосибирск
Пользователь №: 18 410



Была похожая хрень на BF531: поместил system heap в L3 SDRAM, задал в опциях проекта minimum size=256K. В итоге malloc работал абы как, а calloc вообще зависал. Оказалось, что если minimum size сделать поменьше, 2К например, то все нормально, видимо там где-то 16 битовая переменная, которая при 256К переполняется.
Go to the top of the page
 
+Quote Post
sse
сообщение Oct 5 2007, 07:20
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 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 подсоединяется к проекту)
wacko.gif


--------------------
Serj
Go to the top of the page
 
+Quote Post
sse
сообщение Oct 22 2007, 07:06
Сообщение #8


Участник
*

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



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


--------------------
Serj
Go to the top of the page
 
+Quote Post
bmf
сообщение Oct 22 2007, 08:26
Сообщение #9


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

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



А так ?

Код
#pragma section("sdram0_bank1",NO_INIT)
u8 my_table[0xfffff];
Go to the top of the page
 
+Quote Post
ATname
сообщение Feb 21 2008, 11:06
Сообщение #10


Участник
*

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



Цитата(sse @ Oct 5 2007, 10:20) *
Эффекта не обнаружилось.
Я говорю, там StartUP даже не стартует. Я там в первой строке вставил дерганье ногой.
Выполняется только INI_CODE (который отдельным DXE подсоединяется к проекту)
wacko.gif

Ну дык усё верно. И не будет ваш черный фин запускаться-)! Вы же пытаетесь иницианализировать массив в SDRAM, т.е. писать туда данные (!!), на этапе загрузки BF!!, ДО того как у вас будет настроен контроллер SDRAM!. Потому проц и виснет на стартапе.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 17th June 2025 - 08:15
Рейтинг@Mail.ru


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