[ARM入门] 有个问题,我对arm-m0核心的soc进行编程的时候

[复制链接]
1594|2
 楼主| gogosese 发表于 2014-4-12 22:27 | 显示全部楼层 |阅读模式
我现在用的是汇编语言,1.他内部的的寄存器r0~r12,sp等是不是不需要初始化操作,直接赋值,或者读取某地址的值就可以了?
                      2. 高位寄存器 和  低位寄存器 对于我来说 是不是 完全没有区别?
                      3. 内存分配问题,我用汇编的话,是不是只要指定ram的地址就可以了,不需要考虑内存分配的问题?其实我这一块所知甚少,内存分配                               什么时候才需要考虑?
    谢谢大家了
airwill 发表于 2014-4-14 16:37 | 显示全部楼层
1. sp 是需要初始化的. 一般复位后系统就已经初始化. 其他任意使用(不考虑和 C 混合编程). 中断中 R0-R3, R12不用压栈保护. 可以考虑尽量优先使用 这些寄存器.
2. 高位寄存器 和  低位寄存器 支持的指令是不同的, 得留意.
3. 看具体应用确定.
其实 ARM-CM0 很适合 C 编程, 建议还是学习 C 吧.
lr2131 发表于 2014-4-15 10:32 | 显示全部楼层
1.SP当然需要初始化,不初始化的话,你用到栈指令,那结果是不可预料的。其他的不知道,看情况和需要吧。建议看看ATPCS和APCS。
2.高低位寄存器当然有区别,有的指令只能操作低位,有的是高地位都可以,有区别的。
3.内存分配的话,不是完全靠汇编代码的。汇编代码指定了标记,然后可以在分散加载脚本中指定标记具体的地址,或者简单点就直接在IDE中设置相关的域地址。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

96

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部