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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? flash.s43

?? MSP430f149 FLASH擦寫程序 簡單實用
?? S43
字號:
//////////////////////////////////////////////////////////////////////////////
//                                                                           /
// IAR MSP430 C/C++ Compiler V3.20A/W32  [Evaluation]  03/Mar/2005  15:53:33 /
// Copyright 1996-2004 IAR Systems. All rights reserved.                     /
//                                                                           /
//    __rt_version  =  2                                                     /
//    __double_size =  32                                                    /
//    __reg_r4      =  free                                                  /
//    __reg_r5      =  free                                                  /
//    __pic         =  no                                                    /
//    __core        =  64kb                                                  /
//    Source file   =  K:\書\例\6-8\flash.c                                  /
//    Command line  =  -I "C:\Program Files\IAR Systems\Embedded Workbench   /
//                     Evaluation 4.0\430\INC\" -I "C:\Program Files\IAR     /
//                     Systems\Embedded Workbench Evaluation                 /
//                     4.0\430\INC\CLIB\" -lB K:\書\例\6-8\Debug\List\ -o    /
//                     K:\書\例\6-8\Debug\Obj\ -z2 --no_cse --no_unroll      /
//                     --no_inline --no_code_motion --no_tbaa --debug -e     /
//                     --double=32 K:\書\例\6-8\flash.c                      /
//    List file     =  K:\書\例\6-8\Debug\List\flash.s43                     /
//                                                                           /
//                                                                           /
//////////////////////////////////////////////////////////////////////////////

        NAME flash

        RSEG CSTACK:DATA:SORT:NOROOT(1)

        EXTERN ?cstart_init_zero
        EXTERN ?longjmp_r4
        EXTERN ?longjmp_r5
        EXTERN ?setjmp_r4
        EXTERN ?setjmp_r5

        PUBWEAK ?setjmp_save_r4
        PUBWEAK ?setjmp_save_r5
        PUBWEAK FCTL1
        PUBWEAK FCTL3
        PUBLIC FlashBusy
        PUBLIC FlashErase
        PUBLIC FlashWB
        PUBLIC FlashWW
        PUBLIC FlashWWA
        PUBWEAK WDTCTL
        PUBLIC dd
        PUBLIC main

// K:\書\例\6-8\flash.c
//    1 /****************************************************************************\ 
//    2                                 北京東方美源公司
//    3                             版權(quán)所有(c)2005~2007
//    4 
//    5 文件名:flash.c
//    6 編寫者:czhang
//    7 描述:用于MSP430F149。
//    8 	  FLASH存儲器讀寫、擦除。時鐘源:ACLK 32.768KHz
//    9 
//   10 版本:	1.0	2005-2-19
//   11 \****************************************************************************/
//   12 #include  <msp430x14x.h>

        ASEGN DATA16_AN:DATA:NOROOT,0120H
// unsigned short volatile __data16 WDTCTL
WDTCTL:
        DS8 2

        ASEGN DATA16_AN:DATA:NOROOT,0128H
// unsigned short volatile __data16 FCTL1
FCTL1:
        DS8 2

        ASEGN DATA16_AN:DATA:NOROOT,012cH
// unsigned short volatile __data16 FCTL3
FCTL3:
        DS8 2
//   13 #include "flash.h"
//   14 
//   15 #define ADR 0xEE00

        RSEG DATA16_Z:DATA:SORT:NOROOT(1)
	REQUIRE ?cstart_init_zero
//   16 unsigned int dd[600];
dd:
        DS8 1200
//   17 

        RSEG CODE:CODE:REORDER:NOROOT(1)
//   18 void main(void)
main:
//   19 {
	PUSH.W	R10
	PUSH.W	R11
	SUB.W	#0x4, SP
//   20 	unsigned char *pflash;
//   21 	unsigned char q0;
//   22 	unsigned int iq0,iq1;
//   23 	WDTCTL = WDTPW + WDTHOLD;             // Stop WDT
	MOV.W	#0x5a80, &0x120
//   24 
//   25 	for(iq0=0;iq0<600;iq0++)
	MOV.W	#0x0, R10
??main_0:
	CMP.W	#0x258, R10
	JC	??main_3
//   26 		dd[iq0]=0xAA;
	MOV.W	R10, R15
	RLA.W	R15
	MOV.W	#0xaa, dd(R15)
	ADD.W	#0x1, R10
	JMP	??main_0
//   27 	_NOP();
??main_3:
	NOP
//   28 //	FlashErase(ADR);
//   29 	_NOP();
	NOP
//   30 	FlashWWA(ADR,dd,2);
	PUSH.W	#0x2
	MOV.W	#dd, R14
	MOV.W	#0xee00, R12
	CALL	#FlashWWA
//   31 //   iq0=*((unsigned int *)ADR);
//   32 //	FlashWW(ADR,0xBB00);
//   33 //	_NOP();
//   34 //	iq0=*((unsigned int *)ADR);
//   35 //	_NOP();
//   36 //	FlashWB(ADR,0xCC);
//   37 //	_NOP();
//   38 //	q0=*((unsigned char *)ADR);
//   39   for(iq0=0;iq0<600;iq0++)
	MOV.W	#0x0, R10
	ADD.W	#0x2, SP
??main_1:
	CMP.W	#0x258, R10
	JC	??main_4
//   40 		dd[iq0]=0;
	MOV.W	R10, R15
	RLA.W	R15
	MOV.W	#0x0, dd(R15)
	ADD.W	#0x1, R10
	JMP	??main_1
//   41 	iq1=ADR;
??main_4:
	MOV.W	#0xee00, R11
//   42 	for(iq0=0;iq0<600;iq0++)
	MOV.W	#0x0, R10
??main_2:
	CMP.W	#0x258, R10
	JC	??main_5
//   43 	{
//   44 		dd[iq0]=*((unsigned int *)iq1);
	MOV.W	R10, R15
	RLA.W	R15
	MOV.W	@R11, dd(R15)
//   45 		iq1+=2;
	ADD.W	#0x2, R11
//   46 	}
	ADD.W	#0x1, R10
	JMP	??main_2
//   47 	_NOP();
??main_5:
	NOP
//   48 }
	ADD.W	#0x4, SP
	POP.W	R11
	POP.W	R10
	RET
//   49 /***************************************************************************
//   50 段擦除
//   51 adr:要擦除的段內(nèi)的任一地址
//   52 ***************************************************************************/

        RSEG CODE:CODE:REORDER:NOROOT(1)
//   53 void FlashErase(unsigned int adr)
FlashErase:
//   54 {
	PUSH.W	R10
	PUSH.W	R11
	MOV.W	R12, R10
//   55 	unsigned char *p0;
//   56 
//   57 	FCTL1=FWKEY+ERASE;
	MOV.W	#0xa502, &0x128
//   58 	FCTL3=FWKEY;
	MOV.W	#0xa500, &0x12c
//   59 	p0=(unsigned char *)adr;
	MOV.W	R10, R11
//   60 	*p0=0;				//向段內(nèi)地址任意寫,啟動擦除操作
	MOV.B	#0x0, 0(R11)
//   61 	FCTL1=FWKEY;
	MOV.W	#0xa500, &0x128
//   62 	FCTL3=FWKEY+LOCK;
	MOV.W	#0xa510, &0x12c
//   63 	while(FlashBusy()==1)	//等待FLASH存儲器完成操作
??FlashErase_0:
	CALL	#FlashBusy
	CMP.B	#0x1, R12
	JEQ	??FlashErase_0
//   64 	;
//   65 }
	POP.W	R11
	POP.W	R10
	RET
//   66 
//   67 /**************************************************************************
//   68 測試FLASH是否忙
//   69 返回值:  1:忙   0:不忙
//   70 **************************************************************************/

        RSEG CODE:CODE:REORDER:NOROOT(1)
//   71 unsigned char FlashBusy()
FlashBusy:
//   72 {
//   73 if((FCTL3&BUSY)==BUSY)
	BIT.W	#0x1, &0x12c
	SUBC.B	R12, R12
	ADD.B	#0x1, R12
//   74 		return 1;
//   75 	else
//   76 		return 0;
	RET
//   77 }
//   78 
//   79 /**************************************************************************
//   80 字編程
//   81 Adr:要編程的地址,注意:不是指針類型,應(yīng)當(dāng)是偶地址
//   82 DataW:要編程的字
//   83 **************************************************************************/

        RSEG CODE:CODE:REORDER:NOROOT(1)
//   84 void FlashWW(unsigned int Adr,unsigned int DataW)
FlashWW:
//   85 {
	PUSH.W	R10
	PUSH.W	R11
	MOV.W	R12, R10
	MOV.W	R14, R11
//   86 	FCTL1=FWKEY+WRT;
	MOV.W	#0xa540, &0x128
//   87 	FCTL3=FWKEY;
	MOV.W	#0xa500, &0x12c
//   88    *((unsigned int *)Adr)=DataW;
	MOV.W	R11, 0(R10)
//   89 	FCTL1=FWKEY;
	MOV.W	#0xa500, &0x128
//   90 	FCTL3=FWKEY+LOCK;
	MOV.W	#0xa510, &0x12c
//   91 	while(FlashBusy()==1)	//等待FLASH存儲器完成操作
??FlashWW_0:
	CALL	#FlashBusy
	CMP.B	#0x1, R12
	JEQ	??FlashWW_0
//   92 	;
//   93 }
	POP.W	R11
	POP.W	R10
	RET
//   94 
//   95 /**************************************************************************
//   96 字節(jié)編程
//   97 Adr:指向要編程的地址,注意:不是指針類型
//   98 DataB:要編程的字節(jié)
//   99 **************************************************************************/
//  100 

        RSEG CODE:CODE:REORDER:NOROOT(1)
//  101 void FlashWB(unsigned int Adr,unsigned char DataB)
FlashWB:
//  102 {
	PUSH.W	R10
	PUSH.W	R11
	MOV.W	R12, R10
	MOV.B	R14, R11
//  103 	FCTL1=FWKEY+WRT;
	MOV.W	#0xa540, &0x128
//  104 	FCTL3=FWKEY;
	MOV.W	#0xa500, &0x12c
//  105 	*((unsigned char *)Adr)=DataB;
	MOV.B	R11, 0(R10)
//  106 	FCTL1=FWKEY;
	MOV.W	#0xa500, &0x128
//  107 	FCTL3=FWKEY+LOCK;
	MOV.W	#0xa510, &0x12c
//  108 	while(FlashBusy()==1)	//等待FLASH存儲器完成操作
??FlashWB_0:
	CALL	#FlashBusy
	CMP.B	#0x1, R12
	JEQ	??FlashWB_0
//  109 	;
//  110 }
	POP.W	R11
	POP.W	R10
	RET
//  111 
//  112 /**************************************************************************
//  113 多字編程
//  114 Adr:指向要編程的地址,注意:不是指針類型,應(yīng)當(dāng)是偶地址
//  115 pDataW:指向要編程的字節(jié)的數(shù)組的指針
//  116 nWord:編程的字?jǐn)?shù)
//  117 **************************************************************************/
//  118 //#pragma location="MYSET" 
//  119 

        RSEG MYSET:CODE:REORDER:NOROOT(1)
//  120 void FlashWWA(unsigned int Adr,unsigned int *pDataW,unsigned int nWord)  @ "MYSET"
FlashWWA:
//  121 {
	SUB.W	#0x6, SP
	MOV.W	0x8(SP), R15
//  122 	unsigned int iq0,iq1;
//  123 	unsigned int *piq0;
//  124 
//  125 //	piq0= (unsigned int*)Adr;
//  126 //
//  127 //	while(FlashBusy()==1)	//等待FLASH存儲器完成操作
//  128 //	;
//  129 //	FCTL3=FWKEY;				 //復(fù)位LOCK位,為FLASH解鎖
//  130 //
//  131 //	FCTL1=FWKEY+WRT+SEGWRT;  //選擇段編程,進(jìn)入編程狀態(tài)
//  132 //	*piq0 = 0xAA00;
//  133 //	while((FCTL3&WAIT)==0)  //等待FALSH存儲器可以接受新的編程數(shù)據(jù)
//  134 //	;
//  135 
//  136 /*
//  137 	FCTL1=FWKEY+WRT+SEGWRT;  //選擇段編程,進(jìn)入編程狀態(tài)
//  138 	FCTL3=FWKEY;				 //復(fù)位LOCK位,為FLASH解鎖
//  139 
//  140 	piq0= (unsigned int*)Adr;
//  141 	for(iq0=0;iq0<nWord;iq0++)
//  142 	{
//  143 		while((FCTL3&WAIT)==0)  //等待FALSH存儲器可以接受新的編程數(shù)據(jù)
//  144 		;
//  145 
//  146 //		piq0= (unsigned int*)Adr;
//  147 		*piq0 = 0xAA00;//(*pDataW);
//  148 		piq0++;
//  149 //		pDataW++;
//  150 		//判斷是否到達(dá)段邊界
//  151 //		iq1=(Adr>>9)+1;
//  152 //		if((iq1&0x1)==0)
//  153 //		{
//  154 //			//到達(dá)段邊界
//  155 //			while((FCTL3&WAIT)==0)  //等待FALSH存儲器可以接受新的編程數(shù)據(jù)
//  156 //			;
//  157 //			FCTL1=FWKEY;	//WRT、SEGWRT復(fù)位
//  158 //			while(FlashBusy()==1)
//  159 //			;
//  160 //			FCTL1=FWKEY+WRT+SEGWRT;  //選擇段編程,進(jìn)入編程狀態(tài)
//  161 //		}
//  162 //		Adr+=2;
//  163 	}
//  164 	while((FCTL3&WAIT)==0)  //等待FALSH存儲器可以接受新的編程數(shù)據(jù)
//  165 	;
//  166 	FCTL1=FWKEY;	//WRT、SEGWRT復(fù)位
//  167 	FCTL3=FWKEY+LOCK;
//  168 	while(FlashBusy()==1)	//等待FLASH存儲器完成操作
//  169 	;
//  170 	*/
//  171 }
	ADD.W	#0x6, SP
	RET

        RSEG CODE:CODE:REORDER:NOROOT(1)
?setjmp_save_r4:
	REQUIRE ?setjmp_r4
	REQUIRE ?longjmp_r4

        RSEG CODE:CODE:REORDER:NOROOT(1)
?setjmp_save_r5:
	REQUIRE ?setjmp_r5
	REQUIRE ?longjmp_r5

        END
// 
//   270 bytes in segment CODE
//     6 bytes in segment DATA16_AN
// 1 200 bytes in segment DATA16_Z
//    14 bytes in segment MYSET
// 
//   284 bytes of CODE memory
// 1 200 bytes of DATA memory (+ 6 bytes shared)
//
//Errors: none
//Warnings: 6

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
制服丝袜成人动漫| 欧美无砖专区一中文字| 欧美色涩在线第一页| 亚洲少妇30p| 成人激情开心网| 中文一区在线播放| 国产成人精品亚洲日本在线桃色| 欧美日韩精品是欧美日韩精品| 亚洲欧美日韩国产综合| 成人丝袜18视频在线观看| 久久综合久久综合久久综合| 国产一区二区三区香蕉| 久久久久久久国产精品影院| 国产精一品亚洲二区在线视频| 久久久久久日产精品| 国产盗摄一区二区三区| 国产精品久久久久久久蜜臀| 91蝌蚪porny| 日韩精品乱码av一区二区| 日韩欧美一区二区不卡| 国产99久久久国产精品免费看| 国产欧美精品一区| 91丨九色丨黑人外教| 性感美女久久精品| 日韩欧美成人一区| 色综合中文字幕国产 | 精品国产乱码91久久久久久网站| 亚洲444eee在线观看| 欧美成人性福生活免费看| 国产精品影视在线| 日韩一区精品字幕| 国产精品传媒入口麻豆| 欧美国产精品专区| 亚洲婷婷综合久久一本伊一区| 粉嫩一区二区三区性色av| 亚洲妇女屁股眼交7| 久久一区二区三区国产精品| 91亚洲永久精品| 国产一区二区三区视频在线播放| 一区二区三区在线看| 国产欧美日韩在线视频| 欧美日韩成人综合在线一区二区| 国产成人精品免费在线| 麻豆精品在线视频| 日韩影视精彩在线| 日精品一区二区三区| 夜夜嗨av一区二区三区四季av| 国产欧美久久久精品影院| 日韩片之四级片| 欧美亚洲自拍偷拍| 91欧美激情一区二区三区成人| 国产精品系列在线观看| 黄色日韩三级电影| 老司机免费视频一区二区三区| 婷婷开心激情综合| 免费在线视频一区| 黄色精品一二区| 成人综合在线观看| av在线播放一区二区三区| 成人av免费在线播放| 99久久久久久| www.成人在线| 91蜜桃传媒精品久久久一区二区| 丁香婷婷综合色啪| 色成年激情久久综合| 欧美精品黑人性xxxx| 亚洲精品在线三区| 亚洲图片另类小说| 日韩高清不卡一区| 国产91精品免费| 在线观看日韩一区| 久久免费视频色| 自拍偷自拍亚洲精品播放| 亚洲成人精品一区| 国产剧情一区二区| 欧美撒尿777hd撒尿| 日韩一区二区三区在线观看| 国产精品久久久久久久久搜平片 | 一本色道久久综合亚洲91| 欧美影视一区在线| 日本一区二区在线不卡| 亚洲一级电影视频| 99视频一区二区| 久久夜色精品一区| 偷窥国产亚洲免费视频| 不卡区在线中文字幕| 久久久久久久综合日本| 亚洲黄色在线视频| 岛国精品在线观看| 久久综合国产精品| 免费一级片91| 日韩一区二区在线观看视频播放| 中文字幕一区免费在线观看| 久久99精品久久久久久久久久久久| 色一区在线观看| 国产精品福利在线播放| 国产精品一区二区在线看| 日韩欧美你懂的| 热久久久久久久| 精品国产网站在线观看| 久草热8精品视频在线观看| 欧美精品日韩精品| 日韩精彩视频在线观看| 欧美精三区欧美精三区| 性做久久久久久久免费看| 欧美日韩国产中文| 偷拍一区二区三区四区| 日韩欧美一区在线观看| 另类调教123区| 久久久久国产精品麻豆ai换脸| 国产一区二区在线影院| 中文字幕免费在线观看视频一区| 成人国产精品免费| 亚洲一区二区三区小说| 欧美丰满一区二区免费视频| 国内精品伊人久久久久av一坑 | 亚洲一区av在线| 2022国产精品视频| 色综合久久久久综合体桃花网| 亚洲v日本v欧美v久久精品| 精品国产乱码久久久久久蜜臀 | 在线观看视频91| 激情综合网av| 亚洲一区中文日韩| 久久久久综合网| 欧美日韩午夜在线视频| 国产一区二区导航在线播放| 一区二区三区精品视频在线| 欧美变态tickling挠脚心| av福利精品导航| 国产资源在线一区| 天堂资源在线中文精品| 中文字幕中文在线不卡住| 日韩欧美国产午夜精品| 欧美理论电影在线| 91丨九色丨蝌蚪富婆spa| 国产精品亚洲午夜一区二区三区 | 色综合天天综合色综合av| 久久精品72免费观看| 午夜欧美在线一二页| 亚洲另类在线制服丝袜| 国产精品丝袜黑色高跟| 日韩写真欧美这视频| 51精品久久久久久久蜜臀| 欧美天堂亚洲电影院在线播放| a4yy欧美一区二区三区| 国产精品1024久久| 国产成人啪免费观看软件| 久久成人免费日本黄色| 久久草av在线| 国产一区在线精品| 国产盗摄一区二区| 成人美女在线视频| av电影在线不卡| 在线免费观看日本一区| 在线免费不卡电影| 337p亚洲精品色噜噜| 欧美一卡二卡三卡| 欧美大白屁股肥臀xxxxxx| 精品少妇一区二区三区日产乱码| 日韩精品专区在线| 中文字幕免费不卡| 亚洲精品自拍动漫在线| 日韩成人一区二区三区在线观看| 日本中文字幕一区| 国产一区高清在线| 91久久精品国产91性色tv| 欧美吻胸吃奶大尺度电影| 精品少妇一区二区三区日产乱码| 国产日产精品一区| 一区二区三区国产精华| 麻豆国产精品视频| 色哦色哦哦色天天综合| 4438x成人网最大色成网站| 精品第一国产综合精品aⅴ| 国产精品美女久久久久aⅴ| 午夜久久久久久久久 | 亚洲综合色噜噜狠狠| 国产福利视频一区二区三区| 欧美日韩国产免费一区二区| 国产免费观看久久| 精品一区二区三区久久| 欧美在线色视频| 亚洲综合色视频| 99国产精品久| 国产精品污网站| 国产精品69毛片高清亚洲| 日韩视频免费观看高清完整版在线观看 | 欧美色图天堂网| 国产精品欧美久久久久一区二区| 亚洲国产日日夜夜| 91久久香蕉国产日韩欧美9色| 国产亚洲精品超碰| 国产永久精品大片wwwapp| 日韩亚洲欧美一区| 美女脱光内衣内裤视频久久网站| 欧美在线一二三| 五月开心婷婷久久| 日韩一卡二卡三卡| 麻豆极品一区二区三区|