Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
yunqingabc
rt-thread
提交
e8bbbe67
R
rt-thread
项目概览
yunqingabc
/
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,体验更适合开发者的 AI 搜索 >>
提交
e8bbbe67
编写于
5月 31, 2013
作者:
G
Grissiom
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
cortex-r4: wrap asm functions with .asmfunc/.endasmfunc
上级
228a6be0
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
10 addition
and
0 deletion
+10
-0
libcpu/arm/cortex-r4/context_ccs.asm
libcpu/arm/cortex-r4/context_ccs.asm
+10
-0
未找到文件。
libcpu/arm/cortex-r4/context_ccs.asm
浏览文件 @
e8bbbe67
...
...
@@ -28,18 +28,22 @@
; * rt_base_t rt_hw_interrupt_disable();
; */
.def
rt_hw_interrupt_disable
.asmfunc
rt_hw_interrupt_disable
MRS
r0
,
cpsr
CPSID
IF
BX
lr
.endasmfunc
;/*
; * void rt_hw_interrupt_enable(rt_base_t level);
; */
.def
rt_hw_interrupt_enable
.asmfunc
rt_hw_interrupt_enable
MSR
cpsr_c
,
r0
BX
lr
.endasmfunc
;/*
; * void rt_hw_context_switch(rt_uint32 from, rt_uint32 to);
...
...
@@ -47,6 +51,7 @@ rt_hw_interrupt_enable
; * r1 --> to
; */
.def
rt_hw_context_switch
.asmfunc
rt_hw_context_switch
STMDB
sp
!
,
{
lr
}
; push pc (lr should be pushed in place of PC)
STMDB
sp
!
,
{
r0
-
r12
,
lr
}
; push lr & register file
...
...
@@ -88,12 +93,14 @@ __no_vfp_frame2
MSR
sp
sr_cxsf
,
r4
LDMIA
sp
!
,
{
r0
-
r12
,
lr
,
pc
}
^
; pop new task r0-r12, lr & pc, copy spsr to cpsr
.endasmfunc
;/*
; * void rt_hw_context_switch_to(rt_uint32 to);
; * r0 --> to
; */
.def
rt_hw_context_switch_to
.asmfunc
rt_hw_context_switch_to
LDR
sp
,
[
r0
]
; get new task stack pointer
...
...
@@ -112,12 +119,14 @@ __no_vfp_frame_to
MSR
sp
sr_cxsf
,
r4
LDMIA
sp
!
,
{
r0
-
r12
,
lr
,
pc
}
^
; pop new task r0-r12, lr & pc, copy spsr to cpsr
.endasmfunc
;/*
; * void rt_hw_context_switch_interrupt(rt_uint32 from, rt_uint32 to);
; */
.def
rt_hw_context_switch_interrupt
.asmfunc
rt_hw_context_switch_interrupt
LDR
r2
,
pintflag
LDR
r3
,
[
r2
]
...
...
@@ -131,6 +140,7 @@ _reswitch
LDR
r2
,
ptothread
; set rt_interrupt_to_thread
STR
r1
,
[
r2
]
BX
lr
.endasmfunc
.def
IRQ_Handler
IRQ_Handler
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录