原标题:ARM嵌入式系统教与学(教学大纲)

《ARM 嵌入式系统结构与编程》

课程教学大纲

学分

3

学时

32+24

01

课程说明

通过本课程的学习,培养学生掌握 ARM 体系结构,ARM 指令集、以及在 ARM 体系下的 嵌入式编程,使学生掌握基于 ARM 技术的硬件开发平台,在此平台下进行硬件编程与硬件接口 实验,为学生进行嵌入式系统软硬件设计和开发打下良好的基础。

02.

课程目标

1.了解嵌入式最新产品,掌握嵌入式系统定义与内涵。其中定义包括 IEEE 和嵌入式系统行 业定义,了解嵌入式统统的发展趋势。

2.ARM 体系结构: 了解 ARM 处理器分类与编号,理解 ARM 处理器的工作模式、寄存器体系 结构,以及 ARM 处理器的中断与异常处理方式,重点区别不同异常的处理。了解 ARM7、ARM9、 ARM10 处理器性能比较,突出每类处理器的功能异同;掌握 ARM7、ARM9、ARM10 的指令流水线技 术,分析在不同的指令功能码段里,流水线的阻断情况,从而达到 ARM 指令代码优化的目的。

3.深入理解 ARM 指令的寻址方式和 ARM 指令系,包括立即数的构成,寄存器寻址、存储器 寻址和寄存器间接寻址方式的构成。

4.了解 ARM 汇编语言程序伪指令,ADS 标准与 GNU 标准语法格式。理解并掌握 ARM 汇编语 言语句、程序格式,ARM 汇编语言功能程序段以及 ARM 汇编语言程序设计技巧

5.了解在 ARM 体系结构下,C 语言程序设计规则。理解程序调用规则 ATPCS,并分析寄存 器及参数传递关系。掌握汇编语言与 C 语言混合编程方法,并给出实例进行验证与分析。

6.基于 ARM7/ARM9 内核的嵌入式开发平台 ,了解 ARM 处理器及组成,CPU 模块构成。理 解 ARM 存储控制器接口原理与扩展方式。包括 NAND 和 NOR Flash 原理与接口及编程方法。理解 基于 S3C44b0x/S3C2410x 芯片启动过程,并进行启动代码设计。掌握 RTC 实时时钟编程、看门 狗定时器的编程设置。掌握 S3C44b0x/S3C2410x 的基于 S3C44b0x/S3C2410x 的 LCD 控制技术, 包括 STN、TFT 两种 LCD 的接口技术、显示原理与时序控制方式,软件驱动的编写。

03

教学内容、基本要求与学时分配

04

其它教学环节

实验授课内容共计 24-32 学时

05

授课说明

1. 开课学期:春季/秋季。

2. 授课单位:计算学院/软件学院/电信学院。

3. 适用专业:计算机、电子工程、通信、物联网、软件工程。

4. 先修课程:计算机组成原理、接口与汇编、数字电路与模拟电路、程序设计语言。

06

教材和参考书

目 录

上下滚动查看↓

第1章绪论

1.1嵌入式系统定义

1.1.1嵌入式系统的发展历程

1.1.2嵌入式系统的定义与特点

1.2嵌入式操作系统

1.2.1嵌入式实时操作系统

1.2.2实时操作系统的典型应用

1.3嵌入式技术在工程领域的应用

1.4嵌入式技术的发展趋势

思考与练习题

第2章ARM技术与ARM体系结构

2.1ARM体系结构版本与内核

2.1.1ARM体系结构版本

2.1.2ARM内核版本命名规则

2.1.3主流ARM处理器内核系列与应用

2.2ARM内核模块

2.3ARM处理器的工作模式

2.4内部寄存器

2.4.1通用寄存器及其分布

2.4.2程序状态寄存器

2.5ARM异常处理

2.6存储方式与存储器映射机制

2.7ARM流水线技术分析

思考与练习题

第3章ARM指令集寻址方式

3.1ARM指令的编码格式

3.2数据处理指令寻址方式

3.3Load/Store指令寻址

3.3.1地址计算方法

3.3.2字、无符号字节寻址

3.3.3半字、有符号字节寻址

3.4批量Load/Store指令寻址方式

3.5协处理器指令寻址方式

思考与练习题

第4章ARM指令集系统

4.1数据处理指令

4.1.1基本数据处理指令

4.1.2乘法指令

4.1.3杂类的数据处理指令

4.2ARM分支指令

4.3加载/存储指令

4.3.1加载/存储字、无符号字节指令

4.3.2半字、有符号字节访问指令

4.4批量加载/存储指令

4.4.1基本批量字数据加载/存储指令

4.4.2用户模式下的批量字数据加载/存储指令

4.4.3带PSR操作的批量字数据加载指令

4.5交换指令

4.6程序状态寄存器访问指令

4.7协处理器操作指令

4.7.1协处理器数据操作指令

4.7.2协处理器加载/存储指令

4.7.3ARM寄存器与协处理器寄存器数据传输指令

4.8异常产生指令

思考与练习题

第5章Thumb指令

5.1Thumb数据处理指令

5.1.1寄存器移位指令

5.1.2低位寄存器算术运算指令

5.1.3ALU操作指令

5.1.4带高位寄存器操作的Thumb指令

5.1.5带SP/PC的算术运算指令

5.2Thumb存储器操作指令

5.2.1字节、半字和字的加载/存储指令

5.2.2批量加载/存储指令

5.3Thumb分支指令

5.3.1B分支指令

5.3.2带链接的分支指令

5.3.3带状态切换的分支指令

5.4Thumb软中断指令

5.5Thumb指令功能码段分析

5.5.1Thumb与ARM实现功能比较

5.5.2Thumb与ARM性能比较

思考与练习题

第6章ARM汇编伪指令与伪操作

6.1汇编语言伪指令

6.1.1ARM汇编语言伪指令

6.1.2Thumb汇编语言伪指令

6.2ARM汇编语言伪操作

6.3ARM汇编伪操作

6.3.1符号定义伪操作

6.3.2数据定义伪操作

6.3.3汇编代码控制伪操作

6.3.4汇编信息报告控制伪操作

6.3.5指令集类型标识伪操作

6.3.6文件包含伪操作

6.3.7其他类型伪操作

6.4GNU ARM汇编伪操作

6.4.1符号定义伪操作

6.4.2数据定义伪操作

6.4.3汇编与反汇编代码控制伪操作

6.4.4预定义控制伪操作

思考与练习题

第7章汇编语言程序设计

7.1ARM编译环境下汇编语句

7.1.1ARM编译环境下汇编语句格式

7.1.2ARM编译环境下汇编语句中的符号规则

7.2GNU环境下汇编语句与编译说明

7.2.1GNU环境下ARM汇编语句格式

7.2.2GNU环境下ARM汇编程序编译

7.3ARM汇编语言程序设计规范

7.4ARM汇编语言程序设计实例解析

思考与练习题

第8章ARM汇编语言与嵌入式C混合编程

8.1嵌入式C编程规范

8.2嵌入式C程序设计中的位运算

8.3嵌入式C程序设计中的几点说明

8.3.1volatile限制符

8.3.2地址强制转换与多级指针

8.3.3预处理的使用

8.4嵌入式C程序设计格式

8.5过程调用标准ATPCS与AAPCS

8.5.1寄存器使用规则

8.5.2数据栈使用规则

8.5.3参数传递规则

8.6ARM汇编语言与嵌入式C混合编程相互调用

8.6.1内嵌汇编

8.6.2ARM汇编语言与嵌入式C程序相互调用

思考与练习题

第9章S3C44B0/S3C2410/S3C2440硬件结构与关键技术分析

9.1处理器简介

9.2S3C44B0/S3C2410/S3C2440存储控制器

9.2.1S3C44B0存储控制与地址空间

9.2.2S3C2410/S3C2440存储控制与地址空间

9.2.3S3C44B0/S3C2410/S3C2440存储位宽控制

9.2.4S3C44B0/S3C2410/S3C2440存储器接口时序分析

9.2.5S3C44B0/S3C2410存储控制寄存器

9.2.6SDRAM接口电路设计

9.2.7S3C44B0存储器初始化实例

9.3S3C2410/S3C2440 NAND Flash控制器

9.4S3C44B0/S3C2410/S3C2440时钟与电源管理

9.4.1S3C44B0/S3C2410/S3C2440时钟管理

9.4.2S3C44B0/S3C2410/S3C2440电源管理

9.4.3S3C44B0/S3C2410/S3C2440时钟与电源管理专用寄存器

9.5S3C44B0/S3C2410/S3C2440通用 I/O端口

9.5.1端口控制描述

9.5.2端口寄存器

9.5.3通用I/O接口设计实例

9.6S3C44B0/S3C2410/S3C2440中断机制

9.6.1S3C44B0中断控制器

9.6.2S3C2410/S3C2440中断控制器

9.6.3S3C44B0/S3C2410/S3C2440中断控制特殊功能寄存器

9.6.4S3C44B0/S3C2410/S3C2440中断控制器设计实例

思考与练习题

第10章S3C44B0/S3C2410/S3C2440通信与LCD接口技术

10.1S3C44B0/S3C2410/S3C2440 UART

10.1.1UART原理

10.1.2S3C44B0/S3C2410/S3C2440 UART模块

10.1.3S3C44B0/S3C2410/S3C2440 UART操作

10.1.4UART中断与波特率的计算

10.1.5S3C44B0/S3C2410/S3C2440 UART专用功能寄存器

10.1.6S3C44B0/S3C2410 UART设计实例

10.2S3C44B0/S3C2410/S3C2440 I2C总线接口

10.2.1I2C总线原理

10.2.2S3C44B0/S3C2410/S3C2440 I2C总线功能模块

10.2.3S3C44B0/S3C2410/S3C2440 I2C总线操作

10.2.4S3C44B0/S3C2410/S3C2440 I2C专用功能寄存器

10.2.5S3C44B0/S3C2410/S3C2440 I2C总线设计实例

10.3S3C44B0/S3C2410/S3C2440 LCD控制器

10.3.1LCD简介

10.3.2S3C44B0/S3C2410/S3C2440 LCD控制器模块

10.3.3S3C44B0/S3C2410/S3C2440 LCD控制器专用功能寄存器

10.3.4S3C44B0/S3C2410/S3C2440 LCD控制器设计实例

思考与练习题

附录AS3C44B0/S3C2410/S3C2440封装与I/O复用信息

附录B链接定位与系统引导程序

附录C“ARM嵌入式系统结构与编程”课程考试标准试题返回搜狐,查看更多

责任编辑:

arm分支指令c语言,ARM嵌入式系统教与学(教学大纲)相关推荐

  1. Linux_arm_启动_c语言部分详解,[原创]Linux arm 启动 c语言部分详解第四讲

    Linux arm启动c语言部分详解第四讲(from setup_per_cpu_areas();) Written by leeming 上面的setup_arch花了我们大量的篇幅,现在我们要继续 ...

  2. 简述arm汇编和c语言混合编程,ARM汇编C语言混合编程

    3.4 ARM汇编&C语言混合编程 3.4.1 C内联ARM汇编 先看一个例子: # cat add.c 1 // add.c for s3c2410c board 2 // arm-linu ...

  3. oracle arm服务器_Oracle和ARM合作优化嵌入式Java

    oracle arm服务器 Oracle和ARM已达成多年合作伙伴关系,两家公司将致力于优化ARM处理器的Java编程语言. 这项工作将主要致力于在ARM的多核系统上提供更高的吞吐量和更大的可伸缩性. ...

  4. ARM内部大家族详解---嵌入式回归第四篇

    学习ARM,首先要对ARM有个大体宏观的了解!这样后边学起来也会更轻松一些! 常用熟悉的一般分为: 1. 芯片:6410    210    2440   (这三款都是三星的) 2. ARM核:arm ...

  5. 基于ARM核的Intel XScale嵌入式系统

    导读: 关键字 基于ARM核的Intel XScale嵌入式系统 出处 1 简 介 Intel XScale微体系结构提供了一种全新的.高性价比.低功耗且基于ARMv5TE体系结构的解决方案,支持16 ...

  6. 嵌入式工程师到底要不要学习ARM汇编指令?arm学习文章汇总

    嵌入式工程师到底要不要学习ARM汇编指令? 网上搜索这个问题,答案很多,大部分的建议是不要学汇编,只要学C语言. 而一口君作为一个十几年经验的驱动工程师,个人认为,汇编语言还是需要掌握的,想要搞精.搞 ...

  7. ARM中C语言和汇编语言互相调用以及实例

    1.内联汇编 在C语言中内嵌汇编注意事项: 不能直接向PC寄存器赋值,程序跳转要使用B或者BL指令 在使用物理寄存器时,不要使用过于复杂的C表达式(比如ADD y,R0 ,x/y(无形中就是c语言表达 ...

  8. ARM下C语言和汇编语言混合编程

    文章目录 一. 在C语言中调用汇编语言 1. 编写代码 2. 调试验证 二. 在汇编语言中调用C语言 1. 编写代码 2. 调试验证 关于函数的传递参数以及接受返回值的原理,在另一篇博客:X86与AR ...

  9. 【嵌入式开发】ARM 芯片简介 (ARM芯片类型 | ARM处理器工作模式 | ARM 寄存器 | ARM 寻址)

    作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42375701 相关资源下载 :  -- 三星 ARM Archit ...

最新文章

  1. 关于timewait状态
  2. puppeteer php,puppeteer 页面爬取实例(元素遍历)
  3. C++什么是内存泄漏
  4. Pedestrian Identification (2) ——研究现状总结
  5. 前端学习(1425):同步异步概述
  6. 全面认识UML-类图元素(java)
  7. strtof linux内核,Qt for Android使用grpc探索
  8. MvvmCross框架在XamarinForms中的使用入门
  9. 业界 | 数据科学家要先学逻辑回归?图样图森破!
  10. 平方矩阵 II--C++ 经典解析版-----编程/算法/数据结构
  11. 装饰器模式Decorate
  12. ACL-IJCNLP 2021-Sentiment Analysis相关论文整理
  13. 区分C语言中的*(p++), *p++, (*p)++, *(++p), *++p
  14. 【转】BAT机器学习面试1000题系列(1~50)
  15. Word文件的编辑密码忘记了怎么办?
  16. 用android开发一个识别人形的app,一键切换背景
  17. 以太坊模拟器Ganache v7重磅发布!
  18. 小程序不再小,已成为各大平台的必争之地
  19. Apache ab安装与使用
  20. 聚焦数字化转型共建生态,AWS中国的朋友圈越来越大了

热门文章

  1. Java开发实习生 一月体验感
  2. mysql数据库数据迁移操作
  3. 如何将计算机网络设置为家庭网络连接打印机共享,Win7系统如何设置打印机共享,详细图文步骤...
  4. 数据库三范式(联合主键)
  5. 动态语言Groovy核心原理
  6. 《WebGIS开发实践手册》将在ESRI用户大会首发
  7. 曼彻斯特编码与差分曼彻斯特编码的区别
  8. “Linux之父”Linus 获颁英特尔首个终身创新成就奖
  9. 机器学习与深度学习的关系
  10. 【iOS】—— PresentPush