KEIL中遇到WARNING: MULTIPLE CALL TO SEGMENT的解决方法
产生这一警告的一个根源是:
例如在主循环里调用了一个函数,而在中断服务中,你又一次调用了同样的函数。
这样当主循环运行到该函数中时,一旦产生中断,则在中断里又再次调用该函数!
而使得该子函数发生了重入,这时,尽管概率很低,但是很可能出错!
这样,编译器就给出了警告!告诉你*** WARNING L15: MULTIPLE CALL TO SEGMENT ,表达的意思是发生了重入!
想要避免这种情况的方法
一.用reentrant使函数重入
关于reentrant的说明:
1,重入函数不能传递bit类型的参数和变量;
2,重入函数建立的是模拟堆栈区,所以不使用一般函数位于存储模式默认空间的可覆盖式堆栈,而是在同一空间从顶端另行分配一个非覆盖式的重入堆栈。
small 默认空间是 data;
compact 默认空间是 pdata;
largr 默认空间是 xdata;
3,由于要保存参数和局部变量,所以会消耗很大的栈空间;尽量少用这种模式;
4、 在同一程序中可以定义和使用不同存储器模式的重入函数,任意模式的重入函数不能调用不同存储器模式的重入函数,但可以调用普通函数。
5、 实际参数可以传递给间接调用的重入函数。无重入属性的间接调用函数不能包含调用参数。
二.如果空间多的话,可以定义两个同功能的函数,分别在中断和中断外调用
转载于:https://www.cnblogs.com/whut-xxxy/archive/2011/07/07/2099976.html
KEIL中遇到WARNING: MULTIPLE CALL TO SEGMENT的解决方法相关推荐
- keil复制代码乱码_win7系统下Keil复制中文注释到记事本出现乱码的解决方法
Keil是软件编程的时候经常会用到的软件,但是有不少win7系统用户在复制Keil源程序中文注释到记事本的时候,发现出现了乱码的情况,遇到这样的问题该如何处理呢,现在为大家带来win7系统下Keil复 ...
- ORA-27125: unable to create shared memory segment的解决方法(转)
ORA-27125: unable to create shared memory segment的解决方法(转) 原文:http://www.eygle.com/rss/20111202.html ...
- function()默认参数中ReferenceError Cannot access ‘a‘ before initialization的解决方法
function()默认参数中ReferenceError: Cannot access 'a' before initialization的解决方法 代码 <!DOCTYPE html> ...
- 计算机c盘属性不显示安全选项,win7系统中文件夹属性安全选项卡空白的解决方法...
在win7系统中,有小伙伴在使用文件夹属性的时候出现了问题,我们在win7系统中有小伙伴发现自己的文件夹属性中的"安全"选项卡不见了,安全选项卡是我们在win7系统中可以用来修改文 ...
- C# .net中cookie值为中文时的乱码解决方法
C# .net中cookie值为中文时的乱码解决方法 一.cookie的名称或子cookie的名称不能为中文,否则无法获得cookie 这个好办,名称不用中文即可 二.cookie的值为中文时候,取c ...
- JS中常遇到的浏览器兼容问题和解决方法
JS中常遇到的浏览器兼容问题和解决方法 参考文章: (1)JS中常遇到的浏览器兼容问题和解决方法 (2)https://www.cnblogs.com/wws-bk/p/9770834.html 备忘 ...
- WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED解决方法
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED解决方法 参考文章: (1)WARNING: REMOTE HOST IDENTIFICATION HAS ...
- 在vuejs 中使用axios不能获取属性data的解决方法
在vuejs 中使用axios不能获取属性data的解决方法 参考文章: (1)在vuejs 中使用axios不能获取属性data的解决方法 (2)https://www.cnblogs.com/lo ...
- 在Android Studio中打开Android Device Monitor时报错的解决方法
在Android Studio中打开Android Device Monitor时报错的解决方法 参考文章: (1)在Android Studio中打开Android Device Monitor时报 ...
- Android 在Fragment中执行onActivityResult不被调用的简单解决方法
Android 在Fragment中执行onActivityResult不被调用的简单解决方法 参考文章: (1)Android 在Fragment中执行onActivityResult不被调用的简单 ...
最新文章
- pycharm第一个Python程序
- 陪伴程序员的一条龙、一骑士 36 岁了!
- HDU 1712 裸分组dp
- nodejs+express +jade模板引擎 新建项目
- 用Nginx+Lua(OpenResty)开发高性能Web应用
- javascript中 this 指向问题
- gzip和gunzip 解压参数
- SpringSecurity实现记住我功能
- PS5运行Linux,索尼发布最新驱动!PS5手柄现在已支持Linux系统
- c++的准备知识18
- Android 取消壁纸,android – 壁纸设置强制关闭
- 各种工业以太网技术浅析
- 瑜伽形体棍出口欧盟CE认证,出口美国CPC认证标准介绍
- 高效程序员秘籍(6):使用CLCL加快写代码的速度
- 蓝桥杯基础之16进制、10进制、8进制、2进制换算总结
- stm32f103电子钟心得体会_STM32中的时钟
- k线形态python_如何用Python量化“相似K线”实现形态选股?
- verilog学习|《Verilog数字系统设计教程》夏宇闻 第三版思考题答案(第五章)
- (装双系统无法识别硬盘问题)Windows 10 SATA Controller Mode 改为AHCI
- 不好好做图的NSC系列(七):跟着cell学习用散点图展示韦恩图的效果
热门文章
- bzoj 1072: [SCOI2007]排列perm
- POJ2728 最小比率生成树/0-1分数规划/二分/迭代(迭代不会)
- 布局的几种方式(静态布局、自适应布局、流式布局、响应式布局、弹性布局)...
- tomcat多实例部署相关
- mongo .update
- JSTL Tutorial with Examples – JSTL Core Tags
- WCF开发入门的实例
- 从字符串数组中把数字的元素找出来
- win2008 401 - 未授权: 由于凭据无效,访问被拒绝。解决方法
- Messes in Reading Source Coding of SSD