Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
rt-thread
提交
fd6ef4b2
R
rt-thread
项目概览
BaiXuePrincess
/
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,发现更多精彩内容 >>
提交
fd6ef4b2
编写于
8月 12, 2014
作者:
wzyy2
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[libcpu]am335x edit vector
vector_undef and vector_dabt
上级
ae3b6583
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
40 addition
and
2 deletion
+40
-2
libcpu/arm/am335x/start_gcc.S
libcpu/arm/am335x/start_gcc.S
+22
-2
libcpu/arm/am335x/trap.c
libcpu/arm/am335x/trap.c
+18
-0
未找到文件。
libcpu/arm/am335x/start_gcc.S
浏览文件 @
fd6ef4b2
...
...
@@ -33,7 +33,7 @@
.
equ
I_Bit
,
0x80
@
when
I
bit
is
set
,
IRQ
is
disabled
.
equ
F_Bit
,
0x40
@
when
F
bit
is
set
,
FIQ
is
disabled
.
equ
UND_Stack_Size
,
0x00000
0
00
.
equ
UND_Stack_Size
,
0x00000
2
00
.
equ
SVC_Stack_Size
,
0x00000100
.
equ
ABT_Stack_Size
,
0x00000000
.
equ
FIQ_Stack_Size
,
0x00000000
...
...
@@ -135,7 +135,15 @@ vector_undef:
sub
sp
,
sp
,
#
72
stmia
sp
,
{
r0
-
r12
}
@
/*
Calling
r0
-
r12
*/
add
r8
,
sp
,
#
60
stmdb
r8
,
{
sp
,
lr
}
@
/*
Calling
SP
,
LR
*/
mrs
r1
,
cpsr
mrs
r2
,
spsr
orr
r2
,
r2
,
#
I_Bit
|
F_Bit
msr
cpsr_c
,
r2
mov
r0
,
r0
stmdb
r8
,
{
sp
,
lr
}
@
/*
Calling
SP
,
LR
*/
msr
cpsr_c
,
r1
@
/*
return
to
Undefined
Instruction
mode
*/
str
lr
,
[
r8
,
#
0
]
@
/*
Save
calling
PC
*/
mrs
r6
,
spsr
str
r6
,
[
r8
,
#
4
]
@
/*
Save
CPSR
*/
...
...
@@ -144,6 +152,12 @@ vector_undef:
bl
rt_hw_trap_udef
ldmia
sp
,
{
r0
-
r12
}
@
/*
Calling
r0
-
r2
*/
mov
r0
,
r0
ldr
lr
,
[
sp
,
#
60
]
@
/*
Get
PC
*/
add
sp
,
sp
,
#
72
movs
pc
,
lr
@
/*
return
&
move
spsr_svc
into
cpsr
*/
.
align
5
.
globl
vector_swi
vector_swi
:
...
...
@@ -169,6 +183,12 @@ vector_dabt:
bl
rt_hw_trap_dabt
ldmia
sp
,
{
r0
-
r12
}
@
/*
Calling
r0
-
r2
*/
mov
r0
,
r0
ldr
lr
,
[
sp
,
#
60
]
@
/*
Get
PC
*/
add
sp
,
sp
,
#
72
movs
pc
,
lr
@
/*
return
&
move
spsr_svc
into
cpsr
*/
.
align
5
.
globl
vector_resv
vector_resv
:
...
...
libcpu/arm/am335x/trap.c
浏览文件 @
fd6ef4b2
...
...
@@ -18,6 +18,10 @@
#include "am33xx.h"
#include "interrupt.h"
#ifdef RT_USING_GDB
#include "gdb_stub.h"
#endif
/**
* @addtogroup AM33XX
*/
...
...
@@ -55,6 +59,13 @@ void rt_hw_show_register (struct rt_hw_register *regs)
*/
void
rt_hw_trap_udef
(
struct
rt_hw_register
*
regs
)
{
#ifdef RT_USING_GDB
regs
->
pc
-=
4
;
//lr in undef is pc + 4
if
(
gdb_undef_hook
(
regs
))
return
;
#endif
rt_hw_show_register
(
regs
);
rt_kprintf
(
"undefined instruction
\n
"
);
...
...
@@ -114,6 +125,13 @@ void rt_hw_trap_pabt(struct rt_hw_register *regs)
*/
void
rt_hw_trap_dabt
(
struct
rt_hw_register
*
regs
)
{
#ifdef RT_USING_GDB
if
(
gdb_mem_fault_handler
)
{
regs
->
pc
=
(
unsigned
long
)
gdb_mem_fault_handler
;
return
;
}
#endif
rt_hw_show_register
(
regs
);
rt_kprintf
(
"data abort
\n
"
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录