欢迎来到天天文库
浏览记录
ID:38228647
大小:38.50 KB
页数:5页
时间:2019-05-28
《SST 单片机IAP 编程示例(C 语言)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、SST 单片机IAP 编程示例(C 语言)程序说明:本程序用的单片机是SST89x564RD、SST89x554RC、SST89x58RD2、SST89x54RD2和SST89x52RD2。示例程序代码中,执行IAP指令的程序放在单片机低端程序空间,也就是BLOCK0,IAP的程序包括了扇区擦除(Sector-Erase)、字节编程(Byte-Program)和字节校验(Byte-Verify)(注:字节校验相当于读数据指令)。IAP程序做成子程序,主程序可以调用这些子程序执行IAP操作,把数据烧
2、写到另外一块的FLASH空间中(BLOCK1)。主程序中,目标扇区先被擦除,然后把数据(0,1,2,…,n,n等于一个扇区的大小)写入到BLOCK1目标地址BLK1-DST-ADDR,IAP成功完成后,ErrorCode变为0,如果有错误出现时,程序保持错误功能,ErrorCode还是为1。/********************************************************************************************************
3、****demoIAP.c-SST89x564RDIAPC51示范代码**SST89x564RD、SST89x554RC、SST89x58RD2、SST89x54RD2和SST89x53RD2*MCU有两个内部FLASH存储器块,本代码是从BLOCK0执行IAP指令改写。*BLOCK1的1000H(SST89x564RD)或E000H(SST89x554RC、SST89x58RD2、SST89x54RD2*和SST89x53RD2)的数据。*本程序默认是SST89x564RD,如果使用SST89x
4、554RC、SST89x58RD2、SST89x54RD2*和SST89x53RD2,只要修改变量BLK1_DST_ADDR就可以。************************************************************************************************************//***************************************************************************
5、*********************************MCU特殊功能寄存器地址***********************************************************************************************************/sfrSFCF=0xB1;/*FLASH配置位*/sfrSFCM=0xB2;/*FLASH命令位*/sfrSFAL=0xB3;/*FLASH地址低位*/sfrSFAH=0xB4;/*FLASH地址
6、高位*/sfrSFDT=0xB5;/*FLASH数据位*/sfrSFST=0xB6;/*FLASH状态位*//************************************************************************************************************MCUIAP命令********************************************************************************
7、***************************/#defineSFCM_SE0x0B;/*扇区擦除IAP指令*/#defineSFCM_VB0x0C;/*字节校读IAP指令*/#defineSFCM_PB0x0E;/*字节编程IAP指令*//************************************************************************************************************全局变量定义************
8、***********************************************************************************************/constunsignedshortintBLK1_DST_ADDR=0x1000;/*SST89x564RD准备写入的目标地址(在另外一块的片内FLASH)如果是用SST89x554RC、SST89x58RD2、SST89x54RD2和SST89x53RD2,请删除这句,改为用下面一句。*/
此文档下载收益归作者所有