嵌入式底层方向的 C/C++ 该怎么样学哪些知识较实用除了大学基本课程是否需要学别的知识
泻药嵌入式底层么?那你应该学好各种芯片的汇编指令才对(不同的嵌入式系统有不同的汇编指令,不要以为学好微机原理的那些X86汇编就行了)。C++差不多都用不到,C用到一点点。还有要熟悉模电数电,最重要的是要能理解各种芯片的IO口状态,比如:推挽、开漏、弱上拉、强上拉这些有什么用处。要学会根据datasheet读懂芯片的架构、知晓芯片的存储方式、掌握芯片的中断方式(这个是最重要的,也是普通计算机程序猿经常忽略的东西,因为计算机软件设计中好像很少用到中断。至少我给我认识的做C++和JAVA的同事是很费劲地解释啥叫中断)。补充:而且你要告诉我你学什么专业,学校给开什么课程。同一个专业在不同学校开的课程是不一样的。比如我上学时候就没开电机学和电磁微波什么的,我是在后来自学的。有的学校用的课本不同,同样的课程但课名也不同,比如电路之于电路分析之于电子电路或电工学上册电路部分很多知识基本都一样的。只是课名不同而已。
■网友
嵌入式这个范围是比较广的,现在很多电子专业和计算机专业的不少学员都在准备搞嵌入式。电子专业因为安排了电子原理课程,单片机这样课程。相对比计算机专业的学员更懂一些底层一些,知道拿到单片机来跑。但是编码能力和风格什么就可能要比计算机专业的学员要差一些。要学习什么知识,就要看您自己本专业是什么了。先把本专业的知识先学习好,其实不管电子专业还是计算机专业的,在嵌入式领域方面,那么C/C++语法知识,数据结构这些其实非常重要的。这些是基石。去面试绝大数企业的时候,这些是必考的。尤其对于大学生来讲。可能很多人,觉得linux驱动很神秘,且被外界培训机构宣传可以拿高薪,就一个劲学习好,或者找到市面上教程来学习,就是依葫芦画瓢。要你研究一个新的驱动,就不会了,不知道在内核文件中找到这个驱动相应的一些文件。像linux里面各种面向对象的思维,各种数据结构知识,链表,树~~~。还有一个非常重要的东西makefile没有掌握。
【嵌入式底层方向的 C/C++ 该怎么样学哪些知识较实用除了大学基本课程是否需要学别的知识】 所以我觉得学生可以先好好把这些基础搞好。
要是学习c/c++,数据结构知识,可以推荐下看下狄泰软件学院唐佐林的相关课程。
狄泰软件学院_腾讯课堂其实在学习linux驱动之前,可以好好研究下uboot。这个不管对于计算机专业还是电子专业是一个非常不错开源项目。能够和硬件非常好结合的东西。且里面的代码风格越来越像linux内核了。现在市面上大部分教程,没有告诉你原理,只告诉你要改哪些参数,强烈推荐大家去看童老师的uboot课程。
要是学习linux驱动,那么可以看韦东山的驱动课程,但是前提要有一定的基础。
■网友
底层啊,那肯定要懂汇编咯。鉴于现在ARM在嵌入式领域应用的比较广泛,所以从ARM汇编入手吧。ARM有Thumb,Thumb-2和ARM三种指令集,ARM官网上有资料。然后就是ARM架构之类的东西,就和学8051一样,了解下寄存器的作用,PC,SP,LR,BR之类的。不一定要记住,大概有印象,用到的时候再翻也行。然后就是C/C++方面的了。如果题主基础还是不错的话,就直接看代码吧。先从芯片厂家的固件库看起,然后看点小的操作系统的代码,然后可以挑战下Linux之类的。然后就是系统架构之类的东西了,应该看点设计模式之类的东西。然后不应该落下数学了,回头补数学是一件很痛苦的事情。最后提醒题主要勤动手,这些东西看书是学不会的。
■网友
做底层这块要老师带,不然会走很多弯路,最主要的是不会系统化的开发产品
推荐阅读
- 被困住的底层带货主播:一天直播13小时,3人围观也得播
- 环球车讯网|丰田奕泽到店实拍,配多功能方向盘,14.58万起,搭2.0L+CVT
- ETtoday生活方式|离手侦测升级!自动辅助驾驶启动 双手请老实握好方向盘
- 行业投资阶段服务类的B2B项目,两个产品方向,但联动,在商业计划书中两个产品并存会不会不聚焦
- 考研数据库方向
- 通信专业大二在读,以后想从事软件方向。请问现在应该准备些啥
- 网页设计和嵌入式哪个发展好一点?
- 通信工程毕业的女生有啥推荐的就业方向
- 电子信息工程的考验方向和需要的准备
- 图像特征提取时,灰度共生矩阵的方向是咋确定的
