- 1
- 2
- 3
- 4
- 5
固件回调函数的用法与安全
资料介绍
固件里的"回调函数":什么时候用,怎么用安全 一、回调函数是嵌入式里的常用机制 回调函数(Callback Function)是把"你的处理函数"作为参数传给底层(驱动、协议栈、外设),底层在特定事件发生时调用你的函数。比如:串口收到数据时回调、定时器到时回调、协议栈收到数据回调。 回调用得好,代码灵活(底层不关心上层怎么处理,只管调用回调);用得不好,有坑(回调时机、回调里的操作、回调的上下文)。 二、回调的常见用法 驱动回调:底层驱动在事件(收数据、完成传输)时回调上层 协议栈回调:协议栈收到数据、连接变化时回调应用层 定时器回调:定时器到时调用回调 中断驱动的回调:中断里调用回调 三、回调用不好的坑 3.1 回调在中断里执行 很多回调是在中断上下文被调用的。如果在回调里做耗时操作(处理数据、printf、复杂逻辑),就犯了"中断里做耗时操作"的错(前面聊过),阻塞系统。 解决:中断里调用的回调,只做"快"的(置标志、收数据进缓冲),耗时处理放主循环。 3.2 回调里做不可重入/有副作用的事 如果回调里调用了不可重入的函数(printf、某些库函数),而回调又在中断里,可能有重入问题。 3.3 回调没初始化 回调函数指针没初始化(为NULL)就被调用,崩溃。回调要初始化(赋有效函数或NULL),调用前检查NULL。 3.4 回调里的数据竞态 回调里访问的共享变量,如果和主循环/其他上下文有竞态(前面聊过全局变量),要注意保护。
部分文件列表
| 文件名 | 大小 |
| 固件回调函数的用法与安全.docx | 37K |
最新上传
-
yahuang001 打赏3.00元 3天前
-
yahuang001 打赏1.00元 3天前
-
zhongshaoxiong 打赏3.00元 3天前
-
他山之石可攻玉 打赏60.00元 3天前
用户:烟雨
-
江岚 打赏210.00元 3天前
用户:潇潇江南
-
江岚 打赏100.00元 3天前
-
21ic下载 打赏310.00元 3天前
用户:gsy幸运
-
21ic下载 打赏310.00元 3天前
用户:zhengdai
-
21ic下载 打赏310.00元 3天前
用户:江岚
-
21ic下载 打赏210.00元 3天前
用户:潇潇江南
-
21ic下载 打赏60.00元 3天前
用户:他山之石可攻玉
-
21ic下载 打赏60.00元 3天前
用户:烟雨
-
21ic下载 打赏60.00元 3天前
用户:w178191520
-
21ic下载 打赏60.00元 3天前
用户:w993263495
-
21ic下载 打赏110.00元 3天前
用户:xzxbybd
-
21ic下载 打赏60.00元 3天前
用户:zq_1943
-
21ic下载 打赏20.00元 3天前
用户:kk1957135547
-
21ic下载 打赏20.00元 3天前
用户:sun2152
-
21ic下载 打赏20.00元 3天前
用户:铁蛋锅
-
21ic下载 打赏20.00元 3天前
用户:xuzhen1
-
21ic下载 打赏20.00元 3天前
用户:w1966891335
-
21ic下载 打赏35.00元 3天前
用户:有理想666
-
21ic下载 打赏15.00元 3天前
用户:nuaanuaa111
-
21ic下载 打赏20.00元 3天前
用户:liqiang9090
-
21ic下载 打赏15.00元 3天前
用户:ningmengge
-
21ic下载 打赏10.00元 3天前
用户:mulanhk
-
21ic下载 打赏5.00元 3天前
用户:asys
-
21ic下载 打赏10.00元 3天前
用户:舞蹈荀彧
-
21ic小能手 打赏5.00元 3天前
资料:磁编码器开源方案
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
江岚 打赏20.00元 3天前
-
江岚 打赏50.00元 3天前
-
江岚 打赏20.00元 3天前
-
江岚 打赏10.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏8.00元 3天前
-
21ic小能手 打赏8.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏3.00元 3天前




全部评论(0)