• arm:jlink调试和直接烧写运行的不同 [mdk s3c2440]


    1、对全局变量的初始化。

    2、还没发现的事例。

    /*************************************************/

    先上连接文件sct

    LR_ROM1 0x30000000 0x00010000  {    ; load region size_region
      ER_ROM1 0x30000000 0x00010000  {  ; load address = execution address
       *.o (RESET, +First)
       *(InRoot$$Sections)
       .ANY (+RO)
      }
      RW_RAM1 0x30010000 0x02000000  {  ; RW data
       .ANY (+RW +ZI)
      }
      RW_IRAM1 0x40000000 0x00001000  {
       .ANY (+RW +ZI)
      }
    }

    1、对全局变量的初始化 。

    本身MDK对已初始化的全局变量的初始化就不对。

    没法用。

    代码:

    int gr_a = 1 ;
    int gr_b ;
    int const gr_c = 11;
    static int gr_s = 22;
    void variable_test()
    {
        Uart_Printf( "int gr_a = 1 ; gr_a = %d
    ", gr_a);
        Uart_Printf( "int gr_b ; gr_b = %d
    ", gr_a);
        Uart_Printf( "int const gr_c; gr_c = %d
    ", gr_c);
        Uart_Printf( "static int gr_s; gr_s = %d
    ", gr_s);
        
        Uart_Printf( "&gr_a = %08x
    ", &gr_a);
        Uart_Printf( "&gr_b = %08x
    ", &gr_b);
        Uart_Printf( "&gr_c = %08x
    ", &gr_c);
        Uart_Printf( "&gr_s = %08x
    ", &gr_s);
    }

    jlink运行时现象:没有将代码中已初始化的变量正确地赋值。

    int gr_a = 1 ; gr_a = 0
    int gr_b ; gr_b = 0
    int const gr_c; gr_c = 11
    static int gr_s; gr_s = 0
    &gr_a = 30010038
    &gr_b = 30010064
    &gr_c = 30009244 //.ro
    &gr_s = 3001003c

    烧写运行时现象:代码中未初始化、已初始化的全局和静态变量都被设为 ~0 .

    int gr_a = 1 ; gr_a = -1  
    int gr_b ; gr_b = -1        ;init.s的代码中有对bss段清零的操作,在汇编代码中用led调试发现,我的clear bss的代码是已经运行了的。 猜测全局变量完全被编译器玩坏了。
    int const gr_c; gr_c = 11
    static int gr_s; gr_s = -1 
    &gr_a = 30010038
    &gr_b = 30010064
    &gr_c = 30009244
    &gr_s = 3001003c
  • 相关阅读:
    安装包报错2503解决方法
    js中return;、return true、return false;区别
    图片添加border 不占用图片的大小
    效果网址http://sc.chinaz.com/tag_jiaoben/tupianlunbo.html
    兼容ie8 rgba()用法
    html使用css让文字多行超出部分用省略号三个点显示的方法案例
    MyCat02--MyCat入门无ZK实践
    MyCat01--基础
    MySQL/MariaDB导入(load data infile)导出(select into outfile)
    MariaDB/Mysql临时表
  • 原文地址:https://www.cnblogs.com/mylinux/p/4192158.html
Copyright © 2020-2023  润新知