IAR Embedded Workbench for ARM version 10 1.2 Gb
IAR 作为全球嵌入式开发软件和服务领导者,发布了 Embedded Workbench for Arm 10.10.2 版本,这是一套高度复杂且易于使用的嵌入式应用开发工具。 IAR Embedded Workbench for Arm 10.10.2 版本发布说明 - 日期:2026年8月17日亮点:
通勤许可证
——IAR云端许可系统包含离线使用功能,允许你在最长七天内临时查看你的命名用户或容量令牌。在此期间,许可证权限会在主机本地存储和验证。
C++20 支持
——IAR C/C++ 编译器默认接受 C++20 标准编写的源代码。此外,使用 Libc++ C++20 库时,支持大部分 C++20 功能。
Arm China STAR-MC3
——基于Arm v8.1-M架构的Arm China STAR-MC3处理器现已支持
。ARM嵌入式工作台集成了IAR C/C++编译器、汇编器、链接器和C-SPY调试器,集成在一个完全集成的开发环境中。强大的插件和集成,包括易用的调试和追踪探针,以及静态分析和运行时分析集成工具,增加了更多功能。 IAR C/C++ Compiler Program corrections
In EWARM 8.50.9
[EWARM-8150, TPB-3453] When the C++17 feature constexpr if is used in a C++ constructor or destructor, the compiler can terminate with an internal error:
["Front end]: assertion failed at: "…\lower_init.c", line 18985"
In EWARM 8.50.9
[EWARM-8118, TPB-3448]
The compiler can exit with an internal error when compiling code where a volatile pointer is used to access a field in a non-volatile struct.
struct A
{
int x;
int y;
};
volatile int t;
volatile int a_x, a_y;
int main(void)
{
struct A a = { 1, 2 };
volatile int *vp = &a.y;
t = (*vp);
a_x = a.y;
a_y = a.y;
return 0;
}
In EWARM 8.50.9
[EWARM-8086, TPB-3442]
On optimization level High, the compiler can generate incorrect code when a pointer-type field in a struct is dereferenced, incremented, and then updated using the value of the original dereference as in the example below. The problem can also trigger if this pattern occurs after inlining.
struct A
{
unsigned char *x;
unsigned char *y;
};
int g4( struct A *ptr )
{
unsigned char len = *ptr->y++;
ptr->y = ptr->y + len;
return 0;
}
In EWARM 8.50.9
[EWARM-8085]
At medium optimization or higher, an unaligned load of a volatile member can be optimized away as if the access was not volatile. This can happen if the optimization is correct for a non-volatile member, which is the case if the load is preceded by a store of a known value to the same address.
Example:
#pragma pack(1)
typedef struct { volatile unsigned int x; } T;
void f(T * p) {
p->x = 5;
while ((p->x & 16) == 0);
}
IAR C-STAT Static Analysis tool Program corrections
In EWARM 8.50.9
[CSTAT-551, EWARM-8046] Initializing an aggregate or union with a struct or union field can incorrectly generate a MISRA2012-Rule-9.2 message, even if the initializer is properly enclosed in braces.
In EWARM 8.50.9
[CSTAT-552, EWARM-8044] The checks MEM-stack-param, MISRAC2012-Rule-1.3_s, MISRAC2012-Rule-18.6_d, and CERT-DCL30-C_e erroneously consider the address of a pointer parameter that is accessed with the subscript operator to be a stack address.
In EWARM 8.50.9
[CSTAT-549, EWARM-8032] The check MISRAC++2008-6-4-3 incorrectly requires switch statements to have a default clause.
In EWARM 8.50.9
[CSTAT-543, EWARM-7915] Using the offsetof macro generates a message for MISRAC2012-Rule-7.2.
In EWARM 8.50.9
[CSTAT-544, EWARM-7914] MISRAC++2008-6-5-5 interprets a loop counter to be only variables assigned in the init statement of a for loop. It should also include any variable assigned prior to the loop.
In EWARM 8.50.9
[CSTAT-545, EWARM-7913] The check MISRAC++2008-6-5-4 incorrectly requires that the loop counter is incremented or decremented by a constant value rather than by a value that is constant for the duration of the loop.
In EWARM 8.50.9
[CSTAT-541, EWARM-7901]
This code generate a message for MISRAC2012-Rule-18.8 regarding the usage of variable length arrays.
extern struct {
int m;
} a[ ];
IAR ILINK linker for Arm Program corrections
In EWARM 8.50.9
[EWARM-8188, TPB-3455] When calculating a checksum for a range that contains nobits content (in this particular case the last bytes of a ROM-placed block with a specified size, where the available content does not occupy all available bytes in the block), ielftool can fail to terminate.
In EWARM 8.50.9
[EWARM-8042] When linking for a legacy core (pre-cortex) without FPU, with stack usage analysis enabled, a warning is issued for library symbols __aeabi_f2uiz and __aeabi_f2d:
Warning[Ls014]: [stack usage analysis] at least one function does not have stack usage
information
The symbols __aeabi_f2uiz and __aeabi_f2d are used to implement conversion of a float value to int or double.
IAR C-SPY Debugger for Arm Program corrections
In EWARM 8.50.9
[EWARM-8005] When using the Function profiler, Source: Trace (flat) (ETM), the Debug Log window, on Messages filter level, is filled up with non-understandable numbers.
About IAR Embedded Workbench for ARM. IAR Embedded Workbench for ARM incorporates the IAR C/C++ Compiler, an assembler, a linker and the C-SPY Debugger into one completely integrated development environment. Powerful add-ons and integrations, including easy-to-use debugging and trace probes as well as integrated tools for static analysis and runtime analysis, add additional capabilities. To fully support developers in their specific needs, IAR Systems offers extensive technical support services all over the world and training courses in embedded programming though IAR Academy. In this video, you get a demo of how to work with integrated code analysis in IAR Embedded Workbench for Arm. C-STAT static analysis and C-RUN runtime analysis are available as add-ons to bring code quality control to the desk of every developer. About IAR Systems. IAR Systems supplies future-proof software tools and services for embedded development, enabling companies worldwide to create the products of today and the innovations of tomorrow. Since 1983, IAR Systems’ solutions have ensured quality, reliability and efficiency in the development of over one million embedded applications. The company is headquartered in Uppsala, Sweden and has sales and support offices all over the world. 本部分内容设定了隐藏,需要回复后才能看到
9.10版:http://bbs.sdbeta.com/read-htm-tid-575901.html