嵌入式软件工程应该学些什么?

您所在的位置:网站首页 qt实战技能 嵌入式软件工程应该学些什么?

嵌入式软件工程应该学些什么?

#嵌入式软件工程应该学些什么?| 来源: 网络整理| 查看: 265

总的来说,嵌入式学习重点要学习这些内容

´ Linux系统下的应用服务开发(设备和PC,网络数据服务的开发)

´ 单片机MCU物联网设备开发

´ 嵌入式Linux下的系统移植、驱动开发

´ Qt图形界面开发

一般来说,对于工科专业,比如计算机类(物联网、嵌入式、计算机科学与技术、网络工程)、电子类(电子信息工程、自动化、智能控制、通信工程) 都比较适合学习嵌入式。

题主是通信工程专业,属于电子类专业,如果想做硬件,做软硬件结合方面的开发,选择嵌入式就非常适合;计算机类,做纯软件,觉得上层框架变化太快,担心年龄问题,也可以选择嵌入式,因为嵌入式技术栈相对还是比较稳定的。

目前的嵌入式开发更倾向于智能化,也就是我们所说的智能硬件(硬件+软件),嵌入式产品的一个发展趋势是更倾向与自动化控制和人机交互,而不是强调“算法”这一块。

嵌入式,作为软硬件开发的一门综合技术,大家在学习时候,一定要注重原理和编码的学习,最好是找一家专业的嵌入式培训机构,跟着学习路线图学通、学透。

接下来以国信安的嵌入式课程为例,给大家分享嵌入式学习路线,包括总共分为哪几个阶段,每个阶段的目标、课程知识要点等。你可以做个参考,大致了解一下专业的嵌入式课程需要学习哪些内容。

嵌入式系统开发学习路线图第一阶段:嵌入式系统基础阶段

主要学习内容:嵌入式 C 语言、C++ 程 序 设 计 、Linux 操作系统、数据结构与算法设计(C/C++)、综合案例项目实战

阶段目标:

✓ 掌握 C/C++语言常用关键字的用法,熟练使用顺序、分支和循环结构设计程序

✓ 理解 C 语言指针含义,能够熟练使用指针进行任意空间的操作,熟悉常用内存的分段机制

✓ 理解一维数组空间和多维数组空间的使用方法,熟悉多维指针的逻辑特性和应用场景

✓ 掌握 C/C++语言函数的定义,理解函数重载的原理,熟悉函数指针的设计模式

✓ 理解 C++多态、虚类等面向对象的底层实现机制,了解 C/C++语言编译器工作流程

✓ 熟悉 Linux 操作系统常用命令和文件系统结构

✓ 了解常用的 shell 编程方法,熟悉 make 和 Cmake 工具的使用和配置

✓ 熟悉常用数据结构的特点,掌握链表的常用操作方法,理解栈和队列的特点和实现方法

✓ 了解二叉树的常用性质,理解深度遍历和广度遍历的算法特征

✓ 了解图中常用的算法设计思想

✓ 掌握查找、排序的经典算法设计思想和程序实现,了解 STL 的数据结构特性

第二阶段 嵌入式 Linux 应用开发阶段

主要学习内容:Linux文件编程、Linux多任务、Linux网络编程、嵌入式数据库、综合项目实战

阶段目标:

✓ 掌握 Linux 下文件 IO 和标准 IO 的编程方法,理解其各自特点和应用场景

✓ 熟悉 Linux 下 VFS 设计思想,掌握常用系统调用的使用方法

✓ 了解 Linux 下进程的状态和控制方法,父子进程、孤儿进程、守护进程、僵尸进程的特点

✓ 掌握 Linux 下多进程控制程序方法

✓ 熟练使用 pthread 库实现 Linux 下的多线程任务,理解多线程的互斥和同步的方法

✓ 掌握 Linux 下常用进程间通信的方法

✓ 理解 socket 编程,熟悉 TCP、UDP 客户服务器编程模型

✓ 了解 HTTP 协议,了解 select 或 epoll 多路复用通信,理解 libevent 等反应堆设计模式

✓ 熟悉使用版本控制工具,如 git 或 svn 工具

第三阶段 Qt 图形界面编程阶段

主要学习内容:Qt 基础编程、Qt 进阶编程、综合案例

阶段目标:

✓ 掌握 Qt5、Qt6 的特点,熟悉 Qmake、Cmake 环境维护方法

✓ 理解 Qt 信号和槽的工作原理,熟悉常用控件的使用和自定义信号和槽的方法

✓ 掌握 Qt 的常用布局方式和约束关系

✓ 理解 Qt 的进程和线程工作原理,能够使用 Qt 进行多任务处理

✓ 理解 Qt 的网络编程方法,熟悉 Qt 的自定义组件开发方法

第四阶段 ARM 体系结构与接口技术阶段

主要学习内容:ARM 体系结构 、ARM 常用接口技术、综合案例

阶段目标:

✓ 了解 ARM 体系结构的编程模型,寄存器和常用汇编的使用场景

✓ 理解 CortexA 和 CortexM 下的中断控制器工作方式,了解 NVIC 工作方式

✓ 掌握 stm32 开发配置环境,理解 flash 和 ram 调试程序方式

✓ 熟悉 GPIO、EXTI、UART、IIC、Timer 控制器工作原理和编程方式

✓ 掌握 ST 公司的 HAL 库开发方法

第五阶段 嵌入式 Linux 系统移植阶段

主要学习内容:Bootloader 移植、Linux 内核移植、根文件系统制作

阶段目标:

✓ 掌握嵌入式交叉编译器的常用工具作用和使用方法,熟悉常用工具选项的含义

✓ 理解嵌入式编译、链接的原理,熟悉二进制文件和 ELF 文件特点和制作方法

✓ 理解嵌入式 Bootloader 工作原理,掌握 Uboot 移植和使用方法

✓ 理解 Linux 内核编译、配置、启动原理,了解常用 BSP 开发定制方法

✓ 熟悉嵌入式最小根文件系统的制作方法,busybox、buildroot、ycoto 的制作嵌入式根文件系统的方法

✓ 掌握嵌入式常用网络配置方法,熟悉 NFS、Ramdisk、Yaffs2 等文件系统方法

第六阶段 嵌入式 Linux 驱动编程阶段

主要学习内容:Linux 内核编程基础、字符设备驱动编程 、内核驱动编程进阶 、内核驱动子系

阶段目标:

✓ 掌握 Linux 内核模块编程的方法和驱动模块开发的环境搭建方法

✓ 掌握 Linux 内核下字符设备工作原理,熟悉 file_operations 结构体核心成员的使用

✓ 能够熟练使用内核链表、红黑树解决应用空间和内核空间的需求

✓ 掌握 container_of 原理,内核 Kfifo 结构的设计和使用方法

✓ 了解内核中断控制子系统的结构,熟悉利用中断控制系统实现驱动异步事件的方法

✓ 了解常用 Linux 上半部和下半部机制

✓ 掌握 Linux 的设备树下的驱动设计方法,熟悉 bus 驱动设计思想

✓ 熟悉 platform_driver 结构和驱动设计

✓ 熟悉 Linux 下的 LEDS 和 GPIO-keys 下的源码设计和使用

✓ 掌握 Linux 下 input\framebuffer 等子系统工作原理和使用方法

✓ 了解 IIC、网络子系统的驱动结构,了解网络协议栈和内核数据安全方法

第七阶段 综合项目阶段

主要学习内容:综合项目 就业指导

作为一家国企背景办学的高技能人才培训机构,国信安开设的嵌入式系统开发课程,走访多家真实产业工程师岗位需求,与具有多年教育培训和产业研发经验的讲师一起打造,从计算机工作原理本质出发,通过知识原理的讲解,使学生对内容条理清晰,能够举一反三,掌握起来比填鸭式效率高很多。

课程教学过程中,从零开始现场编写代码,一步步模拟小白如何上手,明白如何从零实现项目开发的整体过程,核心知识点知其然知其所以然,让学员掌握技术规律,不在怕解决不了Bug 而无效加班。

项目驱动教学,理论与实践相结合。从计算机工作原理本质出发,通过知识原理的讲解及实战项目训练,让学员掌握核心知识是什么,怎么用,什么时候用,为什么这样设计等方法,达到触类旁通,灵活运用。助力成为优秀的嵌入式开发工程师,赢在起点。

学习流程图

以上仅为简略版学习路线,详细课程大纲可以加安妹微信领取哦。

想要学习嵌入式的同学,如果你有志于成为一名优秀的嵌入式工程师,点击下方头像,和学习助理小姐姐1v1聊天,了解更多关于嵌入式前景、是否适合学习等问题!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3