PAL porting to QNX - need help understanding build environment

I am attempting a proof-of-concept to use Pelion Device Management with devices running the QNX operating system.

I started with https://cloud.mbed.com/docs/current/porting/pal-process.html , It references “pal-platform folder in the root of the mbed-cloud-client repository”, but there is no such folder in GitHub - PelionIoT/mbed-cloud-client: Izuma Device Management Client library. I did find the folder in GitHub - PelionIoT/mbed-cloud-client-example: Reference example application using Izuma Device Management Client library, so I started by cloning this repo.

Question 1) is this just a typo in the docs?

I then created new files and directories for toolchain, device and OS directories. The pal-platform.py deploy and generate commands appear to work. fullbuild fails with missing “pal.h” file

pal.h is not found in the mbed-client-client-example repo, but it can be found in the mbed-cloud-client repo under the mbed-client-pal directory. This dir tree also contains source for PAL abstraction layers. Using Linux as baseline I stubbed out QNX support under Source/Port/Reference-Imp/OS_Specific/QNX

Question 2) How do I connect my work under mbed-cloud-client/mbed-client-pal (QNX PAL impl) to the work in mbed-cloud-client-example? It seems obvious to me that to build the client I need to pull in PAL impl for QNX, but I cannot find documentation that describes how to do this.

Question 3) How do I build test code for individual RTOS, Networking, etc pieces of PAL for QNX?

Thanks for any assistance you can provide

Dan Giorgis

Hi,

It does appear using the code available via Mbed Cloud Client undermbed-client-pal folder is the right approach for this. We will review docs in this regard.
Also, we will get back with more details ( for questions 2 & 3) that are more specific to QNX.

Hi Dan,
I will try to answer your questions by numbers

  1. pal-platform is indeed in mbed-cloud-client-example repository and that is just a typo in documentation that we will fix.
    I suggest that you go through quick start Linux tutorial and fetch the complete clien sources as described here https://cloud.mbed.com/docs/current/connecting/linux-on-pc.html
    Ensure that you have installed mbed-cli tool (its the tool that client example uses to download its needed Client source repos).
  2. Once you have a working Linux example, working your way from there to add QNX port should be easy.
    Since you have already created toolchain and cmake rules for QNX, you should place your ported sources at the same level as other OS say “Linux” , make sure that you name your source folder same as you define the OS_BRAND in your pal-platform/OS/QNX/QNX-xxx.cmake file so that pal build system will keep the files automatically.
    3 ) There are PAL tests to test your porting , https://cloud.mbed.com/docs/current/porting/testing-your-port.html , Did you check this link?

Please let us know, if this solve your issues.

Regards,
Yogesh