OpenEdv-开源电子网

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

cortex-m3 thumb2指令str咨询

[复制链接]

3

主题

7

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2015-9-20
在线时间
0 小时
发表于 2015-10-23 00:13:06 | 显示全部楼层 |阅读模式
5金钱
各位前辈求指点:
小弟用keil mdk写了以下汇编代码,意在验证str指令的功能:
    AREA RESET , CODE, READWRITE, ALIGN=3
STACK_VALUE EQU 0x20008000
    DCD STACK_VALUE
    DCD start

    ENTRY

start
    mov r0,#0x10000000
    mov r1,#0x5555
    str r1,[r0,#0]
    ldr r2,[r0,#0]

loop
    B loop
    nop
table
    dcd 0x0,0x33334444,0x55556666
END

可为何执行后,r2读取到的值并非0x5555呢? 我尝试了给r0赋了很多值,发现在code区(0x00000000~0x1FFFFFFF)内 r2都读取不到0x5555,当给r0赋超过0x20000000的值,最后r2的值均为0x5555;
各位大虾谁能帮忙解惑呀?

最佳答案

查看完整内容[请看2#楼]

回复【3楼】散落的沙: --------------------------------- flash操作需要解锁,擦除,写入,加锁四步,你这一个指令只是执行了写入指令,你说呢?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

400

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1750
金钱
1750
注册时间
2015-6-11
在线时间
309 小时
发表于 2015-10-23 00:13:07 | 显示全部楼层
回复【3楼】散落的沙:
---------------------------------
flash操作需要解锁,擦除,写入,加锁四步,你这一个指令只是执行了写入指令,你说呢?
回复

使用道具 举报

3

主题

197

帖子

0

精华

高级会员

Rank: 4

积分
538
金钱
538
注册时间
2012-7-19
在线时间
63 小时
发表于 2015-10-23 07:32:47 | 显示全部楼层
code区是flash吧,flash能够直接str就写入吗,没给你报错就已经不错了,应该直接hardfault伺候
回复

使用道具 举报

3

主题

7

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2015-9-20
在线时间
0 小时
 楼主| 发表于 2015-10-23 08:45:51 | 显示全部楼层
回复【2楼】myxiaoniao:
---------------------------------
属性我设置为 READWRITE了,这样也不行吗?
为何指令str rd, [rn,#offset] 中只说明 [rn,#offset]是存储区,并没有说code不行?
回复

使用道具 举报

3

主题

7

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2015-9-20
在线时间
0 小时
 楼主| 发表于 2015-10-23 10:07:25 | 显示全部楼层
回复【4楼】zc123:
---------------------------------
了解了,小弟初学,谢谢指点!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-25 12:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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