经常crash,加上了printf,它就不会crash了.

本文探讨了嵌入式系统中的中断处理机制,并列举了中断函数编程时需要遵循的限制条件,包括参数传递、函数返回值、内部运算以及使用标准库函数等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


1.时序问题(可以加mutex保护)
2.cpu资源抢占问题,可以加入sleep缓解
3.hardware处理能力问题,hardware或某芯片的处理能力没有你想象的那么快,如camera   sensor,需要加入一些等待
4.其它(个人认为跟缓冲无关,又不是所以的hareware都跟它有关)

 
_interupt   int   OperAt(int   a)
{
      int   b   =   2;
      a   *=   b;
      printf( "%d ",a);
      return   a;
}
1.中断函数不能有参数传递与返回值
2.printf()经常有重入和性能上的问题,在中断函数中避免使用
3.a   *=   b;中断函数中的语句尽量短,避免做大的运算
4 在中断中不能引入浮点数的变量,因为也有重入的问题(有的时候硬件也不支持)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值