52 lines
1.6 KiB
Plaintext
52 lines
1.6 KiB
Plaintext
/*
|
|
* Copyright 2022 The Pigweed Authors
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
|
* use this file except in compliance with the License. You may obtain a copy of
|
|
* the License at
|
|
*
|
|
* https://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
* License for the specific language governing permissions and limitations under
|
|
* the License.
|
|
*/
|
|
|
|
/* This linker script is for test purposes only and should not be used in a
|
|
* production environment.
|
|
*/
|
|
#ifndef PW_BOOT_VECTOR_TABLE_BEGIN
|
|
#error "PW_BOOT_VECTOR_TABLE_BEGIN is not defined, and is required to use pw_boot_cortex_m"
|
|
#endif // PW_BOOT_VECTOR_TABLE_BEGIN
|
|
|
|
|
|
/* Note: This technically doesn't set the firmware's entry point. Setting the
|
|
* firmware entry point is done by setting vector_table[1]
|
|
* (Reset_Handler). However, this DOES tell the compiler how to optimize
|
|
* when --gc-sections is enabled.
|
|
*/
|
|
ENTRY(pw_boot_Entry)
|
|
|
|
MEMORY
|
|
{
|
|
/* TODO(pwbug/57): Make it possible for projects to freely customize
|
|
* memory regions.
|
|
*/
|
|
|
|
/* Vector Table (typically in flash) */
|
|
VECTOR_TABLE(rx) : \
|
|
ORIGIN = PW_BOOT_VECTOR_TABLE_BEGIN, \
|
|
LENGTH = PW_BOOT_VECTOR_TABLE_SIZE
|
|
/* Internal Flash */
|
|
FLASH(rx) : \
|
|
ORIGIN = PW_BOOT_FLASH_BEGIN, \
|
|
LENGTH = PW_BOOT_FLASH_SIZE
|
|
/* Internal SRAM */
|
|
RAM(rwx) : \
|
|
ORIGIN = PW_BOOT_RAM_BEGIN, \
|
|
LENGTH = PW_BOOT_RAM_SIZE
|
|
}
|
|
|