“ARM体系结构与程序设计”课程教学大纲教研室主任:黄勇坚执笔人:黄勇坚一、课程基本信息开课单位:物理工程学院课程名称:ARM体系结构与程序设计课程编号:073308英文名称:ARMArchitectureandProgramming课程类型:专业方向限选课总学时:54理论学时:36实验学时:18学分:3开设专业:通信工程先修课程:C语言程序设计、微机原理与接口技术、单片机原理与应用二、课程任务目标(一)课程任务本课程是通信工程专业方向限选课,目前ARM系统技术开发已经广泛的应用于消费电子、网络通信、工业控制、军事国防等各个领域。本课程以Cortex-M3内核的STM32F107ARM芯片为基础,以"Cortex开发套件”为硬件开发平台,MDK-ARM为软件开发环境,基于STM32固件库的编程方法,通过本课程的教学,使学生了解Cortex-M3ARM芯片架构原理及STM32F107基础和高级应用,掌握ARM系统软硬件设计的基本方法,进一步培养学生实际动手能力(二)课程目标在学完本课程之后,学生能够:1.掌握Cortext-M3内核的基本架构和工作原理:2.了解并掌握STM32的指令系统、固件库结构及程序设计方法:3.比较熟练地使用MDK-ARM开发工具进行ARM开发板的编程及调试:4.根据实际设计需要熟练应用STM32F107的各种片内外设和接口进行编程、系统扩展及开发等;5.了解实时操作系统μC/OS,并学会用μC/OS开发小型应用系统。三、教学内容和要求(一)理论教学的内容及要求
“ARM 体系结构与程序设计”课程教学大纲 教研室主任: 黄勇坚 执笔人:黄勇坚 一、课程基本信息 开课单位:物理工程学院 课程名称:ARM 体系结构与程序设计 课程编号:073308 英文名称:ARM Architecture and Programming 课程类型:专业方向限选课 总 学 时:54 理论学时:36 实验学时:18 学 分:3 开设专业:通信工程 先修课程:C 语言程序设计、微机原理与接口技术、单片机原理与应用 二、课程任务目标 (一)课程任务 本课程是通信工程专业方向限选课,目前 ARM 系统技术开发已经广泛的应用于消费电子、网 络通信、工业控制、军事国防等各个领域。本课程以 Cortex-M3 内核的 STM32F107 ARM 芯片为基 础,以“Cortex 开发套件”为硬件开发平台,MDK-ARM 为软件开发环境,基于 STM32 固件库的编程 方法,通过本课程的教学,使学生了解 Cortex-M3 ARM 芯片架构原理及 STM32F107 基础和高级应 用,掌握 ARM 系统软硬件设计的基本方法,进一步培养学生实际动手能力。 (二)课程目标 在学完本课程之后,学生能够: 1.掌握 Cortext-M3 内核的基本架构和工作原理; 2.了解并掌握 STM32 的指令系统、固件库结构及程序设计方法; 3. 比较熟练地使用 MDK-ARM 开发工具进行 ARM 开发板的编程及调试; 4. 根据实际设计需要熟练应用 STM32F107 的各种片内外设和接口进行编程、系统扩展及开发 等; 5.了解实时操作系统 µC/OS,并学会用 µC/OS 开发小型应用系统。 三、教学内容和要求 (一)理论教学的内容及要求
第一章概述第一节ARM体系概述1.了解ARM的含义。第二节Cortex内核1.理解Cortex-M3内核的特点。第三节CM3指令集1.了解Cortex-M3的指令集。第四节STM32系列MCU1.理解STM32系列MCU的分类。第五节STM32固件库1.了解CMSIS的含义;2.掌握STM32固件库的含义和结构。第六节开发工具1.掌握STM32F107开发工具MDK-ARM的使用。本章重点:ARM的含义,Cortex-M3内核的特点,STM32固件库的含义和结构,STM32F107的开发工具MDK-ARM。本章难点:Cortex-M3内核的特点,STM32固件库的含义和结构。第二章STM32F107内核架构第一节内核架构1.理解CM3内核与STM32F107架构关系。第二节存储器组织1.理解STM32F107的存储器组织。第三节存储器映像1.理解STM32F107的存储器映像,了解位带别名区地址计算方法。第四节寄存器组1.了解STM32F107的寄存器组的功能。第五节堆栈1.了解CM3的堆栈特点:2.了解CM3的双堆栈机制及各自作用。第六节电源管理1.理解电源管理模式
第一章 概述 第一节 ARM 体系概述 1.了解 ARM 的含义。 第二节 Cortex 内核 1.理解 Cortex-M3 内核的特点。 第三节 CM3 指令集 1.了解 Cortex-M3 的指令集。 第四节 STM32 系列 MCU 1.理解 STM32 系列 MCU 的分类。 第五节 STM32 固件库 1. 了解 CMSIS 的含义; 2. 掌握 STM32 固件库的含义和结构。 第六节 开发工具 1. 掌握 STM32F107 开发工具 MDK-ARM 的使用。 本章重点:ARM 的含义,Cortex-M3 内核的特点,STM32 固件库的含义和结构,STM32F107 的开发工具 MDK-ARM。 本章难点:Cortex-M3 内核的特点,STM32 固件库的含义和结构。 第二章 STM32F107 内核架构 第一节 内核架构 1. 理解 CM3 内核与 STM32F107 架构关系。 第二节 存储器组织 1. 理解 STM32F107 的存储器组织。 第三节 存储器映像 1. 理解 STM32F107 的存储器映像,了解位带别名区地址计算方法。 第四节 寄存器组 1. 了解 STM32F107 的寄存器组的功能。 第五节 堆栈 1.了解 CM3 的堆栈特点; 2. 了解 CM3 的双堆栈机制及各自作用。 第六节 电源管理 1. 理解电源管理模式
第七节复位和启动配置1.理解CM3的复位序列;2.掌握STM32F107启动配置方法。第八节时钟1.理解STM32F107的时钟系统;2.掌握时钟初始化方法。本章重点:CM3内核与STM32F107架构关系,TM32F107的存储器映像,位带别名区地址计算方法,CM3的复位序列,STM32F107启动配置方法,STM32F107的时钟系统。本章难点:STM32F107的存储器映像,位带别名区地址计算方法,CM3的复位序列。第三章GPIO和AFIO第一节通用I0和复用功能1.理解GPIO的不同功能模式:2.掌握GPIO配置方法;3.掌握GPIO库函数使用;4.理解复用功能AFIO第二节复用功能IO重映射1.掌握复用功能I0重映射。第三节GPIO编程实例1.掌握AFIO库函数的使用。本章重点:GPIO的不同功能模式,GPIO配置方法,GPIO库函数使用,复用功能AFIO,复用功能10重映射。本章难点:GPIO库函数使用,复用功能AFIO,复用功能IO重映射。第四章NVIC和EXTI第一节CM3异常和中断系统1.理解CM3内核的异常/中断处理机制:2.理解CM3的优先级概念。第二节中断向量1.理解(异常)向量表,掌握中断配置。第三节NVIC库函数配置1.掌握NVIC库函数配置。第四节外部中断/事件控制器EXTI
第七节 复位和启动配置 1. 理解 CM3 的复位序列; 2. 掌握 STM32F107 启动配置方法。 第八节 时钟 1.理解 STM32F107 的时钟系统; 2.掌握时钟初始化方法。 本章重点:CM3 内核与 STM32F107 架构关系,TM32F107 的存储器映像,位带别名区地址计 算方法,CM3 的复位序列,STM32F107 启动配置方法,STM32F107 的时钟系统。 本章难点:STM32F107 的存储器映像,位带别名区地址计算方法,CM3 的复位序列。 第三章 GPIO 和 AFIO 第一节 通用 IO 和复用功能 1.理解 GPIO 的不同功能模式; 2.掌握 GPIO 配置方法; 3.掌握 GPIO 库函数使用; 4.理解复用功能 AFIO 第二节 复用功能 IO 重映射 1. 掌握复用功能 IO 重映射。 第三节 GPIO 编程实例 1. 掌握 AFIO 库函数的使用。 本章重点:GPIO 的不同功能模式,GPIO 配置方法,GPIO 库函数使用,复用功能 AFIO,复用 功能 IO 重映射。 本章难点:GPIO 库函数使用,复用功能 AFIO,复用功能 IO 重映射。 第四章 NVIC 和 EXTI 第一节 CM3 异常和中断系统 1.理解 CM3 内核的异常/中断处理机制; 2.理解 CM3 的优先级概念。 第二节 中断向量 1. 理解(异常)向量表,掌握中断配置。 第三节 NVIC 库函数配置 1. 掌握 NVIC 库函数配置。 第四节 外部中断/事件控制器 EXTI
1.理解外部中断概念、功能。第五节EXTI库函数配置1.掌握EXTI库函数配置。第六节中断应用实例1.掌握中断初始化、中断服务函数的程序编写。本章重点:CM3内核的异常/中断处理机制,CM3的优先级概念,(异常)向量表,中断配置,外部中断概念。本章难点:CM3内核的异常/中断处理机制,(异常)向量表,中断配置。第五章定时器TIM第一节STM32F107定时器概述1.了解STM32F107定时器的基本构成。第二节高级和通用定时器TIMx1.了解定时器特性,掌握时基单元组成。第三节计数模式1.了解计数模式工作方式;2.掌握计数模式配置,掌握计数值计算:第四节捕获/比较通道1.了解定时器捕获/比较通道的基本组成及功能。第五节输出模式1.理解PWM模式原理;2.掌握PWM模式配置。3.了解输出比较模式、单脉冲模式。第六节输入模式1.了解输入捕获模式、PWM输入模式原理:2.了解定时器输入异或功能、定时器同步等。本章重点:时基单元组成,计数模式配置,计数值计算,PWM模式配置。本章难点:计数模式配置,计数值计算。第六章看门狗WDG第一节看门狗概述1.了解STM32F107看门狗的组成。第二节独立看门狗
1.理解外部中断概念、功能。 第五节 EXTI 库函数配置 1. 掌握 EXTI 库函数配置。 第六节 中断应用实例 1.掌握中断初始化、中断服务函数的程序编写。 本章重点:CM3 内核的异常/中断处理机制,CM3 的优先级概念,(异常)向量表,中断配置, 外部中断概念。 本章难点:CM3 内核的异常/中断处理机制,(异常)向量表,中断配置。 第五章 定时器 TIM 第一节 STM32F107 定时器概述 1.了解 STM32F107 定时器的基本构成。 第二节 高级和通用定时器 TIMx 1. 了解定时器特性,掌握时基单元组成。 第三节 计数模式 1.了解计数模式工作方式; 2.掌握计数模式配置,掌握计数值计算; 第四节 捕获/比较通道 1.了解定时器捕获/比较通道的基本组成及功能。 第五节 输出模式 1.理解 PWM 模式原理; 2. 掌握 PWM 模式配置。 3.了解输出比较模式、单脉冲模式。 第六节 输入模式 1.了解输入捕获模式、PWM 输入模式原理; 2.了解定时器输入异或功能、定时器同步等。 本章重点:时基单元组成,计数模式配置,计数值计算,PWM 模式配置。 本章难点:计数模式配置,计数值计算。 第六章 看门狗 WDG 第一节 看门狗概述 1.了解 STM32F107 看门狗的组成。 第二节 独立看门狗
1.理解看门狗工作原理,熟悉IWDG特点和功能;2.掌握IWDG配置方法。第三节窗口看门狗1.理解WWDG与IWDG区别,熟悉WWDG特点和功能2.掌握WWDG配置方法。本章重点:IWDG配置方法,WWDG配置方法。本章难点:WWDG配置方法。第七章通用同步异步收发器USART第一节USART功能描述1.了解USART主要特性和功能;2.了解STM32F107的USART组成。第二节USART异步模式1.2掌握USART异步模式配置和使用;2.了解USART发送器和接收器工作方式;3.掌握USART的DMA通信方法;4.掌握USART中断方式。第三节USART同步模式1.了解USART同步模式特点及配置。第四节LIN(局域互联网)模式(不讲)第五节USART编程实例1.掌握USART的配置方法:2.掌握USART库函数的使用。本章重点:USART异步模式配置和使用,USART的DMA通信方法,USART中断方式,USARI库函数使用。本章难点:USART异步模式配置和使用,USART中断方式,USART库函数使用。第八章直接存储器访问DMA第一节DMA功能描述1.理解DMA的概念:2.了解DMA的主要特性,了解DMA的仲裁器和优先级;3.掌握DMA的配置方法;掌握存储器到存储器模式的应用;4.掌握DMA指针增量的概念
1. 理解看门狗工作原理,熟悉 IWDG 特点和功能; 2. 掌握 IWDG 配置方法。 第三节 窗口看门狗 1.理解 WWDG 与 IWDG 区别,熟悉 WWDG 特点和功能; 2.掌握 WWDG 配置方法。 本章重点:IWDG 配置方法,WWDG 配置方法。 本章难点:WWDG 配置方法。 第七章 通用同步异步收发器 USART 第一节 USART 功能描述 1.了解 USART 主要特性和功能; 2.了解 STM32F107 的 USART 组成。 第二节 USART 异步模式 1. 掌握 USART 异步模式配置和使用; 2. 了解 USART 发送器和接收器工作方式; 3. 掌握 USART 的 DMA 通信方法; 4. 掌握 USART 中断方式。 第三节 USART 同步模式 1.了解 USART 同步模式特点及配置。 第四节 LIN(局域互联网)模式(不讲) 第五节 USART 编程实例 1. 掌握 USART 的配置方法; 2. 掌握 USART 库函数的使用。 本章重点:USART 异步模式配置和使用,USART 的 DMA 通信方法,USART 中断方式,USART 库函数使用。 本章难点:USART 异步模式配置和使用,USART 中断方式,USART 库函数使用。 第八章 直接存储器访问 DMA 第一节 DMA 功能描述 1. 理解 DMA 的概念; 2. 了解 DMA 的主要特性,了解 DMA 的仲裁器和优先级; 3. 掌握 DMA 的配置方法;掌握存储器到存储器模式的应用; 4. 掌握 DMA 指针增量的概念