Hi Ildikó,
You might have multiple versions of Python installed on your Windows machine.
In command shell, type
C:\> where python
You might see something like
C:\Program Files\Python37\python.exe
C:\Users\<username>\AppData\Local\Microsoft\WindowsApps\python.exe
The TF-M build system might located the latest version of Python (e.g. 3.10), but when you run
pip3 install -r tools\requirements.txt
It might install the modules in an older version (e.g. 3.7).
To make sure you are installing the Python tools to the right version of Python, you can specify which Python to use when running pip:
C:\>C:\Users\<username>\AppData\Local\Microsoft\WindowsApps\python -m pip install -r tools\requirements.txt
Hope this solve the Python problem.
Regards,
Joseph
From: Pocsai Ildiko LCPF-CH via TF-M <tf-m@lists.trustedfirmware.org>
Sent: 24 November 2022 15:50
To: Anton Komlev <Anton.Komlev@arm.com>; tf-m@lists.trustedfirmware.org
Subject: [TF-M] Re: EXTERNAL - Trusted Firmware M build error on Windows 10
Hi Anton,
Just wanted to ask if there are any updates regarding the build failure on Windows with the IAR compiler. I tried to build the head version on
Win x64 for
NXP LPC55S69 using
IAR ANSI C/C++ Compiler V8.50.9.278/W32 for ARM
GNU Make 3.81
git version 2.36.0.windows.1
CMake 3.24.2
Python 3.10.5
but I still get some errors. They are though not the same as during my previous try:
[ 77%] Building C object secure_fw/CMakeFiles/tfm_s.dir/__/platform/ext/target/nxp/lpcxpresso55s69/Device/Source/startup_lpcxpresso55s69.o
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors;
^
"C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe260]:
explicit type is missing ("int" assumed)
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors;
^
"C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe1113]:
attributes are not permitted in a function definition
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors;
^
"C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe169]:
expected a declaration
void Reset_Handler(void)
^
"C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",228 Error[Pe099]:
a declaration here must declare a parameter
{
^
"C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",229 Error[Pe065]:
expected a ";"
At end of source Warning[Pe012]: parsing restarts here after previous syntax
error
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors;
^
"C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Warning[Pe1051]:
standard requires that parameter "__vector_table" be given a type by
a subsequent declaration ("int" assumed)
At end of source Error[Pe130]: expected a "{"
At end of source Error[Pe067]: expected a "}"
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors;
^
"C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe1154]:
entity declared as alias cannot have definition
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors;
^
"C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe1153]:
declaration does not match its alias variable "__vector_table @
".intvec""
make[2]: *** [secure_fw/CMakeFiles/tfm_s.dir/__/platform/ext/target/nxp/lpcxpresso55s69/Device/Source/startup_lpcxpresso55s69.o] Error 2
make[1]: *** [secure_fw/CMakeFiles/tfm_s.dir/all] Error 2
make: *** [all] Error 2
Could you please tell if there is any plan to fix these errors in the near future?
Another question regarding the latest release 1.6.1: I tried to build this too using the setup mentioned above, but I get an error for missing Perl:
CMake Error at C:/Program Files/CMake/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find Perl (missing: PERL_EXECUTABLE)
Call Stack (most recent call first):
C:/Program Files/CMake/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
C:/Program Files/CMake/share/cmake-3.24/Modules/FindPerl.cmake:84 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
build/lib/ext/mbedcrypto-src/library/CMakeLists.txt:115 (find_package)
I installed Straberry Perl on my machine and added it to PATH, but the error still persists. I tried also to re-run
pip3 install -r tools\requirements.txt but it says that all the requirements are up-to-date. What am I missing here?
Thanks in advance.
Ildikó
From: Anton Komlev <Anton.Komlev@arm.com>
Sent: Monday, October 31, 2022 2:11 PM
To: Pocsai Ildiko LCPF-CH <Ildiko.Pocsai@mt.com>;
tf-m@lists.trustedfirmware.org
Subject: Re: EXTERNAL - Trusted Firmware M build error on Windows 10
Hi Ildiko,
Thanks for reporting. The same defect is reproducible on other platforms and possibly caused by some recent changes.
Let me update you here when fix be available.
Best regards,
Anton
From: Pocsai Ildiko LCPF-CH via TF-M <tf-m@lists.trustedfirmware.org>
Sent: Monday, October 31, 2022 5:56 AM
To: tf-m@lists.trustedfirmware.org
Subject: [TF-M] Trusted Firmware M build error on Windows 10
Hello,
I’m trying to build the Trusted Firmware M on Win10 x64 for NXP LPC55S69 using the IAR compiler, but I get the following error:
[ 76%] Building C object secure_fw/CMakeFiles/tfm_s.dir/__/platform/ext/target/nxp/lpcxpresso55s69/Device/Source/startup_lpcxpresso55s69.o
extern uint32_t __INITIAL_SP;
^
"C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",29 Error[Pe007]:
unrecognized token
extern uint32_t __INITIAL_SP;
^
"C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",29 Error[Pe065]:
expected a ";"
extern uint32_t __INITIAL_SP;
^
"C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",29 Error[Pe007]:
unrecognized token
extern uint32_t __STACK_LIMIT;
^
"C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",30 Error[Pe007]:
unrecognized token
extern uint32_t __STACK_LIMIT;
^
"C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",30 Error[Pe065]:
expected a ";"
extern uint32_t __STACK_LIMIT;
^
"C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",30 Error[Pe007]:
unrecognized token
(VECTOR_TABLE_Type)(&__INITIAL_SP), /* Initial Stack Pointer */
In the attachment, you can find the full build log and also the CMake build file generation log.
Some details about my setup:
Win10 Enterprise x64. Version 20H2
IAR ANSI C/C++ Compiler V8.50.9.278/W32 for ARM
GNU Make 3.81
git version 2.36.0.windows.1
CMake 3.24.2
Python 3.10.5
I followed the steps from the Getting started guide
here than the steps to build the framework for LPC55S69
here.
Do you have any idea what I’m missing?
In case you need any further information let me please know.
Thanks in advance.
Kind regards,
Ildikó Pocsai