51单片机编程和arm裸机编程有什么差别?
有一个疑惑的地方,为什么直接用c语言写个main函数就可以控制51,而不需要先用汇编初始化硬件,比如设置好堆栈之类的?arm都要先做这些事情...
有一个疑惑的地方,为什么直接用c语言写个main函数就可以控制51,而不需要先用汇编初始化硬件,比如设置好堆栈之类的?arm都要先做这些事情
展开
2个回答
展开全部
arm也可以直接祼跑,这是没问题的,比如写一段代码实现一个端口上的led闪烁,但要注意这样几件事情,
启动代码的映射
堆栈初始化
时钟初始化
这几件事,有的芯片需要做,有的不需要,但你应该保证这些事情都是确定的,如果写C代码,一般在启动代码中都做好了,所以你不需要管,要用汇编,那就要你管了。
另外,端口输出也不像51,简单的写0就完了,可能要配置端口方向,打开端口的工作时钟。。。
结论,ARM本质上也是一块芯片,直接用汇编当然可以用,但它比51的功能多太多了,或者说相对于51,它太复杂了,用汇编太容易出错,还是用C的好些。
展开全部
其实51和arm是一样的东西,都是单片机,只不过arm是51的升级,比51更高级一些而已,“c语言写个main函数就可以控制51”是因为在建工程的时候调入了模板,对于片内外设最好在main函数的开始初始化一下(51和arm都要),如果没有初始化,可能是没有用这些片内外设,或者程序写的比较简单,堆栈在模板中都有设置(51和arm都是),所以如果没有特殊需要不用设置。
追问
哦哦,明白了。谢谢你啦!(^_^)
哦哦,明白了。谢谢你啦!(^_^)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询