Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
luozhenger
rt-thread
提交
e2bdd8a1
R
rt-thread
项目概览
luozhenger
/
rt-thread
与 Fork 源项目一致
Fork自
RT-Thread / rt-thread
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rt-thread
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e2bdd8a1
编写于
12月 14, 2022
作者:
G
guozhanxin
提交者:
guo
12月 14, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[libcpu] fix cpp11 error
上级
89c3bf5f
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
21 addition
and
39 deletion
+21
-39
libcpu/arm/cortex-a/backtrace.c
libcpu/arm/cortex-a/backtrace.c
+21
-24
libcpu/arm/cortex-a/start_gcc.S
libcpu/arm/cortex-a/start_gcc.S
+0
-15
未找到文件。
libcpu/arm/cortex-a/backtrace.c
浏览文件 @
e2bdd8a1
/*
* Copyright (c) 2006-2022, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2019-03-29 Jesven the first version
*/
#ifndef __CHECKER__
#if !defined (__ARM_EABI__)
#warning Your compiler does not have EABI support.
...
...
@@ -31,30 +41,17 @@ rt_inline void arm_get_current_stackframe(struct pt_regs *regs, struct stackfram
frame
->
pc
=
regs
->
ARM_pc
;
}
/* Dummy functions to avoid linker complaints */
void
__aeabi_unwind_cpp_pr0
(
void
)
{
};
void
__aeabi_unwind_cpp_pr1
(
void
)
{
};
void
__aeabi_unwind_cpp_pr2
(
void
)
{
};
struct
unwind_ctrl_block
{
unsigned
long
vrs
[
16
];
/* virtual register set */
const
unsigned
long
*
insn
;
/* pointer to the current instructions word */
unsigned
long
sp_high
;
/* highest value of sp allowed */
unsigned
long
vrs
[
16
];
/* virtual register set */
const
unsigned
long
*
insn
;
/* pointer to the current instructions word */
unsigned
long
sp_high
;
/* highest value of sp allowed */
/*
* 1 : check for stack overflow for each register pop.
* 0 : save overhead if there is plenty of stack remaining.
*/
int
check_each_pop
;
int
entries
;
/* number of entries left to interpret */
int
byte
;
/* current byte number in the instructions word */
int
entries
;
/* number of entries left to interpret */
int
byte
;
/* current byte number in the instructions word */
};
enum
regs
...
...
@@ -75,11 +72,11 @@ static int core_kernel_text(unsigned long addr)
}
/* Convert a prel31 symbol to an absolute address */
#define prel31_to_addr(ptr)
\
({
\
/* sign-extend to 32 bits */
\
long offset = (((long)*(ptr)) << 1) >> 1;
\
(unsigned long)(ptr) + offset;
\
#define prel31_to_addr(ptr)
\
({
\
/* sign-extend to 32 bits */
\
long offset = (((long)*(ptr)) << 1) >> 1;
\
(unsigned long)(ptr) + offset;
\
})
/*
...
...
@@ -376,6 +373,7 @@ static char *unwind_get_function_name(void *address)
return
RT_NULL
;
}
#endif
/*
* Unwind a single frame starting with *sp for the symbol at *pc. It
* updates the *pc and *sp with the new values.
...
...
@@ -542,4 +540,3 @@ void rt_backtrace(void)
asm
volatile
(
"mov %0, pc"
:
"=r"
(
regs
.
pc
));
rt_unwind
(
&
regs
,
8
);
}
libcpu/arm/cortex-a/start_gcc.S
浏览文件 @
e2bdd8a1
...
...
@@ -187,21 +187,6 @@ bss_loop:
bl
rt_hw_mmu_init
#endif
/
*
call
C
++
constructors
of
global
objects
*/
ldr
r0
,
=
__ctors_start__
ldr
r1
,
=
__ctors_end__
ctor_loop
:
cmp
r0
,
r1
beq
ctor_end
ldr
r2
,
[
r0
],
#
4
stmfd
sp
!,
{
r0
-
r1
}
mov
lr
,
pc
bx
r2
ldmfd
sp
!,
{
r0
-
r1
}
b
ctor_loop
ctor_end
:
/
*
start
RT
-
Thread
Kernel
*/
ldr
pc
,
_rtthread_startup
_rtthread_startup
:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录