Tags
Language
Tags
March 2024
Su Mo Tu We Th Fr Sa
25 26 27 28 29 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31 1 2 3 4 5 6

IAR Embedded Workbench for ARM version 8.50.9

Posted By: scutter
IAR Embedded Workbench for ARM version 8.50.9

IAR Embedded Workbench for ARM version 8.50.9 | 2.6 Gb
Languages: English, 日本語

IAR Systems, a future-proof supplier of software tools and services for embedded development, announces the availability of a major update of its development tools for ARM.

Release notes for IAR Embedded Workbench for Arm version 8.50.9

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);
}

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[ ];

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.

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.

IAR Embedded Workbench for ARM version 8.50.9

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.

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.


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.

Product: IAR Embedded Workbench
Version: for ARM version 8.50.9 (build 33462) with Examples *
Supported Architectures: 32bit / 64bit
Website Home Page : www.iar.com
Language: english, 日本語
System Requirements: PC *
Size: 2.6 Gb

IAR Embedded Workbench for ARM version 8.50.9_33462

Examples
ARM_Aiji_8.50.9_33462.zip
ARM_Altera_8.50.9_33462.zip
ARM_AmbiqMicro_8.50.9_33462.zip
ARM_AnalogDevices_8.50.9_33462.zip
ARM_Atmel_8.50.9_33462.zip
ARM_Broadcom_8.50.9_33462.zip
ARM_Cirrus_8.50.9_33462.zip
ARM_Cypress_8.50.9_33462.zip
ARM_Epson_8.50.9_33462.zip
ARM_Fujitsu_8.50.9_33462.zip
ARM_HDSC_8.50.9_33462.zip
ARM_Holtek_8.50.9_33462.zip
ARM_Infineon_8.50.9_33462.zip
ARM_Lapis_8.50.9_33462.zip
ARM_Maxim_8.50.9_33462.zip
ARM_Mediatek_8.50.9_33462.zip
ARM_Microchip_8.50.9_33462.zip
ARM_Micronas_8.50.9_33462.zip
ARM_Microsemi_8.50.9_33462.zip
ARM_MindMotion_8.50.9_33462.zip
ARM_NordicSemi_8.50.9_33462.zip
ARM_Nuvoton_8.50.9_33462.zip
ARM_NXP_8.50.9_33462.zip
ARM_ONSemiconductor_8.50.9_33462.zip
ARM_Renesas_8.50.9_33462.zip
ARM_Samsung_8.50.9_33462.zip
ARM_SiliconLaboratories_8.50.9_33462.zip
ARM_Sonix_8.50.9_33462.zip
ARM_ST_8.50.9_33462.zip
ARM_TexasInstruments_8.50.9_33462.zip
ARM_Toshiba_8.50.9_33462.zip
ARM_Xilinx_8.50.9_33462.zip

System requirements
To install and run this version of IAR Embedded Workbench you need:

- A Pentium-compatible PC with Windows 7, Windows 8, Windows 8.1, or Windows 10. Both 32-bit and 64-bit variants of Windows are supported.
- Internet Explorer 8 or higher
- At least 4 Gbyte of RAM, and 10 Gbytes of free disk space.
- Adobe Acrobat Reader to access the product documentation

Third-party debugger drivers, might or might not work depending on their level of support for the Windows version used.

Please visit my blog

Added by 3% of the overall size of the archive of information for the restoration

No mirrors please


IAR Embedded Workbench for ARM version 8.50.9