设为首页
收藏本站
开启辅助访问
登录
注册
论坛
BBS
资讯
商城
阿里云1688商城批发
排行榜
Ranklist
帮助
Help
淘帖
Collection
日志
Blog
相册
Album
分享
Share
记录
Doing
搜索
搜索
本版
帖子
用户
松翰单片机论坛和资料中心
»
论坛
›
松翰单片机
›
8Bit OTP SN8P25xx/26xx/27xx/28xx/29xx等系列
›
sn8p2511软件陷阱出错
返回列表
发新帖
回复
sn8p2511软件陷阱出错
[复制链接]
4979
|
7
|
2014-11-28 12:50:51
|
显示全部楼层
|
阅读模式
本帖最后由 xujie201210 于 2014-11-29 07:38 编辑
各位大侠前辈;小弟做了一个小程序;结果在做软件陷阱时候出了问题;1.在未编程的ROM的地方全都写上nop jmp 0;假设在模块1中;设置出错(程序跑飞)此时设PC=0x1f0;当复位后出现:堆栈溢出;是什么原因?
程序结构如:
void main(void)
{
system_Lint();//程序初始化
while(1)
{
模块1
模块2
--
--
模块n
}
}
/////////
模块1:设置在模块1中;模拟程序跑飞;假设跑飞到空白未编程的0x1f0地方;
void 模块1 (void)
{
if(key_flag==1)
{
--
__asm
{
nop
jmp 0x1f0 //模拟程序跑飞到地址0x1f0
}
flag_key=0;
}
}
///////////
程序总长度到0x1de为止;在0x1de后面都填写上nop jmp 0;如下
#pragma code_adder 0x1df
void err(void)
{
nop(5)
__asm
{
nop
nop
jmp 0 //设置程序陷阱;进行拦截;再复位
}
--
--
nop(5)
__asm
{
nop
nop
jmp 0
}
}
说明:在使用sn8 c studio软件调试时;程序能跑飞到空白的0x1f0出;再向下运行能到复位00地址处;这个时候再向下运行时;就出现堆栈溢出;出错了?请问各位前辈;难道这样设置程序跑飞不正确吗?应该怎么样设置比较合理?还是松翰芯片抗干扰强不用设置程序陷阱防止程序跑飞?
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
疯子~lrh
|
2014-12-9 08:48:33
|
显示全部楼层
直接开看问狗就行了,不用这么麻烦~
回复
支持
反对
使用道具
举报
显身卡
MCU
|
2015-1-6 08:49:26
|
显示全部楼层
JMP 0并不能清除硬件堆栈信息,建议把system_Lint()函数代码直接写在该处试一下
回复
支持
反对
使用道具
举报
显身卡
zhaofu88
|
2015-1-9 16:58:35
|
显示全部楼层
123131321ihih
回复
支持
反对
使用道具
举报
显身卡
ZCY
|
2015-1-10 09:20:59
|
显示全部楼层
本帖最后由 ZCY 于 2015-1-12 09:51 编辑
你好.
jmp ox1f0
这条语句.写在子程序里面.直接跳出,没有清除堆栈 所以会溢出
堆栈清除必须是系统复位,或者使用retrn语句.其他跳转并不能清除.会导致堆栈累加 而溢出
回复
支持
反对
使用道具
举报
显身卡
伏卧龙
|
2015-1-16 10:27:29
|
显示全部楼层
我想问一下,JMP不是汇编吗?怎么写在C语言里去了呀?
回复
支持
反对
使用道具
举报
显身卡
MCU
|
2015-1-26 08:47:47
|
显示全部楼层
伏卧龙 发表于 2015-1-16 10:27
我想问一下,JMP不是汇编吗?怎么写在C语言里去了呀?
C内嵌套汇编
回复
支持
反对
使用道具
举报
显身卡
伏卧龙
|
2015-1-28 12:32:37
|
显示全部楼层
谢谢,受教了
回复
支持
反对
使用道具
举报
显身卡
返回列表
发新帖
回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
xujie201210
回复楼主
返回列表
8051核 Flash SN8F52xx/57xx/58xx/59xx/SZC系列
8Bit OTP SN8P25xx/26xx/27xx/28xx/29xx等系列
32Bit Cortex-M0 SN32F100/200/700/800等系列
OID/Wifi/NFC 点读笔芯片 无线传输芯片 近场通讯芯片等
松翰语音IC Voice Controllers
音视频控制 Video/Image Controllers
USB系列 USB Controllers