问题标签 [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.

0 投票
1 回答
305 浏览

embedded - SPI真的需要等待循环吗?

我正在使用带有 IAR Embedded Workbench 5.10 的 msp430f5418。

图形 LCD (ST7565R) 通过 SPI 连接到 MSP..

MSP 主机使用 8 位、MSB 优先模式和 SMCLK。

通常我们必须在使用 SPI 传输字节之前检查忙位,对吗?

但就我而言,即使我在不​​检查忙位的情况下连续发送数据,它也可以正常工作,并且我可以正确查看显示数据。

任何人都可以解释为什么它工作?

是否需要检查就绪位或是否安全?

谢谢,

0 投票
2 回答
1022 浏览

c - 8051(8 位)微控制器上的意外位移结果

考虑以下代码:

此代码在 TI CC1111 SoC(具有 8051 内核)上运行,并使用 IAR EW8051 8.10.3 编译/调试,配置为使用 C99 方言,未进行优化。评论中的值是使用 IAR 调试器观察到的(使用模拟器或实际设备的结果相同)。

我希望之后crc16 = crc16 << 8;crc16会有价值0x4300,而不是0x0000

根据 C99 标准(嗯,2005-05-06 年 5 月的草案),第 6.5.7.3-4 节。

对每个操作数执行整数提升。结果的类型是提升的左操作数的类型。如果右操作数的值为负数或大于或等于提升的左操作数的宽度,则行为未定义。

E1 << E2 的结果是 E1 左移 E2 位位置;空出的位用零填充。如果 E1 具有无符号类型,则结果的值为 E1 × 2^E2,比结果类型中可表示的最大值多模一减少。如果 E1 具有带符号类型和非负值,并且 E1 × 2^E2 在结果类型中是可表示的,那么这就是结果值;否则,行为未定义。

我对此的看法是,结果类型应该是一个无符号的 16 位整数,其值为((0x0043)*(2^8)) % 0x10000 == 0x4300.

我错过了什么吗?谢谢。

0 投票
1 回答
715 浏览

bootloader - arm9 引导加载程序 IAR

我正在寻找 Atmel Arm9 的引导加载程序。

Atmel 有一个“安全可靠的引导加载程序”,但它适用于 ARM7,而且已经很老了(不使用最新的 IAR 工具链构建)

我假设这必须在之前完成并且不想重新发明轮子

如果引导加载程序适用于最新的 IAR 嵌入式工作台(版本 6.x),则奖励将是

如果有可用的商业产品 - 那也很好。

佩德罗

0 投票
1 回答
17003 浏览

linux - 在 Linux 中使用加密狗运行 IAR Embedded Workbench for Arm 的建议

我正在运行 Ubuntu 10.04 和 Wine 1.2。我能够安装 IAR 软件,但无法找到加密狗许可证。无论如何在 Ubuntu 的 Wine 中使用加密狗许可证还是我必须使用 PC 许可证?

提前致谢..

0 投票
1 回答
476 浏览

msp430 - MSP430 RTC 校准问题

我正在使用带有 IAR EW 5.10 的 MSP430F5418。

我正在尝试以 1Hz 的频率从 MSP 的第 29 引脚输出 RTCCLK 信号。

当我输出信号时,它是通过端口来的。

但在我重写 RTC 时间后,信号停止了。

我试图重新启用它,但它没有奏效。

谁能告诉我是什么原因??

我正在使用 TI 提供的解决方法代码来设置 RTC 时间。

我的 RTC 配置是:

0 投票
1 回答
583 浏览

c - 定时器处于向上模式

我正在MSP430F5418使用IAR EW 5.10. 我想在 up 模式下使用 Timer B。

我想使用两个中断。TimerB0(1 毫秒)和 TimerB1(1 秒)。

我的配置是

在 ISR 上,我只是切换了两个引脚。但只有 TB0CCR0 的引脚在切换。我的引脚配置是正确的。谁能告诉我为什么??

0 投票
4 回答
45302 浏览

c - 将枚举定义转换为 unsigned int

根据这篇 SO 帖子:
C 中枚举的大小是多少?
枚举类型有signed int类型。

我想将枚举定义从 转换signed intunsigned int

例如,在我的平台上,anunsigned int是 32 位宽的。我想创建一个枚举:

我的编译器抱怨上面的定义超出了范围(它适用于 a signed int)。

如何声明unsigned int enum值?

编辑1:

  1. 首选不扩展到 64 位(因为代码驻留在嵌入式系统中)。
  2. 由于技能限制,此项目不允许使用 C++。:-(

编辑2:

  • 编译器是用于 ARM7 的 IAR Embedded Workbench。
0 投票
5 回答
9635 浏览

c - ARM cortex m3中的调用堆栈展开

我想创建一个调试工具来帮助我更好地调试我的应用程序。我正在做准系统(没有操作系统)。在 Atmel 的 SAM3 上使用 IAR 嵌入式工作台。

我有一个看门狗定时器,它在超时的情况下调用一个特定的 IRQ(这将在发布时用软件复位代替)。在 IRQ 处理程序中,我想打印(UART)堆栈跟踪,其中确切地发生了看门狗超时。

我查看了网络,但没有找到该功能的任何实现。

任何人都知道如何处理这种事情?

编辑:好的,我设法从堆栈中获取返回地址,所以我知道 WDT 超时发生的确切位置。展开整个堆栈并不像最初看起来那样简单,因为每个函数都会将不同数量的局部变量推入堆栈。

我最终得到的代码是这个(对于其他人,他们可能会觉得它有用)

0 投票
1 回答
1768 浏览

enums - IAR Embedded Workbench 观察窗口

在 IAR Embedded Workbench 中,监视窗口显示几列(表达式、值、位置、类型)。我想将给定表达式的值视为枚举而不是实际值。意义...

相对于...

这似乎是可能的,因为我可以ucFruit通过简单地键入 APPLE 作为其值来更改 的值。

有什么建议么?

0 投票
2 回答
4986 浏览

linker - 在 IAR Embedded Workbench 中自动配置链接器

我正在做一个固件项目,我必须对闪存完整性进行 crc16 检查。

crc 使用 IAR Xlink 链接器计算并保存在闪存的末尾。再次在运行时从代码计算 crc,并与闪存中存储的值进行比较以检查完整性。但是,我们只能在闪存的代码段上计算 crc。每当我们对代码进行一些更改时,它的大小可能会发生变化。我可以自动化我现在手动执行的这个过程吗?

从 .xcl 链接器文件:

在这里,我现在需要更改第二个代码段的结束值,即 0x20A13。我从 .map 文件中得到这个值,即我的代码在闪存内的内存范围。这是我做的第一个改变。

在这里,我需要对代码进行第二次更改:

请帮助自动化此过程!