51单片机编程和arm裸机编程有什么差别?

有一个疑惑的地方,为什么直接用c语言写个main函数就可以控制51,而不需要先用汇编初始化硬件,比如设置好堆栈之类的?arm都要先做这些事情... 有一个疑惑的地方,为什么直接用c语言写个main函数就可以控制51,而不需要先用汇编初始化硬件,比如设置好堆栈之类的?arm都要先做这些事情 展开
 我来答
linnjing
2013-12-01 · TA获得超过2632个赞
知道大有可为答主
回答量:1230
采纳率:91%
帮助的人:518万
展开全部

arm也可以直接祼跑,这是没问题的,比如写一段代码实现一个端口上的led闪烁,但要注意这样几件事情,

  1. 启动代码的映射

  2. 堆栈初始化

  3. 时钟初始化

这几件事,有的芯片需要做,有的不需要,但你应该保证这些事情都是确定的,如果写C代码,一般在启动代码中都做好了,所以你不需要管,要用汇编,那就要你管了。

另外,端口输出也不像51,简单的写0就完了,可能要配置端口方向,打开端口的工作时钟。。。


结论,ARM本质上也是一块芯片,直接用汇编当然可以用,但它比51的功能多太多了,或者说相对于51,它太复杂了,用汇编太容易出错,还是用C的好些。

百度网友3e02a75
推荐于2017-12-16 · 超过12用户采纳过TA的回答
知道答主
回答量:29
采纳率:0%
帮助的人:15.5万
展开全部
其实51和arm是一样的东西,都是单片机,只不过arm是51的升级,比51更高级一些而已,“c语言写个main函数就可以控制51”是因为在建工程的时候调入了模板,对于片内外设最好在main函数的开始初始化一下(51和arm都要),如果没有初始化,可能是没有用这些片内外设,或者程序写的比较简单,堆栈在模板中都有设置(51和arm都是),所以如果没有特殊需要不用设置。
追问
哦哦,明白了。谢谢你啦!(^_^)
哦哦,明白了。谢谢你啦!(^_^)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式