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

2023-11-05

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的时候,通过FreeRTOSconfig的过程中遇到如下问题。运行之后会有重复定义错误出现,如下:

在这里插入图片描述

到这里我们可以把该代码注释掉

在这里插入图片描述

这里我们这里出现了八个相同的警告,是因为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 */

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Symbol SysTick_Handler multiply defined (by port.o and bsp_timer.o). 的相关文章

随机推荐

  • protobuf详细介绍和使用

    一 protobuf初识 一 protocol buffers 是什么 protocol buffers 是一种灵活 高效 自动化机制的结构数据序列化方法 可类比 XML 但是比 XML 更小 更快 更为简单 你可以定义数据的结构 然后使用
  • ChatGPT帮你30秒生成大师销售文案『AI效率神器』

    一篇好的销售文案大家都应该知道其重要性 但是 想要撰写一篇好的销售文案也并不容易 尤其是对于新手来说 需要有一定的写作技巧和经验 但是现在有了ChatGPT就不用担心啦 即便你是个完完全全的菜鸟 也可以利用AI轻松快速的模仿出销售大师才能撰
  • Git教程 - 如何新建干净的分支?(不基于其他分支)

    背景 分支整理 想要在原有GIT项目上创建一个新分支 但从浏览器端操作 发现都必须要基于其他分支创建 这样的话 新分支会包含旧分支的代码和历史提交信息 这里想创建一个空白的分支 尝试了以下方法解决 步骤 clone远程项目 git clon
  • Mybatis

    本文章根据尚硅谷在哔哩哔哩发布的视频的评论区中的网友 拂星星 提供的markdown文档整理而来 1 Mybatis简介 1 1 MyBatis历史 MyBatis最初是Apache的一个开源项目iBatis 2010年6月这个项目由Apa
  • Vuforia——VuMark 的使用

    一 创建KEY就不详说了 二 创建VuMark图片 Download DataBase 将资源导入 unity 其中Gnerate VuMark用于下载供手机扫描的不同ID图片 三 将图中两个预制物拖入Hierarchy中 填入key 勾选
  • [激光原理与应用-51]:《激光焊接质量实时监测系统研究》-2-激光焊接及其物理现象

    目录 2 1 激光焊接过程概述 2 1 1 激光焊接的特点 2 1 2 焊接质量的影响因素 2 1 3 激光焊接热源模型 2 1 4 激光焊接技术的发展前景与面临的挑战 2 2 激光焊接中的小孔效应及光致等离子体 2 2 1 激光焊接中的小
  • 什么是「推荐系统」,有哪些主要的推荐方法?

    1 什么是推荐系统 什么是推荐系统 根据维基百科的定义 它是一种信息过滤系统 主要功能是预测用户对物品 的评分和偏好 这一定义回答了推荐系统的功能是过滤信息 连接用户和推送信息 将这一定义扩 展一下 推荐系统就是自动联系用户和物品的一种工具
  • Win7系统提示Windows Defender无法扫描选定的文件解决方法

    Win7 64位系统提示 Windows Defender无法扫描选定的文件 怎么办呢 使用Windows Defender扫描文件 结果弹出如下图窗口 该怎么解决呢 参考下文 一起来解决Win7系统提示 Windows Defender无
  • 好玩的人脸识别小软件

    好玩的人脸识别小软件 前言 使用教程 1 软件代码 2 使用步骤 致谢 前言 在毕业的小空闲里面 利用pyqt写了一个简单实现人脸检测的小软件 非常好玩 推荐给大家玩一下 主要是利用Retinaface和Facenet实现人脸识别的 这两个
  • 将jpg格式的图片转换成eps

    bmeps c fig1 jpg fig1 eps
  • Python爬虫数据提取方式——-selenium爬虫框架中的数据提取方式

    介绍 selenium测试框架在爬虫中的应用 网页中通过js渲染的数据 爬虫的解决办法 1 去静态源码中查找 2 抓包或者网络请求中 查看是否有类似与json的get请求 直接请求这个json的API拿到数据 3 使用phantomjs s
  • element-ui 改变一行的样式row-style

    element ui 改变一行的样式row style 在工作过程中需要改变elementui的row style 在百度上查了很久结果都是一样的 rowStyle row rowIndex if rowIndex 0 return col
  • 华为OD机试 - 事件推送(Python)

    题目描述 同一个数轴X上有两个点的集合A A1 A2 Am 和B B1 B2 Bn Ai和Bj均为正整数 A B已经按照从小到大排好序 A B均不为空 给定一个距离R 正整数 列出同时满足如下条件的所有 Ai Bj 数对 Ai lt Bj
  • LaTeX 排版常用技巧 - 逐渐积累

    1 箭头上的文字 你的文字 underrightarrow text 你的文字 你的文字 underrightarrow text 你的文字 更喜欢另一种方式 CPU stackr
  • 散列表查找成功和不成功时的平均查找长度

    已知散列表长度为13 散列函数为H key key 11 处理冲突的方法为线性探测法 请画出依次插入关键字 10 8 40 27 21 57 46 23 19 56 以后的散列表 并计算查找成功和不成功时的平均查找长度 解 散列表是哈希表的
  • 用Ajax实现不刷新页面修改内容

    趁今天有空 就学习了Ajax 在Ajax in action那本书里提到了SAjax 就去下来看看 果然功能强大 让编写Ajax代码变的很简单 于是就写了个 修改内容不刷新页面 的代码 这个功能在网上以前是到处看到 今天终于自己实现了个 代
  • Spring boot本地运行正常,请求正常,打包后运行正常,但是请求报错:invalid bound statement (not found) 的问题

    Spring boot本地运行请求正常 打包后运行正常 但是请求报错 invalid bound statement not found 的问题 问题场景 项目结构 初步分析 接着踩坑 原因 个人问题 总结 问题场景 这个问题发生在我准备将
  • 数据仓库、数据开发面经

    目录 一 前言 二 关于内推or猎头or招聘软件的选择 三 面试形式 四 面试流程选择
  • 【经典蓝牙】 蓝牙HFP层协议分析

    HFP 概述 HFP概念介绍 HFP Hands Free Profile 是蓝牙免提协议 可以让蓝牙设备对对端蓝牙设备的通话进行控制 例如蓝牙耳机控制手机通话的接听 挂断 拒接 语音拨号等 HFP中蓝牙两端的数据交互是通过定义好的AT指令
  • 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 s