首先看一下需要设置的中断的中断号,使用下面这个命令
cat /proc/interrupts
显示如下:
假设我们需要设置的中断时这个定时器10012000.timer0,中断号是13,然后进入目录
cd /proc/irq/13
该目录下会有这些文件
查看亲和性设置
cat smp_affinity_list
0-7表示这个中断可以被所有cpu核处理
可以通过往smp_affinity文件里面写配置值改写亲和性,配置值本质上是一个掩码值,即用一个bit表示某一个cpu核是否可以处理该中断。我们ARM处理器总共有8个核,分别对应一个char数值的第0位到第7位,如下图:
只需要将掩码值以十六进制值对应字符串(不需要0x)写入smp_affinity文件即可
echo "20" > smp_affinity
然后打印cat smp_affinity_list确认一下
设置成功,后续当有13号SPI中断触发时,GIC会将中断发送到掩码设定的处理器。