MCX N系列MCU介紹
MCX N系列是高性能、低功耗微控制器,配備智能外設(shè)和加速器,可提供多任務(wù)功能和高能效。選擇MCX N系列,包含eIQ Neutron神經(jīng)處理單元(NPU),適用于機(jī)器學(xué)習(xí)應(yīng)用。低功耗高速緩存增強(qiáng)了系統(tǒng)性能,雙塊Flash存儲器和帶ECC檢測的RAM支持系統(tǒng)功能安全,提供了額外的保護(hù)和保證。
SmartDMA介紹 MCX N系列微控制器全系帶有SmartDMA協(xié)處理器。該協(xié)處理器支持高效匯編代碼指令運(yùn)行,主要功能包含加減,左移右移,字節(jié)位域交換,位翻轉(zhuǎn),訪問內(nèi)存外設(shè),單周期讀寫IO,接收外部觸發(fā)信號等。為了方便客戶工程師簡單使用,我將常用的一些功能,通過數(shù)組的形式放在主代碼工程中,用戶只需要調(diào)用API函數(shù)即可。今天主要介紹如何使用SmartDMA對圖像進(jìn)行預(yù)處理。
圖像處理介紹及應(yīng)用 在嵌入式領(lǐng)域,我們經(jīng)常需要對圖像的數(shù)據(jù)進(jìn)行處理。比如,我們從原圖像接收到的數(shù)據(jù),每個(gè)像素的高低字節(jié)可能是反的,又比如,我們可能只想要RGB數(shù)據(jù),但是原圖像數(shù)據(jù)可能還帶有透明度的數(shù)據(jù)成分,這時(shí)我們想把透明度的數(shù)據(jù)去掉。
有時(shí)候我們顯示接口要求的數(shù)據(jù)格式可能與我們RAM中的數(shù)據(jù)格式不一致,這時(shí)候就需要對圖像數(shù)據(jù)進(jìn)行預(yù)處理,然后再顯示。還有時(shí)候,針對RAM中存放的顯示數(shù)據(jù),我們想挑選其中的一部分進(jìn)行顯示,比如隔點(diǎn)隔行顯示。上面這些情況都可以通過CPU核來處理,但這種重復(fù)簡單的工作無形給CPU造成很大的負(fù)擔(dān)。SmartDMA可以很容易實(shí)現(xiàn)上述功能,并且不需要打擾CPU核工作。
SmartDMA對圖像處理的實(shí)現(xiàn)
針對目前常用的情況,我用SmartDMA實(shí)現(xiàn)了如下幾個(gè)功能:
1) 可以作為通用的DMA來實(shí)現(xiàn),因?yàn)镾martDMA可以訪問內(nèi)存和外設(shè),所以它可以作為一個(gè)通用的DMA。
2) 字節(jié)翻轉(zhuǎn)功能。Smart DMA有字節(jié)翻轉(zhuǎn)、位翻轉(zhuǎn)等功能,所以又可以對數(shù)據(jù)進(jìn)行預(yù)處理。字節(jié)翻轉(zhuǎn)可以是一個(gè)半字(Half Word)里面的高低位字節(jié)翻轉(zhuǎn)。也可以是一個(gè)字(Word)里面的最高字節(jié)和最低字節(jié)翻轉(zhuǎn)。
3) 對一定數(shù)據(jù)長度的字節(jié)翻轉(zhuǎn)。比如每次圖像處理的一組數(shù)據(jù)有32個(gè)字節(jié),SmartDMA可以將這些字節(jié)進(jìn)行顛倒,也就是說第一個(gè)字節(jié)和最后一個(gè)字節(jié)互換,第二個(gè)字節(jié)和倒數(shù)第二個(gè)字節(jié)互換,以此類推。
4) 針對圖像的數(shù)據(jù)格式實(shí)現(xiàn)RGB565和RGB888之間的互換,這也是為了應(yīng)對不同的顯示接口格式與RAM中存放的數(shù)據(jù)格式不一致的問題。
Demo展示 在MCXN系列微處理器的軟件開發(fā)包SDK里面已經(jīng)有一個(gè)相應(yīng)的例程(lvgl_demo_widgets_bm)來實(shí)現(xiàn)這個(gè)功能。它實(shí)現(xiàn)的是一個(gè)流行的圖形用戶界面Little VGL的常用部件功能。在顯示驅(qū)動(dòng)中,用戶既可以通過普通的DMA傳送數(shù)據(jù)到LCD接口,也可以配置為通過SmartDMA來實(shí)現(xiàn)數(shù)據(jù)的傳輸。
使用的開發(fā)板是FRDM-MCXN947(FRDM-MCXN947 Development Board using MCUXpresso | NXP Semiconductors), 該開發(fā)板具有LCD接口。LCD使用FlexIO來驅(qū)動(dòng)。LCD接口支持NXP LCD顯示屏模塊LCD-PAR-S035(LCD-PAR-S035 | NXP Semiconductors)。該LCD支持480x320分辨率。
SmartDMA給用戶提供API接口有如下幾個(gè):
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顯示如下:

審核編輯:劉清
-
加速器
+關(guān)注
關(guān)注
2文章
836瀏覽量
39712 -
數(shù)據(jù)傳輸
+關(guān)注
關(guān)注
9文章
2076瀏覽量
67173 -
微處理器
+關(guān)注
關(guān)注
11文章
2416瀏覽量
85344 -
RGB
+關(guān)注
關(guān)注
4文章
820瀏覽量
61522 -
LCD接口
+關(guān)注
關(guān)注
0文章
8瀏覽量
2077
原文標(biāo)題:MCX N微處理器SmartDMA秘籍之-對圖像數(shù)據(jù)的定制處理
文章出處:【微信號:NXP_SMART_HARDWARE,微信公眾號:恩智浦MCU加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
ARM微處理器的編程模型
什么是微處理器
基于FPGA實(shí)現(xiàn)VLIW微處理器
基于微處理器的車載導(dǎo)航電子地圖的設(shè)計(jì)和實(shí)現(xiàn)
什么是微處理器_微處理器具有什么功能
基于FPGA的VLIW微處理器基本功能實(shí)現(xiàn)設(shè)計(jì)
基于OMAP5910雙核處理器實(shí)現(xiàn)實(shí)時(shí)圖像處理系統(tǒng)的應(yīng)用設(shè)計(jì)

MCX N微處理器SmartDMA對圖像數(shù)據(jù)的定制處理實(shí)現(xiàn)
評論