latera 发表于 2024-12-1 08:50:34

【Avnet|FRDM-MCXN947试用活动】+ MCUXpresso开发全流程

本帖最后由 latera 于 2024-12-1 09:35 编辑

1. 重新整理MCXN947的配置首先重新浏览一下MXCN947的参考手册。
1.1 M33内核的说明
MCXN947有2个M33内核,其中一个为主核,一个为副核。可以确定副核是阉割了的M33,它并没有FPU和DSP功能。
1.2 地址空间说明
cortex M33 对比M3/M4的主要区别就是带了TrustZone功能(ARMv8-M)。这个安全扩展功能,我理解就是芯片内部将内部的空间划分为非安全(Non Secure)和安全(Secure)空间。或者说能够指定一个地址空间是非安全还是安全的。
这个secure的实现就是TrustZone。安全(Secure)空间相比非安全(Non Secure),就是访问这些空间有更多的限制。(我理解)
然后,MCXN947 最顶的规格是2mb flash和512kb ram。

对应下图:


其中,0x0000 0000 - 0x001F FFFF 为 2mb flash。
而RAM就分为9个区域。

实际在程序开发中,flash被划分为2个1mb的flash。而RAM划分为4个区域。

SRAM 0x2000 0000 - 0x2005 0FFFF 对应上图的RAMA、RAMB、RAMC,RAMD、RAME、RAMF、RAMG。
SRAMH 0x2006 0000 - 0x2006 7FFF 对应上图的RAMH。
SRAMX 0x0400 0000 - 0x0401 7FFF对应上图的RAMX。

以上SRAM的总大小已经等于512KB。
在程序配置中还有一个USB_RAM 0x400b a000 - 0x400b AFFF的地址。如下图中并没有提到这个USB ram。应该专门用于usb外设的。



2. 在MCUXpresso中新建工程
2.1 主题设置
首先在之前我安装的MCUXpresso,不知道为什么默认的主题是暗黑色的,且比较亮,还不如白色主题。找了半天,才发现配置方式。配置方法如下:

依次选择工具栏中的“窗口”,“首选项”


进入“常规”,“外观”。就可以选择不同的主题。

2.2 新建一个最朴素的工程
点击“文件”, “新建”,“Create a new C/C++ project”。

选择芯片和开发板,这一个步骤前,需要安装SDK包,这个可以参考我之前的教程。

另外,其实点击开发板这一步,其实后面也没有用到的。因为最简单的程序是没有用到任何的板载文件。
点击下一步后,输入Project name,选择“Empty board files”,Component选择默认即可。

点击下一步,默认即可。TrustZone选择None。即没有使用到TrustZone的功能。

点击完成后,即可新建出最简单的工程。如果需要修改配置,可以右击工程,选择“属性”。从MCU C Compiler等选择项中修改。另外 SDK的Components可以在SDK Management中重新选择。


编译,调试。这2步可以右击选择“Build”、“Debug”。或者点击“Quickstart Panel”的对应选项。查看工程是否正常3.使用MCUXPresso 的配置工具。MCUXPresso主要有3种:引脚,时钟,和外设。

3.1 时钟配置点击工具栏中的“配置工具”或者直接点击右上方的时钟图标。

因为这里面有不同的时钟,为了方便查看,可以选看“时钟显示图”。并在时钟选择框中选择对应的时钟链。这样相应的时钟链就会高亮显示。
为了使用外部晶振时钟,根据上图依次选择。上图的目的是通过外部晶振时钟,给PLL0提供时钟,PLL0内部配置参数150mhz的时钟。并且提供给Main clock。Mainclock也就是系统时钟。


点击更新源代码并确认即可。

重新编译,调试,发现程序卡住这个位置,应该是外部晶振的配置不对。

重新选择Crystal oscillator

然后进入配置工具的“引脚”页面,查找F1 F2引脚,点击最左边的方框,就可以进入选择引脚功能。

选择后,下方将显示对应的配置。点击更新源代码即可。这样,程序就可以正常运行了。

为了简单测试程序,也尝试使用引脚的配置功能。配置一个闪烁的led来验证程序是否正常。在引脚页面,搜索B12,并选择GPIO功能,在“路由详情”中,选择方向,标签和初始值。最后点击更新源代码。

在源程序中增加头文件#include "fsl_gpio.h",和如下简单的代码。编译,调试,这时候就能正常闪烁led了。
在点击更新源代码时,MCUXpresso实际更新的如下文件, 引脚对应更新pin_mux.c/.h,时钟对应更新clock_config.c/.h。这三个文件最终在main函数的开头被依次调用。


4. 烧录(ISP)
MCXN947可以通过USB,串口,甚至SPI和I2C烧录程序到内部flash。
4.1 生成bin文件
为了生成一个bin文件,需要修改一下配置。因为MCUXpresso已经帮我们配置好了,只需要将配置中的Post-build steps中第2,3行的井号(表示注释)去掉即可。


重新编译,可以在控制台中查看到输出的结果。

4.2 下载与安装烧录工具
在NXP官网中搜索 MCUXpresso Secure Provisioning Tool下载,我也提供了我下载的版本。
安装就一路默认选择,下一步即可。
打开 MCUXpresso Secure Provisioning Tool,如图:


为了能进入主页面,需要在“新工作区”中需要 连接 处理器,和镜像,其中镜像需要选择一个hex或者s19才行。(应该是个bug)。你随便选择这一个后,它又会显示MCUXPresso安装目录下可用的文件列表。随便选择一个即可。

4.3 构造固件和烧录
进入主页面后,首先需要将开发板进入ISP模式。方法也很简单:
先按住复位键SW1不放,
然后按住ISP键SW3不放,
再松开复位键,
最后松开ISP键。
这2个键一个在开发板的左上方,一个在右下方。
可以选择USB下载,将USB线接都HS-USB口。先尝试连接USB,点击USB,选择产品ID,点击测试连接。结果为绿色。即表示正常连接。


构造镜像,点击下图所示右侧的“构造镜像”。将弹窗提示构造过程和是否成功。

下载镜像,选择写入图像选项页,点击下图所示右侧的“构造图像”。将弹窗提示写入过程和是否成功。(写入图像,翻译很差)。

重启开发板,就能看到led正常闪烁了。
同样串口也可以下载镜像。将usb线连接开发板的MCU-Link,(默认的下载串口)。选择通过 UART,并选择对应串口和默认的波特率即可。


以上即为整个的基本使用过程。






页: [1]
查看完整版本: 【Avnet|FRDM-MCXN947试用活动】+ MCUXpresso开发全流程