1.3.2. set INTSUBMSK

# if defined(CONFIG_S3C2410)
	ldr	r1, =0x3ff1
	ldr	r0, =INTSUBMSK
	str	r1, [r0]
# elif defined(CONFIG_S3C2440)
	ldr	r1, =0x7fff2
	ldr	r0, =INTSUBMSK
	str	r1, [r0]
# endif
        

1

此处是将2410的INTSUBMSK设置为0x3ff。

后经HateMath的提醒后,去查证,的确此处设置的0x3ff,是不严谨的。

因为,根据2410的datasheet中关于INTSUBMSK的解释,bit[10:0]共11位,虽然默认reset的每一位都是1,但是此处对应的mask值,应该是11位全为1=0x7ff。

即写成0x3ff,虽然是可以正常工作的,但是却不够严谨的。

2

此处CPU是是S3C2440,所以用到0x7fff这段代码。

其意思也很容易看懂,就是将INTSUBMSK寄存器的值设置为0x7fff。

先贴出对应每一位的含义:

图 1.10. INTSUBMSK寄存器的位域

INTSUBMSK寄存器的位域


然后我们再来分析对应的0x7fff是啥含义。

其实也很简单,意思就是:

0x7fff = bit[14:0]全是1 = 上表中的全部中断都被屏蔽(mask)。