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

正文內(nèi)容

第四章niosii外圍設(shè)備-資料下載頁(yè)

2025-02-08 21:26本頁(yè)面
  

【正文】 控制寄存器源地址寄存器目的地址寄存器數(shù)據(jù)長(zhǎng)度寄存器控制端口主控制器讀端口主控制器寫(xiě)端口寄存器文件DMA 控制器AddrDataControlIRQAvalon從控制器端口獨(dú)立的Avalon主控制器端口DMA控制器結(jié)構(gòu)框圖 111 DMA內(nèi)核 ? 典型的 DMA傳輸過(guò)程 – CPU通過(guò)寫(xiě)控制端口配置 DMA控制器用于數(shù)據(jù)傳輸 – DMA控制器向 CPU發(fā)出 HOLD信號(hào)請(qǐng)求使用總線; – CPU響應(yīng) DMA控制器,并將總線讓出, DMA控制器獲得總線控制權(quán); – DMA控制器讀端口從源地址(可能是存儲(chǔ)器或外設(shè))讀數(shù)據(jù),寫(xiě)端口向目的地址(可能是存儲(chǔ)器或外設(shè))寫(xiě)數(shù)據(jù),讀寫(xiě)端口間利用 FIFO緩存數(shù)據(jù)。 – 當(dāng)傳輸完指定的數(shù)據(jù),或數(shù)據(jù)包結(jié)束信號(hào)有效時(shí), DMA傳輸結(jié)束。傳輸結(jié)束時(shí), DMA控制器發(fā)出中斷請(qǐng)求。 – CPU響應(yīng) DMA數(shù)據(jù)傳輸完成事件后, DMA控制器撤銷(xiāo) HOLD信號(hào),歸還總線控制權(quán),數(shù)據(jù)傳送結(jié)束。 112 DMA內(nèi)核 ? DMA寄存器描述 偏移量 寄存器名稱(chēng) 讀 /寫(xiě) 31… 11 10 9 8 7 6 5 4 3 2 1 0 0 狀態(tài) ⑴ RW (2) LEN WEOP REOP BUSY DONE 1 源地址 RW 讀取數(shù)據(jù)的起始地址 2 目的地址 RW 數(shù)據(jù)寫(xiě)入的起始地址 3 長(zhǎng)度 RW DMA傳輸長(zhǎng)度(以字節(jié)為單位) 4 保留 (3) 5 保留 (3) 6 控制 RW (2) (4) (5) WCON RCON LEEN WEEN REEN I_EN GO WORD HW BYTE 7 保留 (3) DMA控制器結(jié)構(gòu)框圖 源地址目的地址長(zhǎng)度控制 狀態(tài) 113 DMA內(nèi)核 ? - DMA 配 置 選 項(xiàng) 卡 SPI配置選項(xiàng)卡 Transfer Size: DMA長(zhǎng)度寄存器的寬度,范圍為 1~32。它確定了在一次 DMA傳輸中可傳輸?shù)淖畲髷?shù)據(jù)量。 Burst Transactions: 允許突發(fā)傳輸:使能該選項(xiàng)可允許 DMA操作支持突然傳輸模式的器件。 FIFO Implementation: FIFO的構(gòu)成: ? 寄存器 ? 嵌入式存儲(chǔ)器模塊 114 DMA內(nèi)核 ? - DMA 配 置 選 項(xiàng) 卡 SPI配置選項(xiàng)卡 高級(jí)選項(xiàng) ? 設(shè)計(jì)者可定制 DMA控制器硬件支持的數(shù)據(jù)寬度。 ? 禁止不必要的傳輸寬度可減少 DMA控制器內(nèi)核所消耗的片內(nèi)邏輯資源數(shù)量。 115 DMA內(nèi)核 ? 軟件編程 1. ioctl()操作:用戶(hù)可通過(guò) ioctl()來(lái)控制 DMA控制器的硬件相關(guān)部分。 HAL層中定義了 2個(gè) ioctl函數(shù)分別用于輔助接收通道驅(qū)動(dòng)程序和輔助發(fā)送通道驅(qū)動(dòng)程序: alt_dma_rxchan_ioctl()和alt_dma_txchan_ioctl(). 2. 軟件文件: DMA控制器還包括下列文件 ? ——定義 DMA內(nèi)核的寄存器映射,提供底層硬件訪問(wèn)宏定義。 ? , ——實(shí)現(xiàn) HAL系統(tǒng)庫(kù)的 DMA控制器設(shè)備驅(qū)動(dòng)程序。 116 ? 并行輸入 /輸出 (PIO)內(nèi)核 ? SDRAM控制器內(nèi)核 ? CFI(通用 Flash)控制器內(nèi)核 ? EPCS控制器內(nèi)核 ? 定時(shí)器內(nèi)核 ? UART內(nèi)核 ? JTAG_UART內(nèi)核 ? SPI內(nèi)核 ? DMA內(nèi)核 ? 帶 Avalon接口的互斥內(nèi)核 ? 帶 Avalon接口的郵箱內(nèi)核 ? System ID內(nèi)核 本章內(nèi)容 117 ? NIOSII開(kāi)發(fā)支持多處理器,可以將多個(gè)處理器集成到一個(gè) FPGA中,從而形成多處理器系統(tǒng)。 ? SOPC Builder提供了支持多處理器的外設(shè)互斥核和郵箱內(nèi)核。 帶 Avalon接口的互斥內(nèi)核 118 ? 互斥內(nèi)核描述:多處理器環(huán)境可使用帶 Avalon接口的互斥內(nèi)核來(lái)協(xié)調(diào)對(duì)共享資源的訪問(wèn)。 – 互斥內(nèi)核提供了一個(gè)協(xié)議,可確保對(duì)一個(gè)共享資源的互斥占有。 – 互斥內(nèi)核提供一個(gè)基于硬件的操作,允許多處理器系統(tǒng)中的軟體來(lái)決定哪個(gè)處理器擁有互斥體。 – 互斥內(nèi)核有一個(gè)簡(jiǎn)單的 Avalon從控制器接口,包含 2個(gè) 32位存儲(chǔ)器映射寄存器 mutex和 reset. 帶 Avalon接口的互斥內(nèi)核 119 帶 Avalon接口的互斥內(nèi)核 ? 互斥內(nèi)核描述及其基本操作 偏移量 寄存器名稱(chēng) R/W 位描述 31… 16 15… 1 0 0 mutex RW OWNER VALUE 1 reset RW RESET 互斥內(nèi)核描述:互斥內(nèi)核存儲(chǔ)器映射 ? 當(dāng) VALUE字段為 0x0000時(shí),互斥體可用,否則互斥體不可用; ? Mutex寄存器總是可讀的。一個(gè)處理器可通過(guò)讀取 mutex寄存器來(lái)確定其當(dāng)前的狀態(tài)。 ? mutex寄存器只在特定的條件下可寫(xiě)。 ? 處理器可通過(guò)將它的 ID寫(xiě)入 OWNER字段和向 VALUE字段寫(xiě)入一個(gè)非零值來(lái)獲取互斥體。 ?系統(tǒng)復(fù)位后, reset寄存器的 RESET位為高電平。 120 Avalon接口的互斥內(nèi)核 ? 互斥內(nèi)核配置選項(xiàng) 硬件設(shè)計(jì)者可利用互斥內(nèi)核的 SOPC Builder配置向?qū)?lái)設(shè)定內(nèi)核的硬件特性。配置向?qū)峁┝艘韵略O(shè)置: – Initial Value-復(fù)位后 VALUE字段的初始值。如果 Initial Value設(shè)置成非零值,還必須設(shè)定 Initial Owner。 – Initial Owner-復(fù)位后 OWNER字段的初始值。當(dāng) Initial Owner被設(shè)定時(shí),此時(shí)的互斥體擁有者必須在互斥體被其它擁有者占用之前將互斥體釋放。 121 Avalon接口的互斥內(nèi)核 ? 軟件編程 對(duì)于 NiosⅡ 處理器用戶(hù), Altera提供了可用來(lái)訪問(wèn)互斥內(nèi)核硬件的驅(qū)動(dòng)程序,利用驅(qū)動(dòng)程序可以直接對(duì)低層的硬件進(jìn)行操作?;コ鈨?nèi)核不能通過(guò) HAL API或 ANSIC標(biāo)準(zhǔn)庫(kù)來(lái)訪問(wèn)。在 NiosⅡ 處理器系統(tǒng)中,處理器通過(guò)將它的 cpuid控制寄存器的值寫(xiě)入 mutex寄存器的 OWNER字段來(lái)鎖定互斥體。 Altera為互斥內(nèi)核提供下列驅(qū)動(dòng)程序文件: – – – 122 Avalon接口的互斥內(nèi)核 ? 軟件編程 函數(shù)名稱(chēng) 描 述 altera_avalon_mutex_open( ) 獲取互斥體的句柄,使所有其它函數(shù)可訪問(wèn)互斥內(nèi)核。 altera_avalon_mutex_trylock( ) 嘗試鎖定互斥體。如果該函數(shù)不能鎖定互斥體,則立即返回。 altera_avalon_mutex_lock( ) 鎖定互斥體。直至該函數(shù)成功得到互斥體才返回 altera_avalon_mutex_unlock( ) 解除鎖定互斥體。 altera_avalon_mutex_is_mine( ) 確定該 CPU是否具有互斥體。 altera_avalon_mutex_first_lock( ) 復(fù)位后測(cè)試互斥體是否已被釋放。 硬件互斥體函數(shù) 123 ? 并行輸入 /輸出 (PIO)內(nèi)核 ? SDRAM控制器內(nèi)核 ? CFI(通用 Flash)控制器內(nèi)核 ? EPCS控制器內(nèi)核 ? 定時(shí)器內(nèi)核 ? UART內(nèi)核 ? JTAG_UART內(nèi)核 ? SPI內(nèi)核 ? DMA內(nèi)核 ? 帶 Avalon接口的互斥內(nèi)核 ? 帶 Avalon接口的郵箱內(nèi)核 ? System ID內(nèi)核 本章內(nèi)容 124 帶 Avalon接口的郵箱內(nèi)核 ? 郵箱內(nèi)核描述 – 多處理器環(huán)境可使用帶 Avalon接口的郵箱內(nèi)核在處理器之間發(fā)送消息。 – 郵箱內(nèi)核含有互斥體,確保了一次只有一個(gè)處理器修改郵箱內(nèi)容。郵箱內(nèi)核必須與用作存儲(chǔ)實(shí)際消息的獨(dú)立共享存儲(chǔ)器一起使用。 – 郵箱內(nèi)核有一個(gè)簡(jiǎn)單的 Avalon從控制器接口,包含 4個(gè) 32位存儲(chǔ)器映射寄存器。 – 郵箱內(nèi)核包含兩個(gè)互斥體: ? 一個(gè)保證對(duì)共享存儲(chǔ)器的唯一寫(xiě)訪問(wèn); ? 一個(gè)保證對(duì)共享存儲(chǔ)器的唯一讀訪問(wèn)。 125 帶 Avalon接口的郵箱內(nèi)核 ? 郵箱內(nèi)核配置選項(xiàng) More 郵箱名稱(chēng) Settings選項(xiàng)卡提供以下選項(xiàng): – Memory module-指定哪個(gè)存儲(chǔ)器用作郵箱緩沖區(qū)。如果所需的共享存儲(chǔ)器沒(méi)有包含 Memory module列表,那么存儲(chǔ)器在系統(tǒng)中不能正確連接。 – Shared Mailbox Memory Offset-指定存儲(chǔ)器中的偏移量。郵箱消息緩沖區(qū)從該偏移量處開(kāi)始。 126 帶 Avalon接口的郵箱內(nèi)核 ? 郵箱內(nèi)核配置選項(xiàng) More 郵箱名稱(chēng) Settings選項(xiàng)卡提供以下選項(xiàng): – Mailbox Size (bytes)-指定用于郵箱消息緩沖區(qū)的字節(jié)數(shù)。 Altera提供的 NiosII驅(qū)動(dòng)程序軟件使用 8字節(jié)來(lái)執(zhí)行郵箱功能。由于郵箱一次只能傳輸一條消息, Mailbox Size (bytes)必須至少為 12字節(jié)。 127 帶 Avalon接口的郵箱內(nèi)核 ? 軟件編程 Altera為 NiosII處理器用戶(hù)提供訪問(wèn)郵箱內(nèi)核的驅(qū)動(dòng)程序,驅(qū)動(dòng)程序中的函數(shù)直接操作低層硬件。郵箱軟件編程有以下特性: – 每個(gè)郵箱消息是一個(gè) 32位字。 – 在共享存儲(chǔ)器中有一個(gè)預(yù)定義的地址范圍專(zhuān)門(mén)用于存儲(chǔ)消息。該地址范圍的大小取決于等待的消息數(shù)量的最大值。 – 郵箱軟件在處理器之間執(zhí)行消息 FIFO。一次只有一個(gè)處理器可寫(xiě)入郵箱,且一次只有一個(gè)處理器可讀取郵箱,以保證消息的完整性。 128 帶 Avalon接口的郵箱內(nèi)核 ? 軟件編程 – 用于發(fā)送和接收的處理器在程序上遵守相同的郵箱消息協(xié)議。通常處理器將消息看作指向共享存儲(chǔ)器結(jié)構(gòu)體的指針。 – 用于發(fā)送的處理器可逐次提交消息,直至最大消息地址。 – 當(dāng)郵箱中有消息時(shí),用于接收的處理器可讀取消息。 – 讀消息會(huì)將消息從郵箱中移除。 129 帶 Avalon接口的郵箱內(nèi)核 ? 軟件編程 Altera為郵箱內(nèi)核提供的驅(qū)動(dòng)程序包含下列文件: – – – 130 帶 Avalon接口的郵箱內(nèi)核 ? 軟件編程 文件 alt_mailbox_dev結(jié)構(gòu)體以及訪問(wèn)郵箱內(nèi)核的函數(shù)。 函數(shù)名稱(chēng) 描 述 altera_avalon_mailbox_close( ) 關(guān)閉郵箱句柄的使用 altera_avalon_mailbox_get( ) 如果出現(xiàn)了一個(gè)值就返回消息,但不阻塞等待消息 altera_avalon_mailbox_open( ) 獲取郵箱句柄,使所有其它函數(shù)都能訪問(wèn)郵箱內(nèi)核 altera_avalon_mailbox_pend( ) 等待郵箱中的消息,如果沒(méi)有消息出現(xiàn)將阻塞(一直等) altera_avalon_mailbox_post( ) 發(fā)送消息到郵箱 郵箱 API函數(shù) 131 ? 并行輸入 /輸出 (PIO)內(nèi)核 ? SDRAM控制器內(nèi)核 ? CFI(通用 Flash)控制器內(nèi)核 ? EPCS控制器內(nèi)核 ? 定時(shí)器內(nèi)核 ? UART內(nèi)核 ? JTAG_UART內(nèi)核 ? SPI內(nèi)核 ? DMA內(nèi)核 ? 帶 Avalon接口的互斥內(nèi)核 ? 帶 Avalon接口的郵箱內(nèi)核 ? System ID內(nèi)核 本章內(nèi)容 132 System ID內(nèi)核 ? System ID寄存器描述 – SOPC Builder生成 NIOSII系統(tǒng)時(shí),將為每個(gè) NIOSII系統(tǒng)生成一個(gè)標(biāo)示符。 – 該標(biāo)示符會(huì)被寫(xiě)入 system id寄存器中,共編譯器和用戶(hù)辨別所運(yùn)行的程序是否與目標(biāo)系統(tǒng)匹配。 – 當(dāng)程序運(yùn)行在與之不匹配的系統(tǒng)上時(shí),會(huì)產(chǎn)生不可預(yù)測(cè)的結(jié)果。 133 System ID內(nèi)核 ? System ID寄存器描述 系統(tǒng) ID內(nèi)核提供只讀的 Avalon從控制器接口。 系統(tǒng) ID內(nèi)核寄存器映射 偏移量 寄存器名稱(chēng) R/W 位描述 31… 0 0 id R SOPC Builder系統(tǒng) ID 1 timestamp R SOPC Builder生成時(shí)間 每個(gè)寄存器的值在系統(tǒng)生成時(shí)確定,并總是返回一個(gè)常量值。 ? id: 類(lèi)似于校驗(yàn)和,不同外設(shè)配置的系統(tǒng)產(chǎn)生不同的 id值 ? timestamp: 基于系統(tǒng)生成時(shí)間的 32位值。該值等于秒數(shù) 134 System ID內(nèi)核 ? System ID寄存器描述 使用系統(tǒng) ID內(nèi)核有兩種基本的方法 : – 其一,在下載新的軟
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1