免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3472 | 回复: 1
打印 上一主题 下一主题

关于arm linux 的usr_entry 一问 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-07-05 13:16 |只看该作者 |倒序浏览
本帖最后由 木叉叉木大 于 2010-07-05 13:17 编辑

此宏在 entry_armv.S
定义如下:
  1.        .macro  usr_entry
  2.         sub     sp, sp, #S_FRAME_SIZE
  3.         stmib   sp, {r1 - r12}

  4.         ldmia   r0, {r1 - r3}
  5.         add     r0, sp, #S_PC           @ here for interlock avoidance
  6.         mov     r4, #-1                 @  ""  ""     ""        ""

  7.         str     r1, [sp]                @ save the "real" r0 copied
  8.                                         @ from the exception stack

  9. #if __LINUX_ARM_ARCH__ < 6 && !defined(CONFIG_NEEDS_SYSCALL_FOR_CMPXCHG)
  10. #ifndef CONFIG_MMU
  11. #warning "NPTL on non MMU needs fixing"
  12. #else
  13.         @ make sure our user space atomic helper is aborted
  14.         cmp     r2, #TASK_SIZE
  15.         bichs   r3, r3, #PSR_Z_BIT
  16. #endif
  17. #endif

  18.         @
  19.         @ We are now ready to fill in the remaining blanks on the stack:
  20.         @
  21.         @  r2 - lr_<exception>, already fixed up for correct return/restart
  22.         @  r3 - spsr_<exception>
  23.         @  r4 - orig_r0 (see pt_regs definition in ptrace.h)
  24.         @
  25.         @ Also, separately save sp_usr and lr_usr
  26.         @
  27.         stmia   r0, {r2 - r4}
  28.         stmdb   r0, {sp, lr}^

  29.         @
  30.         @ Enable the alignment trap while in kernel mode
  31.         @
  32.         alignment_trap r0

  33.         @
  34.         @ Clear FP to mark the first stack frame
  35.         @
  36.         zero_fp
  37.         .endm
复制代码
上面的这部分代码
  1. @ Also, separately save sp_usr and lr_usr
  2.         @
  3.         stmia   r0, {r2 - r4}
  4.         stmdb   r0, {sp, lr}^
复制代码
这里说存储 用户空间的sp和lr
但是现在是在管理模式,怎么是存储用户空间的sp和lr呢?

论坛徽章:
0
2 [报告]
发表于 2010-07-05 13:23 |只看该作者
找到答案了
^指示指令中所用的寄存器为用户模式对应的寄存器
看来对arm指令集还是不熟悉啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP