Advertisement

Symbol SysTick_Handler multiply defined (by port.o and bsp_timer.o).

阅读量:

Symbol SysTick_Handler multiply defined (by port.o and bsp_timer.o).

Symbol PendSV_Handler multiply defined (by port.o and stm32f4xx_it.o).

Symbol SVC_Handler multiply defined (by port.o and stm32f4xx_it.o).

#1-D: last line of file ends without a newline

在学习FreeRTOS的过程中,在配置FreeRTOS的过程中遇到了以下问题:运行后会出现重复定义的错误信息

在这里插入图片描述
到这里我们可以把该代码注释掉
在这里插入图片描述

在项目开发过程中,在keil文件中出现了八个相同的警告信息。具体原因在于由于keil文件中最后一行未正确换行导致触发了重复的警告提示。为了规避此问题,在后续的操作中建议将所有相关提示设置为换行模式以避免类似情况再次发生

在这里插入图片描述

这里我再给大家分享一下我已经配置好的FreeRTOSconfig文件,并将其放到资源区中。实际上按照上述方法就能实现

复制代码
    #ifndef FREERTOS_CONFIG_H
    #define FREERTOS_CONFIG_H
    /*-----------------------------------------------------------
    * 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.
    *----------------------------------------------------------*/
    
    
    
    #define configUSE_PREEMPTION 1	//使能抢占式调度器
    #define configUSE_IDLE_HOOK 0	//系统主频 168MHz。
    #define configUSE_TICK_HOOK 0	//系统时钟节拍 1KHz,即 1ms。
    #define configCPU_CLOCK_HZ ( ( unsigned long ) 168000000 )
    #define configTICK_RATE_HZ ( ( TickType_t ) 1000 )
    #define configMAX_PRIORITIES ( 5 )	//定义可供用户使用的最大优先级数,如果这个定义的是 5,那么用户可以使用的优先级号是 0,1,2,3,4,不包含 5
    #define configMINIMAL_STACK_SIZE ( ( unsigned short ) 128 )
    #define configTOTAL_HEAP_SIZE ( ( size_t ) ( 30 * 1024 ) )	//定义堆大小,FreeRTOS 内核,用户动态内存申请,任务栈等都需要用这个空间。
    #define configMAX_TASK_NAME_LEN ( 16 )
    #define configUSE_TRACE_FACILITY 0
    #define configUSE_16_BIT_TICKS 0
    #define configIDLE_SHOULD_YIELD 1
    /* Co-routine definitions. */
    #define configUSE_CO_ROUTINES 0
    #define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
    /* 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 0
    #define INCLUDE_vTaskSuspend 1
    #define INCLUDE_vTaskDelayUntil 1
    #define INCLUDE_vTaskDelay 1
    /* Cortex-M specific definitions. */
    #ifdef __NVIC_PRIO_BITS
    /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */
    #define configPRIO_BITS __NVIC_PRIO_BITS
    #else
    #define configPRIO_BITS 4 /* 15 priority levels */
    #endif
    /* The lowest interrupt priority that can be used in a call to a "set priority"
    function. */
    #define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0x0f
    /* The highest interrupt priority that can be used by any interrupt service
    routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL
    INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER
    PRIORITY THAN THIS! (higher priorities are lower numeric values. */
    #define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 0x01
    /* Interrupt priorities used by the kernel port layer itself. These are generic
    to all Cortex-M ports, and do not rely on any particular library functions. */
    #define configKERNEL_INTERRUPT_PRIORITY ( configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )
    /* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!!
    See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */
    #define configMAX_SYSCALL_INTERRUPT_PRIORITY ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )
    /* Normal assert() semantics without relying on the provision of an assert.h
    header file. */
    #define configASSERT( x ) if( ( x ) == 0 ) { taskDISABLE_INTERRUPTS(); for( ;; ); }
    /* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS
    standard names. */
    
    #define vPortSVCHandler SVC
    #define xPortPendSVHandler PendSV
    #define xPortSysTickHandler SysTick
    
    #endif /* FREERTOS_CONFIG_H */

全部评论 (0)

还没有任何评论哟~