IAR报错处理

2023-11-02

问题1:Error[Li005]: no definition for “xxxxx”

解决方法:1.可能是对应的h文件没有引用
2.可能是对应的c文件没有包含进工程里
3.当工程用到c++时候,c语言的内容需要做条件编译,如下:

#ifdef __cplusplus
extern "C" {
#endif

函数、变量等内容

#ifdef __cplusplus
}
#endif

(注意:有时候.h文件已经修改好了,还是报错,此时把该头文件的#include注释掉编译一次,然后把注释去掉再编译一次就好了,因为在编译报错的时候,有时候会继续引用之前的错误数据)

问题2:Fatal Error[Pe035]: #error directive: “Please select first the target STM32F4xx device used in your application (in stm32f4xx.h file)”

解决方法:为工程选定芯片,通过宏定义完成。
(其中:USE_STDPERIPH_DRIVER宏用于加载stm32f4xx_conf.h这个头文件;
在这里插入图片描述
(原本是STM32F4XX,看了下stm32f4xx.h里的描述,改成了STM32F40XX就好了)

问题3:Error[2]: Failed to open #include file ‘FreeRTOSConfig.h’

解决方法:这是汇编的头文件,因此需要添加头文件路径。工程名右键->Options…->Assembler->Preprocesser在Additional include directories添加FreeRTOSConfig.h所在目录。
在这里插入图片描述

问题4:

Error[Li005]: no definition for “vPortEnableVFP” [referenced from D:\workspace\Debug\Obj\port.o]

Error[Li005]: no definition for “vPortEnableVFP” [referenced from D:\workspace\Debug\Obj\port.o]

解决方法:将portasm.s添加进工程,因为这两个函数是在这个.s文件里面定义的。

问题5:程序进入HardFault_Handler,发现死在core_cm4.h里的__STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn)函数

解决方法:将startup_stm32f4xx.s添加进工程

问题6:unable to allocate space for sections/blocks with a total estimated minimum size of 0x10f00 bytes (max align 0x8) in <[0x20000000-0x2000ffff]> (total uncommitted space 0x10000).

解决方法:要么增大icf文件里的ICFEDIT_region_RAM_end尾地址,要么减少变量的内存申请

问题6:包含了自己写的头文件之后(#include “boot/uart_c.h”),就报错

Error[Pe337]: linkage specification is incompatible with previous “get_systick”
Error[Pe337]: linkage specification is incompatible with previous “systick_init”
Error[Pe337]: linkage specification is incompatible with previous “os_delay_cpp”
程序位于UartBoot的app.cpp,暂时未找到问题所在,临时将需要的函数申明一下暂时能解决
//extern “C” void uart_c_Init(void);

解决办法:头文件的出错了,如下
#ifdef __cplusplus
extern “C” {
#endif

void uart_c_Init();
int UartActionCallback(eUART_Action action,char*pBuf,int len);

#ifdef __cplusplus
}
#endif

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

IAR报错处理 的相关文章

  • 以字符串形式接收数字(uart)

    我正在尝试通过 uart 接收一个包装为字符串的数字 我发送数字 1000 所以我得到 4 个字节 空字符 但是 当我使用 atoi 将数组转换为数字并将整数与 1000 进行比较时 我并不总是得到正确的数字 这是我用于接收号码的中断处理函
  • STM32 F072上的软件如何跳转到bootloader(DFU模式)?

    STM32应用笔记2606对此进行了讨论 但没有简单的代码示例 该答案已使用 IAR EWARM 在 STM32F072 Nucleo 板上进行了测试 这个答案使用 STM32标准外设库 仅此而已 请注意 验证您是否成功进入引导加载程序模式
  • 优化 ARM Cortex M3 代码

    我有一个 C 函数 它尝试将帧缓冲区复制到 FSMC RAM 这些函数将游戏循环的帧速率降低至 10FPS 我想知道如何分析反汇编的函数 我应该计算每个指令周期吗 我想知道CPU把时间花在哪里 在哪个部分 我确信该算法也是一个问题 因为它的
  • 136-基于stm32单片机家庭温湿度防漏水系统设计Proteus仿真+源程序

    资料编号 136 一 功能介绍 1 采用stm32单片机 LCD1602显示屏 独立按键 DHT11传感器 蜂鸣器 制作一个基于stm32单片机家庭温湿度防漏水系统设计Proteus仿真 2 通过DHT11传感器检测当前温湿度 并且显示到L
  • 135-基于stm32单片机超声波非接触式感应水龙头控制系统Proteus仿真+源程序

    资料编号 135 一 功能介绍 1 采用stm32单片机 LCD1602显示屏 独立按键 DHT11传感器 电机 超声波传感器 制作一个基于stm32单片机超声波非接触式感应水龙头控制系统Proteus仿真 2 通过DHT11传感器检测当前
  • 毕业设计 江科大STM32的智能温室控制蓝牙声光报警APP系统设计

    基于STM32的智能温室控制蓝牙声光报警APP系统设计 1 项目简介 1 1 系统构成 1 2 系统功能 2 部分电路设计 2 1 stm32f103c8t6单片机最小系统电路设计 2 2 LCD1602液晶显示电路设计 2 2 风
  • STM32 GPIO工作原理详解

    STM32 GPIO介绍 1 STM32引脚说明 GPIO是通用输入 输出端口的简称 是STM32可控制的引脚 GPIO的引脚与外部硬件设备连接 可实现与外部通讯 控制外部硬件或者采集外部硬件数据的功能 以STM32F103ZET6芯片为例
  • SHT10温湿度传感器——STM32驱动

    实验效果 硬件外观 接线 3 3V供电 IIC通讯 代码获取 查看下方 END
  • [MM32硬件]搭建灵动微MM32G0001A6T的简易开发环境

    作为学习单片机的经典 自然是通过GPIO点亮LED 或者是响应按钮的外部中断例程 这我们看看SOP8封装的芯片MM32G0001A6T得引脚 除了VDD和GND固定外 我们可以使用PA14 PA1 PA13 PA15 PA2 PA3这六个G
  • 解决KEIL编译慢问题

    两种方案 使用v6版本的ARM Compiler 如果v6版本编译不过 必须使用v5版本的 则可以勾选掉Browse Information选项 提升很明显 1分多钟能优化到几秒 看代码量 但是这个有个弊端 在KEIL中会影响函数跳转 建议
  • VS Code 有没有办法导入 Makefile 项目?

    正如标题所说 我可以从现有的 Makefile 自动填充 c cpp properties json 吗 Edit 对于其他尝试导入 makefile 的人 我找到了一组脚本 它们完全可以实现我想要实现的目标 即通过 VS Code 管理
  • 使用一种编译器创建的静态 C 库是否与另一种编译器兼容?

    就我而言 我有一个使用代码源 gcc 构建的库 目标是arm cortex m4 然后我尝试将该库链接到使用 IAR 编译器编译的项目中 是否可以做到这一点 或者是否必须使用新工具重建库 哪些因素影响这个 静态库是几个目标文件的捆绑 这些目
  • 串口通讯第一次发送数据多了一字节

    先初始化IO再初始化串口 导致第一次发送时 多出一个字节数据 优化方案 先初始化串口再初始化IO 即可正常通讯
  • 1.69寸SPI接口240*280TFT液晶显示模块使用中碰到的问题

    1 69寸SPI接口240 280TFT液晶显示模块使用中碰到的问题说明并记录一下 在网上买了1 69寸液晶显示模块 使用spi接口 分辨率240 280 给的参考程序是GPIO模拟的SPI接口 打算先移植到FreeRtos测试 再慢慢使用
  • 串口通讯第一次发送数据多了一字节

    先初始化IO再初始化串口 导致第一次发送时 多出一个字节数据 优化方案 先初始化串口再初始化IO 即可正常通讯
  • 1.69寸SPI接口240*280TFT液晶显示模块使用中碰到的问题

    1 69寸SPI接口240 280TFT液晶显示模块使用中碰到的问题说明并记录一下 在网上买了1 69寸液晶显示模块 使用spi接口 分辨率240 280 给的参考程序是GPIO模拟的SPI接口 打算先移植到FreeRtos测试 再慢慢使用
  • STM32F207 I2C 测试失败

    我正在使用 STM32F207 微控制器在 STM3220G EVAL 板上学习嵌入式开发 我尝试通过连接同一芯片上的两个 I2C2 和 I2C3 模块并发送 接收字符来测试 I2C 接口 这是我当前编写的代码 使用 mdk arm 5 i
  • STM32H5 Nucleo-144 board开箱

    文章目录 开发板资料下载 目标 点亮LD1 绿 LD2 黄 和LD3 红 三个LED灯 开箱过程 博主使用的是STM32CubeMX配置生成代码 具体操作如下 打开STM32CubeMX File gt New project 选择开发板型
  • 特殊寄存器

    特殊寄存器 文章目录 前言 一 背景 二 2 1 2 2 总结 前言 前期疑问 STM32特殊寄存器到底是什么 特殊寄存器怎么查看和调试代码 本文目标 记录和理解特殊寄存器 一 背景 最近在看ucosIII文章是 里面提到特殊寄存器 这就进
  • STM32F0、ST-link v2、OpenOCD 0.9.0:打开失败

    我在用着发射台 http www ti com ww en launchpad about htmlgcc arm none eabi 4 9 2015q2 为 STM32F0 进行编译 现在我想使用该集合中的 arm none eabi

随机推荐