Skip to content

Some build issues with PSA_Target on M2351 #9699

@ccli8

Description

@ccli8

Environment

NuMaker-mbed-TZ-secure-example
b996816 Update to mbed-os 5.10.2

mbed-os
709e6ff Merge pull request #9600 from kjbracey-arm/atomic_exchange_64

Description

I am adding PSA_Target support into NUMAKER_PFM_M2351 target and meet some issues with build tool. To re-produce the build issues, I make the following draft modifications. The compile process will fail, but this modification is just to show the build issues.

  1. Add SPE_Target into inheritance list of NUMAKER_PFM_M2351 in mbed-os/targets/target.json:

    "NUMAKER_PFM_M2351": {
        "core": "Cortex-M23-NS",
        "default_toolchain": "ARMC6",
        ......
        "overrides": {
            "mpu-rom-end": "0x1fffffff"
        },
        "inherits": ["SPE_Target", "Target"],
        ......
  2. Override target.secure-rom-start and like symbols in NuMaker-mbed-TZ-secure-example/mbed_app.json:

    "target_overrides": {
            "*": {
                "platform.stdio-baud-rate": 9600,
                "platform.stdio-convert-newlines": true
            },
            "NUMAKER_PFM_M2351": {
                "target.core": "Cortex-M23",
                "target.inherits": ["NUMAKER_PFM_M2351"],
                "target.device_has_remove": ["TRNG", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "STDIO_MESSAGES"],
            
                "target.secure-rom-start":    "0x0",
                "target.secure-rom-size":     "0x40000",
                "target.secure-ram-start":    "0x20000000",
                "target.secure-ram-size":     "0x8000"
            }
    }

Compile by running under NuMaker-mbed-TZ-secure-example:
mbed compile -m NUMAKER_PFM_M2351 -t ARMC6

And meet some issues:

  1. MBED_ROM_START and like symbols are duplicated (see BUILD/NUMAKER_PFM_M2351/ARMC6/.profile-ld).
    {
        "flags": [
            "--cpu=cortex-m23", 
            "--keep=os_cb_sections", 
            "--legacyalign", 
            "--predefine=\"-DDOMAIN_NS=0x1\"", 
            "--predefine=\"-DMBED_BOOT_STACK_SIZE=1024\"", 
            "--predefine=\"-DMBED_RAM_SIZE=0x18000\"", 
            "--predefine=\"-DMBED_RAM_SIZE=None\"", 
            "--predefine=\"-DMBED_RAM_START=0x20000000\"", 
            "--predefine=\"-DMBED_RAM_START=None\"", 
            "--predefine=\"-DMBED_ROM_SIZE=0x80000\"", 
            "--predefine=\"-DMBED_ROM_SIZE=None\"", 
            "--predefine=\"-DMBED_ROM_START=0x0\"", 
            "--predefine=\"-DMBED_ROM_START=None\"", 
            "--show_full_path"
        ],
        ......
    }
  2. mbed_app.json is not consumed implicitly. PSA_SECURE_ROM_START and like symbols are not listed in BUILD/NUMAKER_PFM_M2351/ARMC6/mbed_config.h. This error disappears if I specify --app-config mbed_app.json explicitly instead:
    mbed compile -m NUMAKER_PFM_M2351 -t ARMC6 --app-config mbed_app.json
  3. .mbedignore doesn't work. For example, LoRa related files are listed in .mbedignore, but they are still added into compile list.
    Compile [ 16.1%]: LoRaWANInterface.cpp
    Compile [ 16.2%]: LoRaWANStack.cpp
    Compile [ 16.4%]: LoRaMacChannelPlan.cpp
    Compile [ 16.5%]: LoRaMac.cpp
    Compile [ 16.6%]: LoRaMacCrypto.cpp
    Compile [ 16.8%]: LoRaMacCommand.cpp
    Compile [ 16.9%]: LoRaPHYAS923.cpp
    Compile [ 17.1%]: LoRaPHY.cpp
    

Issue request type

[ ] Question
[ ] Enhancement
[X] Bug

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions