S32G2汽车网关开发(三):点亮LED(M7裸机,异核启动)

本文我将通过NXP S32G274ARDB2开发板的LED,分别使用裸机程序,异核启动介绍M7程序的运作方式和构建方法与注意事项。

一. 板载LED介绍

        在NXP S32G274ARDB2开发板上,使用的是RGB LED灯,使用的IO口分别是GPIO6,GPIO7和GPIO95。

 特别需要注意的是,使用这个RGB LED灯时,需要将SW11开关设置为ON,默认是OFF,使用的是J5接口。

二. M7裸机程序

2.1 配置环境        

使用M7裸机程序点亮LED的方式较为简单,使用S32DS软件即可进行配置,首先从NXP官网下载S32G2相关SDK(包括S32G2sdk包,RTD包),随后在S32DS->Help->Install new software->add->archive中选择下载好的SDK并确认安装。

2.2 新建工程

新建application工程,选择S32G274A_Rev2 Cortex-M7

为M7_0核心选择SDK

2.3 编写程序

新建完成后,点击pins组件,勾选siul2,gpio6,7,95.

        打开外设组件,在drivers中添加osif_1, Siul2_Dio, Siul2_Port_1

 随后点击生成代码并应用。在主函数中添加

Clock_Ip_Init(Mcu_aClockConfigPB);
Siul2_Port_Ip_Init(NUM_OF_CONFIGURED_PINS0,g_pin_mux_InitConfigArr0);
Siul2_Dio_Ip_WritePin(PTA,6,0);
Siul2_Dio_Ip_WritePin(PTA,7,0);
Siul2_Dio_Ip_WritePin(PTF,15,0);

 随后进入project->properties->c/c++ build->settings->cross settings选择creat flash image,

 随后在standard S32DS create flash image->general->Output file format中选择Raw binary,目的是生成.bin文件,方便之后使用IVT工具制作镜像。

 随后编译工程,会生成xxx.bin文件

2.4 制作镜像

打开IVT工具,选择BOOT_TARGET为M7_0,在Boot device type中选择目标存储介质,随后将除application bootloader的镜像表均置为reserved,随后在application bootloader中导入之前编译生成的.bin文件,在RAM start pointer中填入RAM的起始地址,S32G2的 SRAM起始地址为0x34000000;在RAM entry pointer中填入RAM的入口地址,在工程的map文件中搜索intc_vector可快速找到入口地址,这里为0x34207000。

 填好后点击导出blob镜像,生成最终的可执行文件。

2.5 调试结果

我这里选择的是emmc启动方式,所以最后使用flashtool烧写到emmc中,调成emmc启动方式,上电即可直接点亮led。

三. 异核启动M7

        该部分讲解如何使用s32g uboot中自带命令“startm7”,启动M7核心,运行可执行文件点亮LED。

3.1 配置工程

        在配置工程方面和上一部分裸机代码基本一致,除了需要注意在这里我们需要注释掉MCU的初始化时钟部分,否则在使用startm7命令时会卡死。

随后编译生成.bin文件

3.2  Uboot命令

        在Uboot命令行中,我们输入以下指令:

1. 首先先清空SRAM中的内容 -> initsram 0x34000000 0x700000

2. 随后从SD卡中将.bin文件读取到SRAM起始地址中 -> fatload mmc 0:1 0x34000000 xxx.bin

3. 最后使用startm7命令,后面的地址是是RAM的入口地址,同样是在map文件中找到。 

3.3 调试结果

        将镜像读到SRAM中时LED灯未有变化

         在使用startm7命令之后,M7启动,镜像运行,LED点亮

        以上为两种点亮LED,入门开发板的介绍。 

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值