Официальный форум СВД Встраиваемые Системы
22 Июля, 2018, 17:47:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
 
 
 Сайт СВД ВС  Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема с выделением памяти на QNX4.  (Прочитано 157 раз)
Андрей Ивлев
Пользователь

Сообщений: 78



« : 25 Мая, 2018, 21:16:26 »

Здравствуйте!

Столкнулся со странной проблемой, есть тестовый код:

Код:
#include <stdio.h>
#include <graph.h>
#include <malloc.h>

static struct videoconfig vc;

int main()
{
void *p;

p = malloc( 4 );
if ( NULL == p ) {
printf( "Error allocating memory\n" );
}
free( p );

_getvideoconfig( &vc );

p = malloc( 512 );
if ( NULL == p ) {
printf( "Error allocating memory\n" );
}
free( p );

return 0;
}

после вызова _getvideoconfig() функция malloc() отказывается выделять блок памяти. Если поиграться с размерами выделяемого блока в вызовах malloc(), то можно заметить что при различных комбинациях 2-й вызов функции malloc() отрабатывает по разному. Подскажите с чем связано такое поведение?

P.S. программу собирал c ключом -T1. Предварительно запустил int10 &.

Спасибо!
« Последнее редактирование: 25 Мая, 2018, 21:58:23 от Андрей Ивлев » Записан
Олег Большаков
Администратор
Житель форума

Сообщений: 3052



WWW
« Ответ #1 : 29 Мая, 2018, 16:07:12 »

Здравствуйте, Андрей!

С чем связано такое поведение сказать сложно, требуется анализ. Вероятно, int10 не совместим с Вашим видеоконтроллером. Особенность работы int10 на современных адаптерах нами не проверялась. Вместо int10 мы предлагаем нашим заказчикам использовать продукт нашей разработки vbe3.
Записан

Андрей Ивлев
Пользователь

Сообщений: 78



« Ответ #2 : 30 Мая, 2018, 08:37:35 »

Вероятно, int10 не совместим с Вашим видеоконтроллером.
Функция  _getvideoconfig() возвращает валидные данные. Пробовал для дополнительной проверки, функцией _setvideomode() менять режим работы видеоадаптера и повторно вызывать _getvideoconfig() и так же получаю валидные данные согласно выбранному режиму. Если собирать проект с передачей компилятору различных опций, касающихся моделей памяти и поколения процессора (например "-2 -mh", "-2 -ml", "-mc"), то тестовый пример работает. Похоже проблема заключается в выборе модели памяти, не со всеми из которых она может работать. Постараюсь на выходных с этим еще повозиться.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP © 2002-2018 СВД Встраиваемые Системы.
При использовании материалов сайта ссылка на forum.kpda.ru обязательна.

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines | © Aiwan. Kolobok smiles | Sitemap
Valid XHTML 1.0! Valid CSS!
Сайт СВД ВС

В последний раз google посещал эту страницу 12 Июля, 2018, 09:04:44