【技术实现步骤摘要】
一种Linux内核支持快速中断响应的方法
[0001]本专利技术属于嵌入式
Linux
设备
,涉及一种
Linux
内核支持快速中断响应的方法,适用于快速响应某一外设的中断,通过中断执行实时性需求较高任务的场景
。
技术介绍
[0002]Linux
系统因其强大的功能和开源特性广泛应用与嵌入式设备,经过多年发展虽然在实时性方面有了一些的提高,但对于一些需要快速响应的场景仍有些力不从心
。
现代嵌入式
CPU
的中断系统多数支持快速中断
(FIQ)
,
FIQ
是优先级高于普通中断
(IRQ)
的一种快速响应中断,
CPU
从硬件上保证了
FIQ
的快速响应特性
。Linux
内核中
FIQ
完全独立于操作系统,不受系统调度和普通中断的影响,因此系统软件上响应优先级最高
。
但在
Linux kernel
中仅提供了开启支持快速中断
FIQ
使能和拷贝
FIQ
中断服务函数到函数入口地址的功能,不能直接使用
FIQ
响应中断,对
FIQ
的支持并不完整
。
技术实现思路
[0003]本专利技术的目的是提供一种
Linux
内核支持快速中断响应的方法
。
[0004]本专利技 ...
【技术保护点】
【技术特征摘要】
1.
一种
Linux
内核支持快速中断响应的方法,其特征在于:步骤
(1)
在
Linux
系统中断初始化时,将所有外设和系统中断根据
CPU
技术手册配置为普通中断
IRQ
;步骤
(2)
将
CPU
的中断寄存器的物理基地址映射到虚拟基地址,通过中断寄存器将需要快速响应的外设从普通中断
IRQ
中断移除,配置为快速中断
FIQ
;快速中断
FIQ
优先级高于普通中断
IRQ
;步骤
(3)
申请一段内存,对齐申请内存的起始地址,对齐后的内存空间作为
FIQ
中断的栈;步骤
(4)
调用
Linux
系统接口函数,将
FIQ
中断服务函数拷贝到
Linux
系统的
FIQ
中断入口地址;所述的
FIQ
中断服务函数采用汇编语言实现,
FIQ
中断服务仅做
C
函数调用的上下文保存到栈和从栈恢复操作,复杂的业务逻辑放在
C
函数中实现;步骤
(5)
将
C
函数地址保存到
CPU
通用寄存器组其中一个通用寄存器中,用于在
FIQ
中断服务函数中跳转调用,并将
CPU
通用寄存器组中每个通用寄存器的值保存至
FIQ
中断的栈,覆盖已有的值;步骤
(6)
当有外设中断触发时,
...
【专利技术属性】
技术研发人员:杨明超,任昂,刘怡雄,
申请(专利权)人:杭州国芯科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。