社区导航

 
快捷导航
  • 首页
  • 论坛
  • 查看新帖
  • 最新回复
  • 社区活动
  • 联系管理员
  • 消灭零回复
  • E金币兑换
  • 干货
搜索
查看: 3495|回复: 1

飞思卡尔 HCS12(X)系列 MCU 的 Prm 文件中的逻辑地址和全局地址的转换

[复制链接]

179

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2012-9-27 21:12:35 | 显示全部楼层 |阅读模式

飞思卡尔 HCS12X)系列 MCU Prm 文件中的逻辑地址和全局地址的转换

 

由于在我的项目中,需要实现对 HCS12 单片机的 FLASH 进行擦写,所以难免会遇到对全局地址的操

作,因为对 FLASH 的擦写操作是必须使用全局地址的。

 

下图是擦除指令序列的说明

1

其中 Global address[17:16]是需要写入 FLASH Block 值,下面的 Global address[15:0]是低 16 位地址。一

共是 18Bit 的全局地址,其最大的寻址的空间是  = 2^18 = 256K

下图是逻辑地址和全局地址的映射图

 

2

可以发现低 14 位地址就是一页的大小 2^14 = 16K

4 位地址就是页寄存器 PPAGE 的地址,由[17:14]组成。

 

下面说明 PRM 文件和全局地址的转换关系

 

MC9SHY64 工程的 PRM 文件的片段

 

/* non-paged FLASHs */

      ROM_1400      = READ_ONLY     0x1400 TO   0x2FFF; //7K

      ROM_4000      = READ_ONLY     0x4000 TO   0x7FFF; //16K

      ROM_C000      = READ_ONLY     0xC000 TO   0xFEFF; //16k

/* paged FLASH:       0x8000 TO   0xBFFF; addressed through PPAGE */

      PAGE_0C       = READ_ONLY   0x0C8000 TO 0x0C93FF;  //5k

      PAGE_0C_B000  = READ_ONLY   0x0CB000 TO 0x0CBFFF;  //4k

      PAGE_0E       = READ_ONLY   0x0E8000 TO 0x0EBFFF;  //16k

 

对于分页区

其中 PAGE_0CPAGE_0C_B000PAGE_0E 属于分页区范围,由于是在分页区,所以如果需要擦写

这个区域,则需要转换,PAGE_0C 0C 就是页号,它对应了 PPAGE

0C = 0000 1100,其中 11 就是 Global address[17:16] 2 位,11 后面的 00 实际是无效的。

PAGE_0C 后面的起始地址是 0x0C8000,这里的 8000 是分页窗口逻辑地址范围内的起始地址,0C 就是页

号,按照图 2 进行理解,全局地址 = (0x0C<<14) | 0x8000 = 0x38000,这个理解是错误的。经过调试发现应该是这样的:

 

全局地址  = (0x0C<<14)  | 0x8000 – 0x8000  =    0x30000

 

那么

 

PAGE_0C_B000  = READ_ONLY   0x0CB000 TO 0x0CBFFF;  //4k

 

全局地址  = (0x0C<<14)  | 0xB000 – 0x8000  =    0x33000

 

即,如果要擦写 PAGE_0C_B000 这个区域,则如下设置

Global address[17:16] = 0x03

Global address[15:0] = 0x3000

 

对于非分页区

其中 ROM_1400ROM_4000ROM_C000 属于非分页区范围,由于是在非分页区,页寄存器 PPAGE

是无效的,所以如果需要擦写这个区域,则将图 1 中的 Global address[17:16] 2 位写 00 即可,

然后 Global address[15:0]直接写地址值就行,如 Global address[15:0] = 0x1400

 

ROM_1400      = READ_ONLY     0x1400 TO   0x2FFF; //7K

 

全局地址  = (0x00<<14)  | 0x1400  =    0x01400

 

这些结论是我经过实际调试得出来的,不知道理解的如何,如果有高手,希望能指点指点!谢谢!



回复

使用道具 举报

10

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2012-10-21 23:01:26 | 显示全部楼层
很好


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2018-7-16 10:37 , Processed in 0.127345 second(s), 17 queries , Gzip On, Redis On.

快速回复 返回顶部 返回列表