RUL SDK on Linux

RUL SDK on Linux

This is about the OS build. The SDK's manual has very basic instructions, this article aims to fill the gaps. As of version 1.2.0, there's also a mistake in the project cmake files, which causes the OSAL to be completely omitted from the build.

Preparing the HW

On the PTX205R solder the jumpers for:

  • MCU OFF

  • PMOD_VDD TO VDD_IO

Connect the PTX board to the Raspberry:

PTX205R PMOD

Raspberry Pi 5

PTX205R PMOD

Raspberry Pi 5

MOSI

GPIO 10

MISO

GPIO 9

SCK

GPIO 11

NSS

GPIO 7

IRQ

GPIO 19

SEN

GPIO 21

Don't forget to connect the PTX board via USB-C for power.

Building and Running an Example Project

Let's take the project NFC Forum Basic Discovery as the example for this article. There's a mistake in the cmake files, so let's fix it first.

  1. Open CMakeLists.txt  inside the project's root directory: PROJECTS/PTX2xxR/NFC_FORUM_BASIC_DISCOVERY 

  2. Find add_definitions("-DPTX_APP_DIVERSITY_LIN")  and replace -DPTX_APP_DIVERSITY_LIN  with -DPTX_APP_DIVERSITY_LINUX . This define is necessary, in order for the OSAL to be initialized and used across the source code.

  3. Generate the RF-config C files with the Config Tool, and replace ptx_NSC_RfConfigVal.c  and ptx_NSC_RfConfigVal.h  under SRC/COMPS/NSC/RUL .

  4. Create the build directory, called BUILD for instance: PROJECTS/PTX2xxR/NFC_FORUM_BASIC_DISCOVERY/BUILD 

  5. Configure cmake for Linux, SPI and the Console for printing log messages and File for internal logging (log file will be created inside the BUILD directory). Run this from the BUILD directory:

    1. cmake .. -DPTX_BUILD_LIN=ON -DPTX_ENABLE_SPI=ON -DPTX_UTILITY_PRINTING=Console -DPTX_LOGGING=File
  6. Build the example application:

    1. cmake --build .
  7. Run the app:

    1. ./NFC_FORUM_BASIC_DISCOVERY
    2. image-20251126-112135.png
      Running the app in the console

Debugging

The following launch.json  configurations can be used for debugging in VS Code. When debugging is started, VS Code will ask for the project name. This should be the exact name of the example project's root directory, for example NFC_FORUM_BASIC_DISCOVERY  under PROJECTS/PTX2xxR/ .

{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "inputs": [ { "id": "projectName", "description": "exact name of example project's root directory, for example NFC_FORUM_BASIC_DISCOVERY under PROJECTS/PTX2xxR/", "type": "promptString", "default": "NFC_FORUM_BASIC_DISCOVERY" } ], "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/PROJECTS/PTX2xxR/${input:projectName}/BUILD/${input:projectName}", "MIMode": "gdb", "cwd": "${workspaceFolder}/PROJECTS/PTX2xxR/${input:projectName}/BUILD/", "stopAtEntry": false, "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true }, { "description": "Set Disassembly Flavor to Intel", "text": "-gdb-set disassembly-flavor intel", "ignoreFailures": true } ] } ] }