简介
本文档讨论了PIC18F和PIC24F架构的特性,重点说明了各种外设的差异和相似之处,并介绍了从PIC18F移植到PIC24F时需要考虑的因素。此外,PIC18F架构还有许多更新,其中最值得注意的是增加了直接存储器访问(Direct Memory Access,DMA)。本文档说明了旧款PIC18F器件(不支持DMA)与新款PIC18F器件(支持DMA)之间的差异以及二者与PIC24F器件的差异(适用时)。
CPU内核
注: 本移植文档详细介绍了从PIC18F器件到PIC24F器件的变化。请注意,某些特性可能无法使用。有关更多详细信息,请参见具体器件数据手册。可从以下Microchip全球网站下载器件数据手册和勘误表:http://www.microchip.com。
尽管PIC24F架构明显不同于PIC18F架构,但仍可将PIC24F MCU视为PIC18F器件的自然延伸。本文档将有助于在从一个系列切换到另一个系列时减小移植难度。大多数变化(例如数据位宽、指令字大小、指令时钟方案以及堆栈和内核寄存器)主要影响基于汇编的程序。此外,还添加了其他硬件特性来增强处理性能。表1总结了相应的变化。
表1:CPU内核特性比较
移植注意事项
从PIC18F移植到PIC24F时,首要的考虑因素是PIC24F内核使用FOSC/2作为其指令时钟,而PIC18F器件则使用FOSC/4指令时钟。这能够在相同的输入时钟速度下有效地使指令速率加倍,但也会更改许多利用指令时钟作为基准的外设所使用的基本时钟。移植时需要考虑这种频率变化,以确保外设按预期运行。PIC18F器件和PIC24F器件的CPU之间的大多数其他变化由编译器自动处理,不会影响用C语言编写的程序。
不支持DMA的PIC18F器件与支持DMA的PIC18F器件之间的差异
新旧PIC18F器件的内核间存在一些差异,从而使新旧PIC18F器件到PIC24F器件的移植路径有明显不同。
存储器映射和程序存储器
PIC18F和PIC24F架构的程序存储空间使用相同的通用模式。除了明显的宽度差异外,PIC24F器件还在数据空间中包含了更大的寻址范围和增强的可视性特性。存储空间的构成和非程序存储器特性的位置也有所不同,在移植应用时必须考虑在内。PIC18F器件和PIC24F器件的存储器构成的主要差异如表2所示。
表2: 存储器构成特性比较
移植注意事项
首先要考虑的是程序计数器(Program Counter,PC)的宽度。PIC18F器件为22位,PIC24F器件为24位。这很大程度上影响了直接写入程序计数器的应用程序,因为这些器件上的实际程序存储器大小因系列而异,不能简单认为PIC18F或PIC24F的程序存储空间更大或更小。其次要考虑的是,如果PIC18F器件不支持向量中断,则其中断预留空间将远小于同等PIC24F器件(PIC18F上仅为存储单元00h、08h和18h,PIC24F器件上为00h至1FFh)。最后要考虑的是,大多数PIC18F器件均具有对专用引导块的硬件支持(此段具有单独的写/代码保护控制),而PIC24F器件则没有。
不支持DMA的PIC18F器件与支持DMA的PIC18F器件之间的差异
新旧PIC18F器件的程序存储器间存在一些差异,从而使新旧PIC18F器件到PIC24F器件的移植路径有明显不同。
…………未完待续…………