Application Development

Once you have the development platform software installed, it is time to think about creating or porting your application.

Your Application

Whether you are writing an application from scratch or porting some existing code, there are a number of basic steps that should be followed.

What will it take to get your code to build, run and release using CoreCDP?

Building

  • Determine which external libraries are required.
    • See if they exist as part of the CoreCDP image. If they do, use them.
    • If not found, see if OpenEmbedded BitBake recipes exist.
    • If you still can’t find the corresponding library, this may mean that you will have to get the source and make your own buildable version for the CoreCDP environment. You should consider packaging it up as a BitBake recipe to make things easier in the future.

After building corecdp-base-image as described in Getting Started, the CoreCDP toolchain generated by OpenEmbedded will be located in ${OETREE}/build/tmp/sysroots/x86_64-linux/usr/armv5te/bin for a 64-bit build system. For a 32-bit system, replace x86_64-linux with i686-linux.

If no external libraries are required, the gcc cross toolchain can be used to compile stand-alone C/C++ applications. If your application does require an external library, try building it using bitbake if a recipe exists. This will install the library into the staging/sysroot directory: ${OETREE}/build/tmp/sysroots/armv5te-corecdp-linux-gnueabi. Headers and library files will be installed in the usr/include and usr/lib directories in the armv5te sysroot area.

Compiling and linking C/C++ applications against external libraries is simplified if you write a BitBake recipe for your application and build it within the OpenEmbedded environment. CFLAGS, LDFLAGS and other variables will all be appropriately set for cross-compiling and linking against other libraries previously built by bitbake.

Running

Now that you have your application building, you will want to move it to the hardware platform and test it.

  • Moving the application to the platform to test
    • Since you are developing on a complete Linux platform, you do not need to re-flash the entire image to perform application testing. If you built your application without using BitBake, simply copy all the needed components to the device using scp and place them in their proper working directories. This will allow you to start testing.
    • If you built your application using a BitBake recipe from the start, then you can scp the resulting package (and dependencies) to the device and install it using opkg. Look for your package in ${OETREE}/build/tmp/deploy/glibc/ipk/armv5te. Also see the Setting Up a Package Feed page. Using a package feed allows you to use opkg to fetch and install new/updated packages as well as automatically install any dependencies needed.
  • Make any necessary changes and retest until your requirements for the application are met.

Releasing

When everything is operating correctly, you may wish to package the application as a BitBake recipe to ease installation and inclusion into future embedded projects.

  • Understand bitbake and use it to package your application. See the Related Articles section below and read the OpenEmbedded User Manual. Chapters 7 and 8 are particularly relevant to writing your own BitBake recipes and packaging your application.
  • For a release, you may wish to create a custom firmware image, which will allow you to flash update the device to a “fresh” install of your application.