ARM培训课程体系(选修)
课程目录
第一层次:ARM基础与体系结构
第二层次:ARM Cortex-M嵌入式开发专题
-
专题五:Cortex-M内核体系结构详解
-
专题六:STM32处理器体系结构与最小系统
-
专题七:STM32标准外设库与HAL库开发
-
专题八:STM32基础接口编程(GPIO/EXTI/SysTick)
-
专题九:STM32高级接口编程(定时器/ADC/DAC/DMA)
-
专题十:STM32通信接口编程(UART/I2C/SPI/CAN/USB)
第三层次:ARM Cortex-A/Linux应用开发专题
第四层次:ARM嵌入式实时操作系统专题
-
专题十八:嵌入式实时操作系统基础与选型
-
专题十九:FreeRTOS在ARM上的移植与应用
-
专题二十:RT-Thread在ARM上的移植与应用
-
专题二十一:Azure RTOS ThreadX在ARM上的移植与应用
-
专题二十二:uC/OS-II/III在ARM上的移植与应用
第五层次:ARM系统级设计与FPGA集成专题
第六层次:ARM物联网与安全应用专题
-
专题二十七:ARM物联网应用与云平台对接
-
专题二十八:ARM TrustZone安全技术
-
专题二十九:ARM MPU内存保护单元与安全编程
-
专题三十:ARM安全启动与固件加密
第七层次:ARM项目实战与认证专题
-
专题三十一:基于ARM的工业控制项目实战
-
专题三十二:基于ARM的智能家居/物联网项目实战
-
专题三十三:ARM开发工程师认证辅导
课程体系概述
本课程体系聚焦于ARM嵌入式系统开发这一核心技术领域,在结合企业实际人才需求与主流厂商技术路线的基础上,按照从基础到高级、从裸机到操作系统、从应用到系统的学习路径,分为七个层次,共三十三个选修专题。每个专题均明确标注了所采用的开发平台、软件工具和应用方向,方便学员根据自身基础和职业规划进行精准选择。
ARM架构是全球嵌入式系统和物联网设备的主流处理器架构,广泛应用于消费电子、工业控制、汽车电子、航空航天等领域。掌握ARM开发技术是嵌入式工程师的核心竞争力。本课程体系参考了国家高等教育智慧教育平台的ARM相关课程,以及Arm官方教育计划的学习路径设计,并结合了工业技术研究院等机构的业界实战培训课程,确保课程内容的系统性、先进性和实用性。
第一层次:ARM基础与体系结构
本层次旨在构建ARM处理器的理论基础,掌握ARM架构的核心概念,是后续所有专题学习的前提。
专题一:ARM概述与发展历程
培训对象
-
嵌入式系统初学者
-
从其他处理器转向ARM开发的工程师
-
高校电子/计算机相关专业学生
培训目标
-
了解ARM公司的历史与发展历程
-
掌握ARM处理器的主要系列和应用领域
-
熟悉ARM架构的演进与版本迭代
-
建立ARM生态系统的整体认知
培训内容介绍
-
ARM公司发展历程:Acorn时期、独立ARM公司、软银收购、IPO上市
-
ARM商业模式:IP授权、架构许可、内核授权、设计服务
-
ARM处理器家族演进:ARM1到ARM11、Cortex系列、Neoverse系列
-
ARM架构版本:ARMv4/v5/v6/v7/v8/v9的特性与区别
-
Cortex系列三大分支:Cortex-A(应用处理器)、Cortex-R(实时处理器)、Cortex-M(微控制器)
-
应用领域分布:移动设备(95%+市场份额)、物联网、汽车、服务器、网络设备
-
主流半导体合作伙伴:ST、NXP、TI、Microchip、瑞萨、高通、华为海思
-
ARM技术生态:开发工具链、操作系统支持、中间件、开发者社区
-
ARM中国发展:ARM中国合资公司、国产ARM处理器(飞腾/华为/兆易创新)
-
未来发展趋势:ARM在PC/服务器市场的拓展、汽车电子、AI加速
-
学习路径规划:根据职业方向选择Cortex-M/A/R路线的建议
-
综合研讨:ARM技术在各行业的典型应用案例分析
专题二:ARM体系结构与编程模型
培训对象
培训目标
-
掌握ARM处理器的核心体系结构
-
理解ARM编程模型与寄存器组织
-
熟悉ARM工作模式与异常处理机制
-
为后续汇编编程和底层开发打下基础
培训内容介绍
-
ARM体系结构特点:RISC设计、Load/Store架构、三地址指令格式
-
处理器工作状态:ARM状态、Thumb状态、Thumb-2状态
-
处理器工作模式:用户模式、系统模式、FIQ模式、IRQ模式、管理模式、中止模式、未定义模式
-
寄存器组织:37个32位寄存器的组织方式
-
通用寄存器:R0-R12在不同模式下的物理映射
-
专用寄存器:SP(R13)、LR(R14)、PC(R15)的功能与使用
-
程序状态寄存器(CPSR):条件标志位、中断禁止位、模式位、状态位
-
保存程序状态寄存器(SPSR):异常返回时的状态保存
-
流水线技术:ARM7的3级流水线、Cortex-A的多级流水线
-
异常处理机制:复位、未定义指令、SWI、预取中止、数据中止、IRQ、FIQ
-
异常响应流程:保存现场、向量跳转、返回机制
-
存储器映射与大小端模式:大端模式、小端模式、配置方式
专题三:ARM处理器内核系列(Cortex-A/R/M)
培训对象
培训目标
-
掌握Cortex-A/R/M三大系列的定位与特性
-
能够根据项目需求选择合适的ARM处理器
-
了解各系列典型芯片与应用场景
-
为后续专题的深入学习指明方向
培训内容介绍
-
Cortex系列命名规则:Cortex-A/R/M的字母含义、数字编号含义
-
Cortex-M系列概述:微控制器应用、低功耗、中断响应快
-
Cortex-M0/M0+:超低功耗、极小面积、物联网传感节点
-
Cortex-M3/M4:平衡性能与功耗、DSP扩展、浮点单元(M4)
-
Cortex-M7/M33/M55:高性能、AI加速、安全扩展、Helium技术
-
典型M系列芯片:STM32系列、NXP LPC系列、Microchip PIC32CX系列
-
Cortex-R系列概述:实时处理器、高可靠性、快速响应
-
Cortex-R应用场景:汽车底盘控制、硬盘控制器、基站基带处理
-
Cortex-A系列概述:应用处理器、高性能、MMU、多核
-
Cortex-A5/A7/A53:低功耗应用、移动设备、嵌入式Linux
-
Cortex-A72/A76/A78/X系列:高性能计算、服务器、旗舰手机
-
处理器选型方法论:性能指标(DMIPS/MHz)、功耗、外设、成本、生态
专题四:ARM指令集与汇编语言程序设计
培训对象
-
底层软件开发工程师
-
系统软件开发者
-
编译器/工具链开发人员
培训目标
-
掌握ARM指令集与寻址方式
-
能够编写简单的ARM汇编程序
-
掌握汇编与C语言的混合编程方法
-
理解ATPCS调用规范
培训内容介绍
-
ARM指令集概述:ARM指令、Thumb指令、Thumb-2指令的特性与区别
-
寻址方式详解:立即数寻址、寄存器寻址、间接寻址、块寻址、相对寻址
-
数据传送指令:MOV、MVN、LDR、STR、LDM/STM
-
数据处理指令:ADD/SUB/MUL、AND/ORR/EOR、CMP/TST
-
跳转指令:B、BL、BX、BLX
-
程序状态操作指令:MRS、MSR
-
伪指令:LDR伪指令、ADR、ADRL
-
条件执行:根据CPSR条件标志的条件执行机制
-
Thumb指令集:16位指令的优势与限制
-
Thumb-2技术:16/32位混合指令、性能与代码密度的平衡
-
ATPCS/AAPCS规范:寄存器的使用规则、参数传递规则、堆栈使用规则
-
汇编与C混合编程:内嵌汇编、汇编调用C函数、C调用汇编函数
第二层次:ARM Cortex-M嵌入式开发专题
*本层次聚焦Cortex-M系列微控制器的裸机开发,以STM32为主要平台,掌握嵌入式系统的基础开发技能。*
专题五:Cortex-M内核体系结构详解
培训对象
-
Cortex-M开发者
-
嵌入式软件工程师
-
底层驱动开发人员
培训目标
-
深入理解Cortex-M内核的体系结构
-
掌握NVIC中断控制器的工作原理
-
理解存储器映射与位带操作
-
为后续外设驱动开发打下基础
培训内容介绍
-
Cortex-M内核结构:处理器核、NVIC、MPU、调试系统、总线矩阵
-
工作模式与特权级:处理者模式、线程模式、特权级/用户级
-
寄存器组织:通用寄存器、特殊寄存器(xPSR、PRIMASK、FAULTMASK、BASEPRI)
-
嵌套向量中断控制器(NVIC):中断优先级配置、中断使能/屏蔽、中断挂起
-
中断与异常处理:异常类型、向量表、中断响应流程、中断返回机制
-
存储器映射:Cortex-M的4GB地址空间划分、SRAM/外设/代码区
-
位带操作(Bit-banding):位带区与位带别名区、位操作的实现
-
MPU内存保护单元:内存区域划分、访问权限控制、特权级保护
-
SysTick定时器:24位递减计数器、重装载值计算、时钟源选择
-
低功耗模式:睡眠模式、深度睡眠模式、待机模式、唤醒源
-
调试与跟踪:SWD/JTAG接口、DWT数据观察点、ITM指令跟踪宏单元
-
启动流程分析:复位序列、堆栈初始化、向量表加载、跳转main函数
专题六:STM32处理器体系结构与最小系统
培训对象
-
STM32初学者
-
嵌入式硬件工程师
-
嵌入式软件工程师
培训目标
-
掌握STM32系列处理器的体系结构
-
能够设计STM32最小系统电路
-
熟悉STM32的时钟系统与电源管理
-
具备STM32硬件设计基础能力
培训内容介绍
-
STM32产品线概览:STM32F0/F1/F3/F4/F7/H7系列的区别与选型
-
STM32F103(Cortex-M3)体系结构:总线架构(I总线/D总线/S总线)
-
STM32H7(Cortex-M7)体系结构:L1 Cache、MPU配置、AXI总线
-
存储器映射:Flash、SRAM、外设寄存器的地址映射
-
最小系统组成:电源电路、时钟电路、复位电路、下载调试电路
-
电源系统:VDD/VDDA、备份域电源、电压调节器、低功耗模式电源
-
时钟系统(RCC):HSI/HSE、LSI/LSE、PLL锁相环、系统时钟分配
-
复位电路:上电复位、手动复位、看门狗复位、软件复位
-
启动模式配置:BOOT0/BOOT1引脚设置、从Flash/SRAM/系统存储器启动
-
下载调试接口:SWD(2线)与JTAG(5线)的区别与连接
-
电源管理:低功耗模式配置、唤醒源选择、功耗优化技巧
-
综合实战:STM32最小系统原理图设计与PCB布局要点
专题七:STM32标准外设库与HAL库开发
培训对象
-
STM32软件开发者
-
嵌入式应用开发人员
-
从寄存器转向库开发的工程师
培训目标
-
掌握STM32开发环境的搭建与配置
-
理解标准外设库与HAL库的架构
-
能够使用库函数进行快速开发
-
掌握CMSIS软件接口标准
培训内容介绍
-
开发环境搭建:Keil MDK/IAR/STM32CubeIDE安装与配置
-
STM32CubeMX工具使用:图形化配置、引脚分配、时钟树配置、代码生成
-
CMSIS标准:ARM Cortex微控制器软件接口标准、三层结构
-
标准外设库(SPL):文件结构、命名规范、使用方式
-
HAL库架构:分层设计、句柄机制、超时机制、回调函数
-
LL库(Low Layer):轻量级、高性能、接近寄存器的操作
-
工程模板建立:从0开始创建STM32工程、启动文件分析、链接脚本
-
寄存器操作方式:直接操作寄存器的方法与注意事项
-
库函数与寄存器的性能对比:代码效率、可读性、可移植性权衡
-
调试技巧:printf重定向、断点调试、变量监视、Call Stack
-
版本控制与协作:Git在嵌入式项目中的应用
-
综合实战:基于HAL库的STM32工程模板建立与验证
专题八:STM32基础接口编程(GPIO/EXTI/SysTick)
培训对象
-
STM32入门开发者
-
嵌入式软件工程师
-
物联网硬件开发者
培训目标
-
掌握GPIO的配置与使用
-
能够进行外部中断编程
-
掌握SysTick定时器的应用
-
具备基础外设驱动开发能力
培训内容介绍
-
GPIO模块结构:输入/输出模式、推挽/开漏输出、上拉/下拉电阻
-
GPIO寄存器配置:CRL/CRH配置寄存器、IDR输入寄存器、ODR输出寄存器、BSRR置位复位寄存器
-
GPIO库函数开发:HAL_GPIO_Init、HAL_GPIO_WritePin、HAL_GPIO_ReadPin、HAL_GPIO_TogglePin
-
GPIO应用实例:LED控制、按键输入、蜂鸣器驱动
-
EXTI外部中断系统:EXTI线配置、触发方式选择、中断/事件选择
-
NVIC中断配置:优先级分组、抢占优先级与子优先级、中断使能
-
外部中断编程:中断服务函数编写、中断标志清除、消抖处理
-
SysTick定时器原理:24位递减计数器、重装载值计算、时钟源选择
-
SysTick库函数:HAL_SYSTICK_Config、SysTick中断处理
-
延时函数实现:基于SysTick的毫秒/微秒延时
-
综合实验1:按键控制LED灯(轮询与中断两种方式)
-
综合实验2:SysTick实现精确延时与周期性任务调度
专题九:STM32高级接口编程(定时器/ADC/DAC/DMA)
培训对象
-
中级嵌入式工程师
-
工业控制开发者
-
信号采集处理开发者
培训目标
-
掌握STM32定时器的多种工作模式
-
能够进行ADC/DAC配置与数据采集
-
掌握DMA数据传输技术
-
具备复杂外设驱动开发能力
培训内容介绍
-
STM32定时器分类:基本定时器(TIM6/TIM7)、通用定时器(TIM2-TIM5)、高级定时器(TIM1/TIM8)
-
定时器时基单元:预分频器PSC、自动重装载寄存器ARR、计数器CNT
-
定时器工作模式:向上计数、向下计数、中央对齐计数
-
输入捕获模式:频率测量、占空比测量、PWM输入
-
输出比较模式:PWM输出、单脉冲模式、比较中断
-
PWM应用实例:呼吸灯、直流电机调速、舵机控制
-
ADC模块结构:逐次逼近型ADC、规则组与注入组、扫描模式、连续转换模式
-
ADC配置参数:分辨率、采样时间、对齐方式、触发源
-
多通道ADC采集:规则通道序列、注入通道、DMA传输
-
DAC模块:8/12位DAC、输出缓冲、波形生成
-
DMA控制器:DMA1/DMA2特性、通道分配、传输模式(循环/正常)、数据宽度
-
DMA应用实例:存储器到存储器传输、外设到存储器传输(ADC采集)
专题十:STM32通信接口编程(UART/I2C/SPI/CAN/USB)
培训对象
-
嵌入式通信开发者
-
物联网设备开发者
-
工业控制工程师
培训目标
-
掌握UART串口通信协议与编程
-
能够进行I2C/SPI总线设备驱动开发
-
了解CAN总线在工业控制中的应用
-
具备多种通信接口的综合开发能力
培训内容介绍
-
串行通信基础:同步/异步、波特率、数据格式、奇偶校验
-
USART模块结构:发送器、接收器、波特率发生器、硬件流控
-
UART编程:HAL_UART_Transmit、HAL_UART_Receive、中断接收、DMA传输
-
UART应用实例:串口打印调试、与PC通信、蓝牙/WiFi模块连接
-
I2C总线协议:物理层、起始/停止条件、从机地址、数据传输
-
I2C硬件实现:时钟同步、仲裁机制、多主机通信
-
I2C编程:HAL_I2C_Master_Transmit/Receive、从机模式、DMA传输
-
I2C器件驱动:EEPROM(AT24Cxx)、温湿度传感器(SHT30)、姿态传感器(MPU6050)
-
SPI总线协议:4线制(SCK/MOSI/MISO/CS)、CPOL/CPHA模式配置
-
SPI编程:HAL_SPI_Transmit/Receive、DMA传输、双线全双工
-
SPI器件驱动:Flash存储(W25Qxx)、SD卡、OLED显示屏、以太网控制器(ENC28J60)
-
CAN总线与USB简介:CAN协议在工业控制中的应用、USB设备/主机开发基础
第三层次:ARM Cortex-A/Linux应用开发专题
本层次聚焦Cortex-A系列处理器上的Linux系统开发,掌握嵌入式Linux的完整开发流程。
专题十一:Cortex-A内核体系结构详解
培训对象
-
Cortex-A开发者
-
嵌入式Linux工程师
-
系统软件开发者
培训目标
-
深入理解Cortex-A内核的体系结构
-
掌握MMU内存管理单元的工作原理
-
理解多核处理器的缓存一致性
-
为后续Linux底层开发打下基础
培训内容介绍
-
Cortex-A系列概述:A5/A7/A8/A9/A15/A53/A72/A76特性对比
-
处理器工作模式:用户模式、FIQ模式、IRQ模式、管理模式、中止模式、未定义模式、监控模式
-
寄存器组织:通用寄存器、专用寄存器、banked寄存器
-
MMU内存管理单元:虚拟地址到物理地址的转换、页表结构(一级/二级页表)
-
TLB和Cache:TLB刷新策略、Cache策略(写通/写回)、Cache一致性
-
多核架构:SMP对称多处理、big.LITTLE大小核架构、CCI缓存一致性互联
-
GIC通用中断控制器:GICv2/GICv3架构、中断类型(SGI/PPI/SPI)、中断路由
-
电源管理:DVFS动态电压频率调节、WFI/WFE低功耗等待、电源域管理
-
TrustZone安全扩展:安全世界与普通世界、监控模式切换
-
NEON媒体处理引擎:SIMD指令集、向量处理、多媒体加速
-
调试与跟踪:CoreSight调试架构、ETM嵌入式跟踪宏单元
-
典型Cortex-A处理器:Exynos4412(Cortex-A9)、i.MX6(Cortex-A9)、树莓派(Cortex-A72)
专题十二:ARM嵌入式Linux开发环境搭建
培训对象
-
嵌入式Linux初学者
-
应用开发者转向底层开发
-
系统集成工程师
培训目标
培训内容介绍
-
嵌入式Linux开发模式:宿主机-目标机交叉开发、交叉编译概念
-
开发环境准备:Linux主机安装(Ubuntu/CentOS)、虚拟机配置
-
交叉编译工具链:arm-linux-gnueabihf-gcc、工具链组成(编译器/链接器/调试器)
-
工具链获取方式:Linaro预编译工具链、从源码构建交叉工具链
-
基础工具安装:TFTP服务器、NFS服务器、串口终端(minicom/putty)
-
源代码管理:从半导体厂商获取BSP包(NXP/ST/三星)
-
Bootloader编译:U-Boot源码获取、配置、编译、烧写
-
Linux内核编译:内核源码获取、配置(make menuconfig)、编译、模块编译
-
根文件系统构建:BusyBox工具集、构建最小根文件系统
-
文件系统镜像制作:ramdisk、jffs2、ubifs、ext4格式
-
烧写与启动:通过SD卡/TFTP/NFS启动系统
-
综合实战:为树莓派/BeagleBone/IMX6平台搭建完整开发环境
专题十三:Bootloader(U-Boot)移植与开发
培训对象
-
底层系统软件工程师
-
BSP开发工程师
-
嵌入式Linux工程师
培训目标
-
掌握U-Boot的启动流程与架构
-
能够进行U-Boot的移植与配置
-
熟悉U-Boot命令系统与环境变量
-
具备Bootloader级调试能力
培训内容介绍
-
Bootloader作用:硬件初始化、加载内核、传递启动参数
-
U-Boot概述:Das U-Boot、支持架构、代码结构
-
U-Boot启动流程:SPL(Secondary Program Loader)、U-Boot proper的两阶段启动
-
板级配置:board目录结构、板级配置文件、头文件定义
-
设备树支持:FDT扁平设备树、U-Boot对设备树的处理
-
驱动模型(Driver Model):U-Boot的DM框架、串口/网卡驱动移植
-
命令系统:U-Boot命令实现机制、常用命令(printenv/setenv/bootm/tftp/fatload)
-
环境变量:env存储位置(Flash/EMMP/MMC/SD)、默认环境变量设置
-
网络启动:TFTP协议实现、通过TFTP下载内核和设备树
-
启动内核:bootm/bootz命令、内核启动参数(bootargs)设置
-
U-Boot移植实战:为新板卡添加U-Boot支持
-
调试技巧:串口调试输出、JTAG调试U-Boot
专题十四:Linux内核裁剪与移植
培训对象
培训目标
-
掌握Linux内核源码结构与配置方法
-
能够根据硬件平台进行内核移植
-
熟悉设备树的编写与调试
-
具备内核裁剪与优化能力
培训内容介绍
-
Linux内核源码结构:arch/block/drivers/fs/include/init/kernel/mm/net
-
内核配置系统:Kconfig语法、Makefile、配置选项依赖关系
-
内核编译系统:顶层Makefile、architecture Makefile、模块编译
-
内核启动流程:head.S启动汇编、start_kernel初始化、rest_init创建内核线程
-
架构相关代码:arm/arm64目录结构、处理器初始化、中断控制器初始化
-
时钟系统:clk框架、时钟驱动实现、设备树时钟绑定
-
引脚控制:pinctrl框架、引脚复用配置、设备树pinctrl绑定
-
设备树(Device Tree):dts/dtsi文件语法、节点属性、绑定文档
-
设备树编译:dtc编译器、dtb二进制格式、内核解析过程
-
内核裁剪方法:去掉未使用驱动、模块化配置、内核特性裁剪
-
内核调试手段:printk调试、proc文件系统、sysfs接口、oops信息分析
-
综合实战:为新ARM平台移植Linux内核
专题十五:根文件系统构建与定制
培训对象
培训目标
-
掌握根文件系统的目录结构与作用
-
能够使用BusyBox构建最小根文件系统
-
熟悉Buildroot/Yocto等构建工具
-
具备文件系统定制与优化能力
培训内容介绍
-
根文件系统目录标准:FHS标准、/bin/sbin/etc/dev/proc/sys/usr/var目录作用
-
设备节点:/dev目录、静态设备节点与devfs、mdev/udev动态管理
-
初始化进程:init程序、inittab配置文件、启动脚本
-
BusyBox工具集:单一二进制文件、配置文件、编译选项、安装
-
系统启动脚本:/etc/init.d/rcS、服务启动顺序、自启动程序
-
库文件管理:动态库与静态库、ldconfig配置、库依赖关系
-
Buildroot构建系统:配置界面、包管理、工具链生成、文件系统生成
-
Yocto项目:Poky参考发行版、BitBake工具、recipe编写、layer管理
-
文件系统类型:ramdisk、initramfs、jffs2、ubifs、ext4、squashfs
-
根文件系统烧写:通过uboot烧写、分区划分、升级策略
-
根文件系统优化:大小优化、启动速度优化、只读文件系统
-
综合实战:基于Buildroot构建完整嵌入式Linux系统
专题十六:ARM Linux设备驱动程序开发
培训对象
培训目标
-
掌握Linux设备驱动模型与框架
-
能够编写字符设备驱动
-
熟悉设备树与驱动绑定机制
-
具备中断处理与并发控制能力
培训内容介绍
-
Linux设备驱动分类:字符设备、块设备、网络设备
-
驱动模块基础:模块加载/卸载、许可证声明、模块参数
-
字符设备驱动框架:cdev结构、设备号分配、file_operations实现
-
设备文件操作:open/release/read/write/ioctl/llseek
-
设备树与驱动匹配:compatible属性、of_match_table、platform_driver
-
platform设备驱动:platform_bus、platform_device、platform_driver注册
-
中断处理:request_irq、中断处理函数、顶半部/底半部(tasklet/workqueue)
-
并发控制:自旋锁、互斥锁、信号量、RCU机制
-
内存管理:kmalloc/kfree、dma_alloc_coherent、ioremap
-
时间管理:内核定时器、高精度定时器、delay函数
-
设备模型:kobject/ktype/kset、sysfs接口、uevent机制
-
综合实战:GPIO驱动、I2C驱动、SPI驱动开发实例
专题十七:ARM Linux应用开发与调试
培训对象
-
嵌入式应用开发者
-
物联网应用开发者
-
系统集成工程师
培训目标
-
掌握嵌入式Linux应用开发方法
-
能够进行多线程/多进程编程
-
熟悉网络编程与IPC通信
-
具备应用调试与性能优化能力
培训内容介绍
-
交叉编译应用:使用交叉工具链编译应用程序
-
文件I/O编程:标准C库文件操作、Linux系统调用、文件描述符
-
进程管理:fork/exec/wait、孤儿进程/僵尸进程、守护进程编写
-
进程间通信(IPC):管道、FIFO、消息队列、共享内存、信号量
-
多线程编程:pthread库、线程创建/同步、互斥锁、条件变量
-
网络编程:socket编程、TCP/UDP协议、select/poll/epoll模型
-
串口编程:termios结构、波特率设置、数据格式配置
-
设备文件操作:操作GPIO/I2C/SPI设备文件、ioctl调用
-
数据库应用:SQLite移植与应用开发
-
Web服务器集成:Boa/Lighttpd/Nginx嵌入式Web服务器配置
-
调试工具:gdb调试、strace跟踪系统调用、valgrind内存检测
-
性能优化:代码剖析(gprof)、资源监控(top/ps)、启动速度优化
第四层次:ARM嵌入式实时操作系统专题
本层次聚焦ARM平台上的实时操作系统应用,掌握RTOS的任务调度、同步通信机制,满足实时控制需求。
专题十八:嵌入式实时操作系统基础与选型
培训对象
-
嵌入式软件工程师
-
实时控制系统开发者
-
操作系统初学者
培训目标
-
掌握实时操作系统的基本概念
-
理解任务管理、调度、同步通信机制
-
能够根据项目需求选择合适的RTOS
-
为后续RTOS移植与应用打下基础
培训内容介绍
-
实时系统概念:硬实时、软实时、确定性、响应时间
-
RTOS与裸机系统对比:多任务优势、资源开销、开发复杂度
-
任务管理:任务状态(就绪/运行/阻塞/挂起)、任务控制块、任务堆栈
-
任务调度算法:优先级抢占调度、时间片轮转、速率单调调度
-
任务间通信:信号量、消息队列、邮箱、管道、事件标志
-
同步与互斥:互斥信号量、优先级反转与继承、死锁预防
-
时间管理:系统时钟、软件定时器、延时处理
-
内存管理:静态内存分配、动态内存分配、内存碎片处理
-
中断管理:中断延迟、中断嵌套、中断与任务同步
-
主流RTOS对比:FreeRTOS、RT-Thread、uC/OS-II/III、Azure RTOS ThreadX
-
RTOS选型因素:内核大小、实时性能、生态支持、认证情况(IEC 61508/DO-178C)
-
RTOS在ARM平台的应用现状:Cortex-M为主力、Cortex-A的AMP/SMP模式
专题十九:FreeRTOS在ARM上的移植与应用
培训对象
-
嵌入式软件工程师
-
IoT设备开发者
-
从裸机转向RTOS的开发者
培训目标
-
掌握FreeRTOS的内核架构与API
-
能够进行FreeRTOS在ARM上的移植
-
掌握多任务编程方法
-
具备基于FreeRTOS的应用开发能力
培训内容介绍
-
FreeRTOS概述:MIT许可证、轻量级内核、广泛应用
-
内核架构:任务调度器、队列管理、时间管理、内存管理
-
源码结构:tasks.c/queue.c/timers.c/event_groups.c/portable目录
-
ARM Cortex-M移植层:port.c、portmacro.h、底层汇编接口
-
任务创建与管理:xTaskCreate、任务优先级、任务删除/挂起/恢复
-
任务间通信:队列(xQueueSend/xQueueReceive)、消息传递
-
同步机制:二值信号量、计数信号量、互斥信号量
-
事件标志组:事件位操作、同步多事件
-
软件定时器:单次定时器、周期定时器、定时器回调
-
内存管理方案:heap_1到heap_5的特点与选择
-
中断处理:延迟中断处理、从ISR发送信号量/消息
-
综合实战:基于FreeRTOS的多任务温湿度采集与显示系统
专题二十:RT-Thread在ARM上的移植与应用
培训对象
-
国产RTOS使用者
-
IoT设备开发者
-
对组件生态有需求的开发者
培训目标
-
掌握RT-Thread的内核架构与特色
-
能够进行RT-Thread在ARM上的移植
-
熟悉RT-Thread设备驱动框架
-
具备基于RT-Thread的物联网应用开发能力
培训内容介绍
-
RT-Thread概述:国产开源RTOS、POSIX兼容、组件丰富
-
内核架构:对象管理、内核对象模型、静态/动态对象创建
-
启动流程:汇编启动、C语言初始化、自动初始化机制
-
线程管理:线程创建/启动、时间片轮转、线程调度器
-
线程间同步:信号量、互斥量、事件集
-
线程间通信:邮箱、消息队列、信号
-
异步中断处理:工作队列、异步信号
-
设备驱动框架:I/O设备模型、设备驱动接口、自动初始化
-
虚拟文件系统:DFS框架、支持文件系统类型(FAT/ELM/littlefs)
-
网络框架:LwIP集成、SAL套接字抽象层
-
组件生态:AT组件、Sensors框架、Micropython、LVGL图形库
-
综合实战:基于RT-Thread的智能家居网关开发
专题二十一:Azure RTOS ThreadX在ARM上的移植与应用
培训对象
-
安全关键系统开发者
-
工业控制/医疗设备开发者
-
对RTOS认证有需求的工程师
培训目标
培训内容介绍
-
ThreadX概述:微软Azure RTOS组件、picokernel架构、高度优化
-
ThreadX特点:极小内核(<10KB)、快速中断响应、先进调度算法
-
安全认证:IEC 61508 SIL4、IEC 62304 Class C、ISO 26262 ASIL D、EN 50128
-
内核架构:tx_kernel.h、tx_api.h、tx_port.h移植层
-
ARM Cortex-M移植:中断向量表配置、SysTick配置、底层汇编接口
-
线程管理:tx_thread_create、优先级抢占阈值、时间片调度
-
线程间通信:队列(tx_queue)、事件标志(tx_event_flags)
-
同步机制:互斥量(tx_mutex)、信号量(tx_semaphore)
-
内存管理:字节池(tx_byte_pool)、块池(tx_block_pool)
-
定时器管理:应用程序定时器(tx_timer)
-
组件生态:NetX Duo(TCP/IP)、FileX(FAT文件系统)、GUIX(图形界面)、USBX(USB协议栈)
-
综合实战:基于ThreadX的工业数据采集与控制设备开发
专题二十二:uC/OS-II/III在ARM上的移植与应用
培训对象
-
传统RTOS用户
-
航空航天/医疗设备开发者
-
对源码学习有兴趣的开发者
培训目标
-
掌握uC/OS-II/III的内核架构
-
能够进行uC/OS在ARM上的移植
-
理解uC/OS-III的先进特性
-
具备基于uC/OS的高可靠应用开发能力
培训内容介绍
-
uC/OS发展历程:uC/OS-I、uC/OS-II(1998)、uC/OS-III(2009)
-
uC/OS-II特点:稳定可靠、代码清晰、航空航天应用
-
uC/OS-III新特性:无限任务数量、同时多优先级、时间片轮转、直接发布消息
-
源码结构:内核源码(os_)、配置文件(os_cfg.h)、移植层(os_cpu_)
-
ARM Cortex-M移植:os_cpu_a.asm汇编接口、os_cpu_c.c钩子函数、os_cpu.h
-
任务管理:OSTaskCreate、任务优先级、任务堆栈、任务控制块
-
调度机制:优先级就绪表、查表算法、调度器上锁
-
任务间通信:消息队列、消息邮箱、消息管道
-
同步机制:信号量、互斥信号量、事件标志
-
时间管理:系统时钟节拍、任务延时、定时器管理
-
内存管理:动态内存分区、固定大小内存块
-
综合实战:基于uC/OS-II/III的飞控计算机/医疗设备软件开发
第五层次:ARM系统级设计与FPGA集成专题
本层次面向系统级设计,涵盖ARM SoC架构、FPGA集成、软核处理器设计等高级主题。
专题二十三:ARM SoC系统架构设计
培训对象
培训目标
-
掌握ARM SoC的系统架构设计方法
-
理解AMBA总线协议与互联架构
-
熟悉ARM处理器与系统IP的集成
-
具备SoC系统级设计能力
培训内容介绍
-
SoC设计概述:单芯片系统、IP复用、软硬件协同设计
-
ARM SoC架构:处理器簇、内存系统、外设互联、电源管理
-
AMBA总线协议:AHB高性能总线、ASB系统总线、APB外设总线
-
AXI高级扩展接口:AXI4协议、通道结构、突发传输、乱序传输
-
ACE/CHI一致性扩展:缓存一致性协议、多核互联
-
内存系统设计:多级缓存(L1/L2/L3)、TCM紧耦合内存、DDR控制器
-
中断系统设计:GIC-400/GIC-600配置、中断路由、中断优先级
-
时钟与复位设计:时钟门控、多时钟域处理、复位同步
-
电源管理设计:电源域划分、DVFS实现、低功耗模式
-
安全系统设计:TrustZone架构、安全内存分区、加密引擎集成
-
调试与跟踪设计:CoreSight调试架构、ETM/PTM、STM系统跟踪宏单元
-
综合研讨:典型ARM SoC架构案例分析(手机SoC/汽车SoC/IoT SoC)
专题二十四:基于FPGA的ARM Cortex-M软核设计
培训对象
-
FPGA设计工程师
-
嵌入式系统开发者
-
自定义处理器需求者
培训目标
-
掌握ARM Cortex-M软核处理器的特点
-
能够进行软核处理器的配置与集成
-
熟悉FPGA上的软硬件协同设计流程
-
具备自定义ARM系统的开发能力
培训内容介绍
-
软核处理器概念:硬核vs软核、ARM软核选项(Cortex-M1/M3 DesignStart)
-
Arm DesignStart计划:免费获取ARM Cortex-M处理器IP
-
Cortex-M1处理器:面向FPGA优化、三级流水线、AHB-Lite接口
-
Cortex-M3 DesignStart:完整M3内核、FPGA评估版、商用授权
-
FPGA平台选择:Xilinx/Altera/国产FPGA对ARM软核的支持
-
处理器配置:内存大小、外设选择、调试接口配置
-
系统集成:添加AHB/APB外设、内存控制器、中断控制器
-
总线互联设计:多主多从系统、总线矩阵、地址译码
-
FPGA实现流程:综合、布局布线、时序约束、bitstream生成
-
软件开发生态:MDK/IAR/AC6编译器支持、CMSIS库、调试接口
-
软硬件协同验证:RTL仿真、FPGA原型验证、软件调试
-
综合实战:在FPGA上构建完整的Cortex-M3 SoC系统
专题二十五:ARM与FPGA的高速接口设计
培训对象
培训目标
培训内容介绍
-
ARM+FPGA异构架构:处理器与可编程逻辑的协同工作
-
Xilinx Zynq系列:PS(处理系统)+PL(可编程逻辑)、AXI互联
-
Intel SoC FPGA:ARM Cortex-A硬核+FPGA、HPS-FPGA接口
-
国产FPGA方案:复旦微、紫光同创、安路科技的ARM+FPGA产品
-
AXI总线接口设计:AXI4(高性能)、AXI4-Lite(控制)、AXI4-Stream(流数据)
-
AXI互联机制:AXI Interconnect、AXI SmartConnect、AXI Direct Memory Access
-
高性能数据传输:DMA引擎、AXI DMA、VDMA视频DMA
-
数据缓存一致性:ACP加速器一致性端口、CCI缓存一致性互联
-
低延迟接口:OCM片上内存共享、事件通知机制
-
中断互联:PL-PS中断映射、中断控制器配置
-
硬件加速器设计:在PL中实现算法加速器、通过AXI与ARM交互
-
综合实战:基于Zynq的图像处理加速系统设计
专题二十六:ARM系统低功耗设计与优化
培训对象
-
低功耗嵌入式工程师
-
IoT设备开发者
-
电池供电产品设计者
培训目标
-
掌握ARM系统的低功耗设计方法
-
能够进行动态电压频率调节(DVFS)
-
熟悉多种低功耗模式与唤醒源配置
-
具备电池供电产品的功耗优化能力
培训内容介绍
-
功耗来源分析:动态功耗(开关电流)、静态功耗(漏电流)
-
功耗指标:平均功耗、峰值功耗、待机功耗、能效比
-
Cortex-M低功耗模式:睡眠模式、深度睡眠模式、待机模式、关机模式
-
Cortex-A低功耗特性:WFI/WFE等待指令、电源门控、时钟门控
-
动态电压频率调节(DVFS):PLL动态调频、调压器配置、性能-功耗权衡
-
时钟管理:外设时钟门控、总线时钟降频、异步时钟设计
-
电源域管理:Always-on域、备份域、核心域独立控制
-
外设低功耗设计:外设空闲自动关断、DMA代替CPU传输
-
内存系统优化:Flash/SRAM低功耗模式、代码在RAM中执行
-
RTOS低功耗策略:Tickless模式、任务聚合、空转钩子函数
-
功耗测量与调试:功耗分析仪使用、电流波形分析、Profiling工具
-
综合实战:物联网传感器节点低功耗设计(年功耗<1mAh)
第六层次:ARM物联网与安全应用专题
本层次聚焦ARM在物联网领域的应用,涵盖云平台对接、安全技术、固件保护等主题。
专题二十七:ARM物联网应用与云平台对接
培训对象
培训目标
-
掌握ARM物联网应用的典型架构
-
能够进行WiFi/4G/NB-IoT模块驱动开发
-
熟悉主流物联网云平台对接协议
-
具备完整的物联网应用开发能力
培训内容介绍
-
物联网系统架构:感知层、网络层、平台层、应用层
-
ARM在物联网中的角色:Cortex-M终端设备、Cortex-A网关
-
无线通信模块驱动:ESP8266/ESP32 WiFi模块、AT指令集
-
4G/NB-IoT模块驱动:EC20/BC26模块、TCP/IP协议栈移植
-
MQTT协议:发布订阅模式、QoS等级、KeepAlive机制
-
CoAP协议:RESTful风格、基于UDP、适用于资源受限设备
-
HTTP/HTTPS:REST API调用、JSON数据格式、SSL/TLS加密
-
主流物联网云平台:阿里云IoT、腾讯云IoT、华为云IoT、AWS IoT
-
设备连接与认证:设备证书、密钥认证、一机一密
-
数据上报与命令下发:属性上报、事件上报、服务调用
-
OTA远程升级:固件分包下载、校验机制、回滚策略
-
综合实战:基于STM32+ESP8266的阿里云IoT温湿度监测系统
专题二十八:ARM TrustZone安全技术
培训对象
-
安全嵌入式工程师
-
系统安全开发者
-
支付/认证产品开发者
培训目标
-
掌握TrustZone技术的原理与架构
-
能够进行安全世界与普通世界的切换
-
熟悉安全启动与可信执行环境
-
具备基于TrustZone的安全应用开发能力
培训内容介绍
-
TrustZone概述:ARM的安全扩展、系统级安全方案
-
TrustZone架构:安全世界(Secure World)与普通世界(Normal World)
-
处理器对TrustZone的支持:Cortex-A的Monitor模式、Cortex-M的TrustZone-M
-
内存安全隔离:TZASC(地址空间控制器)、安全/普通内存划分
-
外设安全隔离:TZPC(外设控制器)、外设访问权限配置
-
中断安全处理:安全中断与普通中断、Monitor模式中断路由
-
安全启动流程:信任链建立、固件验证、回滚保护
-
可信执行环境(TEE):OP-TEE开源项目、安全服务调用
-
安全存储:密钥存储、数据加密、防物理攻击
-
TrustZone-M特点:面向Cortex-M33/M23、简化安全方案
-
安全认证应用:指纹识别、移动支付、数字版权管理
-
综合实战:基于TrustZone的加密数据存储系统
专题二十九:ARM MPU内存保护单元与安全编程
培训对象
-
安全关键系统开发者
-
功能安全工程师
-
RTOS应用开发者
培训目标
-
掌握MPU的原理与配置方法
-
能够进行内存区域划分与权限设置
-
理解MPU在功能安全中的作用
-
具备基于MPU的安全编程能力
培训内容介绍
-
MPU概述:内存保护单元的作用、与MMU的区别
-
Cortex-M3/M4/M7的MPU:8个/12/16个内存区域、子区域划分
-
MPU寄存器配置:MPU_TYPE、MPU_CTRL、MPU_RNR、MPU_RBAR、MPU_RASR
-
内存区域属性:起始地址、大小、读写权限、可执行权限
-
子区域控制:将内存区域划分为8个子区域、独立使能
-
重叠区域处理:区域优先级规则、重叠区域的访问权限
-
MPU与RTOS:为任务栈/内核/应用划分不同权限区域
-
特权级与用户级:通过MPU实现用户模式内存隔离
-
堆栈溢出检测:使用MPU检测任务栈溢出、故障处理
-
功能安全应用:防止野指针访问、限制代码执行区域
-
MPU故障处理:MemManage Fault、故障分析与恢复
-
综合实战:基于MPU的RTOS内存隔离与保护实现
专题三十:ARM安全启动与固件加密
培训对象
-
固件安全工程师
-
产品防抄版开发者
-
嵌入式安全开发者
培训目标
-
掌握安全启动的原理与实现方法
-
能够进行固件加密与签名验证
-
熟悉密钥管理与存储方案
-
具备产品防抄版与防逆向能力
培训内容介绍
-
安全威胁分析:固件提取、逆向工程、篡改攻击、克隆复制
-
安全启动概念:信任根、信任链、逐级验证
-
硬件信任根:ROM Bootloader、OTP密钥存储、efuse
-
数字签名原理:哈希算法(SHA256)、非对称加密(RSA/ECC)
-
固件签名流程:镜像计算哈希、私钥签名、签名附加
-
安全启动流程:BootROM验证U-Boot、U-Boot验证内核、内核验证应用
-
固件加密存储:AES加密、密钥保护、动态解密
-
密钥管理:密钥分级、密钥注入、密钥更新机制
-
OTP/eFuse配置:一次性可编程存储器、安全状态设置
-
防回滚保护:版本号检查、OTP版本记录
-
实时完整性校验:运行时代码校验、篡改检测
-
综合实战:基于STM32H7的固件加密与安全启动实现
第七层次:ARM项目实战与认证专题
本层次通过完整项目案例,综合运用所学知识,培养独立开发能力,并指导ARM开发工程师认证。
专题三十一:基于ARM的工业控制项目实战
培训对象
培训目标
-
掌握工业控制系统的典型架构
-
能够进行PID算法实现与调试
-
熟悉工业通信协议(Modbus/CANopen)
-
具备完整工业控制项目开发能力
培训内容介绍
-
工业控制系统概述:PLC、DCS、工业控制器、HMI
-
项目需求分析:IO点数、控制周期、通信协议、可靠性要求
-
硬件平台选型:基于STM32F4/H7或Cortex-A的工业控制器
-
模拟量采集:4-20mA/0-10V信号调理、ADC配置、滤波算法
-
开关量输入输出:光耦隔离、继电器驱动、状态检测
-
PID控制算法:位置式PID、增量式PID、积分分离、抗积分饱和
-
PWM输出控制:电机调速、加热器功率控制、SSR驱动
-
Modbus协议实现:Modbus RTU/ASCII、主机/从机模式实现
-
CANopen协议:对象字典、PDO/SDO配置、网络管理
-
人机界面设计:LCD显示屏、触摸屏、菜单系统实现
-
数据记录与追溯:SD卡存储、FATFS文件系统、历史数据查询
-
综合实战:基于STM32的温控/电机控制系统完整实现
专题三十二:基于ARM的智能家居/物联网项目实战
培训对象
培训目标
-
掌握智能家居产品的完整开发流程
-
能够进行WiFi/蓝牙/BLE模块集成
-
熟悉移动端APP与云端对接
-
具备物联网产品落地能力
培训内容介绍
-
智能家居系统架构:终端设备、网关、云平台、APP
-
项目需求分析:智能插座/智能灯/环境监测仪功能定义
-
硬件平台选型:STM32+ESP8266/ESP32、低功耗设计
-
WiFi通信实现:SmartConfig配网、断线重连、TCP/UDP通信
-
蓝牙/BLE应用:蓝牙配对、数据传输、ibeacon定位
-
传感器集成:温湿度(DHT22/SHT30)、光照(BH1750)、人体红外(HC-SR501)
-
执行器控制:继电器控制、PWM调光、电机驱动
-
MQTT协议实现:连接阿里云IoT/腾讯云IoT、属性上报、命令下发
-
低功耗设计:睡眠模式、唤醒源配置、电池电量监测
-
移动端APP开发:Android/iOS简易APP、微信小程序开发
-
OTA远程升级:固件分包下载、升级校验、回滚保护
-
综合实战:智能家居网关/智能插座/环境监测仪完整项目
专题三十三:ARM开发工程师认证辅导
培训对象
-
求职嵌入式岗位的应届生
-
希望获得认证的开发者
-
企业培训人员
培训目标
-
梳理ARM开发知识体系
-
掌握常见考点与面试题
-
进行项目实战演练
-
获得ARM开发工程师认证
培训内容介绍
-
认证体系介绍:ARM Accredited Engineer、芯片公司认证(ST/NXP/Microchip)
-
基础知识考点:ARM体系结构、寄存器、工作模式、异常处理
-
编程技能考点:汇编指令、C语言混合编程、CMSIS标准
-
外设驱动考点:GPIO/EXTI/Timer/ADC/UART/I2C/SPI
-
RTOS考点:任务管理、调度算法、同步通信、优先级反转
-
嵌入式Linux考点:交叉编译、Bootloader、内核移植、驱动开发
-
真题模拟演练:选择题、填空题、编程题、问答题
-
面试常见问题:技术面试题、项目经验问答、系统设计题
-
项目实战答辩:完整项目展示、技术难点讲解、设计决策分析
-
上机实操考试:限时完成指定功能开发与调试
-
认证考试流程:报名方式、考试形式、评分标准、证书获取
-
职业发展指导:嵌入式岗位分类、薪资水平、学习路径规划
选修路径建议
如果您想学习本课程,请
预约报名
如果没找到合适的课程或有特殊培训需求,请
订制培训
除培训外,同时提供相关技术咨询与技术支持服务,有需求请发需求表到邮箱soft@info-soft.cn,或致电4007991916
技术服务需求表下载请点击
服务优势:
丰富专家资源,精准匹配相关行业,相关项目技术精英,面向用户实际需求,针对性培训或咨询,互动式交流,案例教学,精品小班,实际工程项目经验分享,快捷高效,节省时间与金钱,少走弯路与错路。
专家力量:
中国科学院相关研究所高级研究人员
西门子,TI,vmware,MSC,Ansys,MDI,Mentor, candence,Altium,Atmel 、Freescale,达索,华为等
大型公司高级工程师,项目经理,技术支持专家
中科信软培训中心,资深专家或讲师
大多名牌大学,硕士以上学历,相关学历背景专业,理论素养高
多年实际项目实践,大型复杂项目实战案例分享,热情,乐于技术分享
针对客户实际需要,真实案例演示,互动式沟通,学有所值