打印
[其它应用]

无**常仿真

[复制链接]
744|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gongche|  楼主 | 2015-8-18 21:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
刚刚开始用F166A,写好的工程无**常仿真,怀疑是程序的问题,就借鉴了论坛上一位朋友的程序;#include<SH79F166A.h>
#define uint unsigned int
#define uchar unsigned char
void delay(uint x);
sbit LED0=P0
^2;
sbit LED1=P0
^4;
sbit LED2=P0
^6;
sbit LED3=P2
^0;
sbit LED4=P4
^0;
sbit LED5=P3
^6;
void main()
{ P0CR=0x54;
P2CR=0x01;
P3CR=0x40;
P4CR=0x01;
P0PCR=0x54;
P2PCR=0x01;
P3PCR=0x40;
P4PCR=0x01;
P0SS=0;
P2SS=0;
P3SS=0;
LED0=1;
LED1=1;
LED2=1;
LED3=1;
LED4=1;
LED5=1;
     while(1);
}
硬件仿真,显示运行,无法进入主chengxu
译以后      129:  
    130: STARTUP1:
   131:  
    132: IF IDATALEN <> 0
C:0x0000    02009C   LJMP     C:009C
     17: void main()
    18: { P0CR=0x54;
C:0x0003    02008A   LJMP     C:008A
     19: P2CR=0x01;
C:0x0006    75E1FF   MOV      P0CR(0xE1),#0xFF
     20: P3CR=0x40;
C:0x0009    75E9FF   MOV      P0PCR(0xE9),#0xFF
     21: P4CR=0x01;
C:0x000C    75E2FF   MOV      0xE2,#0xFF
     22: P0PCR=0x54;
C:0x000F    75EAFF   MOV      0xEA,#0xFF
     23: P2PCR=0x01;
C:0x0012    75E3FF   MOV      P2CR(0xE3),#0xFF
     24: P3PCR=0x40;
C:0x0015    75EBFF   MOV      P2PCR(0xEB),#0xFF
     25: P4PCR=0x01;
C:0x0018    75E4FF   MOV      P3CR(0xE4),#0xFF
     26: P0SS=0;
C:0x001B    75ECFF   MOV      P3PCR(0xEC),#0xFF
     27: P2SS=0;

问题在于C:0x0000    02009C   LJMP     C:009C,此条跳转到位置不对,不能进入主程序,请大家帮忙看看是什么原因,谢谢
沙发
huwr| | 2015-8-18 21:26 | 只看该作者
不懂,帮顶吧

使用特权

评论回复
板凳
gongche|  楼主 | 2015-8-18 21:26 | 只看该作者
仿真器及软件误问题,同样环境下可以对SH79F168仿真采用的是KEIl UV3,现在班子上除了仿真器外,只连VCC,GND。RST用一个104电容对地,选择5V供电

使用特权

评论回复
地板
huanghuac| | 2015-8-18 21:26 | 只看该作者
代码呢

使用特权

评论回复
5
happy_10| | 2015-8-18 21:27 | 只看该作者
直接联系中颖FAE工程师

使用特权

评论回复
6
冰清玉洁| | 2015-8-18 21:27 | 只看该作者
我最近也遇到这个问题了 我的解决办法是自己强行跳到main

使用特权

评论回复
7
happy_10| | 2015-8-18 21:27 | 只看该作者
觉得这个不是中颖的问题 是keil的问题

使用特权

评论回复
8
冰清玉洁| | 2015-8-18 21:28 | 只看该作者
嗯,只是目前没有找到原因之所在 keil是判断几个code区数据清了几个ram 然后跳到main 如果有某个数据不为零 就跳不到main了

使用特权

评论回复
9
gongche|  楼主 | 2015-8-18 21:28 | 只看该作者

哦,我知道了

使用特权

评论回复
10
wuxing1106| | 2015-8-19 18:28 | 只看该作者
  上电RESET后,MCU会先运行一个startup文件,这是keil自带的,如果你的C代码中有需要初始化的变量,还要运行一个init文件,这个也是keil自带的,运行完这些之后,才会跳到你的main位置,开始执行你的程序。
  其实楼主没必要追究太详细,完全可以在main中的某个位置设置一个断点,运行看能不能在断点处停住,如果可以,那么程序就肯定运行到main里了呀

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

768

主题

9410

帖子

2

粉丝