⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iap.h

📁 基于LPC2478硬件平台的IAP和远程WEB应用。 系统共分为三个部分
💻 H
字号:
/****************************************Copyright (c)**************************************************
**                               广州周立功单片机发展有限公司
**                                     研    究    所
**                                        产品一部 
**
**                                 http://www.zlgmcu.com
**
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名: IAP.h
**创   建   人: 
**最后修改日期: 
**描        述: LPC2400在线升级操作的IAP头文件
**
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人: 	zhangbin
** 版  本: 	v1.00
** 日 期: 	2007-3-30
** 描 述: 	定义IAP的头文件
** 说明:	
**------------------------------------------------------------------------------------------------------
** 修改人:
** 版  本:
** 日 期:
** 描 述:
**
**--------------当前版本修订------------------------------------------------------------------------------
** 修改人: 	Li Baihua
** 版  本: 	v1.01
** 日 期: 	2008-07-01
** 描 述: 	修改IAP的头文件
** 说明:	
**------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
#ifndef __IAP_H
#define	__IAP_H

#include "config.h"
/*定义IAP命令字*/
//											命令		参数
#define		IAP_SELECTOR		50		// 选择扇区		【起始扇区号、结束扇区号】
#define		IAP_RAMTOFLASH		51		// 拷贝数据		【FLASH目标地址、RAM源地址、写入字节数、系统时钟频率】		
#define		IAP_ERASESECTOR		52		// 擦除扇区		【起始扇区号、结束扇区号、系统时钟频率】
#define		IAP_BLANKCHK		53		// 查空扇区		【起始扇区号、结束扇区号】
#define		IAP_READPARTID		54		// 读器件ID		【无】
#define		IAP_BOOTCODEID		55		// 读Boot版本号	【无】
#define		IAP_COMPARE			56		// 比较命令		【FLASH起始地址、RAM起始地址、需要比较的字节数】
#define		IAP_REINVOKE_ISP	57		// 重新调用ISP	【无】

/*定义IAP返回状态字*/
#define		CMD_SUCCESS			0
#define		INVALID_COMMAND		1
#define		SRC_ADDR_ERROR		2
#define		DST_ADDR_ERROR		3
#define		SRC_ADDR_NOT_MAPPED	4
#define		DST_ADDR_NOT_MAPPED	5
#define		COUNT_ERROR			7
#define		SECTOR_NOT_BLANK	8
#define		SECTOR_NOT_PREPARED_FOR_WRITE_OPERATION		9
#define		COMMPARE_ERROR		10
#define		BUSY				11


extern	uint32	SelSector(uint8	sec1,uint8	sec2);
/*********************************************************************************************************
**函数名称:SelSector
**函数功能:IAP操作缓冲区选择,代码为50
**入口参数:sec1	起始扇区
**			sec2	终止扇区
**出口参数:IAP 操作状态码
**			IAP返回值(paramout缓冲区)
********************************************************************************************************/

extern	uint32	RamToFlash(uint32 dst, uint32 src, uint32 no);
/*********************************************************************************************************
**函数名称:RamToFlash
**函数功能:复制RAM的数据到FLASH,命令代码51
**入口参数:dst		目标地址,即FLASH起始地址,以512字节为分界
**			src		源地址,即RAM地址,地址必须字对其
**			no		复制字节个数,为256/512/1024/4096
**出口参数:IAP 操作状态码
**			IAP返回值(paramout缓冲区)
********************************************************************************************************/

extern	uint32	EraseSector(uint32 sec1, uint32	sec2);
/*********************************************************************************************************
**函数名称:RamToFlash
**函数功能:擦除扇区,命令代码52
**入口参数:sec1	起始扇区
**			sec2	终止扇区
**出口参数:IAP 操作状态码
**			IAP返回值(paramout缓冲区)
********************************************************************************************************/

extern	uint32	BlankCHK(uint32	sec1,uint32	sec2);
/*********************************************************************************************************
**函数名称:BlankCHK
**函数功能:查空扇区,命令代码53
**入口参数:sec1	起始扇区
**			sec2	终止扇区
**出口参数:IAP 操作状态码
**			IAP返回值(paramout缓冲区)
********************************************************************************************************/

extern	uint32	ReadParID(uint32 *Device_ID);
/*********************************************************************************************************
**函数名称:ReadParID
**函数功能:读器件ID,命令代码54
**入口参数:器件ID地址指针
**出口参数:IAP 操作状态码
**			IAP返回值(paramout缓冲区)
********************************************************************************************************/

extern	uint32	BootCodeID(uint32 *Boot_ID);
/*********************************************************************************************************
**函数名称:BootCodeID
**函数功能:读boot代码ID,命令代码55
**入口参数:boot代码ID地址指针
**出口参数:IAP 操作状态码
**			IAP返回值(paramout缓冲区)
********************************************************************************************************/
	
extern	uint32	Compare(uint32	dst, uint32	src, uint32	no);
/*********************************************************************************************************
**函数名称:Compare
**函数功能:校验数据,命令代码56
**入口参数:dst		目标地址,即RAM/FLASH起始地址,地址必须字对齐
**			src		源地址,即RAM/RAM地址,地址必须字对齐
**			no		复制字节个数,必须能被4整除
**出口参数:IAP 操作状态码
**			IAP返回值(paramout缓冲区)
********************************************************************************************************/

/*********************************************************************************************************
**函数名称:Reinvoke_ISP
**函数功能:重新调用ISP,命令代码57。
**入口参数:无
**出口参数:无
********************************************************************************************************/
extern void  Reinvoke_ISP(void);

extern	uint8	WriteFlash(uint32 dst, uint32 src,uint32 no);
/*********************************************************************************************************
**函数名称:WriteFlash
**函数功能:向FLASH中写入数据
**入口参数:dst		目标地址,即FLASH起始地址,地址必须以256字节对齐,即地址的低8位必须为0
**			src		源地址,即RAM地址,地址必须字对齐,即地址的低两位必须为0
**			no		写入字节数,必须为256/512/1024/4096
**出口参数:Compare的返回值,操作成功正确返回0
********************************************************************************************************/

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -