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 =  ;
int gr_b ;
int const gr_c = ;
static int gr_s = ;
void variable_test()
{
Uart_Printf( "int gr_a = 1 ; gr_a = %d\n", gr_a);
Uart_Printf( "int gr_b ; gr_b = %d\n", gr_a);
Uart_Printf( "int const gr_c; gr_c = %d\n", gr_c);
Uart_Printf( "static int gr_s; gr_s = %d\n", gr_s); Uart_Printf( "&gr_a = %08x\n", &gr_a);
Uart_Printf( "&gr_b = %08x\n", &gr_b);
Uart_Printf( "&gr_c = %08x\n", &gr_c);
Uart_Printf( "&gr_s = %08x\n", &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

arm:jlink调试和直接烧写运行的不同 [mdk s3c2440]的更多相关文章

  1. Jlink使用技巧之烧写SPI Flash存储芯片

    前言 大多数玩单片机的人都知道Jlink可以烧写Hex文件,作为ARM仿真调试器,但是知道能烧写SPI Flash的人应该不多,本篇文章将介绍如何使用JLink来烧写或者读取SPI Flash存储器, ...

  2. Ubuntu13.04使用Jlink和ST-Link V2烧写STM32F1x和STM32F4x

    近期做研究openpilot和crazyflie2.0,都须要在Linux进行代码的编写和烧录,所以研究了下Linux下如何使用Jlink,还有开源的支持多个仿真器的openocd,可是困难重重.总是 ...

  3. 用jlink在mini2440上烧写uboot

    首先,附上我安装jlink驱动: http://download.csdn.net/detail/zzmno1/3776716#comment 以及我使用的uboot.bin文件下载地址: http: ...

  4. arm上电死机怎么烧写boot

    一般上电到死机还有一段时间,在这段时间完成,已经出现两次了.

  5. 使用JLink间接烧写S3C2410、S3C2440开发板Nor、Nand Flash的方法

    1. 简要说明 JLink的调试功能.烧写Flash的功能都很强大,但是对于S3C2410.S3C2440的Flash操作有些麻烦:烧写Nor Flash时需要设置SDRAM,否则速率很慢:烧写Nan ...

  6. JLINK烧写BIN文件到nand、norflash、SDRAM

    1. 简要说明 JLink的调试功能.烧写Flash的功能都很强大,但是对于S3C2410.S3C2440的Flash操作有些麻烦:烧写Nor Flash时需要设置SDRAM,否则速率很慢:烧写Nan ...

  7. Jlink使用技巧之合并烧写文件

    前言 IAP(In-application-programming),即在应用中编程.当产品发布之后,可以通过网络方便的升级固件程序,而不需要拆机下载程序.IAP系统的固件一般由两部分组成,即Boot ...

  8. JLink间接烧写【转自armobbs】

    1. 简要说明 JLink的调试功能.烧写Flash的功能都很强大,但是对于S3C2410.S3C2440的Flash操作有些麻烦:烧写Nor Flash时需要设置SDRAM,否则速率很慢:烧写Nan ...

  9. GD32电压不足时烧写程序导致程序运行异常的解决方法

    一直使用的GD32F450前段时间遇到这样一个问题,当使用J-Link供电给板子烧写程序之后,程序运行缓慢,就像运行在FLASH高速部分之外一样,但是如果使用外部供电烧写,就不会出现这个问题,而且一旦 ...

随机推荐

  1. apache添加fastcgi支持

    A,安装apache服务器和fastcgi模块支持(ubuntu测试) sudo apt-get install apache2 sudo apt-get install libapache2-mod ...

  2. 指尖上的电商---(2)Solr全文搜索引擎的准备工作

    Solr是一个基于Lucene的全文搜索引擎.提供了更丰富的搜索语言.更灵活的配置.更高的查询效率. 一句话.与Lucene相比.有过之而无不及.这一节里, 主要谈论两个知识点:Jdk的安装和Tomc ...

  3. #, about:blank,javascript:路径比较

    试了一下在<a>,<img>,<iframe>中用#,about:blank和javascript: 代码如下: <!Doctype html> < ...

  4. 用反射写自己的DataTable转为对应的Mod

    之前写过类似的方法,今天做项目的时候又遇到了,以前的代码没有保存,导致又得重新写 场景:当我们定义自己的很多模型(Mods)的时候,而数据库读取出来的却是DataSet,DataTable类型的时候, ...

  5. mac下面xcode+ndk7配置cocos2dx & box2d的跨ios和android平台的游戏教程

    这篇教程是介绍如何使用cocos2d-x和box2d来制作一个demo,且此demo能同时运行于ios和android平台.在继续阅读之前,建议您先阅读上一篇教程. 首先,按照上一篇教程,搭建好mac ...

  6. oracle 开发笔记“跨数据库查询复制”

    1.方法一:创建DBL(data base link) CREATE PUBLIC DATABASE LINK 数据链名称 CONNECT TO 登陆用户名 IDENTIFIED BY 密码 USIN ...

  7. JS 获取星期几的四种写法

    今天是星期几的4种JS代码写法,有需要的朋友可以参考一下 第一种写法 复制代码代码如下: var str = "";  var week = new Date().getDay() ...

  8. python中的字符串和数字连接

    1. 将数字强制转换成字符串 i = 1000 str1 = "hello" print str1 + str(i) 2. 格式化成字符串 i = 1000 str1 = &quo ...

  9. android获取系统wifi状态等

    WIFI 获取WIFI状态 WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE); ...

  10. python 中 json的处理

    python中的json对象,其实就是字典类型. 利用json模块,可以将字符串类型的json串转换为 json对象(字典对象),也可以将json对象(字典对象)转换为字符串对象. 代码如: #cod ...