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

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

?? iap.c

?? SmartARM2400系列開發板全套資料
?? 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
**函數功能:  讀器件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
**函數功能:  讀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
********************************************************************************************************Y*/
uint8	WriteFlash(uint32  dst, uint32	src, uint32	no)
{
	SelSector((uint8)(dst/0x1000),(uint8)((dst+no)/0x1000));	// 選擇扇區
	EraseSector((dst/0x1000),(dst+no)/0x1000);					// 擦除扇區
	BlankCHK((dst/0x1000),(dst+no)/0x1000);						// 查空扇區
	
	SelSector((uint8)(dst/0x1000),(uint8)((dst+no)/0x1000));	// 選擇扇區
	
	RamToFlash(dst,src,no);			           				 	// 寫數據到FLASH
	return((uint8)(Compare(dst,src,no)));	            		// 比較數據
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美肥大bbwbbw高潮| 日韩精品一区二区三区四区| 亚洲精品一二三区| 欧美日韩在线电影| 久久99热这里只有精品| 亚洲国产精品精华液ab| 91福利精品视频| 国精产品一区一区三区mba桃花| 中文字幕第一区综合| 欧美怡红院视频| 国产精品一区二区在线看| 亚洲综合区在线| 国产精品美女一区二区三区| 6080日韩午夜伦伦午夜伦| 成人黄色一级视频| 国产美女精品一区二区三区| 亚洲五月六月丁香激情| 亚洲人成7777| 国产精品视频免费看| 精品少妇一区二区三区视频免付费 | 亚洲欧美色图小说| 欧美精品一区二区三区四区| 6080国产精品一区二区| 日本乱人伦aⅴ精品| 色哟哟日韩精品| 欧美曰成人黄网| 在线精品视频免费播放| 91最新地址在线播放| av色综合久久天堂av综合| 国产精品99久久不卡二区| 国产在线精品国自产拍免费| av高清久久久| 在线观看日韩电影| 欧美亚州韩日在线看免费版国语版| 一本色道亚洲精品aⅴ| 欧美精品黑人性xxxx| 欧美乱妇23p| 久久综合国产精品| 中文字幕免费一区| 亚洲综合视频在线观看| 首页欧美精品中文字幕| 日韩电影一二三区| 国产成a人亚洲| 欧美午夜影院一区| 久久久精品中文字幕麻豆发布| 久久一区二区三区国产精品| 亚洲人成网站色在线观看| 夜夜操天天操亚洲| 精品影院一区二区久久久| 99精品视频中文字幕| 欧美刺激脚交jootjob| 国产精品妹子av| 韩国女主播成人在线观看| 91一区一区三区| 久久美女高清视频| 亚洲国产精品久久久男人的天堂| 国产传媒一区在线| 91精品久久久久久久久99蜜臂| 国产精品国产三级国产普通话蜜臀| 亚洲va欧美va国产va天堂影院| 国产91在线看| 国产午夜精品在线观看| 久久狠狠亚洲综合| 欧美一级高清片| 日韩高清国产一区在线| 欧美中文字幕一区| 亚洲三级在线免费| 色8久久人人97超碰香蕉987| 国产精品美女久久久久久久| 国产一区二区成人久久免费影院| 制服丝袜一区二区三区| 日日欢夜夜爽一区| 精品国产一二三区| 美女免费视频一区二区| 精品国产乱子伦一区| 韩日av一区二区| 国产精品久久久久aaaa| 色婷婷av一区二区三区软件| 亚洲精品你懂的| 欧美精品久久一区二区三区| 青青草97国产精品免费观看无弹窗版| 欧美一区二区日韩| 色综合久久久久网| 老司机免费视频一区二区| 欧美国产精品一区二区三区| 国产v日产∨综合v精品视频| 亚洲人成电影网站色mp4| 欧美日韩国产高清一区二区| 美日韩黄色大片| 国产精品久久久久久福利一牛影视 | 91精品国产高清一区二区三区| 精油按摩中文字幕久久| 亚洲欧洲国产日本综合| 欧美一级日韩一级| 91丨国产丨九色丨pron| 蜜臀av一区二区在线免费观看| 亚洲视频在线观看三级| 欧美一级视频精品观看| 色综合欧美在线| 99久久99久久精品免费看蜜桃| 日本视频免费一区| 一区二区三区不卡在线观看 | 黄色资源网久久资源365| 香蕉成人伊视频在线观看| 亚洲色图欧美在线| 国产精品久久久久久亚洲毛片| 精品国产乱码久久久久久久久 | 亚洲日本va午夜在线电影| 精品欧美一区二区久久| 欧美日韩一区二区在线观看| 91在线精品一区二区三区| 国产激情偷乱视频一区二区三区 | 韩国欧美一区二区| 久久精品二区亚洲w码| 日本一不卡视频| 麻豆高清免费国产一区| 韩国理伦片一区二区三区在线播放| 日本午夜精品视频在线观看| 午夜精品一区在线观看| 日本免费新一区视频| 另类小说欧美激情| 国产成人av电影在线观看| 懂色av一区二区三区免费观看| av亚洲精华国产精华| 91麻豆swag| 欧美高清dvd| 国产精品美女久久久久aⅴ国产馆| 中文字幕日本不卡| 久久国产综合精品| av午夜一区麻豆| 日韩视频不卡中文| 亚洲制服丝袜av| 粉嫩av亚洲一区二区图片| 91在线观看一区二区| 91精品国产一区二区三区| 亚洲成人福利片| 99精品欧美一区二区三区综合在线| 日本韩国视频一区二区| 久久人人97超碰com| 午夜在线电影亚洲一区| 成人一级片网址| 日韩女优视频免费观看| 亚洲一区欧美一区| 99精品久久免费看蜜臀剧情介绍| 欧美福利视频一区| 国产成人久久精品77777最新版本| 91豆麻精品91久久久久久| 国产精品三级视频| 国产在线一区二区综合免费视频| 正在播放一区二区| 婷婷中文字幕综合| 国产日韩精品一区二区三区| 麻豆精品国产91久久久久久| 欧美一区二区视频在线观看 | 亚洲成年人影院| 在线观看国产一区二区| 亚洲国产日韩a在线播放性色| 欧美午夜不卡在线观看免费| 亚洲一区二区在线观看视频 | 欧美精品一级二级| 亚洲观看高清完整版在线观看 | 日韩三区在线观看| 黄色成人免费在线| 国产日韩欧美一区二区三区乱码 | 成人综合日日夜夜| 日韩美女精品在线| 欧美视频一区二区三区四区 | 蜜臀av亚洲一区中文字幕| 欧美videofree性高清杂交| 国产美女精品人人做人人爽| 国产精品久久久久永久免费观看| 99久久精品情趣| 日本中文字幕不卡| 中文字幕在线观看不卡视频| 欧美日韩国产精品自在自线| 国产一区在线不卡| 一区二区三区在线观看网站| 91精品午夜视频| 91丨porny丨国产入口| 激情深爱一区二区| 午夜天堂影视香蕉久久| 最新国产成人在线观看| 日韩午夜av电影| 欧美日韩国产综合一区二区| 国产成人精品一区二| 奇米精品一区二区三区四区| 亚洲日本一区二区| 亚洲欧美日韩国产综合| 久久美女高清视频 | 日本一区二区三区久久久久久久久不| 欧美日韩电影在线播放| 91高清在线观看| 欧美视频在线一区二区三区| www.性欧美| 不卡一区二区在线| 93久久精品日日躁夜夜躁欧美| 成人精品高清在线| 91丝袜美腿高跟国产极品老师| 成人激情免费网站| 欧美亚洲国产怡红院影院|