freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

arm嵌入式接口技術(shù)應(yīng)用第三章存儲(chǔ)器(編輯修改稿)

2025-06-24 01:19 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 ******************/ uint16 RAM_Read (uint32 Addr) { volatile uint16 *addr。 addr = (volatile uint16 *)(RAM_ADDR|(Addr1))。 return((uint16)*addr)。 } RAM的讀子程序 實(shí)驗(yàn)參考程序 /************************************************************************** * 名稱: main() * 功能:完成某塊內(nèi)存區(qū)域的自檢,損壞的單元地址保存在數(shù)組 Remake中 *************************************************************************/ int main (void) { uint8 i,j。 uint32 Remake[50]。 uint16 data。 IO1DIR = IO1DIR | (124)。 // 設(shè)置 I/O輸出 IO1CLR = (124)。 // = 0, 關(guān)閉蜂鳴器 //檢查起始地址為 0x81000100的 100個(gè)內(nèi)存單元 (字節(jié)單位 ) for(i=0,j=0。i50。i++) { RAM_Write(100+i,0x5555)。 data = RAM_Read (100+i)。 if(data!=0x5555) //判斷內(nèi)存單元地址是否損壞 { Remake[j]=100+i。 j++。 IO1SET = (124)。 // 打開蜂鳴器 DelayMS(10)。 IO1CLR = (124)。 // 關(guān)閉蜂鳴器 DelayMS(10)。 } } return(0)。 } 運(yùn)行程序, for循環(huán)體中的程序每運(yùn)行一次,則對(duì)應(yīng)的地址上的內(nèi)容就會(huì)更改為 0x55。正確運(yùn)行結(jié)果如下圖所示: 四、 NorFlash存儲(chǔ)器件 ? NorFlash存儲(chǔ)器是一種可以在系統(tǒng) (InSystem)進(jìn)行電擦寫,掉電后信息不丟失的存儲(chǔ)器。 ? 常用的 Flash為 8位或 16位的數(shù)據(jù)寬度。 ? 優(yōu)點(diǎn) :它具有低功耗、大容量、擦寫速度快、可整片或分扇區(qū)在系統(tǒng)編程 (燒寫 )、擦除等特點(diǎn),在體積、抗震性方面都有很大的優(yōu)勢(shì)。 ? 最大的特點(diǎn): 是可在芯片內(nèi)執(zhí)行,即應(yīng)用程序可以直接在上面運(yùn)行,不必再把代碼讀到系統(tǒng) RAM中。而其他類型的 Flash存儲(chǔ)器不具備這個(gè)特點(diǎn)。 Nor- Flash器件 SST39VF1601 ? SST39VF1601是由 SST公司推出的,是一個(gè)多功能Flash器件,存儲(chǔ)容量為 2MB, 16位數(shù)據(jù)寬度。SST39VF1601由 SST提供了固定的擦除和編程時(shí)間,與擦除 /編程周期數(shù)無(wú)關(guān)。 ? SST39VF1601的特性 存儲(chǔ)空間組織 1M 16。 讀寫操作采用單一電源 ~ 。 低功耗、高 可靠性。 具有地址和數(shù)據(jù)鎖存功能。 自動(dòng)寫時(shí)序內(nèi)部產(chǎn)生 Vpp。 寫結(jié)束檢測(cè) ⑴ SST39VF1601引腳描述 ? SST39VF1601一共有 48個(gè)引腳, 48個(gè)引腳中包括:20根地址線、 16根數(shù)據(jù)線、 3根控制線、 3根電源線和其他不用連接的引腳。 標(biāo) 準(zhǔn) 引 腳 圖引腳 描述 引腳 描述 CE 芯片使能(低電平有效)。 A0~A19 地址輸入。 WE 寫使能(低電 平有效)。 D0~D15 數(shù)據(jù)輸入輸出 OE 輸出使能(低電平有效)。 NC Not Connect Vdd 正電源 Vss 電源地 SST39VF1601內(nèi)部主要由控制邏輯電路、緩沖區(qū)電路、譯碼器電路、存儲(chǔ)器電路四大部分組成。 ⑵ SST39VF1601的讀寫和擦除操作 ? NOR Flash存儲(chǔ)采用的是 SRAM接口,其地址線和數(shù)據(jù)線是分開的。 SST39VF1601芯片可工作在讀模式、寫模式、擦除模式 3種模式之下。 模式 CE OE WE DQ15~ DQ0 地址線 讀 低電平 低電平 高電平 Dout Ain 寫 低電平 高電平 低電平 Din Ain 擦除 高電平 - - 高阻 - 工作模式選擇 ⑶ SST39VF1601的讀操作 ? SST39VF1601具備快速讀訪問(wèn)能力。 ? SST39VF1601的讀操作是 CE和 OE信號(hào)線控制的。 讀操作的時(shí)序如圖所示 : ⑷ SST39VF1601的寫操作 ? SST39VF1601的寫操作主要是以一個(gè)半字接一個(gè)半字的方式進(jìn)行寫入的。寫操作分 3步進(jìn)行: ? 第 1步,送出 “ 軟件數(shù)據(jù)保護(hù) ” 的 3字節(jié), SW0,SW1,SW2。 第一字節(jié) SW0:地址線載入地址 0x5555,數(shù)據(jù)線載入0xXXAA; 第二字節(jié) SW1:地址線載入地址 0x2AAA,數(shù)據(jù)線載入0xXX55; 第三字節(jié) SW2:地址線載入地址 0x5555,數(shù)據(jù)線載入0xXXA0; ? 第 2步,送出地址和數(shù)據(jù),地址在 CE或 WE的下降沿(無(wú)論哪一個(gè)后產(chǎn)生下降沿)鎖存。 ? 第 3步,內(nèi)部寫入處理階段。在內(nèi)部寫入階段,任何指令都將被忽略。 WE控制的字寫入時(shí)序如圖所示 : ⑸ 扇區(qū) /塊 /整片擦除操作 ? SST39VF1601扇區(qū)是統(tǒng)一的 2 K半字( 16位)大小,塊是統(tǒng)一的 32 K半字大小。 SST39VF1601存儲(chǔ)容量為 2M字節(jié)大小。 SST39VF1601支持以下操作: 扇區(qū)擦除操作 塊擦除操作 整片擦除操作 ? 扇區(qū)或塊擦除操作允許 SST39VF1601以一個(gè)扇區(qū)接一個(gè)扇區(qū),或一個(gè)塊接一個(gè)塊地進(jìn)行擦除。 ? 這三種擦除操作都是通過(guò) 6字節(jié)的指令序列進(jìn)行的。其中前面 5字節(jié)的指令序列是相同的,唯一不同的在第 6個(gè)字節(jié)指令中。 3種擦除操作的流程圖如左圖所示: 3中擦除操作時(shí)序如圖: 扇區(qū)擦除操作時(shí)序 塊擦除操作時(shí)序 整片擦除操作時(shí)序 ⑹ 內(nèi)部操作查詢 ? 芯片進(jìn)入內(nèi)部編程或擦除操作狀態(tài)后,允許處理器查詢 DQ6位來(lái)判別芯片內(nèi)部操作是否完成。 ? 當(dāng)內(nèi)部操作進(jìn)行中,所得的 DQ6在 1和 0之間跳變 ? 當(dāng)內(nèi)部操作結(jié)束后, DQ6位的值不再變化 。 實(shí)驗(yàn)?zāi)康呐c內(nèi)容 ?實(shí)驗(yàn)?zāi)康模?通過(guò)實(shí)驗(yàn),理解 NorFlash操作時(shí)序和電路連接,深刻掌握 Flash燒寫算法。 ?實(shí)驗(yàn)內(nèi)容 1: 擦除 SST39VF1601中某段未用的扇區(qū),往這個(gè)扇區(qū)填充 0x55,然后通過(guò) AXD調(diào)試工具觀察該段扇區(qū)的內(nèi)容。 ?實(shí)驗(yàn)內(nèi)容 2: 擦除 SST39VF1601中某段未用的扇區(qū),往這個(gè)扇區(qū)拷入某個(gè)程序的二進(jìn)制代碼,比如一段蜂鳴的子程序代碼,然后讓程序指針跳到該扇區(qū)執(zhí)行。 電路原理分析 ? SST39VF1601與 LPC2220的連接如圖所示。 LPC2220使用外部的存儲(chǔ)器接口 Bank0上的存儲(chǔ)器引導(dǎo)程序運(yùn)行。 ? 編寫 2個(gè)子程序: ? SST_SErase()和 SST_Write(),分別完成SST39VF1601扇區(qū)擦除功能和字編程功能 。 扇區(qū)刪除函數(shù) define FLASH_ADDR 0x80000000 define GetAddr(addr) (volatile uint16 *)(FLASH_ADDR|(addr1)) /************************************************************************** *名稱 : SST_SErase(uint32 SA) *功能 : SST39VF1601扇區(qū)擦除。 *入口參數(shù) : SA 扇區(qū)號(hào) (1~512) *出口參數(shù) : 返回 1表示成功,返回 0表示失敗 **************************************************************************/ 軟件設(shè)計(jì) uint8 SST_SErase(uint32 SA) { volatile uint16 *ip。 uint16 data1,data2。 if((SA512) || (SA1)) //檢查扇區(qū)號(hào)是否在 1~512范圍內(nèi) return(0)。 SA = 4096 * (SA1) 。 //根據(jù)扇區(qū)號(hào),計(jì)算扇區(qū)地址 /*寫入六個(gè)字節(jié)的扇區(qū)擦除指令序列 */ ip = GetAddr(0x5555)。 *ip = 0xaaaa。 // 第一個(gè)寫周期,地址 0x5555,數(shù)據(jù)0xAA ip = GetAddr(0x2aaa)。 *ip = 0x5555。 // 第二個(gè)寫周期,地址 0x2aaa,數(shù)據(jù)0x55 ip = GetAddr(0x5555)。 *ip = 0x8080。 // 第三個(gè)寫周期,地址 0x5555,數(shù)據(jù)0x80 ip = GetAddr(0x5555)。 *ip = 0xaaaa。 // 第四個(gè)寫周期,地址 0x5555,數(shù)據(jù)0xAA ip = GetAddr(0x2aaa)。 *ip = 0x5555。 // 第五個(gè)寫周期,地址 0x2aaa,數(shù)據(jù) 0x55 ip = (volatile uint16 *)(FLASH_ADDR|(SA))。 *ip = 0x30。 // 第六個(gè)寫周期,扇區(qū)地址 SA,數(shù)據(jù)0x30,執(zhí)行扇區(qū)擦除操作 /*等待操作完成 */ while(1) //若編程操作沒(méi)有完成,每次讀操作 DQ6會(huì)跳變 { data1 = *ip。 data2 = *ip。 if(data1==data2) { if( data1 != 0xffff) return(0)。 else return(1)。 } } } /************************************************************************** *名稱 : SST39VF1601_WriteByte () *功能 : SST39VF1601的半字寫入。 *入口參數(shù) : Addr 寫入地址 WriteData 寫入的數(shù)據(jù) *出口參數(shù) : 0 操作不成功 1 操作成功 **************************************************************************/ uint8 SST_Write(uint32 Addr,uint16 WriteData) { volatile uint16 *ip。 volatile uint16 *SADDR。 uint16 data1,data2。 SADDR = (volatile uint16 *)(FLASH_ADDR|(Addramp。0x1fffff))。 字編程函數(shù) ip = GetAddr(0x5555)。 // 轉(zhuǎn)換地址 0x5555 ip[0] = 0xaaaa。 // 第一個(gè)寫周期,地址 0x5555,數(shù)據(jù)0xAA ip = GetAddr(0x2aaa)。 ip[0] = 0x5555。 // 第二個(gè)寫周期,地址 0x2aaa,數(shù)據(jù)0x55 ip = GetAddr(0x5555)。 ip[0] = 0xa0a0。 // 第三個(gè)寫周期,地址 0x5555,數(shù)據(jù)0xA0 *SADDR = WriteData。 // 第四個(gè)寫周期,地址 Addr,數(shù)據(jù) Writ /*等待操作完成 */ while(1) //若編程操作沒(méi)有完成,每次讀操作 DQ6會(huì)跳變 { data1 = *SADDR。 data2 = *SADDR。 if(data1==data2) { if(data1!=WriteData) return(0)。 else return(1)。 } } } 實(shí)驗(yàn) 1參考程序 define Ssize 4096 //一個(gè)扇區(qū) 4096個(gè)字節(jié)大小 /*************
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1