嵌入式开发学习学习路线
一、嵌入式的难点
嵌入式开发比互联网软开(比如Java后端)还是要难一些的,比如Java开发,基本也都是用户态的东西,但嵌入式很多东西都深入到了内核态。
二、总体学习思路
总体来说,还是可以把嵌入式学习分为三个大的阶段:
首先基础学习阶段,这就包括通用编程基础(C语言、数据结构/算法、操作系统、计网、计组、Linux系统基础)和基本的硬件基础,扎实地掌握这两大基础,是后续持续发展和不断进步的动力源泉。
其次就是嵌入式应用编程阶段,或者说系统平台编程阶段。因为一般会以特定的嵌入式平台和特定的嵌入式操作系统为依托,熟悉这个系统平台上的编程方法和流程。以常见的ARM+Linux平台为例,需要掌握从内存管理到多任务编程、文件I/O、网络编程,甚至图形化界面编程等几个大的方面。
最后就是深入嵌入式底层开发阶段,最常见的就是内核开发和驱动开发,这些统属于内核态开发范畴,所以需要对操作系统内部机制有所涉猎和理解,在此基础上需要掌握从系统移植到内核开发、驱动开发的各个细节,这是成神之路。
三、嵌入式应用领域
工控、仪器仪表、消费电子、LoT等等。
四、嵌入式方向
纯硬件:硬件电路、PCB、芯片等等。
软硬结合:不带操作系统:单片机开发和嵌入式裸机开发
带操作系统:用户态:应用程序开发和内核态:内核开发+驱动开发
五、嵌入式相关岗位
嵌入式Linux工程师、嵌入式应用工程师、嵌入式系统工程师
嵌入式内核工程师、嵌入式驱动工程师
六、嵌入式知识学习
C语言、C++、数据结构与算法、操作系统原理、操作系统原理、计算机原理、单片机原理、微机原理、Linux操作系统、嵌入式硬件基础
七、常用开发工具
Linux操作系统、常见Linux命令和实用工具、Git/SVN、shell、Vim、GCC、Makefile、GDB、交叉编译工具、SSh、FTP等等。
八、嵌入式典型平台
体系结构:概念和体系结构、工作模式、指令集、寻址方式、寄存器、内存管理单元、常见接口和控制器、通用编程模型、GPIO、中断、定时器、A/D 转换
九、常用协议
UART、IIC、SPI、CAN、USB、局域互联网络LIN、TCP/IP
十、无线模块
蓝牙、WIFI、ZigBee、RF
十一、传感器
温度、湿度、光敏、压力、触摸感应、红外、多轴传感器、GPS、显示模块
十二、嵌入式应用层开发
内存管理/使用:内存分配、内存管理
多任务/编程:进程、线程
文件I/O编程:文件、I/O
网络编程:TCP、IP、UDP、Socket
图形化界面编程:Qt
十三、嵌入式底层开发
可运行系统:BootLoader、Linux内核、根文件系统
Linux内核编程
Linux驱动开发:字符设备开发、块设备开发、网络设备开发、总线设备开发
十四:书籍推荐
C语言:《C和指针》、《C Primer Plus》、《C陷阱和缺陷》、《C专家编程》
C++:《C++ Primer Plus》
数据结构与算法:《大话数据结构》、《数据结构与算法分析-C语言描述》
操作系统:《深入理解计算机系统》
计算机网路:《图解TCP/IP》/《图解HTTP》
Linux操作系统:《鸟哥的Linux私房菜》、《Linux与Unix Shell编程指南》、
《Linux命令行与Shell脚本编程大全》
嵌入式应用开发:《嵌入式Linux基础》、《嵌入式Linux应用程序开发完全手册》、《嵌入式Linux应用程序开发详解》
嵌入式底层开发:《Linux设备驱动程序》、《Linux设备驱动开发详解》、《Linux内核设计与实现》
嵌入式开发学习学习路线相关推荐
- ARM嵌入式开发板学习路线指引
如何入门嵌入式?嵌入式开发学习方法步骤 如何入门嵌入式?嵌入式开发学习路线指引 嵌入式开发就是指在嵌入式操作系统下进行开发,一般常用的系统有linux,android. 平台:Cortex-A9 ...
- 嵌入式开发需要学mysql吗_学习嵌入式开发需要学习哪些课程?如何学习?
针对很多的大学生嵌入式开发初学者来说,对嵌入式开发的学习还很迷茫.今天信盈达嵌入式培训老师给出参考建议:首先:嵌入式开发需要学习哪些课程?因为嵌入式开发的方向不同,所学习的内容会有所区别,但是无论是哪 ...
- 零基础学习嵌入式开发难吗?嵌入式开发需要学习什么
对于零基础刚开始学习嵌入式的同学很多都会有这样的一个想法,嵌入式开发需要学习什么?如果是电子或计算机专业的人,相对来说,会比较容易入门;而非电子或计算机专业的人,应该先从基本的电路和C语言编程开始学. ...
- 一位久经沙场的嵌入式er站在初学者角度谈谈嵌入式开发与学习的一些问题
一位久经沙场的嵌入式er站在初学者角度谈谈嵌入式开发与学习的一些问题 在刚刚涉足嵌入式开发的时候,总想找到这样一本书,它可以解决我一些这样那样的疑惑.但是遗憾的是,到现在也没有这样一本书面世,而且我想 ...
- #杂谈 个人嵌入式开发的学习
本人目前从事的是嵌入式软件开发的相关工作.这是一个关于个人做项目时用过的开发工具的杂谈,仅是为了记录学习经历,同时也为和我有同样瞎搞东西的爱好者提供一个学习思路. 前言 我的技术栈: 下面介绍一下我用 ...
- 嵌入式开发调试学习与思考
截至今天,自己负责的一个项目算是告一段落,前前后后5个多月时间. 该项目是对公司设计的基于powerpc的处理器进行FPGA仿真阶段的软件验证,以及bootloader和kernel移植,以便芯片进行 ...
- 嵌入式开发必须学习qt吗?
作为一名嵌入式开发行者QT是必须要学的,也许现在不学以后也要学习的.一方面,在嵌入式初学阶段,也就是裸机开发,可能需要自己写上位机,QT就是一个做上位机的一个好用的工具,一般只要会c++学习QT一天就 ...
- 嵌入式开发需要学习哪些东西
刚刚读到这篇文章,对于刚入门嵌入式来说挺有用的,献给向我一样正在迷茫,苦于没有头绪,没人指引的学习朋友们. 主要讨论下嵌入式技术学习方法,主要是针对嵌入式软件. 嵌入式技术是一门边缘科学(又称交叉科学 ...
- 嵌入式入门学习笔记6:[转]嵌入式开发需要学习哪些东西
本文转自迅为开发板iTOP-4412开发板实战手册:http://www.topeetboard.com 刚刚读到这篇文章,对于刚入门嵌入式来说挺有用的,献给向我一样正在迷茫,苦于没有头绪,没人指引的 ...
- 【4412嵌入式开发板学习笔记】认识uboot -迅为电子资料分享
重要说明:这份笔记不是4412开发配套的,是我在网上看视频的时候下载上课老师的笔记后修改的.所以我试了一下笔记上的uboot命令,有些无法使用,可能是uboot版本问题或者文件系统问题.具体原因我目前 ...
最新文章
- 【莓控】黑莓8110中文说明书
- max分发-(网络系统克隆)
- 简谈Redis的线程模型
- 在vue项目中对axios进行封装
- 七、Go 语言面向对象编程
- 本周三、四两场直播丨云时代的数据管理;PG与openGauss的分区特性
- 选择语句详解(C++)
- 《未来编年史》——关于地球未来2000年的预言
- arcgis使用教程和视频教程
- vue项目pc端页面适配
- 【短视频运营】短视频制作流程 ( 视频存稿 | 写脚本 | 拍摄收音 | 提词器 | 后期剪辑 | 前测工具 | 检查违禁词 )
- 阿里云CentOS7.2清除wnTKYg木马
- 2023年核盾网络验证-核盾云壳最新逆向教程
- Android强行进阶:为何大厂APP如微信、支付宝、淘宝、手Q等只适配了armeabi-v7a/armeabi?
- matlab兰州交通大学,兰州交通大学教务处.pdf
- 主要是sql查询符合在圆形,多边形区域经纬度的数据
- Linux内存管理(四):paging_init分析
- 【STM32】USART接收不定长数据、防止数据溢出
- python格式化字符串format函数
- pdfFactory如何设置限制打印和浏览文档权限