Error[Pe147]: declaration is incompatible with "__nounwind __interwork __softfp unsigned long __get_

2023-11-06


原文地址:http://www.emcu.it/ARM_Compiler/IAR/IAR_tips_and_tricks.html



IAR 
tips and tricks



Home Page
STM32 home page


-
CMSIS build problems with IAR Embedded Workbench ver. 6.30.6

If you try to use the STM32 Library examples with IAR 6.30.6 you get a loot of errors.
Below there is the solution.

The customer's file: 
...\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 
is a very old version of CMSIS (V1.30 from 2009) with no adaptations for IAR Embedded Workbench for ARM.

It is not possible to use this old header file with EWARM 6.30.6.
Included and integrated in IAR Embedded Workbench for ARM 6.30.6 is "core_cm3.h" version V2.11 from 2011.
See the directory: 
<EWARM>\arm\CMSIS\Include\core_cm3.h

To take advantage of this new, improved CMSIS library, just select: 
Project -> Options -> General Options -> Library Configuration -> Use CMSIS


The fix for this project as described by Technical Note 75890:
http://supp.iar.com/Support/?note=75890
is to:

A. Rename the outdated CMSIS file "...\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h" to "core_cm3.h.old" (for example)



B. Enable CMSIS:  Project -> Options -> General Options -> Library Configuration -> Use CMSIS




Index




-
CMSIS build problems with IAR Embedded Workbench ver. 6.20

If you use IAR release 6.20 and STM Library 3.5 you probably have a lot of errors (see below).

...........
...........
Error[Og006]: Syntax error in inline assembly: "Error[446]: The selected cpu/core does not support this status register" C:\TraningSTM-Castelletto-F200-052011\Copia\Examples\LABS\Libraries\CMSIS\CM3\CoreSupport\core_cm3.c 268  

Error[Og006]: Syntax error in inline assembly: "Error[438]: This instruction is not available in the selected cpu/core" C:\TraningSTM-Castelletto-F200-052011\Copia\Examples\LABS\Libraries\CMSIS\CM3\CoreSupport\core_cm3.c 324  
Error[Pe147]: declaration is incompatible with "__thumb __softfp unsigned long __REV16(unsigned long)" (declared at line 173 of "C:\Program Files\IAR  C:\TraningSTM-Castelletto-F200-052011\Copia\Examples\LABS\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1124  
Systems\Embedded Workbench 6.0 Kickstart_2\arm\inc\c\intrinsics.h")  
Error[Pe147]: declaration is incompatible with "__thumb __softfp unsigned long __RBIT(unsigned long)" (declared at line 174 of "C:\Program Files\IAR  C:\TraningSTM-Castelletto-F200-052011\Copia\Examples\LABS\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1134  
Systems\Embedded Workbench 6.0 Kickstart_2\arm\inc\c\intrinsics.h")  
Error[Pe147]: declaration is incompatible with "__thumb __softfp unsigned long __REV16(unsigned long)" (declared at line 173 of "C:\Program Files\IAR  C:\TraningSTM-Castelletto-F200-052011\Copia\Examples\LABS\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1124  
Systems\Embedded Workbench 6.0 Kickstart_2\arm\inc\c\intrinsics.h")  
Error[Pe147]: declaration is incompatible with "__thumb __softfp unsigned long __REV16(unsigned long)" (declared at line 173 of "C:\Program Files\IAR  C:\TraningSTM-Castelletto-F200-052011\Copia\Examples\LABS\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1124  
Systems\Embedded Workbench 6.0 Kickstart_2\arm\inc\c\intrinsics.h")  
Error[Pe147]: declaration is incompatible with "__thumb __softfp unsigned long __STREXH(unsigned short, unsigned short *)" (declared at line 182 of "C:\ C:\TraningSTM-Castelletto-F200-052011\Copia\Examples\LABS\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1186  
Program Files\IAR Systems\Embedded Workbench 6.0 Kickstart_2\arm\inc\c\intrinsics.h") 
...........
...........

This is caused to the fact that IAR now incorporate CMSIS files that are also inside the STM Library.
This problem is known and the IAR solution is here (html page) or here (pdf).

My solution is: commenting the line 93 in the file core_cm3.c, see below.
 



It is not an elegant solution but it work.
 





Absolute Placement


Absolute placement (EWARM v.5.x and 6.x) (in C source) is here (html page) or here (pdf)
Absolute placement (EWARM 5.x & 6.x) (in assembler source) is here (html page) or here (pdf)
 






Constructing a bootloader with IAR Embedded Workbench and the STM32F207ZG-SK


As software becomes more and more complex, the potential for defects to exist in shipped code increases exponentially. 
It is therefore becoming quite common for design specifications to call for the ability to dynamically update a device’s firmware in the field. 
This is done commonly via a bootloader. In this article, we will discuss some of the issues involved with developing a bootloader and show you how to set one up with the Embedded Workbench on the STM32F207ZG-SK board.
Click here to reading all.
Click here to get the example.
 






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

Error[Pe147]: declaration is incompatible with "__nounwind __interwork __softfp unsigned long __get_ 的相关文章

  • STM32内部时钟

    我对 STM32F7 设备 意法半导体的 Cortex M7 微控制器 上的时钟系统感到困惑 参考手册没有充分阐明这些时钟之间的差异 SYSCLK HCLK FCLK 参考手册中阅读章节 gt RCC 为 Cortex 系统定时器 SysT
  • 使用可加载内核模块修改帧缓冲区(/dev/graphics/fb0)参数

    Problem 我必须配置 Android 平台使用的各种 LCD 显示器 几乎在所有情况下 都没有针对感兴趣的 LCD 显示器免费提供的电气规格 但通过经验和逆向工程 可以很好地猜测参数 我正在尝试使用可加载内核模块来微调显示参数 也欢迎
  • Pandaboard 交叉编译 Qt

    我花了几周的时间尝试为我的 Panda 板交叉编译 Qt 但没办法 我无法通过 configure 如果有人能给我帮助 我将不胜感激 我的主机系统是Ubuntu 13 04 86 64位 在Virtualbox中运行 我的目标系统是 Pan
  • 抢占和上下文切换的区别

    一点介绍 我目前正在编写一个小型 读微型 RTOS 内核 它应该与内核中的大多数内容是一体的 然而 我找不到关于下面列出的一些事情的太多信息 这会很有帮助 除此之外 它实际上不是某种大学项目 而是我按照自己的意愿做的事情 回答所有问题的一个
  • arm gcc工具链为arm-elf或arm-none-eabi,有什么区别?

    当您构建 gcc 工具链时 可以将其构建为arm elf 或arm none eabi 但是有什么区别呢 我今天使用 eabi 但这只是因为其他人似乎都这样做 但由于这是一个非常糟糕的论点 因此理解其中的差异真的很高兴 注意 此工具链将为基
  • GNU Arm Cortex m4 上的 C++ 异常处理程序与 freertos

    2016 年 12 月更新现在还有一个关于此行为的最小示例 https community nxp com message 862676 https community nxp com message 862676 我正在使用带有 free
  • ARM 的启动过程是怎样的?

    我们知道 对于X86架构 按下电源按钮后 机器开始执行0xFFFFFFF0处的代码 然后开始执行BIOS中的代码以进行硬件初始化 BIOS 执行后 它使用引导加载程序将操作系统映像加载到内存中 最后 操作系统代码开始运行 对于ARM架构 使
  • 将结构体偏移属性赋予汇编器

    如何将 C 结构体的偏移量发送到汇编代码 例如 在我的 C 代码中 typedef struct unsigned int a unsigned int b CMyStruct 我向 ASM 函数发送一个 CMyStruct 结构的指针 假
  • 适用于arm(cortex-m3)的位置独立可执行文件(-pie)

    我正在使用codesourcery g lite 基于gcc4 7 2版本 为stm32 Cortex m3 编程 我希望动态加载可执行文件 我知道我有两个选择 1 可重定位的elf 需要一个elf解析器 2 具有全局偏移寄存器的位置无关代
  • ARM 汇编分支到寄存器或内存内部的地址

    我想知道在 ARM 汇编中我可以使用哪条指令分支到存储在某个内存地址中的地址或标签 例如 我们可以使用B LABEL来跳转到LABEL 但现在目的地只能在运行时知道 并且它存储在某个已知的内存位置 是否有类似 B 地址 的东西 Thanks
  • 在 ARM 处理器上执行存储在外部 SPI 闪存中的程序

    我有一个 ARM 处理器 能够与外部闪存芯片连接 写入芯片的是为 ARM 架构编译的程序 可供执行 我需要知道如何将这些数据从外部闪存获取到 ARM 处理器上以供执行 我可以提前运行某种复制例程 将数据复制到可执行内存空间吗 我想我可以 但
  • DSP 库 - RFFT - 奇怪的结果

    最近我一直在尝试在我的STM32F4 Discovery评估板上进行FFT计算 然后将其发送到PC 我已经调查了我的问题 我认为我对制造商提供的 FFT 函数做错了 我正在使用 CMSIS DSP 库 现在我一直在用代码生成样本 如果工作正
  • 在嵌入式设备上使用new或malloc引起的段错误[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在尝试
  • ARM + gcc:不要使用一大块 .rodata 部分

    我想使用 gcc 编译一个程序 并针对 ARM 处理器进行链接时间优化 当我在没有 LTO 的情况下编译时 系统会被编译 当我启用 LTO 时 使用 flto 我收到以下汇编错误 错误 无效的文字常量 池需要更近 环顾网络 我发现这与我系统
  • 为什么 i2c_smbus 函数不可用? (I2C——嵌入式Linux)

    有很多参考使用i2c smbus 开发嵌入式 Linux 软件时在 I2C 总线上进行通信的函数 什么时候i2c smbus函数如i2c smbus read word data在软件项目中引用了 ARM8 处理器错误 例如 i2c smb
  • 在 Intel 机器上构建 Apple Silicon 二进制文件

    如何在 macOS 11 Intel 上编译 C 项目以在 Silicon 上运行 我当前的构建脚本很简单 configure make sudo make install 我尝试过使用 host and target标志与aarch64
  • arm-linux-gnueabi 编译器选项

    我在用 ARM Linux gnueabi gcc在 Linux 中为 ARM 处理器编译 C 程序 但是 我不确定它编译的默认 ARM 模式是什么 例如 对于 C 代码 test c unsigned int main return 0x
  • 直接在 ARM 目标上调试单声道应用程序

    我最近在 BeagleBone 嵌入式 ARM 设备上安装了 Mono 希望通过 USB 连接 Kinnect 传感器并使用 C Mono 控制它 我想知道 Mono 我正在使用 MonoDevelop 但我想这个问题也适用于 VS 是否允
  • 如何模拟ARM处理器运行环境并加载Linux内核模块?

    我尝试加载我的vmlinux into gdb并使用 ARM 内核模拟器 但我不明白为什么我会得到Undefined target command sim 这是外壳输出 arm eabi gdb vmlinux GNU gdb GDB 7
  • iPhone 3GS 上的 ARM 与 Thumb 性能比较,非浮点代码

    我想知道是否有人有关于 iPhone 3GS 上 ARM 与 Thumb 代码性能的硬性数据 特别是对于非浮点 VFP 或 NEON 代码 我知道 Thumb 模式下的浮点性能问题 更大的 ARM 指令的额外代码大小是否会在某个时刻成为性能

随机推荐

  • 免费小程序商城搭建之b2b2c o2o 多商家入驻商城 直播带货商城 电子商务b2b2c o2o 多商家入驻商城 直播带货商城 电子商务

    1 涉及平台 平台管理 商家端 PC端 手机端 买家平台 H5 公众号 小程序 APP端 IOS Android 微服务平台 业务服务 2 核心架构 Spring Cloud Spring Boot Mybatis Redis 3 前端框架
  • java设计模式(二十三)访问者模式

    目录 定义 模式结构 角色职责 代码实现 适用场景 优缺点 定义 访问者模式是一种行为型模式 它允许你定义一个作用于某个对象结构中的各个元素的操作 而同时又不改变这些元素的类 该模式的核心思想是将数据结构与数据操作分离 从而可以在不改变数据
  • IOS_Swift_深入理解闭包 对比懒加载和普通赋值的区别

    定义一个字符串的变量的方法 直接赋值 var str JobDeer 闭包方式 var str String return JobDeer 简化闭包 省略了等号和括号 var str String return JobDeer 闭包中可以定
  • citrix协议ICA技术原理

    转载自 http www zrss com cn article 110 1 html Citrix交付中心解决方案的核心是虚拟化技术 虚拟化计算的核心是ICA协议 ICA协议连接了运行在平台上的应用客户端运行环境和远端终端设备 通过ICA
  • Flutter 单线程模型保证UI运行流畅

    Flutter 框架出色的渲染和交互能力 支撑起这些复杂的能力背后 实际上是基于单线程模型的 Dart 那么 与原生 Android 和 iOS 的多线程机制相比 单线程的 Dart 如何从语言设计层面和代码运行机制上保证 Flutter
  • JUC并发编程之AQS原理

    1 AQS 原理 1 1 概述 全称是 AbstractQueuedSynchronizer 是阻塞式锁和相关的同步器工具的框架 特点 用 state 属性来表示资源的状态 分独占模式和共享模式 子类需要定义如何维护这个生态 控制如何获取锁
  • PCL点云焊点提取

    滚回来更新一篇文章 和各位交流一下 待处理点云 数量级 百万 类型 零部件 描述 弯曲表面上有一些凸起在上面 需要提取凸起和平面接触的一圈点云 作为焊接的加工点 参考 https zhuanlan zhihu com p 32111069
  • Vue监听滚动实现导航栏锚点定位

    父级 div div div div div div div div div 子组件 ul class compreDiagnosisInfoUl li class active li ul div
  • 变分自编码器 (Variational Autoencoders, VAEs)

    Contents Dimensionality reduction PCA and autoencoders Dimensionality reduction Principal components analysis PCA Autoen
  • VMware Workstation克隆虚拟机(CentOS系统)

    问题 VMware Workstation克隆虚拟机 CentOS系统 下面具体说明下 如何在VMware Workstation中克隆一台已有的虚拟机 方法 如下图所示 要克隆名叫 CentOS7 base的一台虚拟 右键该虚拟机选择 管
  • userManager.do不可用问题

    dao层和业务层都可以成功添加 但在页面上调用Servlet显示不可用 原因 userAdd jsp被放到了web的子目录usermanager下面了 所以定位不到servlet资源了 修改 userManager do 成功解决问题
  • 怎么查EI论文的检索号

    论文题目 Study on joint probability density algorithm in multi sensor data fusion 那位热心人帮忙查一下检索号是多少啊 去http www engineeringvil
  • OpenCV调用cv2.imshow显示错误 “The function is not implemented. Rebuild the library with Windows”的解决办法

    在Windows环境下 已经安装了opencv python 读取图片 处理都没有问题 唯独显示就会出错 说 The function is not implemented Rebuild the library with Windows
  • Android 蓝牙开发(六)hfp连接

    转载请注明出处 http blog csdn net vnanyesheshou article details 71106622 本文已授权微信公众号 fanfan程序媛 独家发布 扫一扫文章底部的二维码或在微信搜索 fanfan程序媛
  • nginx+php 出现404错误解决方法

    http www 51ou com browse linuxwt 32263 html 错误日志 装好 nginx 1 0 5 与 php 5 3 6 php fpm 迫不及待的测试 info php 但是只返回了空白页 什么也没有输出 以
  • 关于解决Linux(ubuntu) 中不允许root用户ssh远程登录的问题

    当我们在ubuntu中登录ssh的时候 会出现如下问题 是因为系统默认禁止root用户登录ssh 此时我们可以这样解决 1 首先 按Ctrl C退出密码输入界面 2 然后输入 su 一定是su 不是su 3 编辑sshd config文件
  • VS快捷键大全(超详细)

    本文主要介绍VS编译器下的快捷键 文章目录 1 项目相关的快捷键 2 编辑相关的键盘快捷键 3 导航相关的键盘快捷键 4 调试相关的键盘快捷键 5 搜索相关的键盘快捷键 1 项目相关的快捷键 Ctrl Shift B 生成项目 Ctrl A
  • 2020.11.14 数组的相对排序

    2020 11 14 数组的相对排序 题目描述 给你两个数组 arr1 和 arr2 arr2 中的元素各不相同 arr2 中的每个元素都出现在 arr1 中 对 arr1 中的元素进行排序 使 arr1 中项的相对顺序和 arr2 中的相
  • CORE-ESP32C3

    目录 参考博文 项目官方地址 显示效果 硬件准备 软件版本 日志及soc下载工具 软件使用 接线示意图 硬件接线 一 Elink驱动管脚适配 二 天气信息获取 API使用方式 接口格式 注意需不需要tls http apicn luatos
  • Error[Pe147]: declaration is incompatible with "__nounwind __interwork __softfp unsigned long __get_

    原文地址 http www emcu it ARM Compiler IAR IAR tips and tricks html IAR tips and tricks Home Page STM32 home page CMSIS buil