Published August 14, 2024.
Compiler workaround for a security weakness in PCS (Procedure Call Standard) for CMSE (Cortex-M security extensions).
The weakness in the PCS is that the 32-bit AEABI specifies that it is the callers responsibility to extend small arguments to register width, and that it is the callees responsibility to extend small return values to register width for CMSE this is handled as follows:
-
small arguments are extended in prolog of non-secure entry functions
-
small return values are extended at call-site after return from non-secure call
"small" in this context are values of `char` or `short` type, or enum or wide-characters if they are represented in either 8 bits or 16 bits.
Update 2024-09-04:
bxarm-9504-821-patch-linux-3.zip has a corrected release notes file (iccarm.ENU.html). No other changes.
Patch archive for Ubuntu and RedHat (
18.6 MB)
A valid Support and Update Agreement is required for this download.
How to Install
Unzip the downloaded archive in the BXARM installation directory.
Patch archive for Windows (
13.1 MB)
A valid Support and Update Agreement is required for this download.
How to Install
Unzip the downloaded archive in the BXARM installation directory.