狄泰学院_十二月提升_ 学习任务(2017.03.02 -- 2017.03.08)

这一周的学习任务为《专业嵌入式软件开发》中的第一章。

大家在阅读的时候请思考下面的问题:

  • 1) 微处理器和微控制器有什么不同?

答:在编程的角度来看,微处理和微控制器没有什么不同,两者之间的区别是在内存与外设的分布上:

如果存在片内内存与片内外设,就是微控制器,反之则是微处理器,我们常用的PC的CPU就是微处理器; 嵌入式设备都使用微控制器,一为了节约成本,二为了功耗更低,三为了硬件设计简化.

  • 2) 寄存器的作用是什么?

答:寄存器是CPU的组成部分,处理单元是通过寄存器来运行程序和加工数据的.  寄存器可分为两个大类:  一为通用寄存器,二为浮点寄存器;

细分分别是:  1 累加寄存器  2  标志寄存器  3  程序计数寄存器  4  基址寄存器  5  变址寄存器    6 通用寄存器   7   指令寄存器  8  栈寄存器

    • 累加寄存器  :   它主要用来存储我们进行计算之后的数据,它根我们的运算器之间的沟通是最快的,cpu只做累加。
    • 标志寄存器,是我们寄存器中比较重要的一种寄存器,它记录了cpu状态,和内存完全没有关系,但跟内存完全是一模一样的。操作也是读取,复制,删除等等。标志寄存器,它记录了cpu的状态,包括了:运算了之后,它的值是否溢出?它是否为零?等等......它帮助我们进行逻辑判断,cpu如何逻辑判断?它比较两个数,得出结果,来改变标志寄存器的值。
    • 程序计数寄存器:就是存储了我们的程序运行下一条指令的内存所在地址!下一条指令在内存当中的地址.
    • 基址寄存器,它存储了当前内存开始的位置。用来存储我们整个数据内存的开始地址。
    • 通用寄存器    我们用得最多的寄存器,意思就是什么都能用.
    • 指令寄存器   这个是我们接触不到的寄存器,要查询指令手册.
    • 栈寄存器     堆栈指针寄存器在堆栈操作中使用,PUSH和POP指令是从SP寄存器得到现行堆栈段的段内偏移量,所以称SP寄存器为堆栈指针,SP始终指向栈顶。堆栈是计算机中广泛应用的技术,基于堆栈具有的数据进出LIFO特性,常应用于保存中断断点、保存子程序调用返回点、保存CPU现场数据等,也用于程序间传递参数。
  • 3) 处理器是如何启动的?

答:首先出厂固化寄存器的默认值,这些值决定了上电时刻CPU的行为; 通过硬件来实现CPU的第一条执行指令的地址,完成地址与外设间的映射.第一条指令的获取,标志着引导加载程序开始运行.

  • 4) 处理器的输入输出方式有几种?每一种方式的工作机制是什么?

答:输入输出(I/O)的方式有两种:一是通过不同的I/O端口来实现对接通信,二是通过中断机制来实现对应通信.

每一个在处理器的地址空间中占用不同的I/O端口,I/O空间如果是独立于内存所在的空间,从编程角度,是需要调用相应的函数来读写I/O端口的;

另一种:I/O空间与内存在同一个地址空间,它被称为内存映射I/O空间,可以用C语言的指针访问.与内存访问一样的.

  • 5) 什么是中断?中断的机制是什么?

答:中断是指CPU暂停正在处理的指令流,切换到另外一种工作模式,称为"中断模式".中断的机制:进入中断模式首先,保存中断时刻所有寄存器的值,处理器完成了所需工作后,外设发清中断请求,最后是消除处理器的中断信号标识.

  • 6) 边界对齐的意义是什么?

 

答:边界对齐的意义在于:减少对内存的访问次数,对数据结构进行高效的操作.

 

  • 7) 程序的断点是什么?有哪些类型的断点?不同类型的断点的工作机制是什么?

答:通过断点,方便程序调试,在嵌入式开发中,两种断点:一是程序断点,二是数据断点;  程序断点又一分为二: 1 软件程序断点 2 硬件程序断点.

程序断点工作机制:CPU遇到无效或非法指令,会出现一个异常中断,当设置一个软件程序断点时,调试工具就在相应的内在位置放置无效或非法指令一条,并保存原来指令;此时运行到断点处,处理器产生异常中断,并在中断服务程序中恢复被替换的指令,另一方面将操控权交给调试工具.上面是软件程序断点的机制.

硬件程序断点的机制:通过配置处理器的断点寄存器来实现:当CPU运行到断点寄存器所指示位置的指令时,产生中断,调试工具通过该中断来进行干预.硬件程序断点数量最多4个.

数据断点的机制:在处理器寄存器中设置监视,当被监视的内存单元被修改时,处理器产生中断,调试工具利用这一中断,便于我们检查.和硬件程序断点一样,数量有限.

  • 8) 内存管理单元的作用是什么?

答:主要用于实现内存保护.

  • 9) 什么是缓存?缓存的意义是什么?

答:缓存CPU内部集成的内存,有着非常高的工作频率,我们经常听到的一级缓存,二级缓存正是缓存的划分,缓存一般容量小,曾经是CPU性能指标之一.缓存的意义在于:提高CPU对外部的访问效率.

为了更好的解答上面的几个问题,请大家在阅读教材的同时参考其他书籍的相关主题!

这一周的读书笔记中务必包含这几个问题的答案!

PS:这周的直播视频已经上传至狄泰官方网盘,请没有到场的同学记得观看直播视频!

B.R.

D.T.唐老师

时间: 2024-11-05 13:48:58

狄泰学院_十二月提升_ 学习任务(2017.03.02 -- 2017.03.08)的相关文章

ArcGIS for Desktop入门教程_第八章_Desktop学习资源 - ArcGIS知乎-新一代ArcGIS问答社区

原文:ArcGIS for Desktop入门教程_第八章_Desktop学习资源 - ArcGIS知乎-新一代ArcGIS问答社区 1 学习资源 用户在学习和应用过程中,可以参考的资源如下: 1. ArcGIS资源中心 http://resources.arcgis.com/en/home/ 2. Esri中国在线支持中心http://support.esrichina.com.cn/ 3. ArcGIS知乎社区 http://zhihu.esrichina.com.cn/ 4. 优酷视频ht

黑 马 程 序 员_视频学习总结<c语言>----02 printf和scanf函数、基本语句和运算、流程控制、函数、数组、字符串

---------------------- ASP.Net+Unity开发..Net培训.期待与您交流! ---------------------- 一.printf函数 1.在使用peintf函数前必须加入#include <stdio.h>,使用它可以向标准输出设备(比如屏幕)输出数据,其中使用格式是 printf(“字符串”) :或者 printf(“字符串”, 格式符参数): 2.常用的格式符及其含义如图所示 3.格式符还可以添加输出宽度 二.scanf函数 1.在使用scanf函

C/C++:提升_指针的指针和指针的引用

C/C++:提升_指针的指针和指针的引用 ◇写在前面 今天在使用指针的时候我发现了一个自己的错误. 我刚开自以为是觉得输出的两个P都是6,当时觉得两个p所指的地址相同,要修改就都修改了. 这是一个很低级的错误,两个p所指的地址相同,但是这两个指针的地址是不一样的. 好比两个人都知道火车站怎么走,但不能说这两个人是一个人,更何况在修改中一个人已经忘了火车站,它只知道高铁站怎么走,那另一个只知道火车站的并没有受到影响,他还是只知道火车站. 好了,那么如何做到main修改里面的p呢?要用到两种技术:

黑马程序员_第一天视频学习

一.      计算机和软件常识 1.      计算机运行原理 1)          硬件基本组成:硬盘.内存.CPU 2)          各个部件之间的运作协调(下图) 2.      计算机只能识别0和1 1)          0和1组成的指令 2)          0和1组成的数据 3.      计算机和软件的联系 1)          软件的基本概念:指令的集合 2)          软件的安装运行过程 3)          为什么要开发软件:写出能控制计算机的指令

Spring_MVC_教程_快速入门_深入分析

Spring MVC 教程,快速入门,深入分析 博客分类: SPRING Spring MVC 教程快速入门 资源下载: Spring_MVC_教程_快速入门_深入分析V1.1.pdf SpringMVC核心配置文件示例.rar 作者:赵磊 博客:http://elf8848.iteye.com 目录 一.前言 二.spring mvc 核心类与接口 三.spring mvc 核心流程图 四.spring mvc DispatcherServlet说明 五.spring mvc 父子上下文的说明

sql面试题(学生表_课程表_成绩表_教师表)

sql面试题(学生表_课程表_成绩表_教师表) 原帖链接:http://bbs.csdn.net/topics/280002741 表架构 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 建表语句 CREATE TABLE student ( s# INT, sname nvarchar(32), sage INT, ssex nvarchar(8)

ArcGIS for Desktop入门教程_第一章_引言 - ArcGIS知乎-新一代ArcGIS问答社区

原文:ArcGIS for Desktop入门教程_第一章_引言 - ArcGIS知乎-新一代ArcGIS问答社区 1 引言 1.1 读者定位 我们假设用户在阅读本指南前应已具备以下知识: · 熟悉Windows的基本操作 · 接触过地理信息系统的概念 · 理解地理数据的特点 1.2 预期效果 我们期望用户在阅读完本指南后对以下知识有一定的了解: · 了解ArcGIS for Desktop的组成与功能 · 熟悉使用ArcGIS for Desktop进行数据编辑.整饰和输出的流程 · 如何使用

踩坑之路_&quot;var name = &#39; &#39;;&quot;_迷之BUG

情景介绍:最近写一个拖拽生成图表的工具,自己的思路每次mousedown的时候动态将this的name属性值赋值给全局中变量(自己手贱测试时直接将变量名命名为了'name',一大波bug还有30s到达战场.....),mouseup时更具当前的全局属性值判断生成的图表类型:就酱... 首先给大家贴个html布局,有图有真相,(虽然简单的要死)正常结果应该是:拖拽 '折线图' 右侧生成折线图,柱状图生成柱状图: 然后我帅气的用 var name = ''; 从此开启bug模式: js代码如下: 出

安卓开发_慕课网_百度地图_添加覆盖物

学习内容来自“慕课网” 本片学习内容接自前四篇基础 安卓开发_慕课网_百度地图 安卓开发_慕课网_百度地图_实现定位 安卓开发_慕课网_百度地图_实现方向传感器 安卓开发_慕课网_百度地图_实现模式转换 请先学习前4篇再学习本篇,因为本篇在前四篇的基础上进行代码的编写 一.新建一个类用来存放数据(距离,点赞数,介绍图等信息) 1 package com.example.map; 2 3 import java.io.Serializable; 4 import java.util.ArrayLi