首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

飞思卡尔s12单片机中全局地址与逻辑地址的问题...

飞思卡尔s12单片机中全局地址与逻辑地址的问题...

s12系列的单片机,拿xep100来说.     逻辑地址为0x4000-0x7fff和0xc000-0xffff是两个固定页flash!
     数据手册里面介绍了直接写数据到flash全局地址为0x700000-0x7fffff里面的序列!
     数据手册里面对flash进行相关操作时都要求的是全局地址(global address),对于固定页来说它的全局地址是什么呢,是不是意味着文档里面关于可分页flash的相关操作序列不再适用于固定页的flash?
     我想请问,我如何向固定页flash里面写入数据?难道只能在声明变量的时候指定变量存放在固定页的flash里面吗,我能否将我想要的数据(可能不是变量,而是任何的二进制代码)写入到固定页里面,另外对于xep100来说,还有1K的eeprom是不能进行分页的,对于这段eeprom我是不是也不能按照文档里面的序列对其进行相关的操作呢?如果不能的话,我该如何将数据写到这块区域里面去呢?同时这一块的逻辑地址是0x0C00-0x1000,这块区域会不会在Global Memory Map中为其分配一个全局地址呢?
     同时对于Local Memory Map中0x0000-0x0800的寄存器区域.此时映射的Global Memory Map却是0x000000-0x000800,我不是很明白这两个内存映射图之间的关系(对于EPAGE,RPAGE和PPAGE寄存器,我能明白其中可分页段的逻辑地址与全局地址之间的关系),而对于寄存器区域的逻辑地址和全局地址的分配和映射原理不是很清楚!
     另外,CW5.0里面我如何设置将我的全部程序烧写到指定的区域!我现在只知道用#pragma指令,但是我的整个工程里面文件很多,我该怎么把所有这些文件编译后产生的.s19文件烧写到我所指定的区域里面呢?如果我没有添加任何的#pragma指令,默认的s19文件是烧写到DEFAULT段里面去吗?
      
      谢谢,求高人笼罩!!!
你的问的太杂了,让人无法一一作答。只能挑个典型问题来回答一下:
任何固定页的flash都会对应一个PPAGE,也会对应一个全局地址GPAGE,中间有个换算关系请参考数据手册。0x4000-0x7fff和0xc000-0xffff是两个固定页flash,分别对应PPAGE的FD和FF,这个可以查看prm文件。所以固定页的flash完全能够进行正常的操作。RAM和EEP也是一样的道理。
关于s19文件就是将对应的数据写到对应地址,其中主要包括程序和常量,数据等,然后又分很多数据段,这个请参考prm中的段划分。在没有#pragma时编译器会按照默认的规则去处理。一般情况都放在对应的default段
返回列表