0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MCX N微处理器SmartDMA对图像数据的定制处理实现

恩智浦MCU加油站 来源:恩智浦MCU加油站 2024-03-28 11:42 次阅读

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显示如下:

fed5b1d8-eca5-11ee-a297-92fbcf53809c.png




审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 加速器
    +关注

    关注

    2

    文章

    743

    浏览量

    36598
  • 数据传输
    +关注

    关注

    9

    文章

    1526

    浏览量

    63562
  • 微处理器
    +关注

    关注

    11

    文章

    2131

    浏览量

    81411
  • RGB
    RGB
    +关注

    关注

    4

    文章

    763

    浏览量

    57407
  • LCD接口
    +关注

    关注

    0

    文章

    8

    浏览量

    1870

原文标题:MCX N微处理器SmartDMA秘籍之-对图像数据的定制处理

文章出处:【微信号:NXP_SMART_HARDWARE,微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    #微处理器与嵌入式系统设计 ARM微处理器简介

    嵌入式微处理器
    电子技术那些事儿
    发布于 :2022年10月21日 21:46:17

    [3.10.1]--3.10微处理器概述

    微处理器
    学习电子知识
    发布于 :2023年02月17日 20:50:35

    [3.13.1]--3.13专用微处理器设计实例(上)

    微处理器
    学习电子知识
    发布于 :2023年02月17日 20:52:49

    [3.14.1]--3.14专用微处理器设计实例(下)

    微处理器
    学习电子知识
    发布于 :2023年02月17日 20:53:47

    [4.2.1]--4.2微处理器设计示例1:电路设计(上)

    微处理器
    学习电子知识
    发布于 :2023年02月17日 20:54:48

    #芯圣车规级触摸微处理器 HC8AT3541系列!

    微处理器
    上海芯圣电子股份有限公司
    发布于 :2024年01月16日 10:14:09

    [求助]微处理器电路如何工作?

    想把其他元件都取下来。然后就焊微处理器、SDRAM、蜂鸣器、FLASH、稳压IC、晶振、其他外部电路全都不焊接上去,就这一部分电路如果芯片没有问题,焊接也没有问题,理论上能不能实现开机自检,发出滴一声的自检音?望高手帮我分析下,小弟刚入行不久,好多都不懂。
    发表于 08-28 17:02

    处理器微处理器系统

    的,这篇文章就可以带领大家了解一些基础的、用来处理数据的集成电路芯片。在这些专门用于处理数据的芯片中,最常用的就是由微处理器构成的
    发表于 02-07 11:41

    如何确定微处理器复位阈值

      1、微处理器复位电路的任务  微处理器复位电路的第一个任务是确保电源上电时,微处理器从一个已知的状态开始运行。为此,复位电路在电源上电时将微处理器锁定在复位状态。
    发表于 07-08 09:46

    微处理器TMP87K38N3H51资料推荐

    微处理器TMP87K38N3H51资料下载内容主要介绍了:TMP87K38N-3H51在21英寸彩电的I2C数据
    发表于 03-26 07:42

    什么是总线微处理器

    第一章复习要点①微处理器 p12②微型计算机p13③总线微处理器:一般也称中央处理器(CPU),是本身具有运算能力和控制功能,是微型计算机的核心。微处理器:由运算
    发表于 07-22 06:48

    ARM微处理器介绍

    ARM(Advanced RISC Machines),既可认为是一个公司的名字,也可认为是对一类微处理器的统称。中文名ARM嵌入式外文名Advanced RISC Machines属 于一类微处理器的统称产 品RISC处理器
    发表于 09-09 07:29

    ARM微处理器的指令系统

    2.ARM微处理器的指令系统ARM微处理器的指令集是加载/存储型的,即指令集仅能处理寄存中的数据,而且
    发表于 12-20 06:54

    微控制微处理器的区别是什么

    计算目的而设计的芯片。这种芯片往往是个人计算机和高端工作站的核心CPU。最常见的微处理器是Motorola的68K系列和Intel的X86系列。早期的微控制是将一个计算机集成到一个芯片中,实现嵌入...
    发表于 02-09 07:48

    微处理器的代码是如何执行的呢

    微处理器的结构是由哪些部分组成的?微处理器的代码是如何执行的呢?
    发表于 02-28 09:25