From b11cb41ae70a8f31b58cda9807cb7a774369d8b8 Mon Sep 17 00:00:00 2001 From: YuQi Date: Tue, 30 Aug 2022 03:35:23 +0800 Subject: tms320f28379d fix init (#6343) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 解决 tms320f28379d bsp 启动的问题。主要改动如下。 修正context.s中汇编代码错误。在旧版的代码中,操作数为32位而汇编命令却使用了针对16位数据的命令MOV,导致程序在某些情况无法正常启动线程。 由于C28x的平台下,SP只支持16bit寻址,所以用于线程空间存放的heap以及ebss段都需要放在低16位的空间,针对这个问题修改了CMD文件。此外还增加基于CMD文件基于RAM的支持,方便调试。 新增rtdef.h中RT_SECTION,RT_USED,ALIGN和RT_WEAK的定义。旧版bsp中这些定义为空,导致INIT_EXPORT注册的函数失效。 修改程序启动代码,在程序入口直接调用原生启动代码 以上改动在LAUNCHXL-F28379D 通过了测试。 --- src/components.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/components.c b/src/components.c index 37519c042a..78eb002214 100644 --- a/src/components.c +++ b/src/components.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006-2021, RT-Thread Development Team + * Copyright (c) 2006-2022, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * @@ -145,7 +145,6 @@ int $Sub$$main(void) return 0; } #elif defined(__ICCARM__) -extern int main(void); /* __low_level_init will auto called by IAR cstartup */ extern void __iar_data_init3(void); int __low_level_init(void) @@ -194,7 +193,7 @@ void main_thread_entry(void *parameter) extern int $Super$$main(void); $Super$$main(); /* for ARMCC. */ } -#elif defined(__ICCARM__) || defined(__GNUC__) || defined(__TASKING__) +#elif defined(__ICCARM__) || defined(__GNUC__) || defined(__TASKING__) || defined(__TI_COMPILER_VERSION__) main(); #endif } -- cgit v1.3.1