STM32和嵌入式LINUX的中断不同之处

1、STM32的中断很好理解,发生中断,就去中断向量表查询,然后对应执行。Linux的中断,在uboot中就已经设置了中断向量表。然后Linux内核启动的流程中会关闭中断,但是之后,如果想使用某个中断,那么直接申请就可以了。那么发生中断之后,就会根据中断号去查询。
2、至于中断向量表,STM32的中断向量表列出了每一个中断。但是嵌入式Linux不是,七个中断,其余的中断都放在IRQ中断当中。这应该是A/R系列的专有中断模式。目的肯定是为了移植系统的时候方便。
3、还有不同的是STM32如果想使用IAP+APP模式,那么app程序一定要重新定义bootloader程序使用过的中断。我认为这是由中断向量表重新偏移引起的。因为中断发生后,还是会先查找boot loader的向量中断表,然后跳转到app程序的中断表。如果一个中断只在boot loader里面定义而不在应用程序定义,那么肯定找不到。(虽然两个中断函数名字一样,但是地址不一样)。而嵌入式Linux里面就不是这样,uboot初始化之后的东西,Linux内核就可以直接用,我总结是独特的中断模式构成的。uboot里面压根就没有使用中断,中断全由Linux内核控制。内核控制是通过中断号,其实和STM32类似。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值