天嵌 ARM开发社区

 找回密码
 注册
查看: 3487|回复: 5

ARM9汇编问题

[复制链接]
扫帚菜~~ 发表于 2013-3-26 10:53:55 | 显示全部楼层 |阅读模式
       AREA BlockData,DATA,READWRITE    ;定义数据段
DATA1  DCD 2,5,0,3,-4,5,0,10,9          ;数组DATA1
DATA2  DCD 3,5,4,-2,0,8,3,-10,5         ;数组DATA2
SUM    DCD 0,0,0,0,0,0,0,0,0            ;数组SUM

       AREA Ex4_46,CODE,READONLY        ;定义代码段
       ENTRY      
       CODE32
START  LDR R1,=DATA1            ;数组DATA1的首地址存入到R1
       LDR R2,=DATA2            ;数组DATA2的首地址存入到R2
       LDR R3,=SUM              ;数组SUM的首地址存入到R3
       MOV R0,#0                ;计数器R0的初始值置0
LOOP   LDR R4,[R1],#04          ;取DATA1数组的一个数,同时修改地址指针
       LDR R5,[R2],#04          ;取DATA1数组的一个数,同时修改地址指针
       ADDS R4,R4,R5            ;相加并影响标志位
       ADD R0,R0,#1             ;计数器加1
       STR R4,[R3],#04          ;保存结果到SUM中,同时修改地址指针
       BNE LOOP                 ;若相加的结果不为0则循环
       END
如上一段是ARM处理器的汇编,用的是keil 4 mdk+jlink+TQ2440。定义两个数组,当调试的时候,把DATA1的地址加载到r1寄存器中。显示r1 = 0x40000000 但在查看内存窗口中查看0x40000000地址的内存数据时却显示的不是定义的数据2,5,0,3,-4,5,0,10,9 ,而是别的数。DATA2数组也是一样。不知道怎么回事。
亚瑟王 发表于 2013-3-26 13:53:49 | 显示全部楼层
亲,程序是放到nand或是nor的?然后开机就执行的它?还是用uboot将其读到内存中的?
 楼主| 扫帚菜~~ 发表于 2013-3-26 17:39:08 | 显示全部楼层
亚瑟王 发表于 2013-3-26 13:53
亲,程序是放到nand或是nor的?然后开机就执行的它?还是用uboot将其读到内存中的?

启动方式选择开关在nand,不过我用的是jlink仿真调试的。
亚瑟王 发表于 2013-3-27 09:38:23 | 显示全部楼层
扫帚菜~~ 发表于 2013-3-26 17:39
启动方式选择开关在nand,不过我用的是jlink仿真调试的。

你的Nand里面有什么程序呢?
 楼主| 扫帚菜~~ 发表于 2013-3-29 18:56:47 | 显示全部楼层
亚瑟王 发表于 2013-3-27 09:38
你的Nand里面有什么程序呢?

现在我想知道是jlink是不是直接把程序下载到了内存当中运行了。
亚瑟王 发表于 2013-4-1 10:46:50 | 显示全部楼层
扫帚菜~~ 发表于 2013-3-29 18:56
现在我想知道是jlink是不是直接把程序下载到了内存当中运行了。

这样的,你说的那个地址的东西,如果是从Nor启动,就是Nor的内容,如果是从Nand启动就是Nand的内容。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-4-29 05:41 , Processed in 1.031250 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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