這幾天在調試ft5406驅動,發現在中斷處理函數中調用disable_irq後程序死機,現在解決了,中斷服務程序中應該要調用disable_irq_nosync來關中斷。
disable_irq和disable_irq_nosync,兩者都是關中斷函數,不同在於,前者要等待中斷處理完成才返回,後者不等,直接返回,因此再中斷處理函數關中斷操作的話一定要調用disable_irq_nosync,否則會死機。
這幾天在調試ft5406驅動,發現在中斷處理函數中調用disable_irq後程序死機,現在解決了,中斷服務程序中應該要調用disable_irq_nosync來關中斷。
disable_irq和disable_irq_nosync,兩者都是關中斷函數,不同在於,前者要等待中斷處理完成才返回,後者不等,直接返回,因此再中斷處理函數關中斷操作的話一定要調用disable_irq_nosync,否則會死機。