update 说明文档/开发流程.md.

Signed-off-by: 零中断延迟的RTOS <cosyos@139.com>
This commit is contained in:
零中断延迟的RTOS
2024-04-08 16:47:20 +00:00
committed by Gitee
parent 1d03e8ecf5
commit 6ff8354a12

View File

@@ -33,8 +33,19 @@ CosyOS支持高等级优化您完全可以选择8级defaultspeed偏
四、不覆盖/可重入/移除未使用<br>
1、LX51 Misc标签页添加控制命令“NOOVERLAY”以禁用数据覆盖。<br>
![输入图片说明](../images/KFLC_8051_4.png)<br>
2、由于CosyOS for 8051在设计上已摒弃了传统的可重入栈【IBP/PBP/XBP】所以对于不可重入的库函数或自定义函数<br>
如需要可重入,用户可复制相同的副本(函数)再分别调用,或采用二值信号量、互斥信号量(当仅存在任务中调用时)等方式来实现互斥访问。<br>
2、由于CosyOS for 8051在设计上已摒弃了传统的可重入栈【IBPSTACK/PBPSTACK/XBPSTACK】所以也不建议用户采用。<br>
原因是C51的可重入栈效率十分低下对于XBPSTACK还存在关中断行为。<br>
对于不可重入的库函数或自定义函数,如需要可重入,可采用下述的方法。<br>
1替换法对于不可重入的库函数可考虑替换为其它的可重入库函数实现相同的功能。<br>
| non-reentrant | reentrant | 替换条件 |
|--------------------|--------------------------------|----|
| strncpy(s1, s2, n) | memcpy(s1, s2, n) | 推荐s2的长度至少为n |
| strncat(s1, s2, n) | memcpy(s1 + strlen(s1), s2, n) | 推荐s2的长度至少为n |
| strcat(s1, s2) | strcpy(s1 + strlen(s1), s2) | 无 |
| strncmp(s1, s2, n) | memcmp(s1, s2, n) | 确保其中一个字符串的有效长度至少为n |
2可重入版本<br>
3副本用户可复制相同的副本函数再分别调用。<br>
4互斥函数或采用二值信号量、互斥信号量当仅存在任务中调用时等方式来实现互斥访问。<br>
3、为减少代码量用户应手动移除未使用的变量、函数或C文件因为“NOOVERLAY”会导致“REMOVEUNUSED”失效。<br>
#### 80251内核