亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? iap.c

?? ZLG的SMARTARM2300的IAP_Program
?? C
字號:

#include "IAP.h"

/*定義CCLK值大小,單位為KHz*/
#define		IAP_FCCLK	48000

#define 	IAP_ENTER_ADR   0x7FFFFFF1  // IAP入口地址定義

uint32	paramin[8];		//IAP入口參數緩沖區
uint32	paramout[8];	//IAP出口參數緩沖區

/*********************************************************************************************************
**函數名稱:SelSector()
**函數功能:IAP操作緩沖區選擇,代碼為50
**入口參數:sec1	起始扇區
**			sec2	終止扇區
**出口參數:IAP 操作狀態碼
**			IAP返回值(paramout緩沖區)
********************************************************************************************************/
uint32	SelSector(uint8	sec1,uint8	sec2)
{
	paramin[0] = IAP_SELECTOR;	//設置命令字
	paramin[1] = sec1;			//設置參數
	paramin[2] = sec2;
	(*(void(*)())IAP_ENTER_ADR)(paramin,paramout);	//調用IAP服務程序
	return(paramout[0]);	//返回狀態碼
}
/*********************************************************************************************************
**函數名稱:RamToFlash()
**函數功能:復制RAM的數據到FLASH,命令代碼51
**入口參數:dst		目標地址,即FLASH起始地址,以256字節為分界
**			src		源地址,即RAM地址,地址必須字對其
**			no		復制字節個數,為256/512/1024/4096
**出口參數:IAP 操作狀態碼
**			IAP返回值(paramout緩沖區)
********************************************************************************************************/
uint32	RamToFlash(uint32	dst,uint32	src,uint32	no)
{
	paramin[0] = IAP_RAMTOFLASH;	//設置命令字
	paramin[1] = dst;				//設置參數
	paramin[2] = src;
	paramin[3] = no;
	paramin[4] = IAP_FCCLK;
	(*(void(*)())IAP_ENTER_ADR)(paramin,paramout);	//調用IAP服務程序
	return(paramout[0]);			//返回狀態碼
}
/*********************************************************************************************************
**函數名稱:EraseSector()
**函數功能:擦除扇區,命令代碼52
**入口參數:sec1	起始扇區
**			sec2	終止扇區
**出口參數:IAP 操作狀態碼
**			IAP返回值(paramout緩沖區)
********************************************************************************************************/
uint32	EraseSector(uint32	sec1,uint32	sec2)
{
	paramin[0] = IAP_ERASESECTOR;	//設置命令字
	paramin[1] = sec1;				//設置參數
	paramin[2] = sec2;
	paramin[3] = IAP_FCCLK;
	(*(void(*)())IAP_ENTER_ADR)(paramin,paramout);	//調用IAP服務程序
	return(paramout[0]);			//返回狀態碼
}
/*********************************************************************************************************
**函數名稱:BlankCHK()
**函數功能:查空扇區,命令代碼53
**入口參數:sec1	起始扇區
**			sec2	終止扇區
**出口參數:IAP 操作狀態碼
**			IAP返回值(paramout緩沖區)
********************************************************************************************************/
uint32	BlankCHK(uint32	sec1,uint32	sec2)
{
	paramin[0] = IAP_BLANKCHK;	//設置命令字
	paramin[1] = sec1;				//設置參數
	paramin[2] = sec2;
	paramin[3] = IAP_FCCLK;
	(*(void(*)())IAP_ENTER_ADR)(paramin,paramout);	//調用IAP服務程序
	return(paramout[0]);			//返回狀態碼
}
/*********************************************************************************************************
**函數名稱:ReadParID(uint32 *Device_ID)
**函數功能:讀器件ID,命令代碼54
**入口參數:器件ID地址指針
**出口參數:IAP 操作狀態碼
**			IAP返回值(paramout緩沖區)
********************************************************************************************************/
uint32	ReadParID(uint32 *Device_ID)
{
	paramin[0] = IAP_READPARTID;	//設置命令字
	(*(void(*)())IAP_ENTER_ADR)(paramin,paramout);	//調用IAP服務程序
	*Device_ID = paramout[1];
	return(paramout[0]);			//返回狀態碼
}
/*********************************************************************************************************
**函數名稱:BootCodeID(uint32 *Boot_ID)
**函數功能:讀boot代碼ID,命令代碼55
**入口參數:boot代碼ID地址指針
**出口參數:IAP 操作狀態碼
**			IAP返回值(paramout緩沖區)
********************************************************************************************************/
uint32	BootCodeID(uint32 *Boot_ID)	
{
	paramin[0] = IAP_BOOTCODEID;	//設置命令字
	(*(void(*)())IAP_ENTER_ADR)(paramin,paramout);	//調用IAP服務程序
	*Boot_ID = paramout[1];
	
	return(paramout[0]);			//返回狀態碼
}
/*********************************************************************************************************
**函數名稱:Compare()
**函數功能:校驗數據,命令代碼56
**入口參數:dst		目標地址,即RAM/FLASH起始地址,地址必須字對齊
**			src		源地址,即RAM/RAM地址,地址必須字對齊
**			no		比較字節個數,必須能被4整除
**出口參數:IAP 操作狀態碼
**			IAP返回值(paramout緩沖區)
********************************************************************************************************/
uint32	Compare(uint32	dst,uint32	src,uint32	no)
{
	paramin[0] = IAP_COMPARE;	//設置命令字
	paramin[1] = dst;				//設置參數
	paramin[2] = src;
	paramin[3] = no;
	(*(void(*)())IAP_ENTER_ADR)(paramin,paramout);	//調用IAP服務程序
	return(paramout[0]);			//返回狀態碼
}
/*********************************************************************************************************
**函數名稱:Reinvoke_ISP()
**函數功能:重新調用ISP,命令代碼57。
**入口參數:無
**出口參數:無
********************************************************************************************************/
void  Reinvoke_ISP(void)
{
	paramin[0] = IAP_REINVOKE_ISP;					// 設置命令字
	(*(void(*)())IAP_ENTER_ADR)(paramin,paramout);	// 重新調用ISP
} 
/*********************************************************************************************************
**函數名稱:WriteFlash()
**函數功能:向FLASH中寫入數據
**入口參數:dst		目標地址,即FLASH起始地址,地址必須以256字節對齊,即地址的低8位必須為0
**			src		源地址,即RAM地址,地址必須字對齊,即地址的低兩位必須為0
**			no		寫入字節數,必須為256/512/1024/4096
**出口參數:Compare的返回值,操作成功正確返回0
********************************************************************************************************/
uint8	WriteFlash(uint32	dst,uint32	src,uint32	no)
{
	SelSector((dst/0x1000),(dst+no)/0x1000);	//選擇扇區
	EraseSector((dst/0x1000),(dst+no)/0x1000);	//擦除扇區
	BlankCHK((dst/0x1000),(dst+no)/0x1000);		//查空扇區
	
	SelSector((dst/0x1000),(dst+no)/0x1000);	//選擇扇區
	
	RamToFlash(dst,src,no);			//寫數據到FLASH
	return(Compare(dst,src,no));	//比較數據
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人在线一区二区三区| 日韩一区二区精品在线观看| 在线不卡欧美精品一区二区三区| 这里只有精品99re| 欧美国产日韩亚洲一区| 日韩精品一区第一页| 国产99一区视频免费 | 日韩免费看网站| 亚洲精品国产精品乱码不99| 国内精品不卡在线| 91精品在线观看入口| 亚洲一区二区三区四区中文字幕| 成人中文字幕电影| 精品国产伦一区二区三区观看方式 | 秋霞午夜av一区二区三区| 成人晚上爱看视频| 2014亚洲片线观看视频免费| 亚洲国产乱码最新视频 | 亚洲精品一区二区三区福利| 亚洲成av人**亚洲成av**| 99久久99久久久精品齐齐| 国产亚洲成aⅴ人片在线观看| 久久国产视频网| 欧美日本一区二区三区| 亚洲视频一区二区在线| 国产精品99久久久久久久vr| 精品欧美乱码久久久久久| 蜜桃在线一区二区三区| 中文字幕一区二区三中文字幕| 激情文学综合网| 2024国产精品| 国产精品 日产精品 欧美精品| 精品奇米国产一区二区三区| 另类欧美日韩国产在线| 精品国产一区二区三区忘忧草| 日产国产高清一区二区三区| 91麻豆精品91久久久久同性| 蜜臀av一区二区在线观看| 日韩西西人体444www| 久久99国产精品久久99| 久久婷婷成人综合色| 国产电影一区二区三区| 国产欧美精品一区aⅴ影院| 国产91丝袜在线播放| 国产精品美女久久久久aⅴ| 97精品视频在线观看自产线路二| 午夜一区二区三区视频| 日韩一区二区电影网| 五月激情综合色| 日韩一级视频免费观看在线| 精品一区二区三区香蕉蜜桃 | 6080日韩午夜伦伦午夜伦| 中文字幕一区二区三区av| 99久久777色| 亚洲一区二区av在线| 欧美一区二区三区系列电影| 狂野欧美性猛交blacked| 国产丝袜欧美中文另类| 91久久精品一区二区三| 日本大胆欧美人术艺术动态| 日韩一区二区麻豆国产| 成人动漫一区二区三区| 亚洲一区在线视频| 欧美精品在线一区二区三区| 国产在线日韩欧美| 亚洲码国产岛国毛片在线| 91精品国产入口| 成人h动漫精品| 日韩中文字幕麻豆| 中文字幕精品三区| 亚洲欧洲日韩在线| 欧美二区三区91| 粉嫩一区二区三区性色av| 综合在线观看色| 欧美成人国产一区二区| 91农村精品一区二区在线| 蜜臀精品久久久久久蜜臀| 伊人婷婷欧美激情| 久久久一区二区三区| 欧美老年两性高潮| 国产传媒久久文化传媒| 日本中文字幕一区| 玉足女爽爽91| 亚洲国产精品激情在线观看| 欧美疯狂性受xxxxx喷水图片| 波多野结衣精品在线| 久久69国产一区二区蜜臀| 一区二区三区蜜桃| 久久青草国产手机看片福利盒子| 欧美日韩综合一区| 91视频精品在这里| 成人小视频免费观看| 美女精品一区二区| 日本一道高清亚洲日美韩| 一区二区三区在线免费播放| 国产视频在线观看一区二区三区 | 国产欧美精品一区二区色综合| 欧美日韩视频专区在线播放| 色综合久久久久综合体桃花网| 极品销魂美女一区二区三区| 91国内精品野花午夜精品| 国产成人av一区二区| 国产在线精品视频| 韩国v欧美v日本v亚洲v| 美女爽到高潮91| 蜜臀av性久久久久av蜜臀妖精| 三级不卡在线观看| 午夜精品久久久久影视| 亚洲午夜激情网站| 亚洲一级二级在线| 亚洲国产视频直播| 午夜婷婷国产麻豆精品| 亚洲高清中文字幕| 婷婷综合五月天| 日本不卡视频一二三区| 免费看欧美美女黄的网站| 蜜桃视频在线观看一区| 奇米影视7777精品一区二区| 麻豆精品一区二区三区| 精品一区二区三区视频| 国产毛片一区二区| 国产激情一区二区三区四区| 丰满白嫩尤物一区二区| 99精品国产91久久久久久| 91国偷自产一区二区开放时间| 欧洲色大大久久| 日韩三区在线观看| 久久综合中文字幕| 中文字幕一区二区三中文字幕| 亚洲另类中文字| 成人小视频免费观看| 在线影视一区二区三区| 欧美精品乱码久久久久久按摩| 欧美电影一区二区| 26uuu精品一区二区| 国产精品久久久久久久蜜臀| 综合网在线视频| 青青草97国产精品免费观看无弹窗版| 久久99久久精品| 成人app网站| 欧美一区二区在线免费观看| 久久先锋影音av| 亚洲精品成人少妇| 老司机免费视频一区二区| 成人教育av在线| 欧美高清精品3d| 国产亚洲欧美在线| 亚洲图片欧美色图| 国产精品一区免费在线观看| 91视频91自| 2023国产精华国产精品| 亚洲电影第三页| 国产精品 欧美精品| 欧美精品xxxxbbbb| 中文字幕一区二区三区av| 日韩国产在线观看| 99vv1com这只有精品| 亚洲精品一区二区三区影院| 一二三区精品福利视频| 国产精品一区二区男女羞羞无遮挡| 一本大道综合伊人精品热热| 欧美精品一区二区久久久| 亚洲一区二区四区蜜桃| 国产成人精品免费视频网站| 欧美电影一区二区| 亚洲综合色噜噜狠狠| 成人综合婷婷国产精品久久蜜臀 | 91精品国产色综合久久不卡电影| 中文欧美字幕免费| 日本欧美在线看| 日本道精品一区二区三区| 久久精品人人做人人爽97| 肉丝袜脚交视频一区二区| 99精品热视频| 国产精品欧美综合在线| 激情六月婷婷久久| 日韩欧美精品三级| 亚洲成人动漫一区| 91豆麻精品91久久久久久| |精品福利一区二区三区| 国产精品99久久久久| 精品久久一区二区| 欧美aaaaaa午夜精品| 欧美日韩国产欧美日美国产精品| 亚洲欧洲av一区二区三区久久| 国产精品中文字幕欧美| 精品国产欧美一区二区| 青娱乐精品视频在线| 91精品午夜视频| 人人狠狠综合久久亚洲| 在线不卡a资源高清| 日韩精品国产欧美| 91精品国产综合久久久蜜臀图片| 伊人开心综合网| 在线观看欧美日本| 亚洲123区在线观看| 91麻豆精品国产91久久久久久久久| 美女性感视频久久| 亚洲国产精品久久不卡毛片| 国产精品久久久久久久久免费樱桃|