韩国美女高清爽快一级毛片-韩国美女毛片-韩国美女人成网站在线看看-韩国美女丝袜一区二区-韩国美女一级毛片-韩国美女一级片

24小時(shí)聯(lián)系電話:18217114652、13661815404

中文

您當(dāng)前的位置:
首頁(yè)>
電子資訊>
行業(yè)資訊>
帶外部RAM的AVR上的Fr...

行業(yè)資訊

帶外部RAM的AVR上的FreeRTOS


由于片內(nèi)RAM較低,因此AVR微控制器不是運(yùn)行FreeRTOS調(diào)度程序的最佳選擇。Atmega128僅具有4K RAM,因此這將FreeRTOS功能限制為非?;镜墓δ堋o(wú)論如何,可以通過(guò)添加可能連接到外部存儲(chǔ)器接口的額外RAM來(lái)解決此問(wèn)題。以前我們已經(jīng)構(gòu)建了8K的外部存儲(chǔ)塊,所以現(xiàn)在我們可以使用FreeRTOS應(yīng)用程序?qū)ζ溥M(jìn)行測(cè)試。



  讓我們繼續(xù)前面的代碼,該代碼運(yùn)行一些簡(jiǎn)單的任務(wù)(按鈕狀態(tài)讀取,LCD輸出和LED閃光燈),并且我們可以添加更多內(nèi)容。我們將建立一個(gè)用于存儲(chǔ)堆的外部RAM。這將允許存儲(chǔ)大型數(shù)據(jù)緩沖區(qū),而不必過(guò)多擔(dān)心堆和棧的重疊。


  首先,我們需要注意鏈接器選項(xiàng)。在AVRStudio5項(xiàng)目屬性中,AVR / GNU C鏈接器->其他輸入鏈接器選項(xiàng):

 
  <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">-Wl,-defsym = __ heap_start = 0x801100,-defsym = __ heap_end = 0x8030ff</font></font>


  這將指示鏈接器僅將0x801100到0x8030ff(整個(gè)外部RAM)的內(nèi)存區(qū)域用于堆。
  第二步是設(shè)置微控制器以使用外部存儲(chǔ)器。為了使內(nèi)容整潔和模塊化,我們將創(chuàng)建單獨(dú)的驅(qū)動(dòng)程序源文件xmem.c和xmem.h。并編寫(xiě)簡(jiǎn)單的XMEM_init()函數(shù):

  <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">無(wú)效vXMEMInit(void)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  {</font></font><font></font>
    MCUCR |= (1<<SRE);   /* External memory interface enable */<font></font>
    XMCRA = 0;<font></font>
    XMCRB |= (1<<XMM1)|(1<<XMM0);//PC7..PC5 released pins<font></font>
  }
  在主例程的開(kāi)頭,我們簡(jiǎn)單地調(diào)用此函數(shù)以在使用外部RAM之前對(duì)其進(jìn)行初始化。

  編寫(xiě)USART驅(qū)動(dòng)程序
  我們將需要USART功能,以方便的方式調(diào)試和顯示信息。因此,首先,我們需要可以在任務(wù)中使用的驅(qū)動(dòng)程序。使用USART的最方便的方法可能是通過(guò)隊(duì)列發(fā)送消息。這樣,任何任務(wù)都可以通過(guò)使用消息傳遞服務(wù)而不是直接訪問(wèn)外圍設(shè)備來(lái)與USART通信。因此,我們將實(shí)現(xiàn)兩個(gè)隊(duì)列–一個(gè)用于TX,另一個(gè)用于RX通道。

  //receive and transmit queues<font></font>
  <font></font>
  xQueueHandlexRxedChars=NULL;<font></font>
  <font></font>
  xQueueHandlexCharsForTx=NULL;
  然后在USART初始化期間,我們創(chuàng)建隊(duì)列。

  xRxedChars=xQueueCreate(uxQueueLength,(signedchar)sizeof(signedchar));<font></font>
  <font></font>
  xCharsForTx=xQueueCreate(uxQueueLength,(signedchar)sizeof(signedchar));
  隊(duì)列長(zhǎng)度是在初始化USART時(shí)給出的(在我們的示例中為30)?,F(xiàn)在,當(dāng)隊(duì)列準(zhǔn)備就緒時(shí),就可以使用它們與USART通信。通過(guò)兩個(gè)自定義函數(shù)放置和讀取發(fā)送到隊(duì)列的消息,這使生活更輕松:
  portBASE_TYPE xUSART0PutChar(unsigned char cOutChar)<font></font>
  {<font></font>
  //Return false if after the block time there is no room on the Tx queue.<font></font>
    if( xQueueSend( xCharsForTx, &cOutChar, xBlockTime ) != pdPASS )<font></font>
    {<font></font>
        return pdFAIL;<font></font>
    }<font></font>
    //enable usart UDRE interrupt to transmit<font></font>
    prvUDRIE0InterruptOn();<font></font>
    return pdPASS;<font></font>
  }<font></font>
  portBASE_TYPE xUSART0GetChar(unsigned char *pcRxedChar)<font></font>
  {<font></font>
  /* Get the next character from the buffer.  Return false if no characters<font></font>
    are available, or arrive before xBlockTime expires. */<font></font>
    if( xQueueReceive( xRxedChars, pcRxedChar, xBlockTime ) )<font></font>
    {<font></font>
        return pdTRUE;<font></font>
    }<font></font>
    else<font></font>
    {<font></font>
        return pdFALSE;<font></font>
    }<font></font>
  }
  當(dāng)接收器隊(duì)列中沒(méi)有字符且發(fā)送隊(duì)列已滿時(shí),這些功能可提供額外的安全性。您可能會(huì)注意到,在xUSART0PutChar()中調(diào)用了一個(gè)私有函數(shù)prvUDRIE0InterruptOn()。一旦發(fā)送隊(duì)列中至少有一個(gè)字符,這將啟用USART數(shù)據(jù)就緒中斷。

  通過(guò)中斷例程執(zhí)行USART發(fā)送和接收。

請(qǐng)輸入搜索關(guān)鍵字

確定
主站蜘蛛池模板: 中文字幕一二三区 | 欧美精品一区二区三区观 | 日本精品在线观看视频 | 亚洲伊人久久综合影院2021 | 欧美久草视频 | 狠狠色成人综合 | 国产精品视频免费播放 | 午夜黄色影院 | 日本高清在线精品一区二区三区 | 狠狠色伊人亚洲综合第8页 狠狠色综合久久丁香婷婷 狠狠色综合久久婷婷 | 一级特黄色大片 | 福利午夜最新 | 免费观看黄a一级视频日本 免费观看黄色 | 日本夜爽爽一区二区三区 | 日本护士一级毛片在线播放 | 免费高h影片在线观看 | 亚洲欧美一区二区三区四区 | 国产成人精品免费视频网页大全 | 亚洲免费视频在线 | 国产v欧美v日韩在线观看 | 国产波多野结衣中文在线播放 | 国产欧美综合在线一区二区三区 | 亚洲一级毛片免费观看 | 国产在线视频二区 | 成人乱色短篇合集 | 九九99线视频在线观看 | 欧美精品啪啪 | 久久伊人一区二区三区四区 | 国产亚洲欧美在线视频 | 免费一级黄色毛片 | 特级女人十八毛片a级 | 精品免费久久久久国产一区 | 大陆一级毛片免费视频观看 | 久久精品免观看国产成人 | 欧美日韩高清在线观看 | 奇米777狠狠 | 久久99精品久久久久久国产越南 | 久草在线视频看看 | 成年超爽大片免费视频播放 | 免费福利入口在线观看 | 波多野结衣日韩 |