ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
25 ноября
86334
MiniMax (14.04.2007 09:33, просмотров: 4882)
Есть вопрос по FreeRTOS к знатокам. Есть самодельная функция печати на некоторое устройство вывода void lcd_printf( const char *format, ... ) { char msgBuf[128] = {0}; va_list arglist; va_start( arglist, format ); vsprintf(msgBuf,format,arglist ); va_end( arglist ); WriteLCD(msgBuf); } Вызов lcd_printf из задачи vKeypad вызывает зависание программы (LPC2138 платформа). xTaskCreate( vKeypad, ( const signed portCHAR * const )"Keypad" , configMINIMAL_STACK_SIZE, NULL,tskIDLE_PRIORITY,NULL); Подозреваю, что проблема в выделяемой памяти. Пробовал декларировать configMINIMAL_STACK_SIZE*2(*3,*4,...) при создании задачи. Не помогает :-( Это текущие настройки FreeRTOS #define configUSE_PREEMPTION 1 #define configUSE_IDLE_HOOK 0 #define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 58982400 ) /* =14.7456MHz xtal multiplied by 4 using the PLL. */ #define configTICK_RATE_HZ ( ( portTickType ) 1000 ) #define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 ) #define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 128 ) #define configTOTAL_HEAP_SIZE ( ( size_t ) ( 4 * 1024 ) ) #define configMAX_TASK_NAME_LEN ( 16 ) #define configUSE_TRACE_FACILITY 0 #define configUSE_16_BIT_TICKS 0 #define configIDLE_SHOULD_YIELD 1 Где могут быть грабли ?