写中断服务子程序的注意事项及原因

目录

一、中断服务器子程序里面不要有printf

二、不要有浮点数运算

三、参数几返回值


一、中断服务器子程序里面不要有printf

1、中断服务子程序设计原则是要快进快出,printf的实现会一直调用到底层逐个字节的打印输出,这种IO操作效率很慢,不适合放到中断里面。如果有锁机制,可能会造成死锁。

2、printf是不可重入函数,对于线程来说是不安全的

二、不要有浮点数运算

浮点数运算需要有额外的寄存器参入计算,也是不可重入的

三、参数几返回值

没有操作系统的单片机上,中断服务程序不能传递参数和有返回值,有操作系统的上面是可以传递参数和返回值的,其实返回值也没有太大作用。

版权声明:本文为CSDN博主「_seaside_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/huyongfu2004/article/details/122712484

目录

一、中断服务器子程序里面不要有printf

二、不要有浮点数运算

三、参数几返回值


一、中断服务器子程序里面不要有printf

1、中断服务子程序设计原则是要快进快出,printf的实现会一直调用到底层逐个字节的打印输出,这种IO操作效率很慢,不适合放到中断里面。如果有锁机制,可能会造成死锁。

2、printf是不可重入函数,对于线程来说是不安全的

二、不要有浮点数运算

浮点数运算需要有额外的寄存器参入计算,也是不可重入的

三、参数几返回值

没有操作系统的单片机上,中断服务程序不能传递参数和有返回值,有操作系统的上面是可以传递参数和返回值的,其实返回值也没有太大作用。

版权声明:本文为CSDN博主「_seaside_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/huyongfu2004/article/details/122712484

生成海报
点赞 0

_seaside_

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

串口配置TMC2209电机驱动模块

串口配置TMC2209电机驱动模块 本文主要记录TMC2209调试过程,通过串口助手配置TMC2209的寄存器实现转速,方向,细分数等寄存器设置。 1.首先要实现uart配置TMC2209寄存器就要先

写中断服务子程序的注意事项及原因

目录 一、中断服务器子程序里面不要有printf 二、不要有浮点数运算 三、参数几返回值 一、中断服务器子程序里面不要有printf 1、中断服务子程序设计原则是要快进快出,printf的实现会一直调用到底层逐个字节的打印输

INA226使用之程序与模块测试

笔者最近有个项目需要测量电流参数,于是买来INA226模块测试一下。 应用电路 首先测试使用的INA226模块如下图所示。 INA226模块原理图如下图所示。 官方手册的参考电路如下图所示。 结合上述图片以及数据手册&#xf