现在这里感谢各位的回答
希望过来人说一下自己定的一些理解。谢谢。
想请教一下过来人说一下关于学ARM的体验,学ARM和血单片机有些什么共同点和不同点,本人学过单片机。
答案:2 悬赏:80 手机版
解决时间 2021-02-03 23:56
- 提问者网友:椧運幽默
- 2021-02-03 09:31
最佳答案
- 五星知识达人网友:神也偏爱
- 2021-02-03 10:09
本人分享一点经验,ARM也好,51单片机也好,说白了,都是单片机,所不同的是:
1、内核结构不同
2、片外外设资料不同
3、时钟树不同,51的所有外设都开着时钟,ARM很多外设不用的时候可以关闭时钟,节省能量。
4、BOOT不同,51单片机的启动代码可以说根本没有,这取决于其内核比较简单,ARM的内核需要一定的启动代码,其复位过程与51不一样。
5、IDE编译链接环境不一样,当然,现在随着Realview MDK功能的强大,KEIL可以同时编译很多的ARM和51。
那么再说一下一样的地方:
基本操作方式都一样,说白了,就是“首都”操作“驻京办”,什么意思呢?即所有的单片机外设,如定时器、串口等等,他们的控制寄存器、状态寄存器等等全部都在内存中,CPU想要控制相应的外设,或者查看外设的状态,只要读寄存器而已,比如说向串口发送一个字节,对51来说,SBUF = 98,就把98发送出动,SBUF是51单片机内存的第0x90的内存,对STM32来说,也一样,所以,说白了,都是CPU操作内存,内存中存放的外设的各类寄存器。
你只要按照这个思路去学习,管什么单片机,都是一样的,无非ARM的外设多,相应的寄存器也就多。
1、内核结构不同
2、片外外设资料不同
3、时钟树不同,51的所有外设都开着时钟,ARM很多外设不用的时候可以关闭时钟,节省能量。
4、BOOT不同,51单片机的启动代码可以说根本没有,这取决于其内核比较简单,ARM的内核需要一定的启动代码,其复位过程与51不一样。
5、IDE编译链接环境不一样,当然,现在随着Realview MDK功能的强大,KEIL可以同时编译很多的ARM和51。
那么再说一下一样的地方:
基本操作方式都一样,说白了,就是“首都”操作“驻京办”,什么意思呢?即所有的单片机外设,如定时器、串口等等,他们的控制寄存器、状态寄存器等等全部都在内存中,CPU想要控制相应的外设,或者查看外设的状态,只要读寄存器而已,比如说向串口发送一个字节,对51来说,SBUF = 98,就把98发送出动,SBUF是51单片机内存的第0x90的内存,对STM32来说,也一样,所以,说白了,都是CPU操作内存,内存中存放的外设的各类寄存器。
你只要按照这个思路去学习,管什么单片机,都是一样的,无非ARM的外设多,相应的寄存器也就多。
全部回答
- 1楼网友:woshuo
- 2021-02-03 10:18
你所谓的51学完就是把它的资源,外部的各个实验做完?现在51单片机的种类那么多,它的外设何其丰富,你能学完吗?你学完51了,那么以下这些你都做到了吗?
1、你的程序中不出现1ms以上的指令延时,比如delay()这样的函数,所有的长时间的延时都是用定时器延时。
2、做一个数据采集系统,你的程序能同时兼顾显示更新、数据采集、数据处理、按键响应......
3、你的程序有没有分层的概念?
4、你对c语言和数据结构真的熟悉了吗?结构、指针、链表、树、图、队列、堆栈等等!
5、你能合理的为每个任务分配占用cpu的时间吗?
如果以上几点你都做到了,那么你不是学完51了,而是学完单片机了。那么你应该往更高的层次发展——arm+linux。如果你还没到那种程度,那么回到原点,好好的去学c语言,数据结构,等核心课程。其实单片机只是工具,学它是要学会编程和处理事情的思维,其核心就是c语言和数据结构。现在的c编译器效率那么高,哪款单片机不还是一样的。如果你有51单片机的基础,遇到一种新的单片机时,那就是跟用一款新的芯片没什么区别,把数据手册看几遍就ok了。而arm就不同了(相对与高端的arm,低端的arm还是可以当做一款强大的单片机来用。),它可以跑操作系统,它有与单片机完全不同的处理模式。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯