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

    文章

    795

    浏览量

    37739
  • 数据传输
    +关注

    关注

    9

    文章

    1823

    浏览量

    64463
  • 微处理器
    +关注

    关注

    11

    文章

    2247

    浏览量

    82306
  • RGB
    RGB
    +关注

    关注

    4

    文章

    798

    浏览量

    58376
  • LCD接口
    +关注

    关注

    0

    文章

    8

    浏览量

    1888

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

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

收藏 人收藏

    评论

    相关推荐

    [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

    ARM微处理器的编程模型

    ARM微处理器的编程模型 目录ARM微处理器的工作状态ARM体系结构的存储格式指令长度及数据类型ARM微处理器的工作模式ARM体系结构的
    发表于 02-21 09:14 50次下载

    什么是微处理器

    什么是微处理器 CPU是Central Processing Unit(中央微处理器)的缩写,它是计算机中最重要的一个部分,由运算  和控制组成。如果把计算机比作
    发表于 06-17 07:32 1525次阅读

    微处理器工作原理

    微处理器工作原理1. 引言 2. 微处理器的结构
    发表于 08-05 10:49 6700次阅读

    基于FPGA实现VLIW微处理器

    超长指令字VLIW微处理器架构采用了先进的清晰并行指令设计。VLIW微处理器的最大优点是简化了处理器的结构,删除了处理器内部许多复杂的控制电路,它能从应用程序中提取高度并行的
    发表于 09-26 14:12 1247次阅读
    基于FPGA<b class='flag-5'>实现</b>VLIW<b class='flag-5'>微处理器</b>

    基于微处理器的车载导航电子地图的设计和实现

    基于微处理器的车载导航电子地图的设计和实现
    发表于 01-24 16:15 7次下载

    什么是微处理器_微处理器具有什么功能

    微处理器由一片或少数几片大规模集成电路组成的中央处理器。这些电路执行控制部件和算术逻辑部件的功能。微处理器能完成取指令、执行指令,以及与外界存储和逻辑部件交换信息等操作,是微型计算机
    发表于 10-27 15:20 1.5w次阅读

    基于FPGA的VLIW微处理器基本功能实现设计

    指令均匀地分配给芯片中的众多执行单元。本设计是针对VLIW微处理器的基本功能设计实现的,是针对64位指令字和192位数据进行操作处理,主要功能是将指令和
    发表于 01-31 16:55 1176次阅读
    基于FPGA的VLIW<b class='flag-5'>微处理器</b>基本功能<b class='flag-5'>实现</b>设计

    基于OMAP5910双核处理器实现实时图像处理系统的应用设计

    实时图像处理系统的显著特点是数据量大,有效地处理和传输图像数据
    的头像 发表于 06-15 14:52 2398次阅读
    基于OMAP5910双核<b class='flag-5'>处理器</b><b class='flag-5'>实现</b>实时<b class='flag-5'>图像</b><b class='flag-5'>处理</b>系统的应用设计

    嵌入式微处理器的原理和应用

    嵌入式微处理器是专为嵌入式系统设计的微处理器,它们是嵌入式系统的核心组件,负责执行程序指令、处理数据和控制其他硬件设备。与通用微处理器相比,
    的头像 发表于 03-28 15:51 812次阅读

    什么是嵌入式微处理器?嵌入式微处理器有哪些?

    嵌入式微处理器是指嵌入到特定应用系统中的微处理器,它是整个嵌入式系统的核心,由通用处理器演变而来,具有体积小、重量轻、成本低、可靠性高等优点。与通用处理器相比,嵌入式
    的头像 发表于 03-29 11:39 938次阅读

    嵌入式微处理器主要组成 嵌入式微处理器的分类和特点

    嵌入式微处理器是指集成在嵌入式系统中的微处理器,它是一种专门针对特定应用的定制处理器。嵌入式微处理器的主要组成包括核心
    的头像 发表于 05-04 15:48 2221次阅读

    影响微处理器性能的因素

    影响微处理器性能的因素是多方面的,这些因素共同决定了微处理器处理数据、执行指令以及协调系统各部件工作时的效率和能力。
    的头像 发表于 08-22 12:31 832次阅读