购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 MC9S08AW系列的存储器空间分配

图2-5显示了MC9S08AW60和9S08AW48 的存储器空间图,图2-6显示了MC9S08AW32和 9S08AW16 的存储器空间图。9S08AW60 系列MCU的整个$0000~$FFFF范围 64 KB的空间分成寄存器、RAM、Flash三大区域,寄存器又分为三组:直接页寄存器($0000~$006F)、高页寄存器($1800~$185F)和非易失性寄存器($FFB0~$FFBF),Flash又分为两组:用户程序Flash区($0870~$17FF、$1860~$FFAF)和中断复位矢量区($FFC0~$FFFF)。

图 2-5 MC9S08AW60 和MC9S08AW48 的存储器分配图

图 2-6 MC9S08AW32 和MC9S08AW16 的存储器分配图

下面以MC9S08AW60 为例,对各段存储空间进行简要介绍。

1)$0000~$006F,112 B,直接页寄存器空间(Direct Page Register)

直接页寄存器空间分布着MCU片内外围模块如I/O端口、ADC、IRQ、键盘、定时计数器、SCI、IIC等模块的控制和状态寄存器,CPU通过对这些地址空间的访问实现对片内外围模块的操作。

2)$0070~$086F,2 048 B,用户RAM空间

用户RAM空间用于存放用户程序中的各种变量数据。MC9S08AW16 片内用户RAM只有 1 024 B,其RAM空间地址为$0070~$046F。存储器直接页($00~$FF)的前 112 B的RAM($00~$6F)用于模块寄存器,还有 144 B($70~$FF)可用于用户RAM。这一页是可以直接寻址的,可以用于存放程序中频繁使用的全局变量,是一个非常宝贵的RAM区段。但要注意到,系统堆栈指针SP的复位默认值为$00FF,且入栈时向地址减量方向生长,也就是说,堆栈默认定位在直接页存储空间,占据了部分可直接寻址的用户RAM区。为了把直接页RAM空间留给程序变量,用户程序可在复位初始化时,通过设置SP,把堆栈定位到RAM空间末,例如,可以使SP指向$086F,从而把直接页剩下的 144 B全部留给用户程序变量使用。

3)$0870~$17FF,3 984 B,用户Flash空间

Flash存储器是一种先进的电可擦写型存储器,具有容量大,擦写速度快的特点。MC9S08AW60 的Flash只需单一 5 V/3 V电源就可以实现对Flash存储器的读/写擦除等全部操作。

用户Flash空间用于存储用户程序代码和常数、表格等。此用户Flash空间仅对MC9S08AW60 才可用。对于MC9S08AW48、MC9S08AW32 和MC9S08AW16,此段空间被保留。

4)$1800~$185F,96 B,高页寄存器空间(High Page Register)

分布在此空间的寄存器有:系统复位状态寄存器SRS、系统背景调试强制复位寄存器SBDFR、系统选项寄存器SOPT、系统MCLK控制寄存器SMCLK、系统设备鉴别寄存器SDID、系统实时中断状态和控制寄存器SRTISC、系统电源管理状态和控制寄存器SPMSC、片上调试模块寄存器、Flash模块寄存器、I/O端口控制寄存器等。高页寄存器较少使用,因此它们分布在可直接页寻址的存储空间外,从地址$1800 开始到$185F,共 96 B。

5)$1860~$FFAF,59 216 B,用户Flash空间

同$0870~$17FF用户Flash空间一样,此段用户Flash空间可用于存储用户程序代码和常数、表格等。

6)$FFB0~$FFBF,16 B,非易失性寄存器(Nonuolatile Register)

包括一个 8 B的后门键值,一个 8 位的Flash保护寄存器NVPROT,一个 8 位的Flash选项寄存器NVOPT。这几个寄存器对于用户程序都是只读的,改写它们可以通过改变程序代码,然后重新写入目标代码到Flash来完成。

7)$FFC0~$FFFF,64 B,中断矢量(Interrupt Vecton)空间

该区间用于存放中断向量表,其中最后两个字节$FFFE与$FFFF中放置复位向量地址。有关中断矢量空间的用途请参看第 5 章。

对于MC9S08AW48、MC9S08AW32 和MC9S08AW16,因片内RAM、Flash大小的差别,上述 7 个段的具体分布稍有不同,但各段功能和MC9S08AW60 都是相同的。 kIq2RA4QWuwP80tP2TXaDDfuHGzcN9VR702l2plnEDLGHNXp7ux3UbIIQ4mnU1FF

点击中间区域
呼出菜单
上一章
目录
下一章
×