FreescaleHCS12微控制器MC9S12DP256

上传人:san****glu 文档编号:111535706 上传时间:2019-11-02 格式:PPT 页数:36 大小:1.84MB
返回 下载 相关 举报
FreescaleHCS12微控制器MC9S12DP256_第1页
第1页 / 共36页
FreescaleHCS12微控制器MC9S12DP256_第2页
第2页 / 共36页
FreescaleHCS12微控制器MC9S12DP256_第3页
第3页 / 共36页
FreescaleHCS12微控制器MC9S12DP256_第4页
第4页 / 共36页
FreescaleHCS12微控制器MC9S12DP256_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《FreescaleHCS12微控制器MC9S12DP256》由会员分享,可在线阅读,更多相关《FreescaleHCS12微控制器MC9S12DP256(36页珍藏版)》请在金锄头文库上搜索。

1、Freescale HCS12 微控制器 MC9S12DP256,2005年8月,Slide 1,使用 HCS12的第一步,1) HCS12 技术概述 2) Operating Modes工作模式 3) Resource Mapping资源映射 4) External Bus Interface外部总线接口 5) Port Integration Module端口集成模块 6) Background Debug Mode背景调试模块,Slide 2,工作模式,MODA MODB MODC/BKGD,RESET,HCS12,Mode Pins are sampled and latched on

2、 rising edge of Reset .,CLOCK /RESET MODA MODB MODC,Sample Latch,Slide 3,Modes of Operation,MODC,MODB,MODA,MODE,ADDR,DATA,BDM,Special Expanded Narrow,Allowed,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,8,16,16,16,16,16,16,16,16,8,-,-,-,Allowed,Allowed,Allowed,Allowed,Allowed,Active,Speci

3、al Single Chip,Special Test,Emulation Expanded Wide,Normal Single Chip,Expanded Narrow,Peripheral Mode,Expanded Wide,MODA and MODB have active pulldowns during reset. MODC has the pull-up on the pin enabled after reset. Mode Pins are sampled and latched on rising edge of Reset,Slide 4,MODC, MODB, MO

4、DA Write Capability,MODC,MODB,MODA,MODE,MODx Write Capability,Special Expanded Narrow,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,MODC, B, A write anytime but not to 110,no write,Special Single Chip,Special Test,Emulation Expanded Wide,Normal Single Chip,no write,MODB, A write once but not to 110,MODC, B, A write

5、 anytime but not to 110,Slide 5,内部存储器映射-寄存器,寄存器,RAM,EEPROM可以通过设置INITRG,INITRM,INITEE来重新分配他们的位置。 这些寄存器只能写一次,建议在初始化分配寄存器,RAM,EEPROM的位置。对每个INITxx赋值后,在其指令后需插入一空指令。 如果映射有冲突,寄存器具有最高优先级,与其重叠的RAM和EEPROM此时无效。 复位后,寄存器从0x0000开始,但可以被映射到64K空间内的前32K的范围内,而且映射的地址必须是2K的整数倍。,内部寄存器位置初始化寄存器,15 14 13 12 11 10 9 8 7 6 5

6、4 3 2 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0x1000,Slide 6,内部存储器映射-RAM,1、复位后RAM区从0x1000开始,但可以被映射到64K字节空间内的任何16K字节块内。 比如从$0000-$3FFF,$4000-$7FFF. 2、RAM15-14用来决定RAM区映射到哪个16K的字节块中。RAM13-11不起作用 3、RAMHAL用来决定12KRAM是放在16K的后12K区域还是前12K区域 比如INITRM=9,则RAM从$9000到$BFFF共12K,内部RAM位置初始化寄存器,Slide 7,内部存储器映射-EEPROM,DP2

7、56有4K的EEPROM,通过INITEE的EEON位来使能 复位后,EEPROM区域从$0000开始,但可被映射任意64K空间中的4K字节块内。 EE15-12决定16位EEPROM区域地址的前4位 比如:INITEE=0x11,则地址是从$1000开始,内部EEPROM位置初始化寄存器,EEON 1 = EEPROM IS ENABLED 0 = EEPROM IS DISABLED,Slide 8,映射优先级,如果资源映射时,发生重叠,则优先级高的资源有效,在扩展模式下,所有没有被内部资源用到的地址空间将被默认为外部存储器,Slide 9,强烈建议!,尽量使用默认的资源映射设置! 需要对

8、资源映射时,注意不要使地址重叠,导致异常错误,Slide 10,存储器映射 & 工作模式,$0000 $0400 $1000 $4000 $FF00 $FFFF,$0000 Registers $03FF,$1000 $3FFF,$4000 Flash $7FFF,VECTORS 扩展,4K EEPROM,Registers,12K RAM,$0000 EEPROM $0FFF,VECTORS 单 片,4K EEPROM,Registers,12K RAM,特殊单片模式,4K EEPROM,Registers,12K RAM,$8000 Flash $BFFF,$C000 Flash (Pag

9、e 63) $FFFF,$FF00 $FFFF,BDM (If Active),16K Flash (Fixed),16K Flash (Fixed),16Kx16 Flash Pages (Windowed),16Kx16 Flash Pages (Windowed),16K Flash (Fixed),16K Flash (Fixed),Mappable to any 2K Block within the first 32K. Mappable to any 4K Block 12K Mappable to any 16K Block and alignable to top or bo

10、ttom,Page $3E,Page $3F,16Kx16 internal Flash Pages (Windowed),16Kx48 external Flash Pages (Windowed),16K Flash (Fixed),16K Flash (Fixed),Slide 11,FLASH,$4000$FFFF间的存储数据是可以访问的。 由于Flash 模块的地址范围超出了 HCS12 的64K (16-bit)地址空间,所以从 $8000$BFFF被映射到若干16K字节大小的页框中。 由PPAGE寄存器决定在当前访问的是哪一页。 $8000 - $BFFF间共有64个可访问的页。

11、 使用PPAGE寄存器可以访问到地址在$8000$BFFF间的所有共16页的16K字节。 Flash模块中每个块包含许多行控制和状态寄存器,它们都位于的相同地址空间 INITRG + $100 - INITRG + $10F。通过Flash 配置寄存器选择有效的某行寄存器。 MC9S12DP256 有7个引脚端口, 端口K,用来仿真或者作为通用 I/O。其余六个端口用来决定哪一个Flash页正在被访问。 其余的地址位放在 PPAGE 寄存器中。,Slide 12,FLASH,除了硬件的分页机制外,另外增加了两条指令,用来调用页内函数。 CALL指令类似于JSR,除了把分页窗返回地址放到堆栈中,

12、它还会在CALL指令把新的8位的数据写到PPAGE之前,把PPAGE的当前值放到堆栈中。 调用CALL指令,需要用RTC指令返回 程序继续执行时,把PPAGE的值和分页窗口的地从堆栈中调出 MC9S12DP256的PPAGE有6位,可以有1M的寻址范围 低地址范围的768K通过PPAGE $00到$2F来访问,它被保留用作外部存储器(当使用扩展模式时) 高地址范围的256K由PPAGE的$30到$3F来访问,用作内部FLASH存储区,Slide 13,FLASH分页机制,所有的256K的FLASH可以通过16K的PPAGE窗口来访问,其中两个16K的页也可以通过固定地址($4000-7FFF,

13、 $C000-FFFF)来访问。 $4000-$7FFF与$3E相对应,$C000-$FFFF与$3F相对应 这两个固定页克服了内存分页机制的一些缺点 采用分页机制,在某一页中的函数无法直接访问访问另一页中的数据 需要被其它页的函数访问的数据应该放在固定页中,或只有固定页的函数才能访问其他页的数据 因为复位和中断向量表只有16位,所以所有的中断服务程序和复位初始化程序必须从固定页中开始执行。 大部分中断服务程序可以放在非固定页中,部分的中断服务程序尤其起始部分要放在固定页中。通过CALL来调用非固定页中的函数,最后用RTI指令返回,Slide 14,FLASH-Codewarrior,Code

14、warrior引入两个关键字:near, far Near函数用JSR或BSR来调用 Far函数用CALL来调用 比如:void far func1(void); /func1函数放在非固定页中,可以被其他页的函数调用 const int *far ptr; /指向常量的指针放在非固定页中,这个指针可以用来指向非固定页中的变量,Slide 15,Codewarrior内存模型,Codewarrior支持3种不同的内存模型: SMALL(默认),平面的64K的地址空间。所有的函数都是near BANKED,即采用分页地址。所有的用户的函数都被默认为far far类型的数据指针可以在SMALL和B

15、ANKED中使用 LARGE, 默认为数据和代码均为分页模式。所有的函数和数据指针都是far类型。这种内存模型运行时间比较长,因此很少使用,MC9S12DP256最常用的是BANKED内存模型,Slide 16,Codewarrior分段,代码和数据可以被分组被Linker放在特定的存储区中 #pragma用来给代码段或数据段命名并分配属性 #pragma CODE_SEG定义一个代码段。 NEAR规定本段中的函数用JSR来调用,即只能被本页函数调用,除非把它放在固定页中 FAR规定本段中的函数用CALL来调用 如果没有规定NEAR或FAR,函数的类型由内存模型来决定 如果没有规定段,则代码放在DEFAULT_ROM中 所有跟在#pragma CODE_SEG后面的函数回放在该段中,直到下一个#pragma CODE_SEG出现,因此在头文件中,声明函数原型时,必须使用#pragma CODE_SEG,#pragma CODE_SEG NEAR|FAR ,#pragma CODE_SEG FUNCTIONS void func1(void); void func2(void); #pragma CODE_SEG DEFAULT,#include “functions.h“ #pragma CODE_SEG FUNCTIONS void func1(vo

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号