rt_hw_stack_init

发表在 Kernel2020-2-12 21:47 [复制链接] 2 67

本帖最后由 aozima 于 2020-2-12 21:53 编辑 ) a- M- a; s% U# I: s# V0 @, _0 e
  1. rt_uint8_t *rt_hw_stack_init(void       *tentry,
    9 `% B' {5 S* Y
  2.                              void       *parameter,) R# Y; M' ^0 Y; k
  3.                              rt_uint8_t *stack_addr,
    / H3 P) d! b. Q5 w+ J5 j( W* h8 g. O
  4.                              void       *texit)
    ' ?8 |/ \' x0 P# S4 Q
  5. {0 m" m. l/ `# D4 f  f) }( v7 k/ `
  6.     struct stack_frame *stack_frame;
    : A$ T# }# E7 ~% o
  7.     rt_uint8_t         *stk;
    7 e: K5 h$ z8 J" i
  8.     unsigned long       i;
复制代码
* X9 F; j, x3 D& C: m) ^1 n* N, K* ^
, |4 T( e' a/ a1 \9 d) i" a0 t8 R
    /* 这个地方有一点不大明白,为什么本函数调用时先 减去 sizeof(rt_base_t) 这里再加上sizeof(rt_uint32_t), 这样做有什么用意 */
3 H* b# E) [/ e- c4 b0 F3 Y- L* D6 n  D6 j, Q7 e1 |

" i; Q" {8 a$ j% F1 q7 [  e  Z
  1.     stk  = stack_addr + sizeof(rt_uint32_t);. J1 L9 U8 x/ l
  2.     stk  = (rt_uint8_t *)RT_ALIGN_DOWN((rt_uint32_t)stk, 8);8 R: A1 M8 F) @0 z0 o
复制代码

$ m  B2 p/ v% c* I+ `, d+ R1 D& x
& n6 O, j7 f% c: m6 o9 b1 s9 B
使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 2020-2-12 21:57:23 | 显示全部楼层
参考下
* O9 a! E# I/ m# x+ n6 l& o& k  I( y$ w' e* P, [
https://www.rt-thread.org/qa/thread-11669-1-1.html& ^6 ^3 D& N, n& v
https://www.rt-thread.org/qa/thread-720-1-1.html% `. Q; n! }% P# k, n% s
https://www.rt-thread.org/qa/thread-422036-1-1.html
8 a6 _/ Z* a+ V- d$ n4 `4 T
使用道具 举报 回复
发表于 2020-2-13 11:06:29 | 显示全部楼层
原来如此,明白了
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|RT-Thread开发者社区 ( 沪ICP备13014002号-1

有害信息举报电话:021-31165890 手机:18930558079

© 2006-2019 上海睿赛德电子科技有限公司

Powered by RT-Thread

快速回复 返回顶部 返回列表