CH32V307 freeRTOS中斷中發(fā)送消息隊(duì)列

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?*/


您好,若使用到中斷的話,中斷函數(shù)注意加中斷聲明,關(guān)于中斷聲明的寫法,可參考我們EVT例程中寫法,如下圖1,注意若是在機(jī)器模式下,則需要采用__attribute__((interrupt()))的聲明方式。此外,在CH32V307 EVT中提供了FreeRTOS例程,MounRiver新建工程也可以直接新建FreeRTOS工程,你可以在此基礎(chǔ)上進(jìn)行修改。CH32V307 EVT下載鏈接如下。后續(xù)若有問題,可通過郵箱(lzs@wch.cn)和我溝通.

http://www.findthetime.net/downloads/CH32V307EVT_ZIP.html

image.png

圖1

?


您好,我目前在學(xué)習(xí)貴公司的FreeRTOS發(fā)現(xiàn)在MRS中創(chuàng)建的FreeRTOSConfig.h中的宏定義比起正點(diǎn)原子演示的少特別多。然后現(xiàn)在在學(xué)習(xí)FreeRTOS的中斷管理。兩個(gè)定時(shí)器設(shè)置中斷優(yōu)先級(jí)為4和6,發(fā)現(xiàn)進(jìn)不去




您好,沒有看到你附的代碼信息,若方便可將工程發(fā)我郵箱(lzs@wch.cn)具體看一下。注意中斷函數(shù)要加中斷聲明。


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频