Skip to content

Commit

Permalink
toolchain/ghs: add ghs link script for mps2-an500 platform
Browse files Browse the repository at this point in the history
Signed-off-by: yanghuatao <[email protected]>
  • Loading branch information
yanghuatao authored and xiaoxiang781216 committed Sep 8, 2024
1 parent 2a8c023 commit c43c918
Show file tree
Hide file tree
Showing 3 changed files with 126 additions and 1 deletion.
15 changes: 15 additions & 0 deletions arch/arm/src/armv7-m/Toolchain.defs
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,21 @@ else ifeq ($(CONFIG_ARM_TOOLCHAIN_ARMCLANG),y)
LDFLAGS += --cpu=Cortex-M3
endif

else ifeq ($(CONFIG_ARM_TOOLCHAIN_GHS),y)
MKDEP = $(TOPDIR)$(DELIM)tools$(DELIM)mknulldeps.sh

undefine PREPROCESS
define PREPROCESS
$(ECHO_BEGIN)"CPP: $1->$2 "
$(Q) $(CPP) $(CPPFLAGS) $($(strip $1)_CPPFLAGS) -filetype.cpp $1 -o $2
$(ECHO_END)
endef

undefine ARCHIVE
define ARCHIVE
$(AR) $2 -archive -o $1
endef

endif

ifeq ($(CONFIG_ARMV7M_STACKCHECK),y)
Expand Down
14 changes: 13 additions & 1 deletion boards/arm/mps/mps2-an500/scripts/Make.defs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,19 @@ include $(TOPDIR)/.config
include $(TOPDIR)/tools/Config.mk
include $(TOPDIR)/arch/arm/src/armv7-m/Toolchain.defs

LDSCRIPT = flash.ld
ifeq ($(CONFIG_ARM_TOOLCHAIN_GHS),y)
define POSTBUILD
$(GMEMFILE) nuttx -o nuttx.bin
endef

LDSCRIPT = ghs-flash.ld
else
define POSTBUILD
$(OBJCOPY) -O binary nuttx nuttx.bin
endef

LDSCRIPT = flash.ld
endif

ARCHSCRIPT += $(BOARD_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT)

Expand Down
98 changes: 98 additions & 0 deletions boards/arm/mps/mps2-an500/scripts/ghs-flash.ld
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
/****************************************************************************
* boards/arm/mps/mps2-an500/scripts/ghs-flash.ld
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership. The
* ASF licenses this file to you 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
*
* http://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.
*
****************************************************************************/

MEMORY
{
flash (rwx) : ORIGIN = 0x00000000, LENGTH = 4M
}

SECTIONS
{
.text ALIGN(4) : {
_stext = ABSOLUTE(.);
*(.vectors)
*(.text)
"*(.text.*)"
*(.fixup)
*(.gnu.warning)
*(.rodata)
*(.glue_7)
*(.glue_7t)
*(.got)
*(.gcc_except_table)
_etext = ABSOLUTE(.);
} > flash

.syscall : > .

.init_section ALIGN(4) : {
_sinit = ABSOLUTE(.);
*(.init_array)
*(.ctors)
_einit = ABSOLUTE(.);
} > flash

.ARM.extab ALIGN(4) : {
"*(.ARM.extab*)"
} > flash

.ARM.exidx ALIGN(4) : {
__exidx_start = ABSOLUTE(.);
"*(.ARM.exidx*)"
__exidx_end = ABSOLUTE(.);
} > flash

.tdata ALIGN(4) : {
_stdata = ABSOLUTE(.);
*(.tdata)
"*(.tdata.*)"
_etdata = ABSOLUTE(.);
} > flash

.tbss : {
_stbss = ABSOLUTE(.);
*(.tbss)
*(.tcommon)
_etbss = ABSOLUTE(.);
} > flash

_eronly = ENDADDR(.tbss);

.ram_vectors : {
*(.ram_vectors)
} > flash

.data ALIGN(4) : {
_sdata = ABSOLUTE(.);
*(.data)
"*(.data.*)"
. = ALIGN(4);
_edata = ABSOLUTE(.);
} > flash

.bss ALIGN(4) : {
_sbss = ABSOLUTE(.);
*(.bss)
"*(.bss.*)"
*(COMMON)
. = ALIGN(4);
_ebss = ABSOLUTE(.);
} > flash
}

0 comments on commit c43c918

Please sign in to comment.