OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 13009|回复: 11

关于个人学习嵌入式的一些感想

[复制链接]

3

主题

5

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2013-11-10
在线时间
0 小时
发表于 2014-6-22 14:29:26 | 显示全部楼层 |阅读模式
一.学会裸奔:从51出发。
在这个阶段有三个目标:
1.学会看原理图,熟悉掌握IIC,SPI等等协议(以后会发现不管MCU或是SOC怎么变但是这些协议还是一样的)。
2.了解51单片机的工作原理,明白其是怎样执行程序的,内部资源有哪些(串口,DAC,ADC等)。
3.熟悉C语言在单片机编程中的运用(了解C语言基本语法)。
---》这个阶段我推荐几个好的资源吧!
1.
霖峰的天狼心51单片机入门视频教程(免费的)。
书籍我推荐
1.北航的51单片机初级教程(原理性的东西比较多)。
2.郭天祥的51单片机的书(实用型的东西比较多)。
可能大家是觉得原理性的东西没用,我觉得非常有用,它能让你明白为什么这么做,而不仅仅教你这样做就好。

二.初识操作系统:STM32与ucosII。
在这个阶段有四个目标:
1.了解一些高级协议如USB(圈圈教你学USB入门最佳),SD卡,TCP/IP(阅读uIP源码)等。
2.初步接触ARM体系MCU(明白ARM和51的区别,它又是怎样取指、译指的。程序又是怎样烧写到内部的FLASH的。到底RAM是起怎么作用的)。
3.接触操作系统,ucosII(麻雀虽小五脏俱全)是入门操作系统的神器(明白为什么用操作系统,怎样才能称得上操作系统,任务的切换、调度,怎样动态的分配内存等)。
4.深入理解C语言,明白结构体(在stm32头文件中到处都是结构体以及结构体指针)怎们用,函数指针(stm32自带的USB协议到处都是函数指针)是什么一回事,链表(ucos的TCB和任务就绪表就是链表结构)用在什么地方。
在这个阶段我推荐跟着原子学,可能大家会觉得我在拍马屁(这是原子的论坛)。为什么跟着原子学我就说说我的理由吧!
1.原子的源码是寄存器版本的跟51是无缝对接的,学了51的人很容易上手的。不像市面其他的开发板一开始就是库函数,其实都是MDK自带稍加修改而已。搞的我是云里雾里。可能是我太菜了。当然库函数开发也是一种很好方法(只是个人认为不适合初学者,初学者总是会去找似成相识的感觉,或是站在以前的基础上学习新知识)。
2.原子的代码质量很高(里面涵盖c语言基本及一些高级用法),几乎上都是他自己实现的。特别是两个综合实验(怎样实现GUI,怎样实现程序的后台执行)是值得我们去研读的。
3.原子是一个脚踏实地的工程师(实干精神)。为什么呢?因为他代码是一个一个敲出来的(不像本人太浮躁每样东西都学的是半桶水可能还没有吧!)。
---》我推荐几个好的资源吧!
书籍我就不推荐了原子都推荐了。免费视频我推荐3个
1.刘凯的STM32视频教程(免费)。
2.刘洋的STM32视频教程(库函数版本的视频。后面是收费的,买他的开发板就可以免费看。讲的比较详细)。
3.刘凯的ucosII视频教程(免费)只是梳理性的讲解知识点,最好是视频和书一起看。
到了这里可能会有些朋友会有疑问有了STM32我为什么还要学51,我也只能回答你1+1=2.(基础很重要,冰冻三尺非一日之寒。)
还是要吐槽一下哦,原子是个大牛,别希望大牛能手把手教你学STM32。

三.深入ARM,初识LINUX,深入Linux。
1.从裸机程序(不用集成开发环境能让你明白程序是怎样生成.bin的,从编辑到编译了解编译器到底是个什么东东)到Uboot(就是一个大型的裸机程序,拥有强大的文字交互能力)再到编译Linux内核再到写驱动(了解Linux内核的强大的数据结构)。
2.从ARM9出发,深入了解ARM,进而了解电脑的工作原理(自从接触了ARM9(linux)我逐渐明白基本的电脑工作原理)。

3.不得不说linux是个伟大的作品,开源让我们共同进步。
4.gui子系统(这会我们最好奇的地方,我点点鼠标就能安装程序、运行程序。里面到底是什么原因)。人类是非常感性的,gui是人们最直观的感觉。在这个很重视产品体验的时代,不得不gui很重要。
可能大家会疑问为什么有ARM cotex-A系列还学ARM9干嘛?
这也就好比有了STM32还要学51干嘛!ARM9资料最全,你学习中遇到的问题以前肯定有人遇到过这就能解决你的问题,学习东西总是从简单的入门,开发产品总是挑选性价比最高的那个,款且ARM系列的SOC原理是相通的,正所谓一理通通百理(韦东山一位嵌入式大牛)。你如果是学习的话追“芯”是追不赢的。
---》这部分我推荐几个好的资源吧!
1.国嵌的视频(免费的)框架性的东西只能是初步了解。
2.韦东山的Linux视频(第一期免费,后面是收费的(二期280,三期180)对于学生来说比较贵)。
至于书籍是无数了太多了我也推荐几本吧!
1.Linux源码情景分析
2.Linux驱动详解
3.Linux完全开发手册
我个人认为学习是循序渐进的一步一个脚印的来如果上部分没理解(到位)透彻的话到时候肯定要返工(本人就是这样的)。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

38

主题

165

帖子

0

精华

高级会员

Rank: 4

积分
646
金钱
646
注册时间
2014-3-5
在线时间
67 小时
发表于 2014-6-22 17:00:29 | 显示全部楼层
Hard work!
回复 支持 反对

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2014-6-22 18:26:03 | 显示全部楼层
多谢分享!值得大家学习。
开往春天的手扶拖拉机
回复 支持 反对

使用道具 举报

56

主题

289

帖子

0

精华

高级会员

Rank: 4

积分
865
金钱
865
注册时间
2012-11-16
在线时间
65 小时
发表于 2014-6-22 19:12:08 | 显示全部楼层
谢谢指点!!
回复 支持 反对

使用道具 举报

3

主题

92

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
275
金钱
275
注册时间
2012-6-19
在线时间
37 小时
发表于 2014-6-22 20:28:54 | 显示全部楼层
非常感谢楼主分享,大公无私的好人!
回复 支持 反对

使用道具 举报

93

主题

746

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1850
金钱
1850
注册时间
2012-9-16
在线时间
286 小时
发表于 2014-6-23 08:28:01 | 显示全部楼层
楼主您好,我现在走到了第三步,刚刚接触linux,但是现在已上班,感觉忙不过来?看的时候效率也不高!
纵浪大化中,不喜亦不惧;应尽便须尽,无复独多虑!
回复 支持 反对

使用道具 举报

3

主题

5

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2013-11-10
在线时间
0 小时
 楼主| 发表于 2014-6-23 18:07:38 | 显示全部楼层
回复【6楼】象牙塔:
---------------------------------
我建议你先看看国嵌视频(有个感性的认识就好,毕竟嵌入式Linux包含的知识太多太广)。一步步来,这个东西急不来的。有很多知识在学的时候可能感觉很差,暂时不理解没关系,到时候你再回过头去看看,可能会有意想不到的结果!
回复 支持 反对

使用道具 举报

4

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
132
金钱
132
注册时间
2014-8-19
在线时间
24 小时
发表于 2014-8-21 20:22:53 | 显示全部楼层
谢谢楼主,给我们初学者真的是指明了方向!
回复 支持 反对

使用道具 举报

4

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2014-4-3
在线时间
1 小时
发表于 2015-3-28 20:42:00 | 显示全部楼层
mark!!!
回复 支持 反对

使用道具 举报

1

主题

9

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
241
金钱
241
注册时间
2015-5-11
在线时间
51 小时
发表于 2015-5-11 13:36:11 | 显示全部楼层
谢谢分享,受教了
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1079
金钱
1079
注册时间
2016-3-24
在线时间
105 小时
发表于 2016-4-4 12:02:41 | 显示全部楼层
真是受益了,谢谢楼主!
回复 支持 反对

使用道具 举报

1

主题

78

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
211
金钱
211
注册时间
2015-12-10
在线时间
49 小时
发表于 2016-4-4 23:33:59 | 显示全部楼层
本帖最后由 gelin_ss 于 2016-4-4 23:44 编辑

如果做基于网络互连(有线,无线)的分布式应用,一般就没必要学Linux了(从实时性看,Linux不如uCOS,除非嵌入式应用做得规模比较大,比如需要稳健的多任务管理和虚拟内存、文件系统等),前端用cortexMx+uCOS,上位机当然windows,不论是IDE还是App,有极大的硬软件资源优势(通用处理器和OS容易做到与时俱进),能做出极漂亮界面的工业应用。也就是说,仅把必须的功能交给前端做,且尽量减少交互。当然,独立的小玩意不在俺说的此类,SoC完成所有的功能,包括数据采集、处理、控制、显示、记录、通讯和人机交互。

还有,俺认为明白了STM32架构和基本原理后,就没必要用寄存器方式了(除非确有必要不得不用,比如库函数没有提供所需功能),应该采用库函数方式编写应用。寄存器方式虽然看着简洁,但最大缺点是可读性差(如果连行家都一眼看不明白,那就是很差了),容易出错(试想,谁愿意整天去查阅每个IO部件的寄存器们每位的定义,然后一位位的数着编写代码? &=~<< |=<<)且排错困难。STM库函数是开源的,看看人家是怎么定义操作STM32内部资源的变量和函数,也不失为一种很好的学习。

还有,如果从循序渐进的角度看,先学习一下51或许有必要,但俺认为只要有工科数电、模电和C语言的基础,直接上STM32也未尝不可。因为在STM的高性能和超高性价比面前,51只有满地找牙的份儿,不一定非再去背那个老包袱了。

逆水行舟不进则退
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-19 14:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表