搜索
bottom↓
回复: 6

程序跑飞,不知是编译器原因还是仿真器原因

[复制链接]

出0入0汤圆

发表于 2013-9-25 12:59:31 | 显示全部楼层 |阅读模式
例如:
void usart_init(void){
   UCSR1A=0x01;   //多机方式
}
1、
void main(void){
   usart_init();//11
   usart_init();//12
   while(1){
     usart_init();
   }
}
2、
void main(void){
   UCSR1A=0x01;   //多机方式
   UCSR1A=0x01;   //多机方式
  while(1){
       UCSR1A=0x01;   //多机方式
   }
}

例如按1的调用方法,单步跟踪,进入usart_init()返回时跑飞。而按2的方式则无任何问题。
win7+cvavr2.03.4+studio4.19 仿真器是淘宝新买的JTAG ICE 硬件为MEGA64A+JTAG口。
由于开发环境,硬件及仿真器都是新搭建的,所以不知问题出在那里,请大家帮分析一下

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2013-9-25 13:13:03 | 显示全部楼层
估计是你的工程设置有问题 看看Cstack是不是设定小了
没用过这个系列的片子 纯属瞎猜

出0入0汤圆

 楼主| 发表于 2013-9-25 13:15:10 | 显示全部楼层
好,我看一下

出0入0汤圆

 楼主| 发表于 2013-9-25 13:32:10 | 显示全部楼层
不是这个原因

出0入0汤圆

 楼主| 发表于 2013-9-25 14:07:07 | 显示全部楼层
经跟踪是函数返回时跑分,原因未知,请大家帮分析下
00000063:   E0D5        LDI       R29,0x05       Load immediate
+00000064:   940C006A    JMP       0x0000006A     Jump
@00000066: usart_init
---- SOUR\main.c ----------------------------------------------------------------------------------
3:           UCSR1A=0x01;   //多机方式
+00000066:   E0E1        LDI       R30,0x01       Load immediate
+00000067:   93E0009B    STS       0x009B,R30     Store direct to data space
---- No Source ------------------------------------------------------------------------------------
+00000069:   9508        RET                      Subroutine return
@0000006A: main
---- SOUR\main.c ----------------------------------------------------------------------------------
7:           usart_init();//11
+0000006A:   940E0066    CALL      0x00000066     Call subroutine
8:           usart_init();//12
+0000006C:   940E0066    CALL      0x00000066     Call subroutine
10:            usart_init();
+0000006E:   940E0066    CALL      0x00000066     Call subroutine
+00000070:   CFFD        RJMP      PC-0x0002      Relative jump
---- No Source ---------------------------------------------------
执行下面语句后跑飞
+00000069:   9508        RET                      Subroutine return

出0入0汤圆

 楼主| 发表于 2013-9-25 14:16:36 | 显示全部楼层
找到了,熔丝位的原因,compmode 去掉

出0入0汤圆

 楼主| 发表于 2013-9-25 15:25:40 | 显示全部楼层
找到了,熔丝位的原因,compmode 去掉
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-27 00:15

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表