GPIO base addresses different for S (sense) and NS (no sense)

The last years I have developed a lot software (low level) for the nRF52840. I like this MCU very much, especially the SHORTS-Registers and EasyDMA are powerful for real short latency time with the peripherals. 

I do not like the RTOS. I have (a lot) Arduino Nano BLE 33 Sense with MbedOS, trying to bypass the OS wherever possible. I just finished a project for audio analysis with a lot of digital filters (mixed low pass and band pass) running in the background on the interrupt of the PDM-periphery (20 kHz scanning frequency). There is some jitter which may be caused by the OS.

Now I want to switch to the Seeed XIAO nRF54L15 Sense for 2 reasons: 1. the higher speed which would allow to double my number of filters and 2. the possibility to avoid the RTOS (https://github.com/lolren/nrf54-arduino-core).

I started the evaluation with the GPIOs (I use them with direct register access to measure the timing of interrupt handlers) and I have problems to understand the documentation. While it is very clear for the 52840, there are two base addresses for the ports of the 54L15, S for sense and NS for no sense. Why? If i read the description correct, this selection is done via the CNF-Registers. And which is the correct base address? (I will use NS, but that points to 0x4....... and from 52840 I expect 0x5.......).

Surely it is easy for the Nordic experts to explain these two base addresses for the GPIO ports. Thanks in advance ...

Update: Though the AI answer is really helpful, I will post this question anyway. Because otherwise this forum does not make any sense, it will be empty if the AI has learned enough. Hopefully the AI answer is published here.

Parents
  • Hello,

    What   says here is correct. 

    There is a split. If you want your application to be really secure, you can split it into a secure and a non-secure partition. One analogy is that if you are to control an elevator, the secure part would be able to control the motor speed of the lift, and the non-secure part would handle button presses etc. If your application is compromized, the attacker may be able to simulate button presses in the elevator, open and close the doors, and send it to whatever floor they like, but they will not be able to crash the elevator down into the basement, because the motor control is out of reach. 

    So for simple applications where this is not a concern, you can use the S(secure). This might sound contraintuitive, because it has "less security", but by default it is the secure domain has access to all resources (memory, peripherals, etc.), while the non-secure domain only has access to whatever resources you specifically grant it.

    I imagine that since you want to skip the RTOS alltogether, you also don't want to set up a secure and non-secure partition/domain without the RTOS, so you can just stick to the "S" registers wherever they are listed as S both NS.

    Best regards,

    Edvin

Reply
  • Hello,

    What   says here is correct. 

    There is a split. If you want your application to be really secure, you can split it into a secure and a non-secure partition. One analogy is that if you are to control an elevator, the secure part would be able to control the motor speed of the lift, and the non-secure part would handle button presses etc. If your application is compromized, the attacker may be able to simulate button presses in the elevator, open and close the doors, and send it to whatever floor they like, but they will not be able to crash the elevator down into the basement, because the motor control is out of reach. 

    So for simple applications where this is not a concern, you can use the S(secure). This might sound contraintuitive, because it has "less security", but by default it is the secure domain has access to all resources (memory, peripherals, etc.), while the non-secure domain only has access to whatever resources you specifically grant it.

    I imagine that since you want to skip the RTOS alltogether, you also don't want to set up a secure and non-secure partition/domain without the RTOS, so you can just stick to the "S" registers wherever they are listed as S both NS.

    Best regards,

    Edvin

Children
No Data
Related