Hi,

 

CMAKE_SYSTEM_PROCESSOR identifies the CPU the build targets. If this string is passed to the compiler as a command line flag, that seems to be an error to me.

Also I have the feeling that this value should be more hardware specific. A Cortex-M33 CPU has many configuration options to be set when it is put into a system, and different set of options may need different compiler switches. All this complexity might not be needed in the build-system and it could be better to hide it.

I suggest naming the CMAKE_SYSTEM_PROCESSOR after the “chip” (i.e. AN521). The compiler specific files can map this name to the appropriate set of compiler options, and the compiler will set the “feature test macros” described in [1]. Source code can use these macros to configure itself properly. In the build system only features having an effect on CMake files shall be visible. (I.e. if a feature needs a different file to be compiled in.)

[1] https://developer.arm.com/documentation/101028/0011/Feature-test-macros?lang=en

 

/George

 

From: TF-M <tf-m-bounces@lists.trustedfirmware.org> On Behalf Of Thomas Törnblom via TF-M
Sent: 25 August 2020 15:56
To: David Hu <David.Hu@arm.com>; tf-m@lists.trustedfirmware.org
Subject: Re: [TF-M] New build system with IAR

 

Hi David,

Apparently yes.

Here are the valid M33 choices for IAR:
---
thomasto@ubuntu-20:~/tf-m1/trusted-firmware-m$ iccarm --cpu list|grep -i m33
 Cortex-M33
 Cortex-M33.no_dsp
 Cortex-M33.fp
 Cortex-M33.fp.no_dsp
 Cortex-M33.no_se
 Cortex-M33.no_dsp.no_se
 Cortex-M33.fp.no_se
 Cortex-M33.fp.no_dsp.no_se
---

Cheers,
Thomas

Den 2020-08-25 kl. 15:49, skrev David Hu:

Hi Thomas,

 

Sorry if I misunderstand your problem. Does it mean that diverse compilers require different core config flags?

 

Best regards,

Hu Ziji


From: TF-M <tf-m-bounces@lists.trustedfirmware.org> on behalf of Thomas Törnblom via TF-M <tf-m@lists.trustedfirmware.org>
Sent: Tuesday, August 25, 2020 7:39 PM
To: tf-m@lists.trustedfirmware.org <tf-m@lists.trustedfirmware.org>
Subject: [TF-M] New build system with IAR

 

I've started looking at the new build system, and it looks like a nice improvement.

I have a problem, that likely has a simple solution, although I'm not sure which.

I've looked at the AN521 target, and the preload.cmake file is included very early from the root CMakeLists.txt

The first line of preload.cmake is:
---
set(CMAKE_SYSTEM_PROCESSOR cortex-m33+nodsp)
---

For IAR that line should be:
---
set(CMAKE_SYSTEM_PROCESSOR Cortex-M33.no_dsp)
---

I need to discriminate between the toolchains already there, but I haven't figured out what the best way would be to do that. Not much is setup at this moment in the run.

Ideas?

Thomas

--

Thomas Törnblom, Product Engineer
IAR Systems AB
Box 23051, Strandbodgatan 1
SE-750 23 Uppsala, SWEDEN
Mobile: +46 76 180 17 80 Fax: +46 18 16 78 01
E-mail:
thomas.tornblom@iar.com Website: www.iar.com
Twitter:
www.twitter.com/iarsystems

 

--

Thomas Törnblom, Product Engineer
IAR Systems AB
Box 23051, Strandbodgatan 1
SE-750 23 Uppsala, SWEDEN
Mobile: +46 76 180 17 80 Fax: +46 18 16 78 01
E-mail:
thomas.tornblom@iar.com Website: www.iar.com
Twitter:
www.twitter.com/iarsystems