Home |
RTTarget-32 Programming Manual Terms and Definitions Running Win32 Programs without Win32 Running a Program on the Target Compiling and Linking with On Time RTOS-32 |
Terms and DefinitionsThe following terms will be used throughout this manual: HostThe computer used for software development. The host must run under Windows and have the RTTarget-32 tools and one or more of the supported compilers installed. Embedded SystemsComputers that are typically embedded into some larger system (e.g., machine). Embedded systems usually have peripheral devices different from desktop PCs. Frequently, embedded systems do not have a user interface (and no screen and/or keyboard). TargetThe computer used to run applications developed with RTTarget-32. It must have an Intel 386 compatible or higher CPU. Cross DevelopmentSoftware development on a host computer for a different target computer. Cross DebuggingDebugging a program on the target with the debugger running on the host. FixupA fixup is a location in a program image depending on an absolute address. Since Win32 programs must be able to run at any address, the linker writes a fixup table to the PE file containing a list of all such locations in the program. Windows will process the fixup table when the program is loaded. RTTarget-32 performs this function in the locate process. Here is an example of a program sequence requiring a fixup: int x; int main(void) { x = 3; ... The compiler might translate this to: mov [12345678], 3 where 12345678 is the address of global variable x. However, if the program is not loaded at the address assumed by the linker, the code will fail because an incorrect address is used for x. The fixup table will contain an entry for this code sequence. The fixup is simply a pointer to the absolute address in the code (a pointer to the '12345678' value contained in the 'mov' instruction above). Thus, the program loader (or RTTarget-32's locator) will know this address needs to be adjusted in the code, depending on where the program is located. The address of the absolute address in the code is known as the fixup location. The referenced address (address of variable x in this case) is the fixup target or fixup value. LocateThe process of converting a relocatable executable file to an absolute image. The absolute image can only run at the addresses assigned in the locate process. A desktop operating system relocates a program when it is loaded, while RTTarget-32 locates a program before it is loaded on the target. PE FilePortable Executable file format used by Win32 for 32-bit applications. Both .EXE and .DLL files use this PE file format. Program EntityAny part of a program that requires memory on the target. Examples of program entities are: program code or data, stack, heap, boot code, page table, etc. Discardable EntitySpecial kind of Program Entity which is needed only for booting and program initialization. The memory area occupied by discardable entities can be reused by other program entities such as the stack or heap. By default, discardable entities in RAM are allocated top-down (as opposed to bottom-up for other entities) by RTTarget-32. ModuleA program module according to Win32. A module can be an .EXE or .DLL file, both of which must be in the PE file format. RTTarget-32 supports one EXE and up to 63 DLLs. 386The term 386 is used throughout this manual to refer to any processor compatible with the Intel 80386. TLS Data SegmentsWin32 defines a special kind of data segment called TLS (Thread Local Storage). Data segments of this type are duplicated automatically for each thread. Declaring variables in such a segment is compiler dependent. For example, Borland C/C++ uses the __thread keyword while Microsoft uses __declspec(thread). RTTarget-32 alone does not support multiple threads, but nonetheless supports TLS data for the program (which is a single thread). TLS data segments are supported for a multitasking system running under RTTarget-32 which might also support them (e.g., RTKernel-32). For further information about TLS or thread variables, please see your compiler's documentation. Uncommitted MemoryUncommitted memory is a range of linear address space which does not have any associated physical memory. In systems which use paging, uncommitted memory can be committed by mapping physical pages to that address range. More information about uncommitted memory is available in the Win32 SDK documentation. ImageThe portion of a program entity which has initialized data associated with it (e.g., all of a code section, parts of the data section, none of the program stack). Extended RAMPhysical RAM with addresses >= 4G.
|