设计背景:
1、选用LPC1518,编译环境keil5,jlink
2、功能应用:软件框架采用时间片调度管理
A、设计分享
软件框架是个比较玄乎的东东,在单片机里说的直白一些就是一些中断的管理,任务的调度等,限于能力,我只提出这么个问题以供讨论。
B、功能实现
1、Cotex-M0、Contex-M3的中断管理里有个组优先级、中断优先级,对于组优先级貌似有个几级的抢占优先级的设置,在LPC15xx里就是
void NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
及void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
遗憾的是我没找到这个组的具体设置方法;通常情况下,对于单片机而言,软件系统都不会太大,中断级数一般一组0-7基本就够用了,因此组的抢占优先级我就采用默认的好了。
2、软中断:一个定时器实现多个定时任务中断处理
在手册中,软中断只在NVIC里一笔带过,STIR:Software Trigger Interrupt Register. This register allows software t0 generate an interrupt.现在我要的功能是比如1ms计时到100ms的时候启动CAN_IRQn中断(只是借用此中断的中断优先级的中断服务),那么只需要NVIC->STIR = CAN_IRQn; 一条指令即可。
关于软件框架,小弟不懂,所以表述不一定对,如有疑问请各位高手给予回复,此帖希望对用到软中断的同仁有所帮助,谢谢!
|