techwell 发表于 2012-5-30 16:46:53

Cortex-M3神奇的指令STRB啊,有图有真相!

Cortex-M3神奇的指令STRB啊,有图有真相!
请看本贴附件

techwell 发表于 2012-5-30 16:50:47

RE:Cortex-M3神奇的指令STRB啊,有图有真相!

这一条寄存器到存储器的字节传送指令:STRB,它能一次传送128字???
神奇吧???
哪位高手能解释一下?

techwell 发表于 2012-5-30 16:54:59

RE:Cortex-M3神奇的指令STRB啊,有图有真相!

我这是在调试CanFestival的CanOpen源码,在此之前,我曾在M16C290单片机上,成功地运行了CanFestival,现在是想让它在STM32上运行,不小心发现了STM32的神奇之STRB指令....

techwell 发表于 2012-5-30 16:57:14

要是无解的话,我下边的活儿,干不下去了...

要是无解的话,我下边的活儿,干不下去了...

阿呆 发表于 2012-5-30 17:25:21

回复:Cortex-M3神奇的指令STRB啊,有图有真相!

这是一条神奇的指令!安大快来看看吧!:L

发表于 2012-5-30 17:36:49

RE:Cortex-M3神奇的指令STRB啊,有图有真相!

你可以去看看M3的指令集。

techwell 发表于 2012-5-30 23:34:27

STRB指令

关于STRB指令的功能,原本是简单明了的:就是把某寄存器中的一个字节,复制到指定的存储器(RAM)中去,它有多种寻址方式。
可是,我执行它一次,它居然修改了我128字长的数组呢?回报率太高了点呀:o
   晕人啊!
严正声明一下,对于单片机,我不早就不算新手了。也不是第一次用STM32。可是....
对了,会不会是J-LINK的问题呢?

techwell 发表于 2012-5-31 11:28:18

我改用ST-LINK仿真器,试了一下,错误依旧啊!

我改用ST-LINK仿真器,试了一下,错误依旧啊!
   那么,可能是KEIL犯浑?

techwell 发表于 2012-5-31 11:35:02

这是我在用的KEIL版本信息

这是我正在用的KEIL版本信息:
Tool Version Numbers:
Toolchain:      MDK-ARM StandardVersion: 4.21
Toolchain Path:    BIN40\
C Compiler:         Armcc.Exe       V4.1.0.713
Assembler:          Armasm.Exe       V4.1.0.713
Linker/Locator:   ArmLink.Exe       V4.1.0.713
Librarian:             ArmAr.Exe       V4.1.0.713
Hex Converter:      FromElf.Exe       V4.1.0.713
CPU DLL:               SARMCM3.DLL       V4.21
Dialog DLL:         DARMSTM.DLL       V1.62
Target DLL:             STLink\ST-LINKIII-KEIL.dll       V1.5.6
Dialog DLL:         TARMSTM.DLL       V1.60

techwell 发表于 2012-5-31 14:07:14

有解啦!

下载了MDK450版本,用Keil_Lic.exe和谐了一下。和谐时选其它的版本不成功(编译时报错说不能生成xxx文件),只能用256kb限制的Lite版本!!!
   编译OK!
   选择J-LINK仿真器时,MDK450更新了J-LINK固件(过程很快,没看清就过去了);
Debug,运行到那条STRB,激动人心的时刻到了:只有数组的第0个元素被修改成我想要的结果!
我得到了我要的结果,但是我不知道MDK是如何解决这个问题的(也可能是J-LINK引起的),不过,这显然不是我的错:P:P:P
页: [1] 2
查看完整版本: Cortex-M3神奇的指令STRB啊,有图有真相!