打印
[Kinetis]

读书笔记-循序渐进之K60存储器空间地址映像

[复制链接]
4121|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 生无所息1 于 2013-10-22 21:57 编辑

       存储器空间地址映像是一个很重要的概念,但是关于这个概念在你大脑的形成不是一秒钟就能好的。就像当初刚来到大学校园一样,哪儿是图书馆,哪儿是教学楼以及学校的后门和侧门有些什么新鲜的东西,这些都是我们探索过一段时间后才知道的。基于这个想法,在这关于存储器空间地址映像,我将只做整体的简要介绍 ,简要介绍并不是说它不重要。这是本芯片的一个“地图”,要时刻记着,走到一处陌生的地方要翻出来看看,揣摩揣摩就熟悉了。
      先大体看看K60的资源模块图,心中先有个印象。
      K60系列微控制器具有IEEE 1588以太网,全速和高速USB2.0 On-The-Go 带设备充电检测,硬件加密和防篡改探测功能,具有丰富的模拟、通信、定时和控制外设,从100LQPF封装256KB 闪存开始可扩展到256MAPBGA1MB闪存。大闪存的K60系列微控制器还提供可选的单精度浮点单元、NAND闪存微控制器和DRMA控制器。
       ARM Cortex为32位处理器内核。内部的数据是32位的,寄存器也是32位的,存储器接口也是32位的。ARM Cortex-M4采用哈佛结构,拥有独立的数据总线和指令总线,从而提升了性能为实现这一特性ARM Cortex-M4内部含有好几条总线接口。
        K60系列芯片内部有32根地址线低地址范围为0x0000_0000-----0xFFFF_FFFF.从学习的角度,我们因该了解程序及变量等资源存放情况。
          1.中断向量,程序代码及常量的存放地址。
          中断向量表,程序代码及常量存放于flash中。K60的中断向量表、程序常量、程序代码存放区是0X0000_0000到0x0FFF_FFFF。k60的程序代码编译链接后,中断向量表将从0X0000_0000开始存放,程序将从0x0000_0410开始存放,存放完代码后,常量随其后存放。MK60N512VMD100芯片的实际flash存储空间大小是512K,其地址范围是0x0000_0000到0x0007_FFFF.中断向量表,程序代码、常量的实际存放地址,存放长度是不同的(在链接命令文件.lcf里面有定义)。
          2.全局变量,局部变量的存放。
          全局变量、局部变量存放于RAM中,K60系列微控制器的RAM地址空间分为两部分,第一部分被称为SRAM_L,地址范围是0x1800_0000到0x1FFF_FFFF,共128MB;第二部分称为SRAM_U,地址范围是0x2000_0000到0x200F_FFFF,共1MB。
         MK60N512VMD100 芯片的实际RAM大小为128KB,其地址范围是0x1FFF_0000到0x2000_FFFF。在链接命令文件(.lcf)可以看到RAM地址空间分配情况。K60芯片初始化时将在flash区域0x0000_0000位置开始的中断向量表复制到RAM的起始位置0x1FFF_0000中,长度为0x410个字节(包含16字节的flash配置字段)。在此之后RAM存放用户Sdata、data、bss段等数据段,含义见链接命令文件(.lcf)。在这些数据段存放完后紧接着就是堆和栈地址空间,堆默认大小是4KB栈默认大小为1KB用户可通过链接命令文件(.lcf)自行配置大小。
       在链接命令文件(.lcf)中应该将堆栈指针SP配置在实际RAM存储器的最高地址。进栈时堆栈指针SP向RAM低地址方向移动。出栈时,SP向RAM高地址方向移动。堆栈指针SP的最低两位永远是0,这意味着堆栈总是4字节对齐的。

      

QQ图片20131022165608.jpg (108.53 KB )

QQ图片20131022165608.jpg

IMG_20131022_205346.jpg (1.23 MB )

IMG_20131022_205346.jpg

IMG_20131022_205244.jpg (1.23 MB )

IMG_20131022_205244.jpg

相关帖子

沙发
生无所息1|  楼主 | 2013-10-22 22:08 | 只看该作者
自己顶,不要沉了!!!!

使用特权

评论回复
板凳
生无所息2| | 2013-10-22 22:13 | 只看该作者
不错呦,呵呵呵!!

使用特权

评论回复
地板
FSL_TICS_ZJJ| | 2013-10-23 16:15 | 只看该作者
楼主写的不错哦,但是书上讲是老版本的,有个东西我补充下,“用户可通过链接命令文件(.lcf)自行配置大小”,其中在现在的CW10.4以上版本已经换为了(.ld)

使用特权

评论回复
5
生无所息1|  楼主 | 2013-10-23 19:37 | 只看该作者
FSL_TICS_ZJJ 发表于 2013-10-23 16:15
楼主写的不错哦,但是书上讲是老版本的,有个东西我补充下,“用户可通过链接命令文件(.lcf)自行配置大小 ...

嗯,我是菜鸟,这些书本上的知识对我来说也是新知识!!

使用特权

评论回复
6
123de7| | 2013-10-23 21:14 | 只看该作者
学习了 ,顶一个!!

使用特权

评论回复
7
KuMo_2011| | 2013-10-23 22:17 | 只看该作者
FSL_TICS_ZJJ 发表于 2013-10-23 16:15
楼主写的不错哦,但是书上讲是老版本的,有个东西我补充下,“用户可通过链接命令文件(.lcf)自行配置大小 ...

原来我们刚拿到手的就已经是老版本的啦,日新月异啊

使用特权

评论回复
8
FSL_TICS_ZJJ| | 2013-10-24 09:03 | 只看该作者
KuMo_2011 发表于 2013-10-23 22:17
原来我们刚拿到手的就已经是老版本的啦,日新月异啊

不过呢,模块啥的基本一样的,知识嘛都是一样,具体设计官网还有很多的例程方案供参考。所以,完全没有关系,这本书我们也看的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://luckyjiujiu.taobao.com/shop/view_shop.htm?tracelog=twddp 啾啾电子,欢迎光临!!

11

主题

444

帖子

1

粉丝