[ZLG-ARM] ARM的用户模式有些什么好处?

[复制链接]
 楼主| linjing 发表于 2007-3-29 22:45 | 显示全部楼层 |阅读模式
(前提声明:本人刚刚接触ARM,正在研究LPC2104开发板,如果问题太菜,请多多包涵:)<br /><br />按照一般操作系统的观点,用户程序不允许直接访问硬件,要想访问硬件必须通过系统调用,由系统操控硬件,这样可以防止用户对硬件的误操作。比如说现在的Windows系统,想要自己编程访问并口的3F8端口就十分麻烦,必须通过驱动程序访问,看EasyJTAG似乎就是用的WinIO的驱动(是不是啊,周工:)<br /><br />下面是问题:<br />看LPC2104的资料,有系统模式与用户模式等多种运行模式,也有像SWI这样的系统功能调用机制,可就是没发现就用户模式下访问硬件(比如说定时器,PWM等)有什么保护性的措施,倒是访问状态寄存器十分麻烦,比如说开/关中断(当然,这也是一种系统保护措施)。可用了半天用户模式,除了能防止误关中断,再没有别的什么优点了吗,还是说LPC2104这类工控用的ARM特意的简化了这方面的限制呢?
computer00 发表于 2007-3-30 00:00 | 显示全部楼层

有多组不同的寄存器,可以加快中断响应速度.

  
zlgARM 发表于 2007-3-30 08:38 | 显示全部楼层

linjing

&nbsp;&nbsp;&nbsp;之所以有用户模式,是因为ARM7体系结构里要根据不同的异常,跳转到不同的处理器模式,而在跳转之前,必然有一个不针对特定异常的处理器模式,于是就有了系统模式和用户模式;然后为了实现“操作系统具备访问关键硬件的特权,而一般用户程序无法访问关键硬件”这一理念,就有了系统模式和用户模式的划分。
 楼主| linjing 发表于 2007-3-30 11:57 | 显示全部楼层

我这样理解对吗

针对ARM来说,定时器/PWM等硬件并不是关键硬件,所以允许用户模式随意访问,而对于状态寄存器里的中断允许控制就是“关键硬件”,所以不允许用户直接访问,这样理解对吗?<br /><br />除了中断允许控制外,LPC2104中还有哪些关键硬件没有?
malaohu 发表于 2007-3-30 14:03 | 显示全部楼层

我们的程序一般运行于什么模式下?

正常运行程序时,无中断时,是什么模式,是系统还是用户,有什么区别呢?
zlgARM 发表于 2007-3-30 18:27 | 显示全部楼层

malaohu

&nbsp;&nbsp;是用户模式。<br /><br /><br />linjing:<br />&nbsp;&nbsp;只有特权模式才能修改CPSR。建议翻看一下ARM基础教程。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

327

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部