本帖最后由 小马哥-1650185 于 2018-5-20 19:07 编辑
题外话,开始之前先了解下什么是rt1052吧。。。
i.MX RT 系列芯片,是由 NXP 半导体公司推出的跨界处理器芯片,该系列下又包括i.MX RT1020、 i.MX RT1050及 i.MX RT1060等子系列芯片。所谓“跨界”,是指它自身的定位既非传统的应用处理器也非传统的微控制器。
传统的应用处理器如手机主控芯片,它们通常采用 ARM 的 Cortex-A系列内核,配合其芯片架构使得芯片能实现更高频率的运行。传统的微控制器也称为 MCU,它们通常采用ARM 的 Cortex-M 系列内核,相对来说该内核对中断响应更快,所以具有良好的实时性,但其芯片架构特别是集成片内闪存带来了生产技术限制和成本负担,从而限制了其性能。
i.MX RT 系列芯片集成了两者的优点,它基于应用处理器的芯片架构,采用了微控制器的内核 Cortex-M7,从而具有应用处理器的高性能及丰富的功能,又具备传统微控制器的易用、实时及低功耗的特性。
跨界处理器的架构中无需使用嵌入式闪存、外部 DDR存储器和电源管理 IC,因此降低了系统的总体成本.
板卡介绍: 野火i.MX RT1052 Mini核心板的主控芯片为NXP MIMXRT1052DVL6A,板载32MB的SDRAM、128MB的NAND和32MB的Flash存储芯片,还有RGB565LCD接口,USB和以太网接口以及130个IO口。
而底板主要是对于核心板的一些功能扩展,包括USB接口、RJ45网络接口和一些指示灯、拨码开关等等。
核心板特性: ● ARM®Cortex®-M7高性能内核 ● 3020 CoreMark / 1284 DMIPS @ 600MHz ● 高达512KBTCM内存 ● 低至20 ns的低延迟响应 ● 集成了业界动态功耗最低的DC-DC转换器 ● 24MHz的低功耗运行模式 ● 高级GUI和增强型HMI的多媒体功能 ● 2D图形加速引擎 ● 并行相机传感器接口 ● LCD显示控制器(分辨率高达WXGA 1366x768) ● 3个 I2S接口用于高性能多声道音频 ● 丰富的外部存储器接口选项 ● NAND,eMMC,QuadSPI ,NORFlash和并行的NOR闪存 ● 无线连接接口 ● Wi-Fi®,Bluetooth®,BLE,ZigBee®和Thread™ /********************************************************************************/
如图所示,插上核心板后,通过J14 usb转串口 通电,dap仿真器接到核心板的J2 或者底板的J30都可以。通过sw1 通知电源的打开与关闭。
同时打开串口,波特率115200,开机可以看到串口打印信息,新板子的板载程序会打印外设测试信息,如sdram,flash测试等,我的板子程序刷过了,没保留出厂串口打印信息截图,类似这样的
到这里硬件平台基本上搭建成功了。
关于开发环境搭建,根据手册提示 安装RT1052芯片包,并把下载算法拷贝到keil5的安装目录下
芯片包如下图,都要安装一下,野火提示:
使用官方sdk时需要安装1.0.0版本
使用野火独立程序时需要安装2.3.0版本
可是使用野火的例程时,如果用2.3.0版本的话,例程时编译不过的,很多错误,换成NXP.MIMXRT1052_DFP.10.0.1.pack就可以了。。。
KEIL 及 IAR在下载程序的时候要针对目标芯片使用相应的下载算法。
类似 RT1052、 Kinetis 等系列控制器芯片内部都具有 FLASH存储器用于存储程序,安装芯片包后即自带相应的 FLASH下载算法, 在工程里直接选择即可。
而 i.MX RT 系列芯片内部不具备 FLASH存储器,即其程序代码需要存储在外部的存储器中, 使用时需要自己提供对应 LASH的下载算法给 KEIL 软件,野火 i.MX RT1052-Mini 开发板使用 W25Q256型号的 SPI-NorFlash芯片存储程序, 相应的下载算法我们提供在资料的如下目录:
开发板资料\开发环境\下载算法\ iMXRT1052_W25Q256JV_CFG_By_Fire.FLM
开发板资料\开发环境\下载算法\ iMXRT1052_W25Q256JV_RAW_By_Fire.FLM
把这两个文件都复制到 KEIL的如下安装目录即可, 如:
C:\Keil_v5\ARM\Flash
如下图
这两个下载算法分别是配套我们的寄存器和库函数版本的例程。 在后面的教程中我们提供了寄存器版本的例程以供入门过渡学习, 为简便起见,寄存器版本的例程使用的下载算法直接集成 FLASH 存储器的下载信息,使用上面 CFG 版本的文件:
iMXRT1052_W25Q256JV_CFG_By_Fire.FLM(寄存器版本工程使用)。
而对于后期的绝大部分例程,都是使用库函数开发的,为了便于修改和移植至不同的FLASH存储器,关于存储器的信息使用工程中的 C语言源码来记录,所以在下载算法中不包含这部分信息, 也就是说库版本的例程使用上面的 RAW版本文件:
iMXRT1052_W25Q256JV_RAW_By_Fire.FLM(库函数版本工程使用)。
这里只说下库函数版本的吧,对于库函数版本的工程,选择的方法类似,只是最终添加的下载算法不同,此处选择的下载算法是 iMXRT1052_W25Q256JV_RAW_By_Fire.FLM。
由于本下载算法相比默认的需要更大的空间,所以还需要在配置页面中增大算法空间, 0x8000
前面提到了rt1052是没有片内闪存的,也就是说程序代码是不能保存到芯片内部的,官方sdk例程也都是在sdram运行的资源目录: RT1050_release\sdk\ SDK_2.3.0_EVK-MIMXRT1050_适配野火核心板.rar
该程序包是修改自官方的 sdk 包, 大部分程序可用于野火板
但使用时有如下注意事项:
sdk 程序大部分并未提供下载到 NOR FLASH 的支持, 使用时只可以使用 debug 模式如以下程序可控制板载 led 灯:
RT1050_release \sdk\SDK_2.3.0_EVK-MIMXRT1050_适配野火核心板
\boards\evkmimxrt1050\driver_examples\gpio\led_output\mdk\ igpio_led_output.uvprojx
可使用 sdram_debug 及 sdram_release 版本:
如果程序太大,下载到 FLASH 存储器需要非常长的时间,我们就希望在调试阶段能把程序下载到SDRAM,这样能节省大量的调试时间。 增加其它工程模板的方式如下:
(1) 点击“File Extensions”按钮,在弹出的项目管理界面下把原工程名“Target1”改为
“base_demo_flexspi_nor_debug”以便区分,
(2) 点击“Project Targets”栏的“New”按钮,然后创建其它 3版本的工程,
创建完成后
当项目中存在多个版本的工程时,可以通过 Load按钮旁边的下拉框选择进行切换,具体见图 10-39。不同版本的工程共用相同的文件,即共用源代码,只是配置不同,例如魔术棒处定制的各项配置在不同的版本间是独立的,修改当前的配置不会影响其它版本
具体每个版本的设置,手册上有详细解析(详见10.4章节)
|