没有合适的资源?快使用搜索试试~ 我知道了~
首页韦东山新一期ARM裸机编程使用指南.pdf
资源详情
资源评论
资源推荐
第001课不要再用老方法学习单片机和ARM
来自百问网嵌入式Linuxwiki
目录
1 第1课学习单片机前途如何?
1.1 工资方面
1.2 职业发展
1.3 应用方面
1.4 技术方面
2 第2课没有前途为何还要学习单片机
3 第3课怎么学习单片机_选择开发板与开发工具?
4 查看《《所有章节目录》》
第1课学习单片机前途如何?
我们的第一期是教大家如何将ARM开发板当作单片机来用,但在这期视频的第一节,我告诉你们,学习单片机是
没有前途的。
话说得非常狠,因为不这样说,没法警醒你们。我说这句话,是冒着生命危险的,因为很多人依靠单片机来生活,
淘宝上有一大堆售卖单片机开发板的,像51、STM32等。
工资方面
我们学习这些不就是为了赚钱吗?在51job上,搜索“单片机”,工资平均下来是几千块钱。然后搜搜“Linux系
统工程师”,平均工资是上万左右。
职业发展
这里我有切实的体会,我2003年毕业,2005年进入一个小公司,当时做的是车载电话,我们先是用51单片机来做
的。当时我的李姓同事,用两个3000多行的C文件,实现了车载电话的功能。另一个魏姓同事,将功能拆分成各
种模块,使用了50多个C文件,以操作系统的思想,重新写了这个程序。这两个牛人,都跳槽了,都不做单片机
了。李姓同事去了美国,深造了机器人视觉,现在是百度的搜索专家,魏姓同事和我一起去了中兴,现在在厦门
联想公司负责手机的开发,而我给你们录视频,但我们都不玩单片机了。我在2005发表了一个2440开发板上仿照
ucos写了一个操作系统,10年前,我们已经把单片机玩得登峰造极了。但是我们还需要升级,为什么?因为单片
机非常简单,稍微认真学习2-3个月就可以达到中等的水平,你工作十年和工作两年技能差别不大,对一个公司,
现实一点,他肯定喜欢使用工资更低还更愿意加班的新人,所以说,我们必须升级。
应用方面
在嵌入式领域,单片机位于哪个位置。我们看看一个自动化的机床,在这条生产线上面,比如说在这传输带上,会
有一些单片机来检测物品传输的位置,触发某些信号。但其总控肯定运行操作系统,以处理更加复杂的事情。
再看看Google的机器人,他的手臂、脚趾,也许有些单片机来控制其动作,但他的核心大脑,肯定运行操作系
统,才能处理各种复杂的事情。也就是说,在一个复杂的系统,操作系统是大脑,单片机是可以实现手指的功
能。那么你想去做大脑还是想去做手指?
并且单片机的产品升级换代比较慢,一个产品使用单片机的话,他追求的是稳定与成本,那显然,日常的工作的活
少,并且也不需要你有太新的技能,既然如此,公司干嘛要花2~3万来请人做单片机,直接花几千元请个新人不就
完了吗?
并且单片机的价格优势正在逐渐消失,我们在淘宝搜索一下,STM32开发板的基本都是1-200元,而一个能够运
行Linux系统的板子,nanopi的价格却在100元左右。一个能够运行Linux操作系统,有512MDDR内存,有四核
处理的的ARM开发板,他只需要99元。所以说,现在单片机的价格优势正逐渐消失,他只能保持微弱的优势就是
稳定性这一特点。
下面来看看使用的单片机和使用操作系统开发的产品,比如闹钟、自动售货机就是单片机做的。
但自动售卖机,他一旦需要连接网络,需要WiFi,他很可能就需要操作系统。现在的新型自动售卖机,上面有微
信支付,就必须要操作系统。
像无人机,既用单片机也用Linux操作系统。单片机可以更加及时的处理一些信息。看这些产品,你更想做哪些产
品?
技术方面
我们的操作系统Linux,他需要一个Bootloader,这个Bootloader就是一个单片机裸板程序的大全,只要掌握了
Linux的Bootloader,对单片机是轻而易举。在后面视频,我会讲解这点。所以说,我告诉你们,学单片机没前
途了。
当然我说的是一般情况,你说特例我就完蛋了,周立功做单片机的,年收入几亿,这没办法说。注意,我说的是学
习,在学习上,你不需要用单片机来学习,但是在工作中,我们设计产品的时候,如果单片机的性能更好,我们就
要选择单片机。就比如说小米的智能插座,他就是使用单片机来做的,如果同一个功能,用单片机可以省成本,
我干嘛不用单片机呢?卖出几百万台设备,每一个省一毛钱,就可以省几十万。我只告诉你,在技术方面,一旦我
们掌握了Linux的bootloader,反过来,对单片机来说,他是小菜一碟。
第2课没有前途为何还要学习单片机
为什么没前途也要学习单片机?
因为它是个很好的入口。
单片机的学习可以让我们抛开复杂的软件结构,先掌握硬件操作,如:看原理图、芯片手册、写程序操作寄存器
等。在上一节视频里,我刚把单片机贬得一无是处,说单片机没前途了,这节视频,我又要告诉你们,没有前
途,也要学习单片机。为什么?
首先,我说不用学习单片机,是指不要使用老一套得学习方法学习单片机。什么叫老一套的方法?
硬件上:不要使用C51、STM32这些专用的单片机开发板。如果以后,你不打算从事单片机开发,你用这些
芯片干嘛,研究了两三个月,把这些寄存器都用清楚了,你又用不上,没必要啊。
软件上:不要使用Keil、MDK等集成度太高的软件。你用这些软件,你写个main()就可以了,然后调用各种
库,进行傻瓜式操作。这些好用的工具,封装了很多技术细节,使得我们没法了解裸机、单片机的本质。
以后我们会使用新一套的方法来进行单片机的开发。新一套的方法,我们后面再介绍。
我们之所以还要学习单片机,是因为他里面的知识,对我们后续学习Linux还是有用的。我们首先来看看,一个
Linux系统是怎么一回事。一个嵌入式Linux系统的软件组成:
单片机大全Bootloader-->Linux驱动-->LinuxAPP-->LinuxGUI(Android/QT)
我们PC机一上电的时候,黑色屏幕上会显示BIOS,这个BIOS目的是去启动Windows内核。Windows内核再挂载
C盘(系统盘)、D盘(应用盘),最后再去启动应用程序,像QQ、网游等。
同样的道理,我们的Android手机或者工控设备,也有BIOS,但嵌入式Linux系统里面不叫BIOS,叫
Bootloader,他的目的是去启动Linux内核。他首先也是识别应用程序所在的存储设备,挂载根文件系统(在
Windows系统里面的C盘、D盘,在Linux里面称为根文件系统)。最后去启动应用程序。
仔细的分析下Bootloader,他去启动内核,他去哪里启动内核呢?显然是去某个地方读出内核,就比如说BIOS是
去C盘上读出Windows内核,我们的Bootloader是去Flash或者SD卡读取内核。因此Bootloader要拥有读取
Flash或者SD卡的能力。有些Bootloader还要显示logo,因此还要具有操作LCD的能力。Bootloader还要设置开
发板的环境,比如,初始化时钟、初始化内存、还要设置网卡等。这么多事情,都是在Bootloader里面实现的,
太复杂了,如果你一来就分析整个Bootloader是非常困难的。
那我们怎么学习呢?把他拆开,写出单独的程序,比如:LED点灯、时钟、网卡、Flash都单独写个程序来练习,
这些不就是单片机程序吗?所以说,Bootloader是单片机程序的大全。我们为了更好的学习Bootloader,我们应
该事先一个一个练习硬件,当我们熟悉每个硬件后,再组合起来,就是一个Bootloader。
我们再来看看Bootloader启动内核之后,内核再去挂载根文件系统,意味着内核也要有操作硬件的能力,这就是
驱动程序。我们首先来看看一个简单的驱动程序是什么样子。首先我们的应用程序是调用open()、read()、
write()这些标准的接口去访问硬件。那么就进入驱动程序里面,驱动程序里面有对应的drive_open()、
drive_read()、drive_write()。最后在驱动程序里面,去配置硬件。这里以如果是一个LED点灯驱动,那么
drive_open()要把GPIO设置为输出引脚,drive_read(),返回GPIO状态,driver_write()则写GPIO,让引脚输出
高电平或者低电平。
对于我们的LED驱动程序,你需要提供drive_open()、drive_read()、drive_write()这些接口,这就是他的框架。
具体的怎么操作硬件,就是硬件操作。所以说,我们事先在单片机里面,熟悉熟练的掌握硬件操作。即驱动程序
的组成:
驱动程序=软件框架+硬件操作
你需要学会看原理图、看硬件怎么连接、看芯片手册、知道怎么读写寄存器。这一切都可以先在单片机里面学习,
去掌握。以后学习Linux驱动时,把重点放在软件框架就行了。
剩余444页未读,继续阅读
物联网布道师
- 粉丝: 7020
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0