Page 218 - The Art of Designing Embedded Systems
P. 218

A Firmware Standards Manual  205


                           "/ram-name" is the name of the ROM the code pertains to. One
                           project may involve several microprocessors, each of which has
                           its  own set of  ROMs and code. Or a  single project  may  have
                           multiple  binary  images, each of  which goes into its own set of
                           ROMs.
                         Required directories:

                         /projects/project-name/tools--compilers. linkers, assemblers used
                            by this project. All tools will be checked into the VCS so in 5 to
                            10 years, when a change is required, the (now obsolete and un-
                            obtainable) tools will still be around. It’s impossible to recompile
                            and retest the project code every time a new version of the com-
                            piler or assembler comes out; the only alternative is to preserve
                            old versions, forever, in the VCS.
                         /projects/project-name/rom-name/headers-all  header files, such
                            as .h or assemble include files, go here.
                         /projects/project-namehorn-name/source-source  code. This may
                            be further broken down into header, C, and assembly directories.
                            The MAKE files are also stored here.
                         /projects/project-name/rom-name/object-object code, including
                            compiler/assembler objects and the linked and located binaries.
                         /projects/project-namehorn-namehest-This  directory is the one,
                            and only one, that is not checked into the VCS and whose
                            subdirectory layout is entirely up to the individual programmer.
                            It contains work-in-progress, which is generally restricted to a
                            single module. When the module is released to the VCS or the
                            rest of the development team, the developer must clean out the
                            directory and eliminate any file that is duplicated in the VCS.


                         Version File
                         Each project will have a special module that provides firmware version
                    name, version date, and part number (typically the part number on the ROM
                    chips). This module will list, in order (with the newest changes at the top of
                    the file), all changes made from version to version of the released code.
                         Remember that the production or repair departments may have to sup-
                    port these products for years or decades. Documentation gets lost and ROM
                    labels may come adrift. To make it possible to correlate problems to ROM
                    versions, even after the version label is long gone, the version file should
                    generate only one bit of “code”-a  string that indicates, in ASCII, the cur-
                    rent ROM version. Some day in the future a technician-or yourself!-may
   213   214   215   216   217   218   219   220   221   222   223