CH32V307使用freeROTS操作系統(tǒng)在中斷里發(fā)送消息隊(duì)列失敗,程序就移植卡死在task.c文件中的portTASK_FUNCTION函數(shù)中
,操作系統(tǒng)死機(jī);不在中斷里發(fā)送消息隊(duì)列就能操作成功,請(qǐng)問一下是我操作系統(tǒng)的配置有錯(cuò)誤嗎?
#ifndef?FREERTOS_CONFIG_H #define?FREERTOS_CONFIG_H #include?"bsp/bsp.h" extern?volatile?uint32_t?ulHighFrequencyTimerTicks; /*----------------------------------------------------------- ?*?Application?specific?definitions. ?* ?*?These?definitions?should?be?adjusted?for?your?particular?hardware?and ?*?application?requirements. ?* ?*?THESE?PARAMETERS?ARE?DESCRIBED?WITHIN?THE?'CONFIGURATION'?SECTION?OF?THE ?*?FreeRTOS?API?DOCUMENTATION?AVAILABLE?ON?THE?FreeRTOS.org?WEB?SITE. ?* ?*?See?http://www.freertos.org/a00110.html. ?*----------------------------------------------------------*/ /*?See?https://www.freertos.org/Using-FreeRTOS-on-RISC-V.html?*/ /*?don't?have?MTIME?*/ #define?configMTIME_BASE_ADDRESS?????(?0?) #define?configMTIMECMP_BASE_ADDRESS??(?0?) #define?configUSE_PREEMPTION????????????1 #define?configUSE_IDLE_HOOK?????????????0 #define?configUSE_TICK_HOOK?????????????0 #define?configCPU_CLOCK_HZ??????????????SystemCoreClock #define?configTICK_RATE_HZ??????????????(?(?TickType_t?)?1000?) #define?configMAX_PRIORITIES????????????(?15?) #define?configMINIMAL_STACK_SIZE????????(?(?unsigned?short?)?256?)?/*?Can?be?as?low?as?60?but?some?of?the?demo?tasks?that?use?this?constant?require?it?to?be?higher.?*/ #define?configTOTAL_HEAP_SIZE???????????(?(?size_t?)?(?16?*?1024?)?) #define?configMAX_TASK_NAME_LEN?????????(?16?) #define?configUSE_TRACE_FACILITY????????1 #define?configUSE_16_BIT_TICKS??????????0 #define?configIDLE_SHOULD_YIELD?????????0 #define?configUSE_MUTEXES???????????????1 #define?configQUEUE_REGISTRY_SIZE???????8 #define?configCHECK_FOR_STACK_OVERFLOW??2 #define?configUSE_RECURSIVE_MUTEXES?????1 #define?configUSE_MALLOC_FAILED_HOOK????0 #define?configUSE_APPLICATION_TASK_TAG??0 #define?configUSE_COUNTING_SEMAPHORES???1 #define?configUSE_PORT_OPTIMISED_TASK_SELECTION?0 #define?configGENERATE_RUN_TIME_STATS???1 #define?configUSE_STATS_FORMATTING_FUNCTIONS?????????1 #define?portCONFIGURE_TIMER_FOR_RUN_TIME_STATS()?????(ulHighFrequencyTimerTicks?=?0ul) #define?portGET_RUN_TIME_COUNTER_VALUE()?????????????ulHighFrequencyTimerTicks /*?Co-routine?definitions.?*/ #define?configUSE_CO_ROUTINES???????????0 #define?configMAX_CO_ROUTINE_PRIORITIES?(?2?) /*?Software?timer?definitions.?*/ #define?configUSE_TIMERS????????????????1 #define?configTIMER_TASK_PRIORITY???????(?configMAX_PRIORITIES?-?1?) #define?configTIMER_QUEUE_LENGTH????????4 #define?configTIMER_TASK_STACK_DEPTH????(?configMINIMAL_STACK_SIZE?) /*?Set?the?following?definitions?to?1?to?include?the?API?function,?or?zero to?exclude?the?API?function.?*/ #define?INCLUDE_vTaskPrioritySet????????????1 #define?INCLUDE_uxTaskPriorityGet???????????1 #define?INCLUDE_vTaskDelete?????????????????1 #define?INCLUDE_vTaskCleanUpResources???????1 #define?INCLUDE_vTaskSuspend????????????????1 #define?INCLUDE_vTaskDelayUntil?????????????1 #define?INCLUDE_vTaskDelay??????????????????1 #define?INCLUDE_eTaskGetState???????????????1 #define?INCLUDE_xTimerPendFunctionCall??????1 #define?INCLUDE_xTaskAbortDelay?????????????1 #define?INCLUDE_xTaskGetHandle??????????????1 #define?INCLUDE_xSemaphoreGetMutexHolder????1 /*?Normal?assert()?semantics?without?relying?on?the?provision?of?an?assert.h header?file.?*/ #define?configASSERT(?x?)?if(?(?x?)?==?0?)?{?taskDISABLE_INTERRUPTS();?printf("err?at?line?%d?of?file?\"%s\".?\r\n?",__LINE__,__FILE__);?while(1);?} /*?Map?to?the?platform?printf?function.?*/ #define?configPRINT_STRING(?pcString?)??printf(?pcString?) #endif?/*?FREERTOS_CONFIG_H?*/