<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 利用MSGQ模塊簡(jiǎn)化復雜DSP的應用

利用MSGQ模塊簡(jiǎn)化復雜DSP的應用

作者: 時(shí)間:2010-02-26 來(lái)源:網(wǎng)絡(luò ) 收藏


main()

if processor 0: 打開(kāi)雇主消息隊列并

創(chuàng )建雇主線(xiàn)程。

if processor 1: 打開(kāi)雇員消息隊列并

創(chuàng )建雇員線(xiàn)程。

打開(kāi)錯誤消息隊列并創(chuàng )建錯誤線(xiàn)程。

srio_init to initialize peripheral

workerThread()

Loop

_get message from the worker queue

確定發(fā)送器

向發(fā)送器發(fā)送特定數量的消息

bossThread()

_locate to locate worker queue

Loop

_alloc message

使用要接收的多個(gè)消息來(lái)填充消息。

MSGQ_setSrcQueue to embedded boss’s message queue

MSGQ_put message to reader

Loop

MSGQ_get message from the boss queue

errorThread()

Loop

MSGQ_get message from the error queue

Log MQT error via LOG_printf

在單個(gè)處理器上發(fā)送消息

下面將介紹在單個(gè)處理器上發(fā)送和接收消息的幕后情況,這個(gè)過(guò)程分為任務(wù)一和任務(wù)二。任務(wù)二由操作系統進(jìn)行調用,打開(kāi)MSGQ隊列,并為該消息隊列指定 “pend”與“post”函數。如果沒(méi)有消息,則使用“pend”函數,在而向消息隊列發(fā)送消息時(shí)則調用“post”函數。

如果MSGQ獲得了沒(méi)有待決消息的信息,那么就可運行任務(wù)一,但必須讀取隊列標識符,并定位適當的隊列,以免其位于不同的處理器上。通常在啟動(dòng)時(shí)定位隊列對性能幾乎沒(méi)有什么影響。此外,任務(wù)一在向任務(wù)二發(fā)送消息之前還必須為消息傳輸分配存儲器。

一旦任務(wù)一發(fā)送消息,就不能再對消息進(jìn)行處理,因為這時(shí)MSGQ已擁有該消息,MSGQ會(huì )將該消息分配給適當的隊列。任務(wù)二獲得了有消息的信息,并準備接收消息。一旦任務(wù)二獲得消息,就能夠對消息進(jìn)行重復使用,并將其發(fā)送回任務(wù)一。例如,如果兩個(gè)任務(wù)要將消息來(lái)回傳輸,那么就僅需分配開(kāi)始的消息。若讀取器接收到消息,就能相應地更新內容,然后將其發(fā)回。這樣,任務(wù)二就能夠處理消息,一旦處理完成,消息就返回到存儲器管理,任務(wù)二也就不能再對該消息進(jìn)行處理。消息傳輸至此完成。消息傳遞可通過(guò)為數據移動(dòng)提供虛擬接口來(lái)顯著(zhù)處理器通信的開(kāi)發(fā)與維護。

本文引用地址:http://dyxdggzs.com/article/152079.htm

上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>