Replace the BSD-3-Clause boilerplate with the SPDX tag. Add the SPDX tag and the copyright to two makefiles that were added by TI with the other files in their respective folder. The SPDX tag on files *.c is incorrect, as it should use the C99 single line comment using '//'. But current checkpatch doesn't allow C99 comments, so keep using standard C comments, by now. Change-Id: I3ad1b2dbdb6054b74dcc26e394c9223ba0427caf Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/7158 Tested-by: jenkins
72 lines
2.1 KiB
C
72 lines
2.1 KiB
C
/* SPDX-License-Identifier: BSD-3-Clause */
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Copyright (C) 2018 Texas Instruments Incorporated - http://www.ti.com/
|
|
*
|
|
******************************************************************************/
|
|
|
|
#include <stdint.h>
|
|
|
|
/******************************************************************************
|
|
*
|
|
* The entry point for the application startup code.
|
|
*
|
|
******************************************************************************/
|
|
extern int main(void);
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Reserve space for the system stack.
|
|
*
|
|
******************************************************************************/
|
|
__attribute__ ((section(".stack")))
|
|
static uint32_t stack[100];
|
|
const uint32_t stack_pntr = (uint32_t)stack + sizeof(stack);
|
|
|
|
/******************************************************************************
|
|
*
|
|
* The following are constructs created by the linker indicating where
|
|
* the "bss" and "ebss" segments reside in memory.
|
|
*
|
|
******************************************************************************/
|
|
extern uint32_t _bss;
|
|
extern uint32_t _ebss;
|
|
|
|
/******************************************************************************
|
|
*
|
|
* This is the entry point that handles setting the stack within the allowed
|
|
* workspace, initializing the .bss segment, and then jumping to main.
|
|
*
|
|
******************************************************************************/
|
|
__attribute__ ((section(".entry")))
|
|
void entry(void)
|
|
{
|
|
/* Workaround for ITT instructions. */
|
|
__asm(" NOP");
|
|
__asm(" NOP");
|
|
__asm(" NOP");
|
|
__asm(" NOP");
|
|
|
|
/* Initialize stack pointer */
|
|
__asm(" ldr sp, =stack_pntr");
|
|
|
|
/* Zero fill the bss segment. */
|
|
__asm(" ldr r0, =_bss\n"
|
|
" ldr r1, =_ebss\n"
|
|
" mov r2, #0\n"
|
|
" .thumb_func\n"
|
|
" zero_loop:\n"
|
|
" cmp r0, r1\n"
|
|
" it lt\n"
|
|
" strlt r2, [r0], #4\n"
|
|
" blt zero_loop");
|
|
|
|
/* Call the application's entry point. */
|
|
main();
|
|
|
|
/* If we ever return, enter an infinite loop */
|
|
while (1)
|
|
;
|
|
}
|