16+
Суббота
23 сентября
Вход |Карта сайта | |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

ARM-контроллеры

 
   Новая тема Правила Регистрация Поиск »» Архив
Вернуться в конференциюТопик полностью
Молодой коллега  (22.01.2013 12:03) , в ответ на Значит в стеке его кто-то потом затирает. Быть не может, чтобы sprinf нуль не добавлял - код смотрите. автор: Ксения
Старший коллега "вынудил" зарегистрироваться.  
Вот код где sprintf не добавляет ноль, причем как-то не всегда не добавляет, иногда добавляет:
void  lpc_printf (const  char *format, ...)
{
    char  buffer[512 + 1];
    //va_list     vArgs;    
    taskENTER_CRITICAL();//////////////
    __disable_interrupt();///////////////
    
    //va_start(vArgs, format);
    //retv4=sprintf((char *)buffer, (char const *)format, vArgs);
    sprintf((char *)buffer, "Test message...\n");
    //va_end(vArgs);
    __enable_interrupt();///////////////
    taskEXIT_CRITICAL();///////////////
    
    _DBG(buffer);
}
Ставлю точку останова сразу после sprintf и смотрю сто в буфере - нуля нет! Буфер лежит в стеке FreeRTOS, стек FreeRTOS в SDRAM. Единственное логичное объяснение отсутствия нуля - некорректная работа SDRAM, но тесты памяти проходят без ошибок. Жажду свежих идей. :)
Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7526 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXVII