/* * 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 }