- 1
- 2
- 3
- 4
- 5
固件里字符串处理别在中断和主循环打架.docx
资料介绍
固件里字符串处理别在中断和主循环打架
先说个容易犯的错
嵌入式程序里,经常要拼接、比较、解析字符串——比如拼一个日志、解析一条命令、格式化一串数据。很多人习惯用 C 标准库里的 sprintf、strcpy、strlen 这些函数,图省事。但在这类单片机平台上,字符串处理函数有个大坑:它们往往不是"可重入"的,而且耗时较长,用在中断里或者跟中断打架,就容易出事。
这里说的"打架",是指中断里用字符串处理函数、主循环也用,或者在高优先级中断里做耗时的字符串操作,引发数据错乱、程序跑飞、死锁。
字符串函数为什么在单片机上有坑
第一个坑是"不可重入"。很多库的字符串函数(尤其是一些老的实现)内部用了静态缓冲区或者全局状态,不是线程安全的、不可重入。如果中断里调用了一次,还没返回又被打断再次调用,就会互相干扰,数据错乱。
第二个坑是"耗时"。sprintf 这种格式化函数,内部逻辑复杂、还要解析格式,执行起来很耗时。放在中断里,会占用大量 CPU 时间,拖累实时性,还可能影响其他中断响应。
第三个坑是"内存使用"。有些字符串函数涉及动态内存分配,在嵌入式上动态分配既耗时又不安全(内存碎片、分配失败),在中断里尤其危险。
第四个坑是"越界风险"。strcpy、sprintf 如果不注意缓冲区大小,容易缓冲区溢出,覆盖相邻内存,导致程序跑飞。这在中断、主循环里都可能发生。
部分文件列表
| 文件名 | 大小 |
| 固件里字符串处理别在中断和主循环打架.docx | 38K |
相关下载
- 大唐杯仿真平台使用方法介绍
- PCB做板阻抗要求计算.xls
- PCB转Gerber方法.doc
- USB3.0-ALTERA-DDR2开发板入门指南.pdf
- EZ-USB FX3 I2C Boot Option.pdf
- EZ-USB FX3 Hardware Design Guidelines.pdf
- CYPRESS USB3.0 FX3 DEBUG仿真设置——Eslips...
- CYUSB3KIT-001 FX3 DVK Schematic PDF 硬件原...
- CYUSB3KIT-001 FX3 DVK Schematic CADENCE 设...
- Altera_cyclone III -DDR2-USB3.0开发板CADEN...
最新上传
-
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)