Manual zz. There are no express or implied copyright licenses granted hereunder to design or fabricate any integrated circuits or integrated circuits based on the information in this document. Freescale Semiconductor reserves the right to make changes without further notice to any products herein. Freescale Semiconductor makes no warranty, representation or guarantee regarding the suitability of its products for any particular purpose, nor does Freescale Semiconductor assume any liability arising out of the application or use of any product or circuit, and specifically disclaims any and all liability, including without limitation consequential or incidental damages. Freescale Semiconductor does not convey any license under its patent rights nor the rights of others. Freescale Semiconductor products are not designed, intended, or authorized for use as components in systems intended for surgical implant into the body, or other applications intended to support or sustain life, or for any other application in which the failure of the Freescale Semiconductor product could create a situation where personal injury or death may occur.
|Published (Last):||4 December 2006|
|PDF File Size:||20.83 Mb|
|ePub File Size:||8.53 Mb|
|Price:||Free* [*Free Regsitration Required]|
The makefile includes a few other. These three. There are fancier ways to do this; however, keeping things simple works just fine for me. Despite this, I still wanted to have my embedded development setup on a PC so that I could work more portably. With this bash shell as my console on a Win32 platform, I get the best of both worlds.
The common. To implement all of these conveniences, the target-specific makefile must follow some guidelines. The majority of these guidelines involve initializing certain make variables within the makefile so that the common. The only other guideline is that all object modules are placed under an obj directory beneath the target-specific monitor directory. Listings In Listing This environment supports convenient —I arguments for directories that have include files and allows the common.
The rest of these variables are typical for a makefile. Thus, to generate code for an ARM board using ELF format object files, you would invoke the compiler named arm-elf-gcc.
The object list of Listing The majority of these files are object files that are built from the common space. The objects are specified here so that each target can be built to include only the features that are needed for that application. Hence, this list is very target specific. The one important thing to note is that the build assumes that reset. This assumption allows the linker to place the code that is in reset. Notice the inclusion of zlib.
The zlib. This list is kept in common space because it is always used the same way. It can simply be included here if you use it. For each monitor build, I usually have the option of building a release version of the monitor that boots out of flash memory the rom tag in Listing The rom make tag is the top tag in the makefile, so it is the default.
The coff tool referenced in Listing I wrote the coff tool as an exercise to improve my own understanding of the COFF file format. The —m option dumps a memory map of the executable, and the —B option builds a binary image based on the executable, as I discussed in one of the earlier chapters of the book. OUT file formats. The source and executables are on the CD. This variable is used throughout the target makefile and common.
I find that this simple naming scheme keeps things a bit more organized from one target to the next, plus using a common base name makes it very convenient for the clobber tag to remove all of the files related to a particular target. The miscellaneous rules section see Listing Including these files pulls in the core set of targets and their dependencies. The libz. The info tag builds a simple header file info. This info.
The info. I wrote defdate because I build on both UNIX and Win32 and could not find a good cross-platform means of creating a date string that could be included in an include file. Listing The incomplete list of individual module tags shown in Listing Notice in the last rule that I make assembly a two-step process. Depending on the assembler, this process could be reduced to a single step.
I chose to use the two-step process, however, rather than have toolset dependencies in the makefile. Notice that all modules are in the obj directory. This partitioning keeps the object module clutter out of the directory that holds the source code. The final section of the makefile see Listing As you will see shortly, common. I find the trivial differences among assemblers annoying.
Different assemblers use different comment delimiters and different directives. More importantly, I can use include at the top of the assembler file, letting me share the same header files across both assembly and C code. Sharing headers is a great convenience when writing firmware. This technique is common enough that many compilers support the ability to pre-process assembly files through some command line option.
The first portion of common. The tools as can be seen from the text in the help tag in common. Note that this portion of common. Absolutely no rocket science, just simple and easy-to-duplicate rules for other targets and compilers and for both Win32 and UNIX. The Makefile The makefile includes a few other. Makefile for building a monitor for the MCF evaluation platform.
Currently, the only target supported for platform is EVAL. When the platform count increases to more than 1, the target name should be specified on the command line. Development Build Versions. Listiing Use cpp with Assembly Language I find the trivial differences among assemblers annoying.
M5271EVB User`s Manual
Peiying PY-A4E76R Owner's Manual