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

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

?? sst25vf020.c

?? 嵌入式系統(tǒng) EP93xx處理器
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
//****************************************************************************//// sst25vf020.c - Routines for erasing and programing the sst25vf020//               eeprom.//// Copyright (c) 2006 Cirrus Logic, Inc.////****************************************************************************#include "ep93xx.h"#include "timer.h" #include "spi.h"#include "sst25vf020.h"//-----------------------------------------------------------------------------// sst25vf020_transaction do with the buffer for write&read//-----------------------------------------------------------------------------static void sst25vf020_transaction(unsigned char *tBuffer,unsigned char *rBuffer,int length){    int i;    i=0;	    SSP1->SSPCR1.Value = 0;    //    // send the bytes of data to eeprom    //    while(length>0)    {        SSP1->SSPDR.Value = tBuffer[i];        length--;        i++;    }         //    // set SSPC1_SSE value    //    SSP1->SSPCR1.Value = 0x10;    i=0;		//    // Wait for the Transmit FIFO to empty    //    while(!SSP1->SSPSR.Field.TFE);    delay_usec(30);   	     //    // Get the bytes of data that are actually read back from eeprom    //    while(SSP1->SSPSR.Field.RNE)    {        rBuffer[i]=(unsigned char)SSP1->SSPDR.Value;        i++;        delay_usec(1);	        }}//-----------------------------------------------------------------------------// sst25vf020_get_ready let the chip ready//-----------------------------------------------------------------------------static int sst25vf020_get_ready(void){    unsigned char tBuffer[2];    unsigned char rBuffer[2];        //    // Send the read command to status register    //    tBuffer[0] = SST25VF020_READ_STATUS_REGISTER;    tBuffer[1] = 0;    //    // Get the status of eeprom     //    sst25vf020_transaction( tBuffer, rBuffer, 2);        //    // Get  ready status of status register    //    if(rBuffer[1] & SST25VF020_STATUS_READY) return 0;        return 1;}//-----------------------------------------------------------------------------// init_sst25vf020 chip init//-----------------------------------------------------------------------------void init_sst25vf020(void){    unsigned long ulChipID=0;	    //    // Disable the ssp, disable interrupts    //    SSP1->SSPCR1.Value = 0;       //    // Set GPIO pins 12 and 14 as outputs.    //    *((volatile unsigned int *)(PBDDR)) = (0x50);               //    // Set GPIO pins 12 and 14 high to disable the keyboard.    //    *((volatile unsigned int *)(PBDR)) = (0x50);         //    // Set GPIO pin 6 and 7 as an outputs.    //    *((volatile unsigned int *)(PADDR)) = (0xc0);        //    // Clear GPIO pin 7 to enable the frame line.    // Set GPIO pin 6 to disable the CS4271.    //    *((volatile unsigned int *)(PADR)) = (0x00);    *((volatile unsigned int *)(PADR)) = (0x40);    //    // Set FGPIO pin 0 as an output.    //    *((volatile unsigned int *)(PFDDR)) = (0x01);        //    // Set FGPIO pin 0 to disable the TLV2542.    //    *((volatile unsigned int *)(PFDR)) = (0x01);    //    // Set the enable bit(SSE) in SSP1CR1    //      SSP1->SSPCR1.Value = 0x10;    //    //program the SSP1CRO register    //    SSP1->SSPCR0.Value = 0x000001c7;        //    //Read the chip id    //    ulChipID = *((volatile unsigned int *)(CHIPID));        //    // Program the predivisor register.    //    //if(((ulChipID&0xf0000000)>>28)>=0x0111)    if(((ulChipID&0xf0000000)>>28)>=0x7)    {       	//    	//if Chip REV >=E2,the diver =4;    	//    	SSP1->SSPCPSR.Value = 4;    }    else    {    	//    	//if Chip REV <=E1,(E0)the diver =2;    	//    	SSP1->SSPCPSR.Value = 2;    }    //    // Clear the enable bit(SSE) in SSP1CR1    //    SSP1->SSPCR1.Value = 0;    //    // Set the enable bit(SSE) in SSP1CR1    //    //     SSP1->SSPCR1.Value = 0x10;}//-----------------------------------------------------------------------------// query_sst25vf020 chip query//-----------------------------------------------------------------------------int query_sst25vf020(unsigned int manu_id,unsigned int device_id){       unsigned char tBuffer[8];    unsigned char rBuffer[8];        //    // Send the READ_ID command    //    tBuffer[0] = SST25VF020_READ_ID;    tBuffer[1] = 0;    tBuffer[2] = 0;    tBuffer[3] = 0;    tBuffer[4] = 0;    tBuffer[5] = 0;        //    // Get the Manu_ID and Device_ID from eeprom    //    sst25vf020_transaction( tBuffer, rBuffer, 6);        //    // Compare the ID got from eeprom with sst25vf020's ID    //    if ((manu_id ==(unsigned int)rBuffer[4])&(device_id==(unsigned int)rBuffer[5]))        return 1;    else        return 0;   }//-----------------------------------------------------------------------------// query_sst25vf040B chip query//-----------------------------------------------------------------------------int query_sst25vf040(unsigned int manu_id,unsigned int device_id){       unsigned char tBuffer[8];    unsigned char rBuffer[8];        //    // Send the READ_ID command    //    tBuffer[0] = SST25VF020_READ_ID;    tBuffer[1] = 0;    tBuffer[2] = 0;    tBuffer[3] = 0;    tBuffer[4] = 0;    tBuffer[5] = 0;        //    // Get the Manu_ID and Device_ID from eeprom    //    sst25vf020_transaction( tBuffer, rBuffer, 6);        //    // Compare the ID got from eeprom with sst25vf020's ID    //    if ((manu_id ==(unsigned int)rBuffer[4])&(device_id==(unsigned int)rBuffer[5]))        return 1;    else        return 0;   }//-----------------------------------------------------------------------------// erase_sst25vf020 chip erase//-----------------------------------------------------------------------------int erase_sst25vf020(unsigned int addrOffset, int length){    unsigned char tBuffer[4];    unsigned char rBuffer[4];    unsigned int addrBase,addr;        if(addrOffset>2*1024*1024/8)    	return 2;    else if(addrOffset+length>2*1024*1024/8)    	return 0;    	    for(addrBase=0; addrBase<length; addrBase+=0x1000)    {    addr =  addrBase+addrOffset;     //    // Send the enable_write command to status register    //    tBuffer[0] = SST25VF020_ENABLE_WRITE_STATUS_REGISTER;         //    // Finish the phase of writing command    //        sst25vf020_transaction( tBuffer, rBuffer, 1);    //    // Send the write command to status register    //    tBuffer[0] = SST25VF020_WRITE_STATUS_REGISTER;     tBuffer[1] = 0;        //    // Finish the phase of writing status register    //      sst25vf020_transaction( tBuffer, rBuffer, 2);     //    // Send the write_enable command to status register    //    tBuffer[0] = SST25VF020_WRITE_ENABLE;          //    // Finish the phase of writing enable command    //      sst25vf020_transaction( tBuffer, rBuffer, 1);    //    // Send the sector_erase command and the address to eeprom     //    tBuffer[0] = SST25VF020_SECTOR_ERASE;    tBuffer[1] = addr >> 16;    tBuffer[2] = addr >> 8;    tBuffer[3] = addr;        //    // Finish the phase of writing sector_erase command    //      sst25vf020_transaction( tBuffer, rBuffer, 4);    //    // Get the ready status of status register    //    while( !sst25vf020_get_ready() )    {        delay_usec(1);    }		    }          return 1;}//-----------------------------------------------------------------------------// erase_sst25vf040B chip erase//-----------------------------------------------------------------------------int erase_sst25vf040(unsigned int addrOffset, int length){    unsigned char tBuffer[4];    unsigned char rBuffer[4];    unsigned int addrBase,addr;    if(addrOffset>4*1024*1024/8)    	return 2;        else if(addrOffset+length>4*1024*1024/8)    	return 0;    	    for(addrBase=0; addrBase<length; addrBase+=0x1000)    {    addr =  addrBase+addrOffset;     //    // Send the enable_write command to status register    //    tBuffer[0] = SST25VF020_ENABLE_WRITE_STATUS_REGISTER;         //    // Finish the phase of writing command

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品亚洲二区| 欧美一区二区三区电影| 日韩精品中文字幕在线一区| 中文字幕日韩av资源站| 美女爽到高潮91| 欧美色图一区二区三区| 中文字幕一区二区不卡| 狠狠色综合日日| 884aa四虎影成人精品一区| 亚洲欧美一区二区三区极速播放 | 中文无字幕一区二区三区| 日韩精品电影在线观看| 色综合色狠狠天天综合色| 久久久精品免费观看| 亚洲成a人在线观看| 99热这里都是精品| 国产人伦精品一区二区| 另类小说色综合网站| 欧美日韩成人一区| 亚洲无线码一区二区三区| 91捆绑美女网站| 亚洲国产高清在线观看视频| 国产综合色精品一区二区三区| 欧美乱熟臀69xxxxxx| 一区二区三区免费看视频| av一区二区三区四区| 久久久久国产精品厨房| 久草中文综合在线| 日韩无一区二区| 美女脱光内衣内裤视频久久网站 | 91在线精品秘密一区二区| 国产欧美一区二区三区在线老狼| 蜜桃一区二区三区在线观看| 欧美高清www午色夜在线视频| 一区二区成人在线视频| 91成人网在线| 亚洲精品日韩综合观看成人91| 91视视频在线观看入口直接观看www | 亚洲国产精品精华液ab| 国产成人综合网| 日本一区二区视频在线| 国产电影精品久久禁18| 久久久天堂av| 夫妻av一区二区| 国产精品久久久久精k8| 99国产精品久久久| 国产精品成人网| 99久久免费国产| 亚洲蜜臀av乱码久久精品蜜桃| 一本大道av一区二区在线播放| 亚洲人吸女人奶水| 91精品91久久久中77777| 亚洲另类在线制服丝袜| 色播五月激情综合网| 亚洲一区二区三区四区在线观看 | 国产激情视频一区二区三区欧美| 久久女同精品一区二区| 成人免费黄色大片| 综合电影一区二区三区 | 欧美精品一区二区三区视频 | 亚洲小说欧美激情另类| 欧美日韩dvd在线观看| 美女视频免费一区| 国产欧美一区二区精品仙草咪| 国产成人在线视频网站| 亚洲人成小说网站色在线| 在线观看日韩av先锋影音电影院| 日韩黄色片在线观看| 精品1区2区在线观看| 成人av综合在线| 亚洲综合小说图片| 日韩欧美卡一卡二| 成人丝袜视频网| 亚洲一二三专区| 日韩精品在线看片z| 成人一级黄色片| 亚洲国产精品一区二区久久| 精品久久久久久综合日本欧美| 国产一区二区三区不卡在线观看| 国产精品久久久久久久久免费樱桃| 色婷婷精品久久二区二区蜜臂av | 久久精品72免费观看| 国产欧美一区二区三区在线看蜜臀| 色婷婷亚洲综合| 久久狠狠亚洲综合| 一区二区中文字幕在线| 欧美久久一二区| 丁香另类激情小说| 亚洲1区2区3区视频| 国产色产综合色产在线视频| 色哟哟国产精品免费观看| 奇米777欧美一区二区| 国产精品白丝在线| 日韩欧美aaaaaa| 色天使色偷偷av一区二区| 日本亚洲三级在线| 中文字幕一区二区三区不卡在线 | 92精品国产成人观看免费| 日韩制服丝袜av| 国产精品久久久爽爽爽麻豆色哟哟| 欧美疯狂做受xxxx富婆| 成人高清伦理免费影院在线观看| 五月天亚洲精品| 国产精品久久久久久久久免费樱桃| 这里只有精品视频在线观看| 成人免费看的视频| 久久se这里有精品| 亚洲国产裸拍裸体视频在线观看乱了 | 欧美一级二级在线观看| 大桥未久av一区二区三区中文| 亚洲第一会所有码转帖| 国产精品欧美综合在线| 日韩三级免费观看| 欧美在线你懂的| 丁香激情综合国产| 麻豆免费看一区二区三区| 一区二区三区在线视频播放| 久久久精品人体av艺术| 91超碰这里只有精品国产| 91网站在线播放| 国产乱人伦精品一区二区在线观看| 亚洲成av人片在www色猫咪| 国产精品久久久久婷婷| 亚洲精品一区二区三区精华液| 欧美日韩在线不卡| 97精品视频在线观看自产线路二| 国产综合色在线| 捆绑调教一区二区三区| 亚洲一区在线视频观看| 亚洲色图一区二区| 中文字幕不卡一区| 久久嫩草精品久久久久| 91精品国产欧美一区二区成人| 欧美亚洲综合另类| 99精品视频一区二区三区| 国产成人午夜精品影院观看视频 | 色噜噜偷拍精品综合在线| 成人综合婷婷国产精品久久蜜臀 | 亚洲成人动漫av| 国产精品123区| 麻豆成人久久精品二区三区红| 亚洲午夜精品久久久久久久久| 中文字幕一区二区三区四区不卡| 久久毛片高清国产| 亚洲精品一区二区三区99| 欧美r级在线观看| 日韩视频不卡中文| 欧美mv日韩mv亚洲| 欧美精品一区二区三区视频| 日韩一区二区精品| 日韩欧美中文字幕公布| 日韩精品一区二区三区在线观看| 欧美肥妇毛茸茸| 日韩午夜中文字幕| 欧美精品一区二区三区在线播放| 久久综合色播五月| 久久久99精品免费观看| 国产视频一区在线播放| 国产欧美日韩中文久久| 国产精品久久久久久久久免费丝袜 | 欧美日韩精品欧美日韩精品一| 欧美三级中文字| 69堂成人精品免费视频| 欧美一区二区网站| 日韩欧美一级在线播放| 欧美成人video| 久久品道一品道久久精品| 久久久精品中文字幕麻豆发布| 国产清纯在线一区二区www| 中文字幕不卡的av| 中文字幕一区二区在线播放| 中文字幕一区二区三区精华液| 亚洲欧美欧美一区二区三区| 一区二区三区四区激情| 午夜精品福利在线| 久久99精品久久只有精品| 国产福利精品导航| 色哟哟一区二区在线观看| 欧美日韩国产一区| 日韩精品资源二区在线| 久久精品一区二区三区四区| 国产精品色哟哟| 亚洲综合偷拍欧美一区色| 奇米精品一区二区三区在线观看| 久久99久久久欧美国产| 成人污视频在线观看| 色综合中文字幕| 欧美夫妻性生活| 久久精品在这里| 亚洲激情自拍视频| 蜜桃av一区二区在线观看| 狠狠色狠狠色综合日日91app| 懂色av一区二区三区蜜臀| 91看片淫黄大片一级在线观看| 欧美伦理电影网| 国产欧美视频一区二区三区| 亚洲精品videosex极品| 日本伊人色综合网| 国产91综合一区在线观看| 在线免费观看一区|