Board logo

标题: [下载]AC60自写FLASH的例程 [打印本页]

作者: allensun_j    时间: 2009-3-28 23:59     标题: [下载]AC60自写FLASH的例程

上传一段关于AC60自写FLASH的例程共大家分享 glt3BlIR.rar (145 KB)

认为好的大家就给点掌声,谢谢,呵呵

该程序移植注意事项:1.注意时钟的配置 2.PRM文件的配置

//==========================================================
FLASH时钟配置:
文件“S08_Flash.h”中 “#define BUS_CLOCK 20000000”这句要根据自己所用的总线频率设定


//==========================================================
PRM文件配置注意如下:
SEGMENTS /* Here all RAM/ROM areas of the device are listed. Used in PLACEMENT below. */
Z_RAM = READ_WRITE 0x0070 TO 0x00FF;
RAM = READ_WRITE 0x0170 TO 0x086F;
ROM = READ_ONLY 0x18D0 TO 0xFFAF;
ROM1 = READ_ONLY 0x0870 TO 0x17FF;
ROM2 = READ_ONLY 0xFFC0 TO 0xFFC5;
FLASH_TO_RAM = READ_ONLY 0x1860 TO 0x18CF RELOCATE_TO 0x0100;//!!!
/* INTVECTS = READ_ONLY 0xFFC6 TO 0xFFFF; Reserved for Interrupt Vectors */
END
//注:RAM地址0x0100 to 0x016F预留,用于存放擦写FLASH的程序;


//==========================================================
在移植时由于新建工程所以经常忘记下面这3段的调整
1
Z_RAM = READ_WRITE 0x0070 TO 0x00FF;
RAM = READ_WRITE 0x0170 TO 0x086F;
2
ROM = READ_ONLY 0x18D0 TO 0xFFAF;
ROM1 = READ_ONLY 0x0870 TO 0x17FF;
FLASH_TO_RAM = READ_ONLY 0x1860 TO 0x18CF RELOCATE_TO 0x0100;
3
FLASH_ROUTINES INTO FLASH_TO_RAM;

//==========================================================
在移植过程中有可能出现下面的编译报错:
Link Error1102 Out allocation space in segment FLASH_TO_RAM at address 0xXXXX
这是因为
FLASH_TO_RAM = READ_ONLY 0x1860 TO 0x18CF RELOCATE_TO 0x0100;
这里分配的空间不够,适当扩大就可以了

注:这个例程的缺点在于直接分配了RAM给擦写FLASH的程序,使这写RAM大部分时间浪费掉而不能用于其他用途
参考文献中介绍了一种较好的实现方式。

参考文献:
“在HCS08微控制器上使用FLASH存储器模拟EEPROM”和
“HCS08系列单片机FLASH模拟EEPROM的应用”(请自行在网上搜所这些文档)

免责声明:
这段程序并非本人所写,也是摘自别处。
这段程序只是经过MC9S08AC60demo板简单的测试,未经过大批量和长时间的验证,所以若用在产品当中应谨慎,若出现因引用本程序而出现任何问题本人将不承担任何责任!

allensun_j 2009-3-28 23:24

[em07]

附件: [[下载]AC60自写FLASH的例程] glt3BlIR.rar (2009-3-28 23:32, 145 KB) / 下载次数 175
http://bbs.eccn.com/attachment.php?aid=6672&k=3ba07270ae6c85e8153d30f95af0acc5&t=1719804634&sid=ppN2ws




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0