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

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

?? ref.c~

?? ATmega32的Bootloader程序,CV編譯器
?? C~
?? 第 1 頁 / 共 2 頁
字號:
正在編寫M128原理與使用指南中的一小節(jié),請?zhí)嵋庖姾徒ㄗh? 

?cma?發(fā)表于?2004-8-7?04:12? 
5.2?自引導(dǎo)IAP的應(yīng)用設(shè)計 
ATmega128具備引導(dǎo)加載支持的用戶程序自編程功能(In-Sysytem?Programming?by?On-chip?Boot?Program),它提供了一個真正的由MCU本身自動下載和更新(采用讀/寫同時“Read-While-Write”進行的方式)程序代碼的系統(tǒng)程序自編程更新的機制。利用AVR的這個功能,可以實現(xiàn)在應(yīng)用編程(IAP)以及實現(xiàn)系統(tǒng)程序的遠程自動更新的應(yīng)用。 
IAP的本質(zhì)就是,MCU可以靈活地運行一個常駐Flash的引導(dǎo)加載程序(Boot?Loader?Program),實現(xiàn)對用戶應(yīng)用程序的在線自編程更新。引導(dǎo)加載程序的設(shè)計可以使用任何的可用的數(shù)據(jù)接口和相關(guān)的協(xié)議讀取代碼,或者從程序存儲器中讀取代碼,然后將代碼寫入(編程)到Flash存儲器中。 
引導(dǎo)加載程序有能力讀寫整個Flash存儲器,包括引導(dǎo)加載程序所在的引導(dǎo)加載區(qū)本身。引導(dǎo)加載程序還可以對自身進行更新修改,甚至可以將自身刪除,使系統(tǒng)的自編程能力消失。引導(dǎo)加載程序區(qū)的大小可以由芯片的熔絲位設(shè)置,該段程序區(qū)還提供兩組鎖定位,以便用戶選擇對該段程序區(qū)的不同級別的保護。 
本節(jié)將給出一個實際的的Boot?Loader程序,它可以配合Windows中的超級終端程序,采用Xmodem傳輸協(xié)議,通過RS232接口下載更新用戶的應(yīng)用程序。 
5.2.1?基本設(shè)計思想 
1.????Boot?Loader程序的設(shè)計要點 
Boot?Loader程序的設(shè)計是實現(xiàn)IAP的關(guān)鍵,它必須能過通過一個通信接口,采用某種協(xié)議正確的接收數(shù)據(jù),再將完整的數(shù)據(jù)寫入到用戶程序區(qū)中。本例Boot?Loader程序的設(shè)計要點有: 
l????采用ATmega128的USART口實現(xiàn)與PC之間的簡易RS232三線通信; 
l????采用Xmodem通信協(xié)議完成與PC機之間的數(shù)據(jù)交換; 
l????用戶程序更新完成后自動轉(zhuǎn)入用戶程序執(zhí)行; 
l????Boot?Loader程序采用C語言內(nèi)嵌AVR匯編方式編寫,閱讀理解方便,可移植性強,代碼小于1K字。 
2.????Xmodem通信協(xié)議 
Xmodem協(xié)議是一種使用撥號調(diào)制解調(diào)器的個人計算機通信中廣泛使用的異步文件運輸協(xié)議。這種協(xié)議以128字節(jié)塊的形式傳輸數(shù)據(jù),并且每個塊都使用一個校驗和過程來進行錯誤檢測。如果接收方關(guān)于一個塊的校驗和與它在發(fā)送方的校驗和相同時,接收方就向發(fā)送方發(fā)送一個認可字節(jié)。為了便于讀者閱讀程序,下面簡要說明該協(xié)議的主要特點,有關(guān)Xmoden的完整的協(xié)議請參考其它相關(guān)的資料。 
l????Xmodem的控制字符:<soh>?01H、<eot>?04H、<ack>?06H、<nak>?15H、<can>?18H、<eof>?1AH。 
l????Xmodem傳輸數(shù)據(jù)塊格式:“<soh>?<packNO>?<255-packNO>?<…128個字節(jié)的數(shù)據(jù)塊…>?<cksum>”。其中<soh>為起始字節(jié);<packNO>為數(shù)據(jù)塊編號字節(jié),每次加一;<255-packNO>是前一字節(jié)的反碼;接下來是長度為128字節(jié)的數(shù)據(jù)塊;最后的<cksum>是128字節(jié)數(shù)據(jù)的CRC校驗碼,長度為2個字節(jié)。 
l????接收端收到一個數(shù)據(jù)塊并校驗正確時,回送<ack>;接收錯誤回送<nak>;而回送<can>表示要發(fā)送端停止發(fā)送。 
l????發(fā)送端收到<ack>后,可繼續(xù)發(fā)送下一個數(shù)據(jù)塊(packNO+1);而收到<nak>則可再次重發(fā)上一個數(shù)據(jù)塊。 
l????發(fā)送端發(fā)送<eot>表示全部數(shù)據(jù)發(fā)送完成。如果最后需要發(fā)送的數(shù)據(jù)不足128個字節(jié),用<eof>填滿一個數(shù)據(jù)塊。 
l????控制字符“C”有特殊的作用,當(dāng)發(fā)送端收到“C”控制字符時,它回重新開始以CRC校驗方式發(fā)送數(shù)據(jù)塊(packNO?=?1)。 
l????每發(fā)送一個新的數(shù)據(jù)塊<packNO>加1,加到OxFF后下一個數(shù)據(jù)塊的<packNO>為零。 
l????校驗方式采用16位CRC校驗(X^16?+?X^12?+?X^5?+?1)。 

5.2.2?源程序代碼 
下面給出的源程序是在ICCAVR中實現(xiàn)的。 
/***************************************************** 
采用串行接口實現(xiàn)Boot_load應(yīng)用的實例 
華東師大電子系?馬?潮?2004.07 
Compiler:????ICC-AVR?6.31 
Target:????Mega128 
Crystal:????16Mhz 
Used:????????T/C0,USART0 
*****************************************************/ 
#include?<iom128v.h> 
#define?SPM_PAGESIZE?256??????????????//M128的一個Flash頁為256字節(jié)(128字) 
#define?BAUD?38400????????????????//波特率采用38400bps 
#define?CRYSTAL?16000000????????????//系統(tǒng)時鐘16MHz 
//計算和定義M128的波特率設(shè)置參數(shù) 
#define?BAUD_SETTING?(unsigned?char)((unsigned?long)CRYSTAL/(16*(unsigned?long)BAUD)-1) 
#define?BAUD_H?(unsigned?char)(BAUD_SETTING>>8) 
#define?BAUD_L?(unsigned?char)BAUD_SETTING 

#define?DATA_BUFFER_SIZE?SPM_PAGESIZE????????//定義接收緩沖區(qū)長度 
//定義Xmoden控制字符 
#define?XMODEM_NUL?0x00 
#define?XMODEM_SOH?0x01 
#define?XMODEM_STX?0x02 
#define?XMODEM_EOT?0x04 
#define?XMODEM_ACK?0x06 
#define?XMODEM_NAK?0x15 
#define?XMODEM_CAN?0x18 
#define?XMODEM_EOF?0x1A 
#define?XMODEM_RECIEVING_WAIT_CHAR?'C' 
//定義全局變量 
const?char?startupString[]="Type?'d'?download,?Others?run?app.\n\r\0"; 
char?data[DATA_BUFFER_SIZE]; 
long?address?=?0; 
//擦除(code=0x03)和寫入(code=0x05)一個Flash頁 
void?boot_page_ew(long?p_address,char?code) 
{ 
????asm("mov?r30,r16\n" 
????????"mov?r31,r17\n" 
????????"out?0x3b,r18\n");????????????//將頁地址放入Z寄存器和RAMPZ的Bit0中 
????SPMCSR?=?code;????????????????//寄存器SPMCSR中為操作碼 
????asm("spm\n");????????????????????//對指定Flash頁進行操作 
}???????? 
//填充Flash緩沖頁中的一個字 
void?boot_page_fill(unsigned?int?address,int?data) 
{ 
????asm("mov?r30,r16\n" 
????????"mov?r31,r17\n"?????????????//Z寄存器中為填沖頁內(nèi)地址 
????????"mov?r0,r18\n" 
????????"mov?r1,r19\n");????????????//R0R1中為一個指令字 
????SPMCSR?=?0x01; 
????asm("spm\n"); 
} 
//等待一個Flash頁的寫完成 
void?wait_page_rw_ok(void) 
{ 
??????while(SPMCSR?&?0x40) 
?????{ 
?????????while(SPMCSR?&?0x01); 
?????????SPMCSR?=?0x11; 
?????????asm("spm\n"); 
?????} 
} 
//更新一個Flash頁的完整處理 
void?write_one_page(void) 
{ 
????int?i; 
????boot_page_ew(address,0x03);????????????????????//擦除一個Flash頁 
????wait_page_rw_ok();????????????????????????????//等待擦除完成 
????for(i=0;i<SPM_PAGESIZE;i+=2)????????????????//將數(shù)據(jù)填入Flash緩沖頁中 
????{ 
????????boot_page_fill(i,?data[i]+(data[i+1]<<8)); 
????} 
????boot_page_ew(address,0x05);????????????????????//將緩沖頁數(shù)據(jù)寫入一個Flash頁 
????wait_page_rw_ok();????????????????????????????//等待寫入完成 
}???????? 
//從RS232發(fā)送一個字節(jié) 
void?uart_putchar(char?c) 
{ 
????while(!(UCSR0A?&?0x20)); 
????UDR0?=?c; 
} 
//從RS232接收一個字節(jié) 
int?uart_getchar(void) 
{ 
????unsigned?char?status,res; 
????if(!(UCSR0A?&?0x80))?return?-1;????????//no?data?to?be?received 
????status?=?UCSR0A; 
????res?=?UDR0; 
????if?(status?&?0x1c)?return?-1;????????//?If?error,?return?-1 
????return?res; 
} 
//等待從RS232接收一個有效的字節(jié) 
char?uart_waitchar(void) 
{ 
????int?c; 
????while((c=uart_getchar())==-1); 
????return?(char)c; 
} 
//計算CRC 
int?calcrc(char?*ptr,?int?count) 
{ 
????int?crc?=?0; 
????char?i; 
???? 
????while?(--count?>=?0) 
????{ 
????????crc?=?crc?^?(int)?*ptr++?<<?8; 
????????i?=?8; 
????????do 
????????{ 
????????if?(crc?&?0x8000) 
????????????crc?=?crc?<<?1?^?0x1021; 
????????else 
????????????crc?=?crc?<<?1; 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三日本三级三级在线播放| 91久久精品一区二区| 久久国产剧场电影| 粉嫩av一区二区三区在线播放 | 欧美色倩网站大全免费| 7777精品伊人久久久大香线蕉 | 国产精品人成在线观看免费| 国产精品久久久久久久午夜片 | 91福利资源站| 91精品久久久久久久99蜜桃| 26uuu亚洲综合色欧美| 中文字幕在线不卡视频| 日韩和的一区二区| 成人黄页在线观看| 日韩一区二区三区免费看| 国产亚洲视频系列| 亚洲成a人v欧美综合天堂下载| 午夜av一区二区| 欧美在线你懂得| 国产欧美一区视频| 久久99国产精品免费| 欧美在线你懂得| 亚洲色图.com| 99久久99久久久精品齐齐| 欧美岛国在线观看| 美女一区二区视频| 在线成人午夜影院| 午夜精品影院在线观看| 一本久道中文字幕精品亚洲嫩| 精品国产免费一区二区三区四区| 一区二区三区四区在线免费观看| 国产成人亚洲综合a∨婷婷图片| 91精品欧美福利在线观看| 亚洲电影中文字幕在线观看| 97国产一区二区| 亚洲免费视频成人| 一本久道久久综合中文字幕 | 青青草一区二区三区| 91在线国产观看| 久久综合久久综合久久综合| 亚洲久草在线视频| 国产福利一区二区| 国产精品久久久久久户外露出| 国产美女娇喘av呻吟久久| 国产精品天美传媒| 91久久人澡人人添人人爽欧美| 亚洲国产毛片aaaaa无费看| 欧美麻豆精品久久久久久| 美腿丝袜亚洲综合| 国产精品久久久久三级| 欧美亚洲动漫制服丝袜| 琪琪一区二区三区| 欧美国产视频在线| 制服丝袜中文字幕亚洲| 国产麻豆9l精品三级站| 亚洲愉拍自拍另类高清精品| 69p69国产精品| 成人av网站免费| 亚瑟在线精品视频| 国产精品久久久久久久浪潮网站| 欧美午夜宅男影院| www.日韩精品| 精品一区二区三区免费毛片爱| 亚洲欧洲在线观看av| xnxx国产精品| 欧美丰满嫩嫩电影| 在线日韩一区二区| 成人app网站| 国产一区二区免费在线| 青青草一区二区三区| 亚洲国产一区二区视频| 亚洲欧洲av另类| 日韩久久一区二区| 中文字幕日本乱码精品影院| 久久久久亚洲蜜桃| 久久综合九色综合97婷婷| 欧美日韩亚洲综合在线| 欧美日韩精品专区| 欧美在线你懂的| 欧美无砖专区一中文字| 欧洲精品一区二区三区在线观看| caoporn国产一区二区| av不卡在线观看| 97久久精品人人澡人人爽| 99国产精品99久久久久久| 91在线观看成人| 欧美体内she精视频| 91精品福利在线一区二区三区| 欧美一区二区大片| 国产亚洲精品aa午夜观看| 中文一区在线播放| 亚洲一区二区三区四区不卡 | 成人午夜视频在线| a4yy欧美一区二区三区| 欧美日韩在线免费视频| 日韩精品中文字幕在线不卡尤物 | 国内成人精品2018免费看| 国产·精品毛片| 在线视频国内一区二区| 欧美videos中文字幕| 亚洲欧洲一区二区在线播放| 亚洲一区二区精品视频| 国产一区二区三区不卡在线观看 | 日日夜夜精品视频天天综合网| 国产综合久久久久久久久久久久| 不卡的av在线| 26uuu精品一区二区| 一区二区三区中文在线| 国产精品一线二线三线| 欧美日韩三级一区| 自拍偷拍欧美激情| 国产乱人伦精品一区二区在线观看 | 国产91丝袜在线18| 欧美va在线播放| 亚洲国产精品自拍| 色哟哟精品一区| 国产精品激情偷乱一区二区∴| 精品在线视频一区| 日韩一二三区不卡| 日韩精品乱码av一区二区| 在线欧美一区二区| 亚洲一区二区三区爽爽爽爽爽 | 婷婷开心久久网| 欧美性大战久久| 性久久久久久久久| 67194成人在线观看| 男人操女人的视频在线观看欧美| 欧美性生活大片视频| 三级精品在线观看| 日韩欧美国产小视频| 国产麻豆精品久久一二三| 日本韩国一区二区三区| 一区在线观看免费| 一本到一区二区三区| 亚洲综合偷拍欧美一区色| fc2成人免费人成在线观看播放 | 欧美色精品在线视频| 一区二区三区在线免费播放 | 久久午夜羞羞影院免费观看| 狠狠色丁香久久婷婷综| 国产欧美日韩另类一区| 在线中文字幕不卡| 偷拍日韩校园综合在线| 日韩欧美成人一区| 成人av中文字幕| 亚洲精品亚洲人成人网在线播放| 97久久久精品综合88久久| 亚洲一区视频在线| 欧美日韩不卡在线| 高清不卡一二三区| 亚洲一区二三区| 久久久久久久久久看片| 欧美午夜精品久久久久久超碰| 麻豆精品视频在线| 国产精品第13页| 欧美成人官网二区| 一本色道综合亚洲| 成人免费毛片高清视频| 日韩av一级片| 亚洲精品久久久久久国产精华液| 日韩一级高清毛片| 欧美三级视频在线| 色天天综合色天天久久| 粉嫩久久99精品久久久久久夜| 亚洲第一搞黄网站| 亚洲一区自拍偷拍| 一区二区三区精品| 亚洲一区二区三区在线看| 亚洲色图色小说| 国产精品国产成人国产三级| 日本一区二区视频在线| 日本一区二区三区四区| 欧美一区日韩一区| 日韩免费高清av| 欧美日韩国产另类一区| 色婷婷亚洲精品| 欧美日韩一区高清| 91精品国产欧美一区二区成人 | 中文字幕一区二区三区不卡| 国产亚洲午夜高清国产拍精品| 精品成人a区在线观看| 精品乱人伦一区二区三区| 国产欧美一区二区精品忘忧草 | 99久久精品国产毛片| 欧美性生交片4| 日韩欧美国产一二三区| 亚洲欧美激情在线| 免费观看成人av| 国产综合成人久久大片91| 99r国产精品| 精品国产三级电影在线观看| 国产免费观看久久| 日韩中文字幕一区二区三区| 老司机精品视频导航| 91在线丨porny丨国产| 精品欧美乱码久久久久久| 欧美国产欧美综合| 六月丁香综合在线视频| aa级大片欧美| 久久久夜色精品亚洲|