MCX N系列MCU介紹
MCX N系列是高性能、低功耗微控制器,配備智能外設和加速器,可提供多任務功能和高能效。選擇MCX N系列,包含eIQ Neutron神經處理單元(NPU),適用于機器學習應用。低功耗高速緩存增強了系統性能,雙塊Flash存儲器和帶ECC檢測的RAM支持系統功能安全,提供了額外的保護和保證。
SmartDMA介紹 MCX N系列微控制器全系帶有SmartDMA協處理器。該協處理器支持高效匯編代碼指令運行,主要功能包含加減,左移右移,字節位域交換,位翻轉,訪問內存外設,單周期讀寫IO,接收外部觸發信號等。為了方便客戶工程師簡單使用,我將常用的一些功能,通過數組的形式放在主代碼工程中,用戶只需要調用API函數即可。今天主要介紹如何使用SmartDMA對圖像進行預處理。
圖像處理介紹及應用 在嵌入式領域,我們經常需要對圖像的數據進行處理。比如,我們從原圖像接收到的數據,每個像素的高低字節可能是反的,又比如,我們可能只想要RGB數據,但是原圖像數據可能還帶有透明度的數據成分,這時我們想把透明度的數據去掉。
有時候我們顯示接口要求的數據格式可能與我們RAM中的數據格式不一致,這時候就需要對圖像數據進行預處理,然后再顯示。還有時候,針對RAM中存放的顯示數據,我們想挑選其中的一部分進行顯示,比如隔點隔行顯示。上面這些情況都可以通過CPU核來處理,但這種重復簡單的工作無形給CPU造成很大的負擔。SmartDMA可以很容易實現上述功能,并且不需要打擾CPU核工作。
SmartDMA對圖像處理的實現
針對目前常用的情況,我用SmartDMA實現了如下幾個功能:
1) 可以作為通用的DMA來實現,因為SmartDMA可以訪問內存和外設,所以它可以作為一個通用的DMA。
2) 字節翻轉功能。Smart DMA有字節翻轉、位翻轉等功能,所以又可以對數據進行預處理。字節翻轉可以是一個半字(Half Word)里面的高低位字節翻轉。也可以是一個字(Word)里面的最高字節和最低字節翻轉。
3) 對一定數據長度的字節翻轉。比如每次圖像處理的一組數據有32個字節,SmartDMA可以將這些字節進行顛倒,也就是說第一個字節和最后一個字節互換,第二個字節和倒數第二個字節互換,以此類推。
4) 針對圖像的數據格式實現RGB565和RGB888之間的互換,這也是為了應對不同的顯示接口格式與RAM中存放的數據格式不一致的問題。
Demo展示 在MCXN系列微處理器的軟件開發包SDK里面已經有一個相應的例程(lvgl_demo_widgets_bm)來實現這個功能。它實現的是一個流行的圖形用戶界面Little VGL的常用部件功能。在顯示驅動中,用戶既可以通過普通的DMA傳送數據到LCD接口,也可以配置為通過SmartDMA來實現數據的傳輸。
使用的開發板是FRDM-MCXN947(FRDM-MCXN947 Development Board using MCUXpresso | NXP Semiconductors), 該開發板具有LCD接口。LCD使用FlexIO來驅動。LCD接口支持NXP LCD顯示屏模塊LCD-PAR-S035(LCD-PAR-S035 | NXP Semiconductors)。該LCD支持480x320分辨率。
SmartDMA給用戶提供API接口有如下幾個:
enum _smartdma_display_api { kSMARTDMA_FlexIO_DMA_Endian_Swap = 0U, kSMARTDMA_FlexIO_DMA_Reverse32, kSMARTDMA_FlexIO_DMA, kSMARTDMA_FlexIO_DMA_Reverse, /*!< Send data to FlexIO with reverse order. */ kSMARTDMA_RGB565To888, /*!< Convert RGB565 to RGB888 and save to output memory, use parameter smartdma_rgb565_rgb888_param_t. */ kSMARTDMA_FlexIO_DMA_RGB565To888, /*!< Convert RGB565 to RGB888 and send to FlexIO, use parameter smartdma_flexio_mculcd_param_t. */ kSMARTDMA_FlexIO_DMA_ARGB2RGB, /*!< Convert ARGB to RGB and send to FlexIO, use parameter smartdma_flexio_mculcd_param_t. */ kSMARTDMA_FlexIO_DMA_ARGB2RGB_Endian_Swap, /*!< Convert ARGB to RGB, then swap endian, and send to FlexIO, use parameter smartdma_flexio_mculcd_param_t. */ kSMARTDMA_FlexIO_DMA_ARGB2RGB_Endian_Swap_Reverse, /*!< Convert ARGB to RGB, then swap endian and reverse, and send to FlexIO, use parameter smartdma_flexio_mculcd_param_t. */ };
Demo顯示如下:
審核編輯:劉清
-
加速器
+關注
關注
2文章
807瀏覽量
38087 -
數據傳輸
+關注
關注
9文章
1952瀏覽量
64853 -
微處理器
+關注
關注
11文章
2274瀏覽量
82776 -
RGB
+關注
關注
4文章
801瀏覽量
58715 -
LCD接口
+關注
關注
0文章
8瀏覽量
1937
原文標題:MCX N微處理器SmartDMA秘籍之-對圖像數據的定制處理
文章出處:【微信號:NXP_SMART_HARDWARE,微信公眾號:恩智浦MCU加油站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
![](https://file1.elecfans.com/web2/M00/87/D2/wKgaomRmmRSATthVAAAxvHvpQlI374.png)
![](https://file1.elecfans.com/web2/M00/87/D2/wKgZomRmmRWALrxuAAAzjwDC9z4110.png)
![](https://file1.elecfans.com/web2/M00/87/D2/wKgaomRmmRWANsg2AAAyS1MOSiU658.png)
ARM微處理器的編程模型
什么是微處理器
基于FPGA實現VLIW微處理器
![基于FPGA<b class='flag-5'>實現</b>VLIW<b class='flag-5'>微處理器</b>](https://file1.elecfans.com//web2/M00/A6/04/wKgZomUMO0qAT6rYAAAQkbHpqC0303.jpg)
什么是微處理器_微處理器具有什么功能
基于FPGA的VLIW微處理器基本功能實現設計
![基于FPGA的VLIW<b class='flag-5'>微處理器</b>基本功能<b class='flag-5'>實現</b>設計](https://file.elecfans.com/web1/M00/B0/32/pIYBAF3ndSeATPHWAAAQ9nWjVpo765.png)
評論