很多人说:有51基础的人很容易入门ARM。我想说,坑爹啊,我就是51走过来的,看ARM几个月了,一点进展都没有,也不太知道从何入手,下面说下我的问题吧,我想也有很多人跟我一样遇上这些问题,所以希望大家仔细看看,并回复我一下,指条明道。
51都是有地址映射的(即SFR,特殊功能寄存器),在头文件reg52.h里面,不知道ARM有没有,且不知道如何调用。以STM32为例,官方有提供个固件库,也就是好几个文件夹和几十个文件,里面有会汇编写的,也有用C写的,貌似也有地址映射,貌似里面的地址映射语句不是像51里面用sfr来表示的,貌似是用#define来定义的,这边搞糊涂了。固件库中还包含了很多打包好的程序,比如说各种传输协议要用到的程序。但我的思维还停留在51,并且我不知道停留在51的这种思维是否是正确的:那就是,完全自己编码,除了sfr定义,包括很多包装好的函数,自己写出来才算学会。这种思维,不知道在ARM学习上是否同等适用,难道学ARM时上了个层次,就直接在别人打包好程序的基础上做产品了吗?必须强调,在上位机,PC软件方面,是得调用操作系统的很多函数、库,这个没办法,因为强大的PC界面及功能,如果底层驱动什么的都自己写的话会累死,而且不一定有成效。但ARM不同,不同在他比PC低一层次,但同时又高51一个层次,所以我纠结了。并且我现在不知何从入手,就算是将固件库搞明白也得花不少时间。但我觉得,如果让ARM点亮一个小LED,应该用不上那么多固件库或函数,只要能点亮个LED就行,这么低的要求,应该是用到很少的语句及配置程序,但网上所有的教程基本上首先就教你:如何调用所有的官方库。这无疑让初学者陷入泥潭,晕。
说得很乱,初学者就这样,我现在回头看看我之前学51时问的问题,也觉得那些问题很没逻辑。但请理解,如果有什么问得无厘头的地方,多多包含!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
对于库的问题,我刚开始也很不明白,觉得这样很不爽,后来等到你做产品时,你才会发现“开发时间是最重要的”,毕竟32位的CPU,寄存器的数量和配置,是不像51妈么容易的,我们要站在巨人的肩膀上去实现我们所需要的东西,当你要升入了解时,或者调试碰到问题时,再去查看寄存器。
还有你最好是从原理图到程序全部自己弄,到阿莫PCB打烊,自己做一个小的东西,等你昨晚后,你至少是知道怎么去学了
一周热门 更多>