外设

Cortex M3存储器映射

♀尐吖头ヾ 提交于 2019-12-15 07:16:02
CortexM3存储器系统 宗旨:技术的学习是有限的,分享的精神是无限的。 CM3 只有一个单一固定的存储器映射。这一点极大地方便了软件在各种 CM3 单片机间的移植。 存储空间的一些位置用于调试组件等私有外设,这个地址段被称为“私有外设区”。私有外设区的组件包括:闪存地址重载及断点单元(FPB),数据观察点单元(DWT),仪器化跟踪宏单元(ITM),嵌入式跟踪宏单元(ETM),跟踪端口接口单元(TPIU), ROM 表。 CM3的地址空间是 4GB, 程序可以在代码区,内部 SRAM 区以及外部 RAM 区中执行。但是因为指令总线与数据总线是分开的,最理想的是把程序放到代码区,从而使取指和数据访问各自使用自己的总线,并行不悖。 1、代码区 存放指令和数据,取指通过指令码(ICode)总线,数据访问借助数据码(DCode)总线。 2、片上SRAM 内部SRAM 区的大小是 512MB,用于让芯片制造商连接片上的 SRAM,这个区通过系统总线来访问。在这个区的下部,有一个 1MB 的区间,被称为“位带区”。该位带区还有一个对应的、 32MB 的“位带别名(alias)区”,容纳了 8M 个“位变量”(对比 8051 的只有 128 个位变量)。位带区对应的是最低的 1MB 地址范围,而位带别名区里面的每个字对应位带区的一个比特。位带操作只适用于数据访问,不适用于取指。通过位带的功能

板卡复位功能测试规范

别来无恙 提交于 2019-12-15 06:54:50
概述 复位,作为板卡独立设计的功能,需要独立的专门性测试。 测试用例 首先根据板卡设计筛选出所有受复位功能影响的外设和器件,作为该项测试的测试对象。然后,通过 reset 键(full、warm、PMIC)、reboot 命令,各种复位系统的方法,分别执行测试: 保持外设连接不变,复位系统,然后基于功能测试方法检查各接口、器件是否正常。 保持外设连接不变,复位系统,然后拔下再插入可热插拔设备,基于功能测试方法检查是否正常。 不接入外设,复位系统,然后插入可热插拔设备,基于功能测试方法检查是否正常。 附录:一个复位功能异常的案例 TL5708-EVM,执行 reboot 命令重启系统后,USB 3.0 U 盘识无法识别。USB 2.0 可以识别到是因为其设备模式为 highspeed,而 3.0 的是 superspeed,并不一样。所以需要都覆盖测试到。 解决方案,移除来自 SoC 的 reset 信号,在系统重启时不对 USB Hub 进行 reset。 2019-12-10 - 廖杰良 来源: CSDN 作者: Jackindata 链接: https://blog.csdn.net/engrossment/article/details/103482690

计算机组成原理常见题(六)

那年仲夏 提交于 2019-12-13 05:32:41
1.假定用若干个16Kx1位的存储器芯片组成一个64Kx8位的存储器,芯片内各单元连续编址,则地址BFF0H所在的芯片的最小地址是(C) A.40000H B.60000H C.8000H D.0000H 2.假设一个同步总线的工作频率为33MHZ,总线有32位数据线,每个总线时钟传输一次数据,则该总线的最大数据传输率为(B) A.66MB/s B.132MB/s C.528MB/s D.1056MB/s 3.假设某条指令的一个操作数采用一次间接寻址方式,指令中给出的地址码为1200H,地址1200H中的内容为12FCH,地址12FCH中的内容为38B8H,地址38B8H中的内容为88F9H,则该操作数为() A.1200H B.12FCH C.38B8F D.88F9H 4.相联存储器是按(B)进行寻址访问的寄存器 A.地址指定方式 B.内容指定方式 C.堆栈访问方式 D.队列访问方式 5.假定某程序p由一个100条指令构成的循环组成,该循环共执行50次,在某系统S中执行程序p花了20000个时钟周期,则系统S在执行程序p时CPI是多少? 在20000个时钟周期中共执行100x50=5000条指令,CPI=20000/5000=4 CPI:执行每一条指令所花的时钟周期数 CPI=执行指令所花的时钟周期数/执行了多少条指令 6.设某机主存容量为16MB,Cache容量为16KB

28335GPIO及外部中断配置介绍

ぐ巨炮叔叔 提交于 2019-12-13 03:20:06
本文转载连接: https://blog.csdn.net/E_ROAD_BY_U/article/details/53083151 弄了两周终于把28335的启动流程、寄存器及中断向量表的映射方法、内存的划分等有了一个全面的了解,今天看到久违的LED灯的闪烁,顿扫阴霾。特在此总结下28335GPIO及外部中断配置介绍。其实对于一个微控制器,只要能够独立实现这两个功能,也算是入门了。 一、GPIO口介绍 外界二进制信息(数字量)要被CPU处理,要给存储器存放,就需要外界信息源与两者之间的交换接口,这样的交换接口若用来进行通用目的数字量的输入输出,就被称为通用数字量输入/输出接口,简称GPIO。F28335 DSP有多达88个GPIO口,对应着芯片引出的88个引脚,随着芯片的封装与尺寸的确定,引脚数目是有限的,所以这88个引脚多数都是功能复用的,即可以灵活配置为输入引脚,也可以灵活配置为输出引脚,即可以作为通用I/O引脚,也可以作为特殊功能口(如SCI、SPI、ECAN等),非常灵活,用户根据需要,可以通过GPIO MUX(输入输出多路选择器,复用开关)寄存器来进行相关配置。 F28335DSP将这88个GPIO口分成了A、B、C三大组,A组包括GPIO0至GPIO31,B组包括GPIO32至GPIO63,C组包括GPIO64至GPIO87,每个引脚都复用了多个功能,同一时刻

输入输出接口

早过忘川 提交于 2019-12-12 12:48:41
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 输入输出接口 常见的I/O接口: 南桥(现在叫 PCH )、显卡 I/O接口 作用: 数据缓冲 解决CPU和外设之间的速度差距 提供联络信息 协调与同步数据交换过程 信号与信息格式的转换 模/数、数/模转换,串/并、并/串转换,电平转换 设备选择 中断管理 可编程功能 通讯: 需要“握手( Handshaking )信号”:总是成对出现,在数据传送中起着定时协调与联络作用。采用“握手”方式的数据传送,每一过程必须都有应答,彼此进行确认。 输出:并行数据输出(外设>IO接口)、输出准备好(外设>IO接口)、输出回答(IO接口>外设) 输入:并行数据输入(IO接口>外设)、输入准备好(IO接口>外设)、输入回答(外设>IO接口) 直接存储器访问,Direct Memory Access ( DMA ),辅助CPU, 控制 I/O接口 与 存储器 特点: 数据传送过程不需要CPU干预(不需要执行程序指令) 由专门硬件控制电路控制,进行外设与存储器间直接数据传送 该专门硬件控制电路称为DMA控制器,简称 DMAC 自带DMA控制器:网卡、显卡、声卡、硬盘 输入输出的控制方式 I/O控制方式: 指的主机与外设之间的数据传送控制方式 程序(指CPU)控制方式 1、无条件传送方式 假定外设已经准备好

STM32开发 -- 低功耗模式详解

£可爱£侵袭症+ 提交于 2019-12-12 10:08:48
很多单片机都有低功耗模式,STM32 也不例外。当 CPU 不需继续运行时,可以利用多个低功耗模式来节省功耗。 这部分不是我负责,但是也是有必要看一下的。 参看: STM32F1开发指南-库函数版本_V3.2.pdf STM32中文参考手册_V10.pdf 一、低功耗模式 在系统或电源复位以后,微控制器处于运行状态。当CPU不需继续运行时,可以利用多种低功耗模式来节省功耗,例如等待某个外部事件时。用户需要根据最低电源消耗、最快速启动时间和可用的唤醒源等条件,选定一个最佳的低功耗模式。 STM32有三种低功耗模式: ● 睡眠模式 (Cortex™-M3内核停止,所有外设包括Cortex-M3核心的外设,如NVIC、系统时钟(SysTick)等仍在运行) ● 停止模式 (所有的时钟都已停止) ● 待机模式 (1.8V电源关闭) 此外,在 运行模式 下,可以通过以下方式中的一种降低功耗: ● 降低系统时钟 在运行模式下,通过对预分频寄存器进行编程,可以降低任意一个系统时钟(SYSCLK、 HCLK、 PCLK1、 PCLK2)的速度。进入睡眠模式前,也可以利用预分频器来降低外设的时钟。 ● 关闭APB和AHB总线上未被使用的外设时钟。 在运行模式下,任何时候都可以通过停止为外设和内存提供时钟(HCLK和PCLKx)来减少功耗。为了在睡眠模式下更多地减少功耗

DSP学习笔记(三)——TMS320F28335硬件结构

ε祈祈猫儿з 提交于 2019-12-11 17:02:24
本文转载连接: https://blog.csdn.net/wasser000/article/details/91843085 第二章 TMS320F28335 硬件结构 1 TMS320F28335 硬件概述 Tms320f28335主要有8个部分组成,由32位的cpu内核、集成内存、总线、DMA、DMA总线、中断管理、控制率加速器、外设总线、外设等部分。 总线为哈佛结构,cpu可在一个时钟周期完成对数据存储器与程序存储器的访问。 DMA总线,可以使特定模块直接与内存交换数据,不过cpu。 2 cpu架构 2.1 内核 F28335属于C28x+FPU(Floating Point Unit,浮点运算单元)的C28x 系列增强型DSP 控制器(Digital Signal Controllers,DSC),包括一个32位定点cpu一个32位浮点运算单元。 浮点数格式遵循ieee-754标准。(IEEE 754规定了四种表示浮点数值的方式:单精确度(32位)、双精确度(64位)、延伸单精确度(43比特以上,很少使用)与延伸双精确度(79比特以上,通常以80位实现)。只有32位模式有强制要求,其他都是选择性的。) 2.2 乘法器 F28335内嵌一个16×16位和32×32位的乘法器及乘累加核(MAC),可以在一个指令周期完成32×32位乘法进行累加运算。 2.3 移位器

ARM Cortex-M3 存储器映射

谁说我不能喝 提交于 2019-12-11 07:10:40
在4GB的地址空间中,ARM Cortex-M3已经粗线条的平均分成了8快,每块512MB, 每块也都规定了用途。每个快的大小都有512MB,显然这个非常大的,芯片厂商在 每个块的范围内设计各具特色的外设时,并不一定都用得完,都只是用了其中的一部分 而已。Cortex-M3的存储器映射如下图所示: 在这8个Block里面,由3个Block非常重要,也是我们最关心的三个块。 Block0用来设计成内部FLASH; Block1用来设计成内部RAM; Block2用来设计成片上的外设; 这三个Block内部具体区域 功能划分如下: 存储器Block0内部区域功能划分:Block0主要用于设计片内的FLASH, STM32F103VET6的FLASH就是512K,属于大容量。以STM32F103VET6 (指南者)为例,其Block0内部区域的功能划分具体如下: 存储器Block1内部区域功能划分 Block1用于设计片内SRAM。我们使用的STM32F103VET6(指南者)的SRAM是64KB。 Block1内部区域的功能划分具体如下: 存储器Block2内部区域功能划分 Block2用于片上外设,根据外设的总线速度不同,Block被分成了APB和 AHB两部分,其中APB又被分为APB1和APB2。具体如下: ———————————————— 版权声明:本文为CSDN博主「红尘

s3c2440裸机编程-内存控制器(二、不同位宽设备的连接)

妖精的绣舞 提交于 2019-12-10 11:44:57
不同位宽设备的连接 我们先看一下2440芯片手册上外设rom是如何与CPU地址总线连接的。 8bit rom与CPU地址线的连接 8bit*2 rom与CPU地址线的连接 8bit*4 rom与CPU地址线的连接 16bit rom与CPU地址线的连接 16bit*2 rom与CPU地址线的连接 从上面的图中,我们知道可以对2片位宽为8bit的外设扩展级联成1个16bit的外设,同理可用4片位宽为8bit的外设进行级联成1个32bit的外设... 从上面的图中,我们还看见一个规律: 当外设总线位宽为8bit时, 外设A0接CPU的地址总线ADDR[0], A[1]->ADDR[1] ...A[15]->ADDR[15] 当外设总线位宽为16bit时,外设A0接CPU的地址总线ADDR[1], A[1]->ADDR[2] ...A[15]->ADDR[16] 当外设总线位宽为32bit时,外设A0接CPU的地址总线ADDR[2], A[1]->ADDR[3] ...A[15]->ADDR[17] 那么为什么要这样设计呢? 我们先看一个例子: 假设CPU执行: MOV R0, #3 LDRB R1, [R0] @ 从内存地址为3的地方,读出一个字节 如图有8bitROM、16bitROM、32bitROM (1)对于8bitROM ,8bit是一次读写的最小单位

关于STM32标准外设库中的 USE_STDPERIPH_DRIVER, STM32F10X_MD

若如初见. 提交于 2019-12-10 10:52:36
关于STM32标准外设库中的 USE_STDPERIPH_DRIVER, STM32F10X_MD,在用STM32开发项目中使用stm32标准外设库(STM32F10x Standard Peripherals Library)的时候,我们会在项目的选项(C/C++)中预定义两个宏定义:USE_STDPERIPH_DRIVER, STM32F10X_MD 这里写图片描述 1、 USE_STDPERIPH_DRIVER : to use or not the peripheral’s drivers in application code (i.e. code will be based on direct access to peripheral’s registers rather than drivers API) , this option is controlled by the #define USE_STDPERIPH_DRIVER 即这个定义控制了是否在应用中启用外设驱动。我们使用标准外设库本来就为了方便控制外设,所以要添加这个定义,以启用外设驱动。 2、STM32F10X_MD:每种类别都有所区别,例如sram或者flash或者外设数量不一样,所以stm32标准外设库必须根据你使用的处理器来做相应的预处理。 This define will control the