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

 
 
 
Reply to this topicStart new topic
> C55xx Динамическое выделение памяти, MEM_alloc
Warlord
сообщение Jul 5 2006, 13:37
Сообщение #1


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

Группа: Свой
Сообщений: 121
Регистрация: 23-09-05
Из: Москва
Пользователь №: 8 874



Здравствуйте! DSP C55xx, использую DSP/BIOS, пытаюсь динамически выделить память функцией MEM_alloc, вот код
Код
extern int DARAM;
Int16 *p;
p=(Int16 *)MEM_alloc(DARAM, 5, 0);

в BIOS в закладке Memory Section Manager есть секция DARAM, где стоит галочка create a heap in this memory, указан размер 0x200. В самом MSM отключена галка No Dynamic Memory Heaps и выбраны сегменты для BIOS и malloc/free - DARAM
Так вот, MEM_alloc возвращает 0x00000001 т.е. адрес замапленного регистра DSP. Пробовал функцию malloc - возвращает MEM_NULL - 0x00000000 Подскажите, пожалуйста, где ошибка??
Go to the top of the page
 
+Quote Post
Hercules
сообщение Jul 6 2006, 06:08
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 54
Регистрация: 2-03-05
Пользователь №: 3 000



Цитата(Warlord @ Jul 5 2006, 17:37) *
Здравствуйте! DSP C55xx, использую DSP/BIOS, пытаюсь динамически выделить память функцией MEM_alloc, вот код
Код
extern int DARAM;
Int16 *p;
p=(Int16 *)MEM_alloc(DARAM, 5, 0);

в BIOS в закладке Memory Section Manager есть секция DARAM, где стоит галочка create a heap in this memory, указан размер 0x200. В самом MSM отключена галка No Dynamic Memory Heaps и выбраны сегменты для BIOS и malloc/free - DARAM
Так вот, MEM_alloc возвращает 0x00000001 т.е. адрес замапленного регистра DSP. Пробовал функцию malloc - возвращает MEM_NULL - 0x00000000 Подскажите, пожалуйста, где ошибка??


А какой у Вас базовый адрес у секции DARAM (его можно посмотреть там же в "Memory Section Manager")?

И еще не забудьте, что "MEM_alloc cannot be called from a SWI or HWI".


--------------------
Best regards,
Hercules
Go to the top of the page
 
+Quote Post
Warlord
сообщение Jul 6 2006, 06:21
Сообщение #3


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

Группа: Свой
Сообщений: 121
Регистрация: 23-09-05
Из: Москва
Пользователь №: 8 874



2 Hercules
base:0x000100
len: 0x7f00
MEM_alloc вызываю из main()
Go to the top of the page
 
+Quote Post
Concorde
сообщение Jul 12 2006, 20:56
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 56
Регистрация: 5-07-05
Пользователь №: 6 553



Цитата(Warlord @ Jul 6 2006, 10:21) *
2 Hercules
base:0x000100
len: 0x7f00
MEM_alloc вызываю из main()

Процессор какой ? Если что-нибудь типа 320VC5509 без буковки A, то надо не забывать, что свежие DSP/BIOS его не поддерживают (из-за большого кол-ва глюков в ядре), и могут вызывать соответ. забавные эффекты.. У меня malloc что-то такое же - кривое возвращал.
Go to the top of the page
 
+Quote Post
Warlord
сообщение Jul 13 2006, 13:15
Сообщение #5


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

Группа: Свой
Сообщений: 121
Регистрация: 23-09-05
Из: Москва
Пользователь №: 8 874



Проблему решил, всем спасибо. MEM_alloc заработал, даже не знаю что было неправильно, в очередной раз собрал проект с нуля и все заработало smile.gif
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 01:27
Рейтинг@Mail.ru


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