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

正文內(nèi)容

arm嵌入式接口技術應用第三章存儲器(參考版)

2025-05-31 01:19本頁面
  

【正文】 0xf03fffff。 0xfffffff7。 } 頁讀方式 2子程序 實驗參考程序 uint8 Composition = “Whether we find a joke funny or not largely depends on where wehave been brought up.” uint8 Buffer[512]。i++) Buffer[i] = K9f_IO。 for(i=0。 //送行地址 A17~A24 DAT_State()。 K9f_IO = Page amp。 0xFF。 K9f_IO = 0x00。 K9f_IO = 0x50。 IO0CLR = K9f_CE。 Page = Page – 1。 } /************************************************************************** *名稱 : void K9f_ReadBackPage (uint16 Page,uint8 *Buffer) *功能 : 讀取 K9F6408U0C某頁備用區(qū)域的數(shù)據(jù)。i++) Buffer[i] = K9f_DAT。 for(。 //送行地址 A17~A24 DAT_State()。 //送行地址 A9~A1 K9f_ADR = Page1 amp。 //送列地址 A0~A7 K9f_ADR = Page amp。 ADR_State()。 //再讀后半頁 COM_State()。i256。 while(Read_Busy()!=0)。 0xFF。 0xFF。 K9f_ADR = 0x00。 頁讀方式 1子程序 K9f_CMD = 0x00。 IO0CLR = K9f_CE。 Page1 = Page 8。 uint16 Page1。 } /************************************************************************** *名稱 : void K9f_ReadPage (uint16 Page,uint8 *Buffer) *功能 : 讀取 K9F6408U0C某頁的數(shù)據(jù) ,一次讀取一頁。0x01) == 0) return(1)。 IO0SET = K9f_CE。 while(Read_Busy()==0)。i20。 K9f_CMD = 0x10。i++) K9f_DAT = Buffer[i]。 for(i=0。 0xFF。 //送行地址 A9~A16 Page = Page 8。 K9f_ADR = Page amp。 頁寫入子程序 K9f_ADR = 0x00。 K9f_CMD = 0x80。 IO0CLR = K9f_CE。 *入口參數(shù) : Page 頁號 (16K頁 :1~16K) Buffer 要寫入的數(shù)據(jù)緩沖區(qū)指針 *出口參數(shù) : 1 代表發(fā)送成功 0 代表發(fā)送不成功 **************************************************************************/ uint8 K9f_WritePage (uint8 Addr,uint16 Page,uint8 *Buffer, uint16 Length) { uint8 i,RData。 else return(0)。 if((RDataamp。 RData = K9f_DAT。i++)。 for(i=0。 K9f_CMD = 0xd0。 0xFF。 //送低位地址A9~A16 block = block 8。 塊擦除子程序 K9f_ADR = block amp。 K9f_CMD = 0x60。 IO0CLR = K9f_CE。 while(Read_Busy()!=0)。 } /************************************************************************** *名稱 : uint8 K9f_EraseBlock (uint16 block) *功能 : 擦除 K9F6408U0C的某個存儲塊, K9F6408U0C一共包括 1024個塊。 IO0SET = K9f_CE。 RData = K9f_IO。 ID = K9f_IO。i++)。 for(i=0。 K9f_IO = 0x00。 K9f_IO = 0x90。 IO0CLR = K9f_CE。 uint8 i,RData。 } 讀器件的 ID號子程序 /************************************************************************** *名稱 : uint16 K9f_ReadID(void) *功能 : 讀器件的 ID號。 while(Read_Busy()==0) 。i20。 //發(fā)送復位指令 DAT_State()。 //芯片使能 COM_State()。 *入口參數(shù) : 無 *出口參數(shù) : 無 **************************************************************************/ void K9f_Reset(void) { uint32 i。 IO0CLR= K9f_ALE //ALE為低 , CLE為低 軟件設計 ?在以上宏定義的基礎上,根據(jù) K9F6408U0C的功能,我們完成幾個功能子程序,分別用來芯片復位、讀器件 ID號、擦除塊、頁寫入、頁讀等操作。 IO0CLR= K9f_ALE //ALE為低 , CLE為高 define ADR_State() IO1CLR=K9f_CLE。 define K9f_CLE (123) //與 define K9f_ALE (111) //與 define K9f_Busy (112) //與 define K9f_IO (*((volatile unsigned short *) 0x82022000)) define Read_Busy() IO0PIN amp。根據(jù)寫指令、寫地址和讀寫數(shù)據(jù)時CLE, ALE信號控制線的時序要求。 ⑽ 復位操作 實驗內(nèi)容 ? 擦除 K9F6408U0C中的某塊,往該塊的某頁寫入一段字符串,然后讀取該頁的內(nèi)容,通過串口調(diào)試工具顯示讀取的結(jié)果。當器件處于忙狀態(tài)時,發(fā)送復位指令可以使器件中止當前的操作。 ? I/O口狀態(tài)定義見表 所列 : I/O n 狀態(tài) 定義 I/O 0 寫入 /擦除狀態(tài) 0:成功寫入 /擦除 1:在寫入 /擦除中出錯 I/O 1~ 5 保留 0 I/O 6 器件操作 0:忙 1:準備好 I/O 7 寫保護 0:保護 1:未保護 ⑻ 讀狀態(tài)寄存器 ? K9F6408U0C器件具有一個產(chǎn)品鑒定識別碼( ID),讀出 ID,起到識別器件的作用。器件檢測到擦除確認命令后,在 WE的上升沿啟動內(nèi)部寫控制器開始執(zhí)行擦除和擦除校驗。 W ER EC L EA L EC EI / O n8 0列 地 址 行 地 址 1行 地 址 2數(shù) 據(jù) 1 數(shù) 據(jù) n指 令 鎖 存 地 址 鎖 存R /B… ...數(shù) 據(jù)1~5 2 8字 節(jié)1 0寫 入 確 認 指 令~~7 0讀 狀 態(tài) 指 令忙I / O 0I / O 0 = 0 寫 入 成 功I / O 0 = 1 寫 入 失 敗… ...寫操作時序圖 擦除操作是以塊為單位進行的。 ?頁寫入周期總共 3個步驟: 寫入串行數(shù)據(jù)輸入指令 然后寫入 3個字節(jié)的地址信息 最后串行寫入數(shù)據(jù) ⑹ 寫 操作 ?內(nèi)部寫入操作開始后,器件自動進入 “ 讀狀態(tài)寄存器 ” 模式。 ? 頁讀方式 2的其他時序與頁讀方式 1相同。 連續(xù)頁讀操作中,輸出的數(shù)據(jù)是從指定的列地址開始,直到該頁的最后一個列地址的數(shù)據(jù)為止。 要讀取的數(shù)據(jù)被送入了 K9F6408U0C內(nèi)部的頁寄存器。 ?頁讀方式 2: 用來讀取備用區(qū)域( 512~527) 通過將 00h/01h指令寫入指令寄存器,接著寫入 3字節(jié)地址來啟動。有一些指令只需要一個總線周期完成;另外一些指令,則需要 2個周期。 S / A6 4 M + 2 M 位N A N D F l a s h 陣 列( 5 1 2 + 1 6 ) 字 節(jié) 3 2 7 6 8后 半 頁 面 寄 存 器 amp。 高 電壓 發(fā) 生 器命 令總 緩 沖 區(qū)輸 出 驅(qū) 動器I / O 緩 沖 區(qū) amp。 譯 碼 器Y 緩 沖 區(qū) 鎖 存器 amp。 ? K9F6408U0C有效地址空間為 8M字節(jié),那么片內(nèi)必須提供 23根地址線進行選址,其中 A9~ A22稱為行地址,送入 X譯碼器;A0~ A8稱為列地址,送入 Y譯碼器中。 K9F6408U0C的有效總?cè)萘繛?16K頁,合計 8M字節(jié)。 K9F6408U0C引腳描述 引腳 描述 引腳 描述 CLE 命令鎖存使能 (高電平有效) RE 讀使能 (低電平有效) ALE 地址鎖存使能 (高電平有效) WE 寫使能 (低電平有效) CE 芯片使能 (低電平有效) WP 寫保護 (低電平有效) R/B 讀 /忙輸出 該引腳輸出反映器件的當前狀態(tài)(該引腳為低電平表示某個寫入、擦除或任意讀操作正在進行,當操作完成之后該引腳自動回到高電平) I/O0 ~I/O7 數(shù)據(jù)輸入 /輸出引腳 (復用端口,用來輸入地址、指令和數(shù)據(jù),并在讀周期時輸出數(shù)據(jù)的。 采用唯一 ID號保護版權(quán)。 命令寄存器操作。 命令 /地址 /數(shù)據(jù)復用 I/O口。 ? 片內(nèi)寫控制邏輯自動實現(xiàn)所有的編程和擦除功能,包括脈沖的周期、內(nèi)部校驗和數(shù)據(jù)冗余。一般來講,讀寫的過程要靠軟件編程來完成。 ? NandFlash存儲器是 Flash存儲器的一種技術規(guī)格,其內(nèi)部采用非線性宏單元模式,現(xiàn)在得到了越來越廣泛的應用。但 NandFlash存儲器需要特殊的接口來操作。 } 五、 NandFlash存儲器件 ? NOR和 NAND是目前市場上兩種主要的非易失性閃存技術。 JUMP(Addr)。 Addr+=4。 SST_Write(Addr+2,Data1)。 SST_Write(Addr,Data1)。i++) //數(shù)據(jù)寫入 { Data = *P。 for(i=0。 //指針指向 BEE_Function函數(shù) Addr = 0x80000002 + (Ssize * 5)。 SST_SErase(6)。 *************************************************************************/ int main (void) { uint16 i,Data1。 } } define Ssize 4096 //一個扇區(qū) 4096個字節(jié)大小 extern uint32 JUMP(uint32 addr)。 while(1) { IO1SET = BEE //蜂鳴器引腳為高電平 DelayMS(1)。 0xFFFFFFF7。 } 實驗 2參考程序 ?首先用匯編函數(shù)定義了一個程序跳轉(zhuǎn)函數(shù) uint32 JUMP(uint32 addr),參數(shù) addr為給定的程序地址。 SST_Write(Addr,0x5555)。 iSszie。 SST_SErase(512)。 else return(1)。 data2 = *SADDR。 // 第三個寫周期,地址 0x5555,數(shù)據(jù)0xA0 *SADDR = WriteData。 // 第二個寫周期,地址 0x2aaa,數(shù)據(jù)0x55 ip = GetAddr(0x5555)。 // 第一個寫周期,地址 0x5555,數(shù)據(jù)0xAA ip = GetAddr(0x2aaa)。 字編程函數(shù) ip = GetAddr(0x5555)。 SADDR = (volatile ui
點擊復制文檔內(nèi)容
醫(yī)療健康相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1