2013年(15)
发布时间:2013-10-15 15:13:24
按照我之前给出的MPU地址空间表,Unprivileged似乎只能对内存段的RWUSER里进行写操作,而这个RWUSER段也是必须事前通过宏USER_RW_ACCESS前缀来定义的静态变量。那用户任务运行必定需要堆栈,堆栈如果不允许写,那如何运行程序呢?其实,我之前介绍的只是MQX中静态定义Unprivileged权限地址段的一种方法,而真正在使用中MQ.........【阅读全文】
发布时间:2013-10-15 15:12:55
正如前文所说,一旦MQX启用了用户权限任务,就会涉及系统调用的概念。提出所谓用户权限的概念就是为了限制一个任务对系统的影响,防止不健全或是恶意的任务破坏系统的稳定性。这样的机制多适用于windows或linux这样大型的可以自由安装软件的操作系统,毕竟我们这个世界还是充满着各种恶意软件。但在实时性系统中确比较少.........【阅读全文】
发布时间:2013-10-15 15:12:46
对于任何一个多任务系统而言,由于涉及效率和安全性,其任务调度都是一个非常关键的部分。一般而言,由于涉及底层硬件的中断机制,这部分的代码都是用汇编完成的,MQX也不例外。这部分的程序可以在dispatch.s中找到。 在提具体程序之前先要说两个异常,第一个是SVC,另一个是PendSV。这两个异常都拿来给用户自定义用的,前.........【阅读全文】
发布时间:2013-10-15 15:12:36
多任务系统自然以任务为核心,在启动任务机制之后,MQX要么在任务中运行,要么就在中断服务程序里。相比linux还多了一个内核态,MQX则将内核操作也任务化了(权限比较高),如ipc任务。 MQX的任务可以在初始化的时候创建,也可以在任务运行时动态创建,还是比较灵活的,这都是建立在于动.........【阅读全文】
发布时间:2013-10-15 15:12:21
记得当时看linux源码时发现有中断线程化这么一个概念的时候让我很是新鲜,向来中断都是高高在上睥睨茫茫众生,想不到还能被进程拿下马来。当然linux采用这样的机制是为了考虑到实时性的要求,毕竟中断有各种各样的,总不能让一个十万火急的实时性进程等你一个悠哉悠哉相对不是太重要的中断服务结束吧。不过linux的中断线.........【阅读全文】