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

正文內(nèi)容

環(huán)形緩沖區(qū)及實現(xiàn)原理(編輯修改稿)

2024-09-19 09:42 本頁面
 

【文章內(nèi)容簡介】 0。 printf(“%s Operation mand error! n”, opera)。}/* end switch */}while(opera[0] != ’e’)。return 0。} 在CAN通信卡設(shè)備驅(qū)動程序中,為了增強CAN通信卡的通信能力、提高通信效率,根據(jù)CAN的特點,使用兩級緩沖區(qū)結(jié)構(gòu),即直接面向CAN通信卡的收發(fā)緩 沖區(qū)和直接面向系統(tǒng)調(diào)用的接收幀緩沖區(qū)。 通訊中的收發(fā)緩沖區(qū)一般采用環(huán)形隊列(或稱為FIFO隊列),使用環(huán)形的緩沖區(qū)可以使得讀寫并發(fā)執(zhí)行,讀進程和寫進程可以采用“生產(chǎn)者和消費者”的模型來 訪問緩沖區(qū),從而方便了緩存的使用和管理。然而,環(huán)形緩沖區(qū)的執(zhí)行效率并不高,每讀一個字節(jié)之前,需要判斷緩沖區(qū)是否為空,并且移動尾指針時需要進行“折行處理”(即當(dāng)指針指到緩沖區(qū)內(nèi)存的末尾時,需要新將其定向到緩沖區(qū)的首地址);每寫一個字節(jié)之前,需要判斷緩區(qū)是否為,并且移動尾指針時同樣需要進行“ 折行處理”。程序大部分的執(zhí)行過程都是在處理個別極端的情況。只有小部分在進行實際有效的操作。這就是軟件工程中所謂的“8比2”關(guān)系。結(jié)合CAN通訊實際情況,在本設(shè)計中對環(huán)形隊列進行了改進,可以較大地提高數(shù)據(jù)的收發(fā)效率。 由于CAN通信卡上接收和發(fā)送緩沖器每次只接收一幀CAN數(shù)據(jù),而且根據(jù)CAN的通訊協(xié)議,CAN控制器的發(fā)送數(shù)據(jù)由1個字節(jié)的標識符、一個字節(jié)的RTR 和DLC位及8個字節(jié)的數(shù)據(jù)區(qū)組成,共10個字節(jié);接收緩沖器與之類似,也有10個字節(jié)的寄存器。所以CAN控制器收的數(shù)據(jù)是短小的定長幀(數(shù)據(jù)可以不滿 8字節(jié))。 于是,采用度為10字節(jié)的數(shù)據(jù)塊業(yè)分配內(nèi)存比較方便,即每次需要內(nèi)存緩沖區(qū)時,直接分配10個字節(jié),由于這10個字節(jié)的地址是線性的,故不需要進行“折行”處理。更重要的是,在向緩沖區(qū)中寫數(shù)據(jù)時,只需要判斷一次是否有空閑塊并獲取其塊首指針就可以了,從而減少了重復(fù)性的條件判斷,大大提高了程序的執(zhí)行效率;同樣在從緩沖隊列中讀取數(shù)據(jù)時,也是一次讀取10字節(jié)的數(shù)據(jù)塊,同樣減少了重復(fù)性的條件判斷。 在CAN卡驅(qū)動程序中采用如下所示的稱為“Block_Ring_t”的數(shù)據(jù)結(jié)構(gòu)作為收發(fā)數(shù)據(jù)的緩沖區(qū): typedef struct { long signature。 unsigned char *head_p。 unsigned char *tail_p。 unsigned char *begin_p。 unsigned char *end_p。 unsigned char buffer [BLOCK_RING_BUFFER_SIZE]。 int usedbytes。 }Block_Ring_t。 該數(shù)據(jù)結(jié)構(gòu)在通用的環(huán)形隊列上增加了一個數(shù)據(jù)成員usedbytes,它表示當(dāng)前緩沖區(qū)中有多少字
點擊復(fù)制文檔內(nèi)容
物理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1