Vault 7: Projects
This publication series is about specific projects related to the Vault 7 main publication.
config2 : ORIGIN = 0x2ABFC, LENGTH = 0x2
config1 : ORIGIN = 0x2ABFE, LENGTH = 0x2
}
Note that the "reset", "ivt", and "aivt" sections are all still present in the application linker script. These sections remain here
so that applications compiled with the boot loader can be programmed with or without the boot loader. This aids in the
development of the application without having to use the boot loader while maintaining identical interrupt latency and
memory positioning.
Sections (5) and (6) are created in the special "app_ivt" section. The following discussion topic describes how the content of
this section is created. This entry in the memory table is how the space for that area is allocated. Note that the "app_ivt"
section starts at address 0x1400 (the same address that the boot loader ended at). Since different parts have different
number of interrupts, the size of the "app_ivt" section may change.
The "program" memory section has changed for the application space. It starts at address 0x1510 in this example. This will
vary from part to part based on the size of the "app_ivt" section. The "program" memory section corresponds to the user
application code (section (7)). Note that it takes up the rest of the memory of the device that is available to load.
1.6.3.2.3.2.5.2 Special Region Creation
This section covers how each of the special memory regions are created/populated within the linker files.
Description
The Memory Region Definitions section described how each of the memory regions are defined. This allocates the room for
each of the memory regions.
This discussion covers how the values of some of the special memory regions are created/populated. Please refer to the
earlier sections for an understanding of how the reset and interrupt remapping works before proceeding through this section.
Let's take a look at each of the memory regions in order. Please note that there are two linker scripts, one for the boot loader
and one for the application. In order for some of these section definitions to make sense, we will be showing excerpts from
either or both of these files for any given section. Please pay close attention to which linker file we are referring to when we
show an example.
1) Section (1) is the reset vector. This belongs to the boot loader space so this is located in the boot loader linker file. What
we need at the reset vector is a jump to the start of the boot loader code. In the boot loader linker script:
/*
** Reset Instruction
*/
.reset :
{
SHORT(ABSOLUTE(__reset));
SHORT(0x04);
SHORT((ABSOLUTE(__reset) >> 16) & 0x7F);
SHORT(0);
1.6 Demos MLA - USB Library Help Device - Boot Loader - HID
263
Protego_Release_01_05-Related-OEM-Documentation-MLA_v2013_12_20-help_mla_usb.pdf