问题标签 [iar]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
arm - 关于kinetis K60向量表地址
如何确定 K60 向量表地址。我知道它存储在VTOR
寄存器(0xE000ED08)中,但是重置时它是什么值,它是为不同的 K60 cpu 初始化不同的值,还是由某些外围设备初始化?
compiler-errors - 使用 IAR 在 MSP430 上移植 contiki
我正在使用 MSP-EXP430F5438 板,并试图通过 IAR 使用源代码(contiki 2.6)在其上移植 contiki。
我收到以下错误-
您认为源代码中可能缺少头文件吗?
问候
c - 当我收到以下错误时,如何使用 IAR 在 C 中为 msp430x5438A 编译程序?
我正在为 msp430xf5438A 使用 IAR,当我尝试编译我的程序时,我收到以下错误:内部错误:[TaInstr::Validate]:指令不符合要求。我能做些什么来解决这个错误?谢谢!
c - IAR Embedded Workbench 创建库
我想在 IAR Embedded Workbench 中创建一个简单的库 (C/ANSI),然后在另一个项目中使用该库。我在他们的网站上找到了一些文档。虽然我不完全理解它,但我设法让自己成为一个.r90
文件,据我所知,这将是图书馆。请注意,我是这方面的初学者。总之,我想一步一步地描述如何创建一个库,然后如何将它导入另一个项目。谢谢。
Library
PS:我正在使用 IAR Embedded Workbench for AVR,这个版本没有Linker
.
workbench - IAR 嵌入式工作台上的模数模块
我刚刚开始在 Stellaris 6965 的工作台上工作。我的任务是将 5V 模拟输入转换为数字输入并点亮 LED。
请告诉我该怎么做!
msp430 - IAR Embedded Workbench 无法找到文件 Pe1696,即使它正在搜索它们
我正在为 MSP430 使用 IAR Embedded Workbench 5.51。我正在使用 C99。
我正在尝试包含来自第三方库的代码。我已经在我的主项目目录的子目录中复制了这个第三方库的目录结构。但是,当我尝试编译时,我得到了一堆
致命错误 [Pe1696]:无法打开源文件“ThirdPartyLib/Subdir/file.h”
但是在日志中 IAR 显示:
搜索到:“C:\ ... bla bla bla ... \Source\ThirdPartyLib\Subdir\”
这个库中每个源文件中的 include 语句都是这样的:
我试图通过以下方式添加到 C 预处理器的路径:
项目 -> 选项 -> C/C++ 编译器 -> 预处理器
并添加行:
我没有选中“多文件编译”。
所有有问题的源文件都已添加到项目中。我创建了组来模仿库的目录结构。
如果我将路径从绝对路径更改为相对路径,例如
但我正在处理大量文件,并希望尽可能少地修改它们。
我以前从来没有遇到过这个问题 - 有没有人知道为什么会发生这种情况。是否有一个简单的解决方法,所以我不必清理每个 c 文件中的每个包含语句?
这基本上就是我的目录树的样子:
- 来源
- 调试
- 可执行程序
- 输出.d43
- 列表
- blabla.map
- 对象
- ...
- 可执行程序
- 释放
- ...
- 设置
- ...
- 第三方库
- 子目录
- ... 第三方代码文件住在这里 ...
- 实用程序
- ... 更多第三方代码文件住在这里 ...
- 子目录
- ...我的代码与 EWP、EWW 等一起存在于此...
- 调试
编辑#2:我将 ThirdPartyLib 的目录上移了一个级别,因为我在 /Source/ 上递归地运行 doxygen,我意识到它永远需要 doxygen,而且该库有自己的 API。
无论如何,这是现在的结构:
- 工作副本
- 来源
- 调试
- 可执行程序
- 输出.d43
- 列表
- blabla.map
- 对象
- ...
- 可执行程序
- 释放
- ...
- 设置
- ...
- ...我的代码与 EWP、EWW 等一起存在于此...
- 调试
- 第三方库
- 子目录
- ... 第三方代码文件住在这里 ...
- 实用程序
- ... 更多第三方代码文件住在这里 ...
- 子目录
- 来源
我已经为 ThirdPartyLib 添加了一个组,其中包含两个子组 SubDir 和 Utils,并将 Subdir 和 Utils 目录中的所有文件添加到相应的子组中。
现在我试图再次编译它,我再次面临 Pe1696 错误。IAR 说:
然而它仍然没有找到文件。
我参考了这篇文章: http ://e2e.ti.com/support/low_power_rf/f/155/t/110195.aspx 我不确定它是否完全相关,因为我所包含的目录似乎没有'掉出来'。IAR 显然正在搜索这些文件。
但是我还是尝试将以下几行添加到预处理器中
这似乎没有帮助。我在消息日志中得到这些额外的行:
编辑#3 我尝试将 EWW/EWP 提升到“工作副本”,然后读取所有组和所有文件......没有骰子。我在这里迷路了。最令人沮丧的部分是同一个库是在另一个项目中实现的,该项目是由一些前开发人员完成的,我试图以同样的方式包含它。我知道这将是一件微不足道的事情,我只是不知道是什么。
c - 由于看门狗(IAR/MSP430),我的嵌入式应用程序从未完成初始化以进入 main()
我正在使用具有 10K RAM 的 MSP430 芯片。如果我的 RAM 使用量超过 5k,它永远无法进入 main()。初始化代码调用__data20_memzero
以清除已使用的 RAM 空间。
看起来它在内存中递增并清除字节直到 R14=R12。R14 为 0x34B4。但是 R12 的最大值是 0x2c86 在它重新启动并重新开始之前。我通过调试器手动关闭了看门狗,它开始运行得很好。我不能认为这是正常的。知道如何解决这个问题吗?
c - 如何阻止文件名/路径出现在编译的 C 二进制文件中
这可能是特定于编译器的,在这种情况下,我使用的是 IAR EWARM 5.50 编译器(STM32 芯片的固件开发)。
我们的项目由我们首先编译的一堆 C 代码库组成,然后是编译其 C 代码然后链接到这些库中的主应用程序(非常标准的东西)。
但是,如果我使用十六进制编辑器并打开任何生成的库对象文件或最终的应用程序二进制文件,我会在输出二进制文件中找到一大堆纯文本引用,指向已编译的 C 文件的文件路径。(例如,我看到“C:\Development\trunk\Common\Encryption\SHA_1.c”)
这有两个问题:
- 我们真的不希望文件路径易于阅读,因为这表明我们的设计有些什么
- 如果您的 C 文件位于较长的子目录中,则二进制文件的大小会增加(二进制文件包含完整路径,而不仅仅是名称)...当我们处理数量有限的固件时,这一点尤其重要代码空间(256KB)。
对此有什么想法吗?我已经尝试了编译器中我能想到的“删除调试信息”等所有开关,但这些路径仍然存在。
debugging - 与调试/嵌入有关的“步骤点”的定义
我正在阅读有关使用CoreSight 跟踪技术的 IAR 描述的 IAR 描述,并遇到了一个生成“代码覆盖率统计”的示例。
他们多次引用“步点”。在 IAR 站点内搜索“step point”只会生成上述链接。
我们可以轻松定义指令和代码行,那么究竟什么是step - point,或者更好的是,上面链接中引用的step-point 级别?
bluetooth-lowenergy - CC2540 DK 程序 SimpleBLE 外设应用程序
我已经购买了 CC2540 EK 我正在尝试将 SampleBLE 外围设备编程到 CC2540EM 上。我正在使用 IAR 工具链,USB 电缆直接连接到 SMARTRF05EB(不使用 CC 调试器) 在 IAR 中我可以下载代码,但 SimpleBLEperipheral 似乎没有运行。
看起来 CC250EM 出厂时附带的应用程序已被删除,我无法再次重新加载该应用程序。
我应该打开的确切项目工作区是什么?
是否需要对 IAR 项目进行任何更改才能在 CC2540EM 上运行?
IAR 项目名称是 SimpleBLEPeripheral - CC2540DK- MiniKeyfob - 这似乎表明它适用于 keyfob 而不是 CC2540EM。