OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4345|回复: 9

求助:用keil调试,c语言能转化成汇编,但是没有按c语言的执行顺序编译(就是顺序颠倒了),这是什么原因?

[复制链接]

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2015-10-24
在线时间
1 小时
发表于 2015-10-26 16:12:20 | 显示全部楼层 |阅读模式
5金钱
 就是比如调式下面的程序
led_Init();
while(1)
{

// PEBSRR(6)=1;
// delay_ms(2000);
PEBSRR(22)=1;
delay_ms(2000);
}调式的时候,sys_init()的汇编在其他语句的下面,gpio_init()的汇编语句在.s启动文件的下面并在sys_init()和while()的上面,调式是从sys_inti()开始执行,但是执行完sys_init()函数,就跳不到gpio_init()函数了,停在sys_init()函数的“}”哪里,动不了。 




等级: NO
注册时间:2015/10/24 11:10 
回复数: 3 
主题数: 3
论坛积分:11
在线 
    

int main(void) 

//宏定义位带操作 
led_Init(); 
sys_Init(); 
while(1) 

// PEBSRR(6)=1; 
// delay_ms(2000);
PEBSRR(22)=1;
delay_ms(2000);


void sys_Init(void) 
{
//宏定义位带操作 
RCC_CR(24) = 0;    //??PLL?? 
RCC_CR(16) = 1; //??HSE??? 
while( ! (RCC_CR(17) == 1) ); 
RCC_CFGR(17) = 0; //PLLXTPRE?0   HSE???  1  HSE2?? 
RCC_CFGR(16) = 1; //HSE????PLL???? 
RCC_CFGR(18) = 1; 
RCC_CFGR(19) = 1; 
RCC_CFGR(20) = 1; 
RCC_CFGR(21) = 0; //PLL9???? 
RCC_CFGR(4) = 0; 
RCC_CFGR(5) = 0; 
RCC_CFGR(6) = 0; 
RCC_CFGR(7) = 0; // 
RCC_CFGR(11) = 0; 
RCC_CFGR(12) = 0; 
RCC_CFGR(13) = 0; 
RCC_CR(19) = 1; //CSSON ?????????? 
RCC_CR(24) = 1; 
while( ! (RCC_CR(25) == 1) ); 
RCC_CFGR(0) = 0; 
RCC_CFGR(1) = 1; //???????LL???????? 

//??? 
void led_Init(void) 

//宏定义位带操作 
RCC_APB2ENR(6) = 1; 
PECRL(25) = 1; 
PECRL(24) = 1; 
PECRL(26) = 0; 
PECRL(27) = 0; 

    10:         RCC_APB2ENR(6) = 1;  
    11:           
    12: //      GPIOE_CRL = (uint32_t *)GPIOE_CRL_Addr;  
    13: //      *GPIOE_CRL  = 0x33333333;  
    14: //        
    15: //      GPIOE_ODR = (uint32_t *)GPIOE_ODR_Addr;  
    16: //      *GPIOE_ODR = 0x00ff;  
    17:           
0x0800026C FFFFFFFF  DCD      0xFFFFFFFF 
0x08000270 FFFFFFFF  DCD      0xFFFFFFFF 
0x08000274 FFFFFFFF  DCD      0xFFFFFFFF 
    21:         ECRL(26) = 0;  
0x08000278 FFFFFFFF  DCD      0xFFFFFFFF 
    22:         ECRL(27) = 0;  
    23:                   
    24:           
0x0800027C FFFFFFFF  DCD      0xFFFFFFFF 
0x08000280 FFFF      DCW      0xFFFF 
0x08000282 FFFF      DCW      0xFFFF 
0x08000284 FFFF      DCW      0xFFFF 
0x08000286 FFFF      DCW      0xFFFF 
     6:         led_Init();  
0x08000288 FFFFFFFF  DCD      0xFFFFFFFF 
     7:         sys_Init();  
     8:           
0x0800028C FFFFFFFF  DCD      0xFFFFFFFF 
     9:         while(1)  
    10:         {  
    11: //            EBSRR(6)=1;  
    12: //            delay_ms(2000);         
0x08000290 FFFFFFFF  DCD      0xFFFFFFFF 
0x08000294 FFFFFFFF  DCD      0xFFFFFFFF 
    14:                 delay_ms(2000);   
0x08000298 FFFFFFFF  DCD      0xFFFFFFFF 
0x0800029C FFFFFFFF  DCD      0xFFFFFFFF 
0x080002A0 FFFFFFFF  DCD      0xFFFFFFFF 
0x080002A2 FFFF      DCW      0xFFFF 
0x080002A4 FFFF      DCW      0xFFFF 
0x080002A6 FFFF      DCW      0xFFFF 
    17:         RCC_CR(24) = 0;         //??PLL??  
    18:           
0x080002A8 FFFFFFFF  DCD      0xFFFFFFFF 
0x080002AC FFFFFFFF  DCD      0xFFFFFFFF 
0x080002B0 FFFFFFFF  DCD      0xFFFFFFFF 
0x080002B4 FFFFFFFF  DCD      0xFFFFFFFF 
0x080002B8 FFFFFFFF  DCD      0xFFFFFFFF 
    23:         RCC_CFGR(17) = 0;       //PLLXTPRE?0   HSE???  1  HSE2??  
    24:           
0x080002BC FFFFFFFF  DCD      0xFFFFFFFF 
0x080002C0 FFFFFFFF  DCD      0xFFFFFFFF 
    25:         RCC_CFGR(16) = 1;       //HSE????PLL????  
    26:           
0x080002C4 FFFFFFFF  DCD      0xFFFFFFFF 
0x080002C8 FFFFFFFF  DCD      0xFFFFFFFF 
    27:         RCC_CFGR(18) = 1;  
0x080002CC FFFFFFFF  DCD      0xFFFFFFFF 
0x080002D0 FFFFFFFF  DCD      0xFFFFFFFF 
0x080002D4 FFFFFFFF  DCD      0xFFFFFFFF 
0x080002D8 FFFFFFFF  DCD      0xFFFFFFFF 
0x080002DC FFFFFFFF  DCD      0xFFFFFFFF 
    32:         RCC_CFGR(4) = 0;  
0x080002E0 FFFFFFFF  DCD      0xFFFFFFFF 
0x080002E4 FFFFFFFF  DCD      0xFFFFFFFF 
0x080002E8 FFFFFFFF  DCD      0xFFFFFFFF 
0x080002EC FFFFFFFF  DCD      0xFFFFFFFF 
0x080002F0 FFFFFFFF  DCD      0xFFFFFFFF 
0x080002F4 FFFFFFFF  DCD      0xFFFFFFFF 
    38:         RCC_CFGR(12) = 0;  
0x080002F8 FFFFFFFF  DCD      0xFFFFFFFF 
    39:         RCC_CFGR(13) = 0;  
    40:           
0x080002FC FFFFFFFF  DCD      0xFFFFFFFF 
    41:         RCC_CR(19) = 1; //CSSON ??????????  
    42:           
0x08000300 FFFFFFFF  DCD      0xFFFFFFFF 
0x08000304 FFFFFFFF  DCD      0xFFFFFFFF 
    47:         RCC_CFGR(0) = 0;  
0x08000308 FFFFFFFF  DCD      0xFFFFFFFF 
0x0800030C FFFFFFFF  DCD      0xFFFFFFFF 
    48:         RCC_CFGR(1) = 1;        //???????LL????????  
    49:           
    50:           
    51:           
    52:                   
    53:

sysTick.zip

78.9 KB, 下载次数: 100

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

239

帖子

0

精华

高级会员

Rank: 4

积分
545
金钱
545
注册时间
2015-6-5
在线时间
110 小时
发表于 2015-10-26 16:59:48 | 显示全部楼层
講中文哀

不然把整段都貼上來
回复

使用道具 举报

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2015-10-24
在线时间
1 小时
 楼主| 发表于 2015-10-26 19:06:43 | 显示全部楼层
int main(void)
{
//宏定义位带操作
led_Init();
sys_Init();

while(1)
{
// PEBSRR(6)=1;
// delay_ms(2000);
PEBSRR(22)=1;
delay_ms(2000);

}

}
void sys_Init(void)
{
//宏定义位带操作
RCC_CR(24) = 0;    //??PLL??

RCC_CR(16) = 1; //??HSE???

while( ! (RCC_CR(17) == 1) );

RCC_CFGR(17) = 0; //PLLXTPRE?0   HSE???  1  HSE2??

RCC_CFGR(16) = 1; //HSE????PLL????

RCC_CFGR(18) = 1;
RCC_CFGR(19) = 1;
RCC_CFGR(20) = 1;
RCC_CFGR(21) = 0; //PLL9????

RCC_CFGR(4) = 0;
RCC_CFGR(5) = 0;
RCC_CFGR(6) = 0;
RCC_CFGR(7) = 0; //

RCC_CFGR(11) = 0;
RCC_CFGR(12) = 0;
RCC_CFGR(13) = 0;

RCC_CR(19) = 1; //CSSON ??????????

RCC_CR(24) = 1;

while( ! (RCC_CR(25) == 1) );

RCC_CFGR(0) = 0;
RCC_CFGR(1) = 1; //???????LL????????
}
//???
void led_Init(void)
{
//宏定义位带操作
RCC_APB2ENR(6) = 1;

PECRL(25) = 1;
PECRL(24) = 1;

PECRL(26) = 0;
PECRL(27) = 0;

}

    10:         RCC_APB2ENR(6) = 1; 
    11:          
    12: //      GPIOE_CRL = (uint32_t *)GPIOE_CRL_Addr; 
    13: //      *GPIOE_CRL  = 0x33333333; 
    14: //       
    15: //      GPIOE_ODR = (uint32_t *)GPIOE_ODR_Addr; 
    16: //      *GPIOE_ODR = 0x00ff; 
    17:          
0x0800026C FFFFFFFF  DCD      0xFFFFFFFF
0x08000270 FFFFFFFF  DCD      0xFFFFFFFF
0x08000274 FFFFFFFF  DCD      0xFFFFFFFF
    21:         ECRL(26) = 0; 
0x08000278 FFFFFFFF  DCD      0xFFFFFFFF
    22:         ECRL(27) = 0; 
    23:                  
    24:          
0x0800027C FFFFFFFF  DCD      0xFFFFFFFF
0x08000280 FFFF      DCW      0xFFFF
0x08000282 FFFF      DCW      0xFFFF
0x08000284 FFFF      DCW      0xFFFF
0x08000286 FFFF      DCW      0xFFFF
     6:         led_Init(); 
0x08000288 FFFFFFFF  DCD      0xFFFFFFFF
     7:         sys_Init(); 
     8:          
0x0800028C FFFFFFFF  DCD      0xFFFFFFFF
     9:         while(1) 
    10:         { 
    11: //            EBSRR(6)=1; 
    12: //            delay_ms(2000);        
0x08000290 FFFFFFFF  DCD      0xFFFFFFFF
0x08000294 FFFFFFFF  DCD      0xFFFFFFFF
    14:                 delay_ms(2000);  
0x08000298 FFFFFFFF  DCD      0xFFFFFFFF
0x0800029C FFFFFFFF  DCD      0xFFFFFFFF
0x080002A0 FFFFFFFF  DCD      0xFFFFFFFF
0x080002A2 FFFF      DCW      0xFFFF
0x080002A4 FFFF      DCW      0xFFFF
0x080002A6 FFFF      DCW      0xFFFF
    17:         RCC_CR(24) = 0;         //??PLL?? 
    18:          
0x080002A8 FFFFFFFF  DCD      0xFFFFFFFF
0x080002AC FFFFFFFF  DCD      0xFFFFFFFF
0x080002B0 FFFFFFFF  DCD      0xFFFFFFFF
0x080002B4 FFFFFFFF  DCD      0xFFFFFFFF
0x080002B8 FFFFFFFF  DCD      0xFFFFFFFF
    23:         RCC_CFGR(17) = 0;       //PLLXTPRE?0   HSE???  1  HSE2?? 
    24:          
0x080002BC FFFFFFFF  DCD      0xFFFFFFFF
0x080002C0 FFFFFFFF  DCD      0xFFFFFFFF
    25:         RCC_CFGR(16) = 1;       //HSE????PLL???? 
    26:          
0x080002C4 FFFFFFFF  DCD      0xFFFFFFFF
0x080002C8 FFFFFFFF  DCD      0xFFFFFFFF
    27:         RCC_CFGR(18) = 1; 
0x080002CC FFFFFFFF  DCD      0xFFFFFFFF
0x080002D0 FFFFFFFF  DCD      0xFFFFFFFF
0x080002D4 FFFFFFFF  DCD      0xFFFFFFFF
0x080002D8 FFFFFFFF  DCD      0xFFFFFFFF
0x080002DC FFFFFFFF  DCD      0xFFFFFFFF
    32:         RCC_CFGR(4) = 0; 
0x080002E0 FFFFFFFF  DCD      0xFFFFFFFF
0x080002E4 FFFFFFFF  DCD      0xFFFFFFFF
0x080002E8 FFFFFFFF  DCD      0xFFFFFFFF
0x080002EC FFFFFFFF  DCD      0xFFFFFFFF
0x080002F0 FFFFFFFF  DCD      0xFFFFFFFF
0x080002F4 FFFFFFFF  DCD      0xFFFFFFFF
    38:         RCC_CFGR(12) = 0; 
0x080002F8 FFFFFFFF  DCD      0xFFFFFFFF
    39:         RCC_CFGR(13) = 0; 
    40:          
0x080002FC FFFFFFFF  DCD      0xFFFFFFFF
    41:         RCC_CR(19) = 1; //CSSON ?????????? 
    42:          
0x08000300 FFFFFFFF  DCD      0xFFFFFFFF
0x08000304 FFFFFFFF  DCD      0xFFFFFFFF
    47:         RCC_CFGR(0) = 0; 
0x08000308 FFFFFFFF  DCD      0xFFFFFFFF
0x0800030C FFFFFFFF  DCD      0xFFFFFFFF
    48:         RCC_CFGR(1) = 1;        //???????LL???????? 
    49:          
    50:          
    51:          
    52:                  
    53:
回复

使用道具 举报

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2015-10-24
在线时间
1 小时
 楼主| 发表于 2015-10-26 19:11:20 | 显示全部楼层
反正现在就是在执行完sys_Init()函数就没有然后了
回复

使用道具 举报

30

主题

705

帖子

1

精华

新手上路

积分
21
金钱
21
注册时间
2013-3-14
在线时间
52 小时
发表于 2015-10-27 09:17:27 | 显示全部楼层
你现在贴出来的东西,没有用,找不到问题的。这个"sys_Init();"里面的内容贴出来看下。要不整个工程打包传上来。
原子哥是不是又要出黑科技了呀。^_^...
回复

使用道具 举报

11

主题

1044

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3722
金钱
3722
注册时间
2011-5-23
在线时间
2013 小时
发表于 2015-10-27 09:33:38 | 显示全部楼层
贴这么乱,谁帮你看。
RT-Thread RTOS 音频,WIFI,蓝牙
回复

使用道具 举报

2

主题

239

帖子

0

精华

高级会员

Rank: 4

积分
545
金钱
545
注册时间
2015-6-5
在线时间
110 小时
发表于 2015-10-27 10:55:11 | 显示全部楼层
優化等級開到多少阿
sys_Init();之後你唯一有做的事情
就是改變一隻腳
然後DELAY

可能被優化掉了

更重要的
gpio_init()
你根本沒寫進去主函數
回复

使用道具 举报

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2015-10-24
在线时间
1 小时
 楼主| 发表于 2015-10-27 14:30:01 | 显示全部楼层
回复【5楼】fanghuiopenedv:
---------------------------------
已经上传,之前不知道还可以上传文件的,所以。。。
回复

使用道具 举报

30

主题

705

帖子

1

精华

新手上路

积分
21
金钱
21
注册时间
2013-3-14
在线时间
52 小时
发表于 2015-10-28 09:11:42 | 显示全部楼层
回复【8楼】白痴儿:
---------------------------------
你还是看下原子哥的例程吧。你这错的太多,太离谱了都。
原子哥是不是又要出黑科技了呀。^_^...
回复

使用道具 举报

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2015-10-24
在线时间
1 小时
 楼主| 发表于 2015-10-28 21:48:01 | 显示全部楼层
我把最后三条语句频闭掉就没发生上面那种情况,不知道什么原因

 void sys_Init(void)
{


RCC_CR(16) = 1;

while( ! (RCC_CR(17) == 1) );


RCC_CR(24) = 0;   


RCC_CFGR(17) = 0;

RCC_CFGR(16) = 1;

RCC_CFGR(18) = 1;
RCC_CFGR(19) = 1;
RCC_CFGR(20) = 1;
RCC_CFGR(21) = 0;

RCC_CFGR(4) = 0;
RCC_CFGR(5) = 0;
RCC_CFGR(6) = 0;
RCC_CFGR(7) = 0; //

RCC_CFGR(11) = 0;
RCC_CFGR(12) = 0;
RCC_CFGR(13) = 0;

RCC_CR(19) = 1;

RCC_CR(24) = 1;

while( ! (RCC_CR(25) == 1) );

// RCC_CFGR(0) = 0;
// RCC_CFGR(1) = 1;

// while((RCC_CR(3) != 1));

}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-19 06:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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