嵌入式软件工程应该学些什么? |
您所在的位置:网站首页 › qt实战技能 › 嵌入式软件工程应该学些什么? |
总的来说,嵌入式学习重点要学习这些内容 ´ 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 |