嵌入式软件开发必备知识体系

嵌入式软件开发学习路线

前言


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

一、嵌入式软件是什么?

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

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

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

1.基础知识

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

总结

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

你可能感兴趣的:(c语言,物联网)