完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
cortex-m4相对比cortex-m3,在线程上下文切换中,主要增加了FPU寄存器,总共需要保存34个寄存器,合计136byte。
因此原来在cortex-m3上面运行的程序在cortex-m4f上面运行时需要增加至少136字节的栈空间。
在实际应用中,并不是每个任务都需要浮点运算。所以可以对其进行优化,只为需要使用FPU的线程保存FPU寄存器。
笔记:
当应用程序中使用了FPU后,CONTROL.FPCA会置位;
当进入中断ISR以后,会清除CONTROL.FPCA,并在LR的第4位反应CONTROL.FPCA的状态;
当退出中断ISR时,也会根据LR的第4位来更新CONTROL.FPCA。
因此,在线程上下文切换中:
保存原线程时,根据LR的第4位即可判断应用程序是否使用了FPU,并决定是否要保存FPU的寄存器;
切出新线程时,判断新的线程是否有使用FPU,并更新LR的第4位,以保存新的线程能正确运行。
原作者:aozima
发布
一文搞懂Linux进程的睡眠和唤醒
788 浏览 0 评论
【社区之星】尹向旭:耕耘时间,收获满满 —— 投入即有所得
4271 浏览 0 评论
如何使用python调起UDE STK5.2进行下载自动化下载呢?
2529 浏览 0 评论
开启全新AI时代 智能嵌入式系统快速发展——“第六届国产嵌入式操作系统技术与产业发展论坛”圆满结束
2929 浏览 0 评论
获奖公布!2024 RT-Thread全球巡回线下培训火热来袭!报名提问有奖!
31479 浏览 11 评论
【新品试用】英飞凌PSoC 6 RTT开发板试用活动
72919 浏览 21 评论
电子发烧友网
电子发烧友论坛
查看 »
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 14:06 , Processed in 0.692115 second(s), Total 45, Slave 34 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com