|Understanding Development Workflow|
This note explains how to develop new Linux functionality for your specific application. The text below walks you through the recommended development workflow. Various application notes available from the site illustrate how to use that workflow to enable specific functionalities on the target.
The recommended development workflow is as follows.
On the development host, go to the top of the installation tree and activate the cross-development environment:
-bash-4.2$ . ACTIVATE.sh
Select the project you would like to start your development from. For instance, if you need Ethernet and TCP/IP in your application, the networking project may be a reasonable choice for you. There are other sample projects included in the distribution and/or made available from the Emcraft web site.
In the session below, we use networking as a starting point for the development. Go to the project directory and clone the project so that you can update the new project without making changes to the existing project that you use as a reference. Here is how we create a clone of networking, calling the clone networking_plus:
-bash-4.2$ cd projects/networking
Go to the newly created project directory and build it. If your have cloned project from a known-to-work reference project, the new project should build as well since so far you have made no udpates to the new project:
At this point, it is probably a good idea to validate that the newly built project actually runs on the target as expected. Refer to Loading Linux images via Ethernet and TFTP for detailed instructions on how to load an uImage to the target.
At this point you are ready to start development of your custom functinality. You will be doing one or more of the following things:
-bash-4.2$ make kmenuconfig
Having updated the kernel config, build the project, load it to the target and validate that it still boots. Enabling or disabling even a single kernel config option can easily break your target functionality.
-bash-4.2$ make bmenuconfig
-bash-4.2$ vi networking_plus.initramfs
Things that you would typically do are as follows:
Refer to Building user-space applications and related application notes for information on how to build user applications for the target.
Additional information of the Linux development workflow is documented in Section 6 of the Linux Cortex-M User's Manual.