portable: fix stray installer URL in IAR ARM_CM33 non-secure port

portable/ARMv8M/copy_files.py derives the non-secure IAR ports from
portable/ARMv8M/non_secure/portable/IAR/ARM_CM33. The previous commit
fixed that source directory but did not regenerate the ARM_CM33 copy, so
portable/IAR/ARM_CM33/non_secure/portasm.s still carried the stray URL.
mpu_wrappers_v2_asm.S and portmacro.h are already identical between
source and destination, so re-running the script changes only this file.

With this commit all seven files that carry the stray URL are fixed,
which makes #1485 (same file, same line) unnecessary.

Correction to the previous commit message: the stray URL is in the #else
branch of #if ( configENABLE_MPU == 1 ), so it is not every configuration
of the port. It breaks every non-MPU build, independently of
configENABLE_PAC; MPU builds never compile the line.

Verified with arm-none-eabi-gcc 13.3.1 (GNU as, not IAR iccarm), using
-march=armv8.1-m.main -mthumb -mfpu=fpv5-d16 and a minimal IAR-to-GNU
directive translation:

  configENABLE_MPU=0, configENABLE_PAC=0   fails before, assembles after
  configENABLE_MPU=1                       line is not compiled

The PAC_KEY_* mrs/msr instructions are rejected by GNU as on this target,
so the PAC-enabled non-MPU configuration could not be exercised here.

Relates to #1480.
This commit is contained in:
Mortal 2026-09-15 09:44:24 +08:00
parent 2b4dfaf8b0
commit 73567c5119

View file

@ -473,7 +473,7 @@ PendSV_Handler:
msr PAC_KEY_P_0, r6 msr PAC_KEY_P_0, r6
clrm {r3-r6} /* Clear r3-r6. */ clrm {r3-r6} /* Clear r3-r6. */
#endif /* configENABLE_PAC */ #endif /* configENABLE_PAC */
ldmia r2!, {r0, r3, lr} http://files.iar.com/ftp/pub/box/bxarm-9.60.3.deb/* Read from stack - r0 = xSecureContext, r3 = PSPLIM and LR restored. */ ldmia r2!, {r0, r3, lr} /* Read from stack - r0 = xSecureContext, r3 = PSPLIM and LR restored. */
msr psplim, r3 /* Restore the PSPLIM register value for the task. */ msr psplim, r3 /* Restore the PSPLIM register value for the task. */
ldr r3, =xSecureContext /* Read the location of xSecureContext i.e. &( xSecureContext ). */ ldr r3, =xSecureContext /* Read the location of xSecureContext i.e. &( xSecureContext ). */
str r0, [r3] /* Restore the task's xSecureContext. */ str r0, [r3] /* Restore the task's xSecureContext. */