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 configure and use 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: $ . ./ACTIVATE.sh Select the project you would like to start your development from. When you are starting development for a first time, the only project available in the distribution is rootfs. This project provides a powerful set of run-time capabilities however of course you will want to extend or re-configure it for your specific needs, creating new projects for your embedded devices. As you proceed with development, you may well end up having several projects for different embedded applications co-existing in your development tree. Choose a specific project as a starting point for new development based on requirements for your new embedded design. In the session below, we use rootfs 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 rootfs, calling the clone rootfs_plus: $ cd projects/rootfs 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 updates to the new project: $ cd ../rootfs_plus 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:
$ 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. $ make bmenuconfig $ vi rootfs_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. |