发新帖我要提问
12
返回列表
打印

STM32 特权级访问的问题

[复制链接]
楼主: mjj123
手机看帖
扫描二维码
随时随地手机跟帖
21
mjj123|  楼主 | 2010-7-9 14:43 | 只看该作者 回帖奖励 |倒序浏览
还有个问题是。关中断和开中断函数是成对出现的,我们的应用程序内一般不会操作他们的,他们是在系统函数中成对出现的,既然是系统函数了,那就让他们在特权级下运行好了,还对系统的稳定性有好处!

使用特权

评论回复
22
ShakaLeo| | 2010-7-9 18:14 | 只看该作者
20楼:
关中断的目的不只是访问临界资源,还有一些对时序要求比较严格的代码,比如软件模拟I2C。
我的意思:既然让任务工作在用户级,就除了系统调用外都运行在用户级,按你的说法,需要关中断了就切回特权级,然后开中断了又切回去,有意思吗?
21楼:
“关中断和开中断函数是成对出现的,我们的应用程序内一般不会操作他们的,他们是在系统函数中成对出现的”
------这是不对的,开关中断是成对出现,但不能认为他们是系统函数、应用程序就不操作他们了。你可以看看邵贝贝翻译的那本UCOS的书,2.18.1节里“处理共享数据时保证互斥,最简便快捷的办法是关中断和开中断。”和“一般地说,关中断的最长时间不超过内核本身的关中断时间”。从第二句话可以看出,作者默认了除内核程序外,用户程序也可以开关中断。
  后来扯的有点远了,你的问题是在用户级下运行特权级指令为什么不产生fault,我所看的资料没发现哪里说用户级下运行特权级指令会产生fault。至于运行过程中切换至用户级,既然CM3有这个功能,就肯定有它的用途,只是我个人觉得对于STM32这种没有MPU的芯片来说,意义不是很大,而且来回切换本身就增加程序开销。不然UCOS的官方移植也不会让程序一直运行在特权级。

使用特权

评论回复
23
mjj123|  楼主 | 2010-7-9 19:56 | 只看该作者
本帖最后由 mjj123 于 2010-7-9 20:15 编辑

在开关中断之间的那些全局变量是系统的变量,我们的应用程序(任务)是不能修改他们的,把它们存储在特权区域(当然很多cm3内核的处理器是有MPU),我们可以在它上面使用啊,那样的话切换特权级是不是就有用了。我们不一定限制在stm32这个系列中的。
关于21漏,我没有说开关中断函数是系统函数,我说的是应用程序一般不会操作他们的,没说不操作他们,
当然这种权限的切换是增加系统的开销,但这样也增加了系统的安全性,这些芯片是发展的,它们是处理速度会越来越快的,这点系统开销对一些实时性的应用还是可以承受的,对于,对系统的安全性要求很高,而对系统的实时性要求不是很苛刻的应用,这点还是有优点的,毕竟ucosii的内核只有几K大啊。
还有就是,我们作为研究这个新内核的应用,应该考虑到它的前途和多方面的应用的。更不是只是一个系列的芯片。
我们也可以在系统函数的开始与介绍处加上权限转化函数,而且避免在关中断下进入用户级,(当然关中断时管不了NMI的,也可以在用户级下认为的产生个NMI,这一点我没研究)

使用特权

评论回复
24
mjj123|  楼主 | 2010-7-9 20:06 | 只看该作者
我最初的问题,我在前面的 cm3内核权威指南中找到了论述,我也联系了该书的翻译者,他测试说在LPC1768上,用户级下 ,对特殊功能寄存器的访问也是如同NOP指令,也许是原文(英文版就有缺陷吧)
(《The Defi nitive Guide to the ARM Cortex-M3》    Joseph Yiu   P37)
In the user access level (Thread mode), access to the System Control Space, or SCS—a part of the memory region for confi guration registers and debugging components—is blocked. Furthermore, instructions that access special registers (such as MSR, except when accessing APSR) cannot be used. If a program running at the user access level tries to access SCS or special registers, a fault exception will occur.

对MOVT这个指令,在LPC1768执行时正常的,而在stm32上它就相当于NOP了。有些不明白,相同 的内核,相同的指令集,不同 的效果。

使用特权

评论回复
25
hnsw| | 2011-8-11 23:50 | 只看该作者
mark~~~

使用特权

评论回复
26
hfjzy0702| | 2014-5-18 22:52 | 只看该作者
mark

使用特权

评论回复
27
wakojosin| | 2014-5-25 17:52 | 只看该作者
路过看看。

使用特权

评论回复
28
z_no1| | 2015-8-27 17:51 | 只看该作者
mark

使用特权

评论回复
29
734774645| | 2015-8-28 08:51 | 只看该作者
去UCOS官网看看吧,那有人家做好的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则