精华内容
下载资源
问答
  • 是AWTK在AWorks(RT1052)上的移植。 一、环境配置 1.1 克隆(clone) AWTK cd E:\zlgopen git clone https://github.com/zlgopen/awtk.git git clone https://github.com/zlgopen/awtk-aworks-rt1052.git 1.2 修改 copy...
  • RT1052母版与核心版

    2019-01-17 10:01:32
    RT1052 的资源,以及RT1052的库和历程。都可以用。希望大家可以下载
  • RT1052_emwin.zip

    2020-08-30 00:04:08
    该工程用野火的1052基础工程,加入rtthread和emwin,移植的emwin还没有做优化,下载到野火的RT1052开发板可以直接运行demo
  • RT1052之IOMUXC

    2021-02-19 21:26:30
    IOMUXC的核心功能就是实现IO口复用,简单来说就是因为RT1052对外的IO口的数量是有限的,但是RT1052内部的外设需要的IO口却可能远超实际RT1052所拥有的IO口,因此就需要IOMUXC来实现IO口的分时复用。 2、实现原理 ...

    RT1052之IOMUXC

    1、简介

    IOMUXC的核心功能就是实现IO口复用,简单来说就是因为RT1052对外的IO口的数量是有限的,但是RT1052内部的外设需要的IO口却可能远超实际RT1052所拥有的IO口,因此就需要IOMUXC来实现IO口的分时复用

    2、实现原理

    IOMUXC框图以上是IOMUXC的框图,最右边的“IO Pad Cells”直接和“IOMUX Cells”连接,“IOMUX Cells”又和下方的“module”连接。同时“IOMUX Cells”受上图左方的“IOMUXC”的控制。接来下我们来一一看看这些奇怪名词的含义及其实际作用。

    1、IO Pad Cells

    “IO Pad Cells”,IO口单元,其实就是对应着RT1052的实际上的IO引脚,一个IO引脚对应一个IO Pad Cells。

    2、IOMUX Cells

    “IOMUX Cells”,IO口复用单元,每一个实际的IO引脚内部都连接着一个“IOMUX Cells”,这个“IOMUX Cells”有点类似单刀多掷开关,可以动态的切换这个IO引脚通向哪里(通向哪个模块(外设))。在这里插入图片描述

    3、Module

    “Module”,模块,其实就是RT1052的内部外设,比如串口外设、GPIO外设等等等等,这些外设的输入输出信号都是通过“IOMUX Cells”这个单刀多掷开关,流入或流出“IO Pad Cells”(IO引脚)。如果串口外设想要发送数据,但是“IOMUX Cells”没有搭建起串口外设和IO口之间的桥梁,那不好意思,串口这个数据没办法发送出去。

    4、IOMUXC

    IOMUXC是用户(内核)能直接控制的地方,前面说的“IOMUX Cells”是由“IOMUXC”来控制,但是“IOMUXC”是由谁控制呢?他是由内核来控制的。因此我们实际写程序的时候直接配置IOMUXC的寄存器就可以配置以下属性:

    • IO口分时复用的配置
    • IO口电气属性的配置

    最后我们再来看看GPIO章节里面的一张框图,有没有豁然开朗的感觉?在这里插入图片描述

    3、特殊机制

    IOMUXC有两个比较特别的地方。

    1、菊花链

    用过32的朋友都知道,32有的外设管脚是可以重映射的(如下图)。这种灵活的配置方法可以方便PCB的布局。32USART1串口重映射其实RT1052也有类似的机制,也就是所谓的“菊花链”。在这里插入图片描述通过配置IOMUXC可以实现引脚的灵活分配,方便PCB布局和IO口合理分配。

    2、SION

    SION是“Software Input On”的简写,他是IOMUXC的一部分,使能了这个功能之后,哪怕这个IO口设置为输出模式,各种外设也能在IOMUXC的配合下,读取当前IO口的实际电平。


    比如最简单的点灯:
    当IO口配置成GPIO输出的情况下,对GPIO_DR寄存器操作可以直接控制IO口的输出电平,这个GPIO_DR寄存器的值只是你写进去的,但是IO口的电平真的和你想的一样吗?如果这个时候你不开启SION功能的话,那你是没办法获取IO口的实际电平的,如果开启了的话,可以通过读取GPIO_PSR寄存器,获取IO口的实际电平。

    4、总结

    以下代码可以使能IOMUXC的时钟。

    CLOCK_EnableClock(kCLOCK_Iomuxc); /* iomuxc clock (iomuxc_clk_enable): 0x03u */
    

    在这里插入图片描述

    5、参考资料

    2、IMXRT1052RM.pdf

    展开全文
  • RT1052跨界单片机目前开发资料较少,正点原子的RT1052开发指南,写的很不错,拿出来和大家分享。一起学习共同进步!
  • rt1052_demo.zip

    2020-04-27 10:14:19
    NXP的芯片rt1052,国产操作系统rtt,bsp,轻量型的GUI--littlevGL,把所有资源整合在一起,分享给各位
  • ZLG RT1050 RT1052 评估板开发板底板ALTIUM设计原理图文件+器件技术手册
  • RT1052 QSPI 驱动代码

    2018-04-01 14:31:24
    RT1052 W25Q256 QSPI 擦写编程源码。 内含sct分散加载文件,当使用QSPI启动后,通过该分散加载文件把程序尽量全部搬到TCM运行,使用该例程可以编程QSPI FLASH,实现固件的在线升级。
  • rt1052基础测试例子MDK

    2019-03-21 17:30:27
    RT1052简单功能测试,基于官方ov7725例子修改而来,没有LCD,通过网络把图片上传到PC。网络参考官方LWIP例子
  • 本文档源码:NXP rt1052 通过SPI协议读取外部norflash数据
  • 周立功 EasyARM-RT1052 Rev.A原理图 iMX.RT1052 PDF NXP单片机
  • RT1052emWin滑屏实验.zip

    2019-09-12 13:07:39
    基于KEIL的rt1052,emwin滑屏实验程,在800*480的分辨率下能实现较好效果
  • rt1052 I2C读写EEPROM

    2019-04-17 10:56:34
    本文档源码:功能为NXP芯片rt1052通过I2C读取EEPROM的数据内容。
  • RT1052 BootLoader总结

    2019-05-21 20:31:00
    RT1052 BootLoader总结‍ 概述 Bootloader涉及到的RT1052单片机资源有:Cache,ram,外部SDRAM,ARM7汇编指令,外部dataFlash. 升级功能涉及到的其他功能有:服务器存贮和传输升级Bin文件;上位机接收和...

    RT1052 BootLoader总结‍

     

     

    1. 概述

      Bootloader涉及到的RT1052单片机资源有:Cache,ram,外部SDRAM,ARM7汇编指令,外部dataFlash.

      升级功能涉及到的其他功能有:服务器存贮和传输升级Bin文件;上位机接收和发送BiN文件;判断升级是否成功和提示。​

    2. 流程图

     

     

    1. app程序与Bootloader程序不同的地方总结如下

      3.1   xxx.s启动文件增加了如下区域

      AREA    |.ram_vtor_table|, DATA, READONLY

     

     IMPORT  |Image$$ARM_LIB_STACK$$ZI$$Limit|

                   R_Vectors   DCD  |Image$$ARM_LIB_STACK$$ZI$$Limit| ; Top of Stack

     

     DCD     Reset_Handler  ; Reset Handler

                    DCD     NMI_Handler                         ;NMI Handler

     

    《MIMXRT1052xxxxx_flexspi_nor_sdram.scf》

     

     

    #define m_itcm_vectors_start     0x00000000

    #define m_itcm_vectors_size      0x00000400

     

    #define m_itcm_start                   0x00000400

    #define m_itcm_size                    0x0001FC00

     

     

     RW_vectors_data m_itcm_vectors_start m_itcm_vectors_size { ; RW data

    startup_MIMXRT1052.o (.ram_vtor_table)

      }

     

    ARM_LIB_HEAP +0 EMPTY Heap_Size {    ; Heap region growing up

      }

      ARM_LIB_STACK m_data_start+m_data_size EMPTY -Stack_Size { ; Stack region growing down

      }

     

    3.2  evkbimxrt1050_flexspi_nor.ini更改SP,PC

      SP = _RDWORD(0x60008000);          // Setup Stack Pointer

      PC = _RDWORD(0x60008004);          // Setup Program Counter

    _WDWORD(0xE000ED08, 0x60008000);   // Setup Vector Table Offset Register

    3.3 ***.scf分散加载文件更改

    #define m_interrupts_start             0x60008000

    #define m_interrupts_size              0x00000400

    3.4 target-->user,生成Bin,命令。

    RUN1:fromelf.exe  --bincombined --bincombined_base=0x60008000 --output  "$L@L.bin" "$L@L.out"

    RUN2:fromelf.exe  --m32  --output  "$L@L.srec" "#L"

    3.5  Linker:设置改变:

    1. --remove

    2. --keep=*(.boot_hdr.ivt)

    3. --keep=*(.boot_hdr.boot_data)

    4. --keep=*(.boot_hdr.dcd_data)

    1. --keep=*(.boot_hdr.conf)

    2. --keep=*(NonCacheable)

    3. --keep=*(m_usb_dma_init_data)

      --predefine="-DXIP_BOOT_HEADER_ENABLE=1"

    改为:

    --remove

    --keep=*(.ram_vtor_table)

    --predefine="-DXIP_BOOT_HEADER_ENABLE=1"

    3.6应用程序初始化里面的SDRAM的初始化一定要去掉!!

    //    /* Set SEMC_PODF. */

    //    CLOCK_SetDiv(kCLOCK_SemcDiv, 7);

    //    /* Set Semc alt clock source. */

    //    CLOCK_SetMux(kCLOCK_SemcAltMux, 0);

    //    /* Set Semc clock source. */

    //    CLOCK_SetMux(kCLOCK_SemcMux, 0);

     

    3.8 Main函数里面:增加

     

     __disable_irq();  

     

    SCB->VTOR = 0x00000000;  //Enable ITCM Vectors Table

    __enable_irq();

    4.0 keil报错处理:"flexspi_nor_debug\CGAaxf.out": Error: Q0471E: Base address 0x60008000 is above start address 0x60000000 of load region #0 

    处理办法: 删掉输出文件夹里面的*.bin文件。

     

    4.1需要深入研究的地方有:

      __ISB();

        __DSB();

        /* Enable I cache and D cache */

        SCB_DisableDCache();

        SCB_DisableICache();

    vControlSwitch();

    已经确认,vControlSwitch();之前,必须关闭cache。创造一个干净的环境。

     

    Bootloader打印信息如下:

    Start xmodem1k client.

     

    App SP:0x81d00000.

    App PC:0x6000863d.

    mcu ready to recv data...

    CCCCCCCCCCCCCCCCCCCC

     Wait timeout,Jump App.

     

    ------------------------------------------

    App SP:0x81d00000.

    App PC:0x60008415.

    mcu ready to recv data...

     

    Wait timeout,Jump App.

    ------------------------------------------

     20181217 TWO int main2(void) : 0x6000a6b5.

     PC:0x6000a6b5

    技术咨询请加微信:18124528727

    转载于:https://www.cnblogs.com/zhihui-3669/p/10902192.html

    展开全文
  • RT1052 GPIO中断配置

    2019-11-16 17:54:58
    Board:野火RT1052-MINI IDE:Keil 5.28 RT1052的中断介绍 文档参考 :《cortex_m7_trm》 在学习STM32的时候,中断用得不少,不管是STM32F1\F4\H7?还是现在用得RT1052,实际都是属于Cortex-M的MCU,因此在对于...

    开发平台

    • Board:野火RT1052-MINI
    • IDE:Keil 5.28

    RT1052的中断介绍

    • 文档参考 :《cortex_m7_trm》
      在学习STM32的时候,中断用得不少,不管是STM32F1\F4\H7?还是现在用得RT1052,实际都是属于Cortex-M的MCU,因此在对于中断的控制上,少不了有NVIC的运用。

    什么是NVIC?(摘自野火I.MX RT库开发实战指南)

    NVIC 是嵌套向量中断控制器,控制着整个芯片中断相关的功能,它跟内核紧密耦合,是内核里面的一个外设。但是各个芯片厂商在设计芯片的时候会对 Cortex-M7 内核里面的 NVIC 进行裁剪,把不需要的部分去掉,所以说 RT1052 的 NVIC 是 Cortex-M7 的 NVIC 的一个子集。
    其实也就看起来复杂,而我们只需要将它当做是MCU上的一个内核外设就可以了,这个外设可以控制、配置RT1052的中断,比如说让对应的中断使能?失能?或者是配置这个中断的优先级?(包括抢占优先级和子优先级),用得比较多的也就这些功能了。
    在这里插入图片描述

    NXP的SDK对NVIC的支持

    我们在使用ST的标准库的时候,其实也会用到NVIC相关的函数的,但是那并不是直接由CMSIS封住起来的函数接口,而是经过ST官方二次封装过的API,因此在标准库上,会有一个文件,叫做xxx_misc.c,xxx_misc.h,如果用过标准库的,都应该知道这个文件,而且建立工程的时候,这个文件是不能少的。实际上关于中断的定义以及功能函数,在头文件“core_cm7.h”(因为是CORE_M7内核,其余的是M4的就换成m4就好了)。、
    同样的,NXP的SDK里面,也对NVIC进行了封装和支持,为了让开发者快速上手,SDK对NVIC的封装并没有修改得太复杂。
    在这里插入图片描述
    在这里插入图片描述

    RT1052的GPIO中断配置

    现在要配置一个按键中断,首先我们需要知道,按键中断的配置需要些啥?

    • 1、我们需要知道按键按下后是高电平有效还是低电平有效,从而配置进入中断的方式。
    • 2、我们需要了解GPIO的中断分组,怎么使能对应的GPIO的中断。
    • 3、要知道怎么编写对应的GPIO中断服务函数。

    一个个来看:

    按键的电路分析

    由野火的原理图来看,按键是低电平有效,原因是按键按下后直接接地了,而地的电压不会高于1.5V,所以按键是低电平有效。

    RT1052 的GPIO中断

    RT1052 并没有为每个输入输出引脚分配一个中断号,而是为每组GPIO 分配两个中断编号,其中低 16 个输入输出引脚(GPIOx_n, x 取 1 到 5, n 取 0 到 15)共用一个中断编号,高 16 个输入输出引脚使用另外一个中断编号。每组 GPIO 拥有各自的中断相关寄存器,包括一个中断屏蔽寄存器(GPIOx_IMR),一个中断状态寄存(GPIOx_ISR),两个中断配置寄存器( GPIOx_ICR1、 GPIOx_ICR2)。通过配置这些寄存器我们可以灵活的设置每一个输入输出引脚是否使用中断、中断触发条件、以及当前中断状态。
    上面这段话来自野火的教程,其实说得挺明白的,但是需要配合代码来看,看下图:
    在这里插入图片描述
    这是在MIMXRT1052.h里面对中断向量号的定义。可以发现,GPIO的中断,一个GPIO口被分割成了两组中断入口,也就是高16位和低16位的区分。所以要写某一个IO口的中断的时候,必须先知道它属于哪个分组,比如GPIO1_05,就选择GPIO1_Combined_0_15_IRQn,因为05在0-15的范围内,应该还很好理解。

    RT1052的中断服务函数

    知道了对应的中断向量表,那样在启动文件上,就可以直接找到进行了弱定义的中断服务函数了:
    在这里插入图片描述
    那样就跟以往的中断服务函数一样用就可以了,
    在这里插入图片描述
    当然,进入中断服务函数后,需要清除中断标志位,不然不会退出中断服务函数,而这个属于GPIO的,所以在fsl_gpio.h上有提供相应的函数。
    函数原型:

    static inline void GPIO_PortClearInterruptFlags(GPIO_Type *base, uint32_t mask)
    {
        base->ISR = mask;
    }
    

    其实就是清除对应位的中断标志,很明显的。

    展开全文
  • TouchGFX GUI是一款界面炫酷的嵌入式GUI,不过被ST收购了,网上关于其对NXP最新M7芯片1052的GUI例程基本都是emwin的。本资源是在RT1052开发板上调通验证通过的TOUCHGFX工程源代码,希望能帮到有需要的朋友。
  • RT1052之GPIO中断

    2021-02-25 16:28:37
    RT1052之GPIO中断 1、RT1052的中断系统 2、GPIO外设中断 GPIO可以因四种情况产生中断,分别是: 检测到低电平 检测到高电平 检测到上升沿 检测到下降沿 由GPIOx_ICRn寄存器配置。 3、中断的初始化流程 通过GPIOx...

    RT1052之GPIO中断

    1、RT1052的中断系统

    2、GPIO外设中断

    GPIO可以因四种情况产生中断,分别是:在这里插入图片描述

    • 检测到低电平
    • 检测到高电平
    • 检测到上升沿
    • 检测到下降沿

    由GPIOx_ICRn寄存器配置。

    3、中断的初始化流程

    1. 通过GPIOx_ICRn寄存器配置GPIO外设的中断触发源(上升沿触发还是下降沿触发……)

    2. 通过GPIOx_IMR寄存器使能GPIO外设的中断信号(当检测到第4步选择的信号后,就发出一个信号给NVIC,在由NVIC转交内核)

      以上是配置GPIO外设的中断请求(在此之前,要先配置IO口电气属性和复用属性


      以下三步都是对内核的NVIC进行配置

    3. 配置RT1052的中断优先级分组

    4. 配置GPIO外设中断源优先级

    5. 使能GPIO外设中断源

    4、代码实例

    /* gpio及其中断初始化函数 */
    void rt1052_gpio_interrupt_init(void)
    {
        /* 配置IO口电气属性和复用属性(将IO口连接到GPIO外设) */
        IOMUXC_SetPinMux(IOMUXC_GPIO_AD_B0_05_GPIO1_IO05, 0U); 
        IOMUXC_SetPinConfig(IOMUXC_GPIO_AD_B0_05_GPIO1_IO05, 
                            SRE_0_SLOW_SLEW_RATE|
                            DSE_0_OUTPUT_DRIVER_DISABLED|
                            SPEED_2_MEDIUM_100MHz|
                            ODE_0_OPEN_DRAIN_DISABLED|
                            PKE_1_PULL_KEEPER_ENABLED|
                            PUE_1_PULL_SELECTED|
                            PUS_3_22K_OHM_PULL_UP|
                            HYS_1_HYSTERESIS_ENABLED));
    
        /* 配置GPIO外设的中断请求 */
        gpio_pin_config_t key_config;
        key_config.direction = kGPIO_DigitalInput;    //输入模式
        key_config.outputLogic =  1;                  //默认高电平(输入模式时无效)
        key_config.interruptMode = kGPIO_IntLowLevel; //低电平触发中断
    
        GPIO_PinInit(CORE_BOARD_MODE_KEY_GPIO, CORE_BOARD_MODE_KEY_GPIO_PIN, &key_config);
        GPIO_PortEnableInterrupts(GPIO1, 1U << 5U); 
        
        /* 对NVIC进行配置 */
        set_IRQn_Priority(GPIO1_Combined_0_15_IRQn,Group4_PreemptPriority_6, Group4_SubPriority_1);
        EnableIRQ(GPIO1_Combined_0_15_IRQn);
        
        /* 至此,GPIO中断配置全部完成,当有低电平来到之后,就会触发中断,
        也就是进入函数 GPIO1_Combined_0_15_IRQHandle()*/
    }
    
    /* 中断服务函数 */
    void GPIO1_Combined_0_15_IRQHandle(void)
    {
        /* 清除中断标志位 */
        GPIO_PortClearInterruptFlags(GPIO1,
                                     1U << 5U); 
        /* 设置按键中断标志 */
        g_KeyDown[CORE_BOARD_MODE_KEY_ID] = true;
    }
    

    5、参考资料

    1、[野火]《i.MX RT库开发实战指南》.pdf

    2、IMXRT1052RM.pdf

    展开全文
  • RT1052 Altium 4层板 原理图+PCB

    热门讨论 2018-03-26 11:48:20
    RT1052 Altium 4层板 原理图+PCB,核心板而已,已经打样测试过
  • RT1052野火基于 RT-Thread 移植的littlevgl图形库 发环境主要是RT1050 fire的板子(lcd为800*480, 输入设备为GT911), 和qemu环境(800*480, 输入设备为鼠标). 2. 输入接口已经完成适配,目前在野火1050板子上测试通过...
  • RT1052 rtthread 报错"FPU active!" “UNALIGNED” 问题 RT1052 rtthread 报错"FPU active!" “UNALIGNED” 开发环境 RT-Thread: v4.0.2(master) SOC: i.MX RT1050 Board: 野火 RT1052 问题背景 我创建了一个线程去...
  • ucosiii和emXGUI移植到野火RT1052开发板,例程是用野火例子改的,测试OK
  • NXP-RT1052入门

    2019-08-27 23:45:12
    Board:野火RT1052-MINI IDE:Keil 5.25 2、RT1052 SDK包的下载方式 NXP针对部分MCU,相应的设计了SDK包,为开发者提供便捷开发的方式。有些人觉得,开发还是操作寄存器好,其实我并不否认这个观点,因为我在使用...
  • RT1052 GPIO配置

    千次阅读 2019-09-05 09:36:10
    Board:野火RT1052-MINI IDE:Keil 5.28 最近电脑重装了,在keil的官网上发现keil已经更新到Keil 5.28了,于是便直接下载了keil 5.28来体验一下。个人感觉Keil 5.28用起来更5.25没什么太大区别,但是我倒是发现,...
  • RT1052的ADC单通道采集

    2020-02-26 21:05:54
    Board:野火RT1052-MINI IDE:Keil 5.28 关于RT1052上的ADC 从官方手册来看, RT1052上的ADC性能并不小。 ADC的初始化代码: bool Adc_Init(void) { gpio_pin_config_t Config; adc_config_t config; adc_...
  • RT1052-ADC问题

    千次阅读 2018-12-14 19:54:55
    使用RT1052已经有一段时间了,在使用过程中也遇到了很多问题,这里针对ADC的使用作出如下的一些总结。 1. ADC和ADC_ETC的区别 使用RT1052时,会发现ADC和ST的有很大的区别。RT1050的ADC只能实现一些简单的功能,不...
  • 野火i.MX RT1052-Mini开发板用户手册 是野火关于NXP i.MX RT 1052 SOC的开发手册,其文档对各个外设讲解透彻清晰,有利于初学者开发BSP。其中也有例程,可参考例程进行开发。如果需要例程也可联系我
  • RT1052之GPIO与IOMUX

    2021-02-17 23:41:17
    RT1052 GPIO和IOMUX 一、简介 按照编写STM32程序的思维,其实GPIO和IOMUX其实统称GPIO,但是在RT1052中却分开了,并且有了更多的配置项。 1、GPIO General Purpose Input/Output (GPIO),通用输入输出功能,该模块...
  • 使用野火的模板 利用RT1052的eDMA 和串口空闲中断实现 接收不定长数据,并在主函数打印出来。。。 实测有效
  • SDK_2.4.1_EasyARM-RT1052-V1_0.rar

空空如也

空空如也

1 2 3 4 5 ... 19
收藏数 371
精华内容 148
关键字:

rt1052