嵌入式软件开发学习路线

前言


本章节主要介绍嵌入式软件开发概念以及大致的学习知识点的范围

一、嵌入式软件是什么?

百度百科:嵌入式工程师是指具有C/C++语言、汇编语言等基础,熟悉模拟电子技术等硬件知识,了解处理器体系结构,做嵌入式系统设计和开发,包括硬件系统的建立和相关软件开发、移植、调试等工作的人。嵌入式开发又大致分为嵌入式软件开发嵌入式硬件开发,而嵌入式软件就是我们需要了解的。

嵌入式软件的职业发展:积累丰富开发经验的嵌入式软件开发工程师可以向嵌入式系统开发工程师发展,从而晋升为产品研发经理或IT项目经理。对测试理论和方法有一定了解的嵌入式软件开发工程师还可以转作嵌入式系统测试工程师,最终也可发展为IT项目经理。

二、嵌入式软件开发学习路线以及必备的知识体系

1.基础知识

1.c/c++编程语言和数据结构。
编程语言作为我们使用的工具,就像作家手里的笔,没有笔空有想象,是完成不了一篇好的文章的。那么,编程语言应该怎么学呢?在大一学习《c语言程序设计》是c语言基础,如果感觉没有学好,可以再复习一下,并且在Linux环境下将代码实现一下。基本知识学完了然后就是c进阶了,这里有c语言进阶上篇和c语言进阶下篇的学习视频,推荐书籍:《C和指针》,《C陷阱与缺陷》,《C++ Primer》。
2.数据结构与算法。
首先需要了解这些基本的数据结构:数组(静态数组、动态数组)、线性表、链表(单向链表、双向链表、循环链表)、队列、栈、树(二叉树、查找树、平衡树、线索树、线索树、堆)、图等的定义、存储和操作 · Hash(存储地址计算,冲突处理)。这些数据的功能,特点,以及使用方法,然后实现一下这些数据结构。

同时在LeeCode或者牛客网上刷题,无论是为了面试还是工作中的使用,在刷题也需要记录一下,做好笔记与总结。
3.Linux相关知识点学习。

  • Linux 基本使用,熟悉Linux相关指令,gcc,gdb,makefile以及根文件系统。

2.进阶知识

Linux高阶编程,这个部分需要多动手实践

  1. 文件IO
    常用的文件函数调用
  2. 进程线程
    进程、多进程、多线程的使用方法,进程或线程之间的通信
  3. 网络编程
    TCP/IP协议熟悉流程

3.高阶知识

  1. ARM
    arm架构、arm的模式、arm指令,寻址,异常,中断,异常向量表,
    伪指令、C语言和汇编代码的互相调用、内联汇编;

  2. 系统移植
    uboot移植、rootfs制作、内核剪裁移植,
    usb、网卡驱动移植,
    uboot、linux启动流程,
    自己添加uboot命令

  3. Linux驱动
    字符设备架构、inode、cdev、file_operations、file之间关系;
    platform总线、设备树;
    同步互斥机制,自旋锁、信号量、互斥体,原子操作;
    ————————————————

总结

学好每一个阶段的知识,最好的学习时间就是现在,行动起来吧。

嵌入式软件开发必备知识体系相关推荐

  1. 安卓开发必备知识体系:Java篇

    大家好我是张拭心,自从各位朋友帮点广X开始,我发现我每天更有奔头了,走起路来也更有劲了,说啥也得更新的勤快一点.不过放心,我一定推送有价值的内容给大家,还请朋友们照旧动动手指点点底部的那个小东东支持, ...

  2. 安卓开发必备知识体系:安卓篇

    1. 前言 前后历时一个半月,也算是拿到了心仪的 offer,顺便水一篇总结把. 前后经历了菜鸟网络.有赞.手淘.头条.全民直播.喜马拉雅,面的多是 1~3 年的岗位.除了手淘和头条一面被刷 QAQ, ...

  3. WCF分布式开发必备知识(4):Web Service(转)

    今天继续我们的WCF分布式开发必备知识系列文章的第4节:Web Service.前3节我们分别介绍了MSMQ消息队列/.Net Remoting/Enterprise Services三个相关的技术. ...

  4. ERP实施工程师必备知识体系及职业操守

    很多ERP实施工程师及服务商都面临过这样的问题:客户对自己失去信任.很多ERP实施工程师在客户对自己失去信任时,都会总结这样那样的原因.我实施或协助实施过多个客户,也经历或目睹过客户对身边的工程师失去 ...

  5. Java架构师必备知识体系

    写给一名java开发的一段话: 最近公司在组织面试,并由我担任面试官,前前后后面了几天,大概有十来个人,基本都是五年以上开发经验的,我问的问题也都不是很困难,都是一些偏原理和场景解决方案. 如: 1. ...

  6. STM32开发必备知识篇:STM32的运行机制

    时间飞逝,转眼间已经硕士毕业工作第四年了,嵌入式研发成长道路上曲折坎坷,所以这也是我今年撰写博客的初心,即分享技术积累和研发经验,目前主要分为STM32和FPGA两个专辑,都包括开发必备知识篇和实战项 ...

  7. 移动web开发(一)——移动web开发必备知识

    参考: 移动终端开发必备知识.http://isux.tencent.com/mobile-development-essential-knowledge.html

  8. 移动端webapp开发必备知识

    转载自:移动终端开发必备知识 转载自:移动端webapp开发必备知识 请尊重版权,转载请注明来源,多谢~~ 移动设备的用户越来越多,每天android手机的激活量都已经超过130万台,所以我们面向移动 ...

  9. 移动终端开发必备知识(转载)

    移动设备的用户越来越多,每天android手机的激活量都已经超过130万台,所以我们面向移动终端的WebAPP也开始跟进了.本文主要介绍webapp的开发与调试的相关知识和经验,以及给出几种可选的解决 ...

  10. 移动端H5网页开发必备知识

    简介 工欲善其事必先利其器,今天这篇文章主要讲解移动端H5开发必备的一些基础知识以及移动端适配和布局方案.如果已经看过这篇文章了或者已经掌握了移动端基础的话可以看笔者写的 移动端H5网页开发常见问题汇 ...

最新文章

  1. JavaScript 数据类型转换
  2. 【数理知识】《积分变换与场论》王振老师-第5章-场论
  3. PAT甲级1028 List Sorting:[C++题解]排序,cin和cout会超时
  4. openresty开发系列22--lua的元表
  5. 【转】飞扬青云_Qt开发经验
  6. Linux 安装、卸载JDK
  7. 斗地主AI算法——第七章の被动出牌(1)
  8. VB模拟指针模块mPoint.bas
  9. navicat工具查看MySQL数据库_表占用容量_占用空间是多少MB---Linux工作笔记048
  10. C语言如何捕获按下方向键
  11. BFS(广度优先搜素,附例题)
  12. 去除 WinRAR 广告
  13. 大数据之路:阿里巴巴大数据实践(数据模型篇)
  14. 原来长期佩戴耳机危害那么大!现在你知道还不算太晚
  15. mysql跳跃扫描_MySQL 8.0 之索引跳跃扫描(Index Skip Scan)
  16. 解决Google Earth谷歌地球无法连接服务器问题
  17. Shamir密钥分享算法简析
  18. 安恒 web类这可不是难题_如何消除您的前5个Web设计难题
  19. excel表格怎么求时间差值_excel表格,如何计算日期的天数或时间差
  20. Android 9.0 (P)

热门文章

  1. 深入理解 JVM 垃圾回收机制及其实现原理
  2. 深度学习入门资料整理
  3. NPDP,优秀产品经理必备证书
  4. 浙大翁凯老师Java课堂学习记录(第三周)
  5. 如何快速调整SMT贴片编程中的特殊元件角度?
  6. dcp9030cdn定影_兄弟DCP-9030CDN驱动下载
  7. Android NDK开发,使用ndk-build编译,写的太详细了
  8. ABB机器人示教器无法读取U盘怎么办
  9. 灰色关联分析与预测模型
  10. 计算机网络英文缩写汇总,计算机网络名词英文缩写解释大全