C代码获取M内核寄存器数值方法
比如获R4寄存器__STATIC_INLINE uint32_t __get_R4(void)
{
register uint32_t __regR4 __ASM("r4");
return(__regR4);
}
少个等号?这样__regR4 = __ASM("r4");??? 木兰花 发表于 2021-10-24 20:53
少个等号?这样__regR4 = __ASM("r4");???
没有少,就是这样的定义的。 eric2013 发表于 2021-10-25 02:17
没有少,就是这样的定义的。
这是什么语法,看不懂啊 木兰花 发表于 2021-10-25 12:38
这是什么语法,看不懂啊
MDK里面带的方式,我也是照葫芦画瓢搞了个,测试可用 您好,请问是将代码放到哪里,我就把代码单独拎主函数好多报错点 然后在core_cm3.h中找到了类似的函数 把给的代码放进去 进行声明 依然报错 火车跑步机 发表于 2022-7-26 12:04
您好,请问是将代码放到哪里,我就把代码单独拎主函数好多报错点 然后在core_cm3.h中找到了类似的函数 把给 ...
升级你的CMSIS软件包到最新的5.9.0就可以了。 eric2013 发表于 2022-7-26 12:55
升级你的CMSIS软件包到最新的5.9.0就可以了。
您好 报错解决了 好像是把那个__STATIC换成小写就行 还想问下大佬,这个是读取出R4寄存器的值而不是地址
The ASM command displays or sets the current assembly address, or assembles an instruction.
ASM 命令显示或设置当前汇编地址,或汇编一条指令。
这两句话是在keil的heip 里面搜索 ASM找到的 火车跑步机 发表于 2022-7-27 09:41
您好 报错解决了 好像是把那个__STATIC换成小写就行 还想问下大佬,这个是读取出R4寄存器的值而不是地址
...
1、新版CMSIS已经有__STATIC定义了。
2、R寄存器不在内存映射地址上,他是独立的控制单元。 eric2013 发表于 2022-7-27 10:15
1、新版CMSIS已经有__STATIC定义了。
2、R寄存器不在内存映射地址上,他是独立的控制单元。
明白了,那请问操作R寄存器是不是只能用汇编语言来操作 火车跑步机 发表于 2022-7-27 14:16
明白了,那请问操作R寄存器是不是只能用汇编语言来操作
楼主位的不就是C方式。 eric2013 发表于 2022-7-29 09:12
楼主位的不就是C方式。
那请问对R寄存器写操作是使用汇编吗
页:
[1]