Cortex-M0(+)内核的处理器架构简介
Cortex-M0(+)内核的处理器架构简介
系统架构
Cortex-M0处理器具有32位系统总线接口,以及32位地址线,即有4GB的地址空间。
- 1
- 2
系统总线基于AHB_Lite高级高性能总线协议。外设总线基于APB高级外设总线协议,通过一个转换桥连接到AHB上。这只是Cortex-M0内核的大概模式,Cortex-M0+的存储器系统与Cortex-M0基本相同。但是厂商根据需要会进行调整。
以下的是基于cortex-M0+内核的stm32L053的内部架构图。
可以看到GPIO口挂在了内核上,由BusMartix负责AHB,DMA,SRAM,MIF之间的数据交换
主总线和外设总线是分离的,所以很多情况下时钟频率也不同。我们可以使外设运行在较低的频率上,或者关闭不用的外设时钟,这样可以降低功耗。
存储器映射
Cortex-M0(+)处理器的4G存储空间从架构上被分为多个区域。总的被分成8个大部分,每个部分512M。
虽然映射已经被架构预先定义,但是实际分配却是很灵活的。
1.代码区域 (0x0000 0000~0x1FFF FFFF) 512M,主要用于存储代码
2.SRAM区域 (0x2000 0000~0x3FFF FFFF) 512M,主要用于数据存储
3.外设区域 (0x4000 0000~0x5FFF FFFF) 512M,主要用于外设及数据存储。不允许执行程序
4.RAM区域 (0x6000 0000~0x9FFF FFFF) 1GB,外部RAM区域,由两个512M区域组成
5.设备区域 (0xA000 0000~0xDFFF FFFF) 1GB,由两个512M组成。属性不同。主要用于外设和IO口,不允许程序执行,但是可以用作通用数据存储。
6.内部私有总线区域(0xE000 0000~0xE00F FFFF) 1MB。用于处理器内部的外设,包括中断控制器NVIC和调试部件,还有systick。不允许程序执行。
7.保留存储器空间 (0xE010 0000~0xFFFF FFFF) 511M用于保留。
上图为基于Cortex-M0+的stm32L053的存储器映射图。我们可以看到基本是与Cortex-M0内核是符合的。但是具体的分配具有很大的灵活性。
片上FLASH在0x0800 0000,SRAM在0x2000 0000。
IO口在0x5000 0000-0x5000 1FFF,占用了8K。
APB1上的器件基地址为0x4000 0000;
APB2上的外设基地址为0x4001 0000;
AHB上的外设基地址为 0x4002 0000。
Cortex-M0(+)内核的处理器架构简介的更多相关文章
- Linux内核的整体架构简介
1. 前言 本文是“Linux内核分析”系列文章的第一篇,会以内核的核心功能为出发点,描述Linux内核的整体架构,以及架构之下主要的软件子系统.之后,会介绍Linux内核源文件的目录结构,并和各个软 ...
- 【DSP开发】德州仪器达芬奇五年之路七宗罪,嵌入式处理器架构之争决战2012
芯片是产业链上游重要的一个环节,一颗小小的芯片具有极高的技术含量和价值,半导体行业每年都会有一个各大厂商营业额的排名,除去2009年,常年盘踞在前三名位置的分别是英特尔,三星半导体和德州仪器,英特尔凭 ...
- 鲲鹏性能优化十板斧——鲲鹏处理器NUMA简介与性能调优五步法
TaiShan特战队六月底成立,至今百日有余,恰逢1024程序员节,遂整理此文,献礼致敬!希望能为广大在鲲鹏处理器上开发软件.性能调优的程序员们,提供一点帮助.从今天开始,将陆续推出性能调优专题文章. ...
- 鲲鹏性能优化十板斧之前言 | 鲲鹏处理器NUMA简介与性能调优五步法
鲲鹏处理器NUMA简介 随着现代社会信息化.智能化的飞速发展,越来越多的设备接入互联网.物联网.车联网,从而催生了庞大的计算需求.但是功耗墙问题以功耗和冷却两大限制极大的影响了单核算力的发展.为了满足 ...
- LoadRunner系统架构简介
1.LoadRunner系统架构简介 LoadRunner是通过创建虚拟用户来代替真实实际用户来操作客户端软件比如Internet Explorer,来向IIS.Apache等Web服务器发送HTTP ...
- Linux内核的整体架构
Linux内核的整体架构 作者:蜗蜗 发布于:2014-2-21 13:23 分类:Linux内核分析 原文:http://www.wowotech.net/linux_kenrel/11.html ...
- Linux内核学习笔记-1.简介和入门
原创文章,转载请注明:Linux内核学习笔记-1.简介和入门 By Lucio.Yang 部分内容来自:Linux Kernel Development(Third Edition),Robert L ...
- LoadRunner系统架构简介与运行原理
1.LoadRunner系统架构简介 LoadRunner是通过创建虚拟用户来代替真实实际用户来操作客户端软件比如Internet Explorer,来向IIS.Apache等Web服务器发送HTTP ...
- ARM 处理器架构【转】
ARM 处理器架构 转自:http://www.arm.com/zh/products/processors/instruction-set-architectures/index.php ARM 架 ...
随机推荐
- Go sync模块
// A WaitGroup waits for a collection of goroutines to finish.// The main goroutine calls Add to set ...
- K8s 日常操作
1.获取所有Pods kubectl get pods --namespace=default 2.获取所有Deployments kubectl get deployments --namespac ...
- 如何隐藏tomcat命令窗口
有两种方法: 一.修改tomcat中的文件参数,达到隐藏目的: 引用:TOMCAT_HOME\bin\setclasspath.bat 在文件的底部找到以下内容: set _RUNJAVA=" ...
- eclipse oxygen 版本(即为4.7版本)打开 could not create the java virtual machine问题
1.问题: could not create the java virtual machine 2.解决办法: 找到eclipse目录下的eclipse.ini文件.打开找到以下内容: -vmargs ...
- 算法总结之 删除链表的中间节点和a/b处的节点(链表中间节点的重要思想)
给定链表的表头节点head,实现删除链表的中间节点的函数 推展: 给定链表的头节点,整数a 和 整数 b,实现删除a/b处节点的函数 先来分析原问题, 长度1 直接返回 长度2 将头节点删除 长度3 ...
- php环境之Wampserver端口修改
WampServer是一款由法国人开发的Apache Web服务器.PHP解释器以及MySQL数据库的整合软件包.免去了开发人员将时间花费在繁琐的配置环境过程,从而腾出更多精力去做开发.WampSer ...
- webdriver 选择
You only need from selenium import webdriver . Execute html= browser.find_element_by_xpath(" ...
- myeclipse2017复制项目后如何改web context root
点中项目,然后alt+enter,或者 然后
- 如何创建效率高sql-建立索引
我们做开发的人员,虽说自己不是专业从事数据库方面研究的(如DBA),但很多时候,公司没有专门的DBA,所以拿到具体的项目中,整体的数据库设计都是开发人员自己写的,随着时间的推移,加上开发经验的增长 ...
- WPF各种控件详解——(WPF从我炫系列)
http://blog.csdn.net/zx13525079024/article/details/5694638