[S32K3从0入门]S32DS工程创建及烧录

本文详细介绍了如何使用S32DS软件创建S32K344芯片的工程,配置引脚为输出模式控制RGB灯,并通过J-Link进行程序烧录。关键步骤包括选择芯片型号、配置引脚功能、添加Siul2_Dio驱动、编写代码以及调试与烧录过程。

本篇博客记录了自己新建S32DS工程及烧录程序到开发板的过程

  1. 打开S32DS软件

  2. 创建新一个工程

    1. 输入工程名,选择芯片型号以及编译器版本在这里插入图片描述

    2. 选择SDK在这里插入图片描述

    3. 选择调试器Debugger,我这里用的是J-Link故选择Segger,若用的是Multilink则选择PEMicro在这里插入图片描述

  3. 创建好工程以后,进入引脚配置界面,可双击工程中的.mex文件进入,也可通过界面右上角图标进入在这里插入图片描述

  4. 配置需要用到的每个引脚的功能和属性,这里使用的是S32K344的T-Box开发板,使用 PTA29/30/31 分别控制红/绿/蓝三种颜色,将这三个引脚复用配置为“SIUL2,gpio”模式,方向选择“output”,初始值均设为“Low”。在这里插入图片描述

  5. 在路由详情界面配置 I/O 属性,例如:

    • 标识符:使用标识符字段给每个引脚一个有意义的 ID,可用于 API 函数。
    • Slew Rate:寄存器位MSCR_SRC
    • Output Buffer Enable:寄存器位MSCR_OBE
    • Pad keep enable:寄存器位MSCR_PKE
    • Driver Strength Field:寄存器位MSCR_DSE
    • Initial Value:寄存器位GPDO_PDO

在这里插入图片描述

  1. 点击软件界面右上角的“外设”按键在这里插入图片描述

  2. 添加Siul2_Dio外设驱动模块,进行DK 外设驱动程序的初始化配置在这里插入图片描述

  3. 更新源代码生成引脚配置代码,这里可以选择想要更新的引脚配置文件和更改引脚配置文件在这里插入图片描述

  4. 编写程序

    1. S32DS CT 生成的文件结构如下:

      • Siul2_Port 相关的驱动代码文件:
        • RTD\include\Siul2_Port_Ip_Types.h
        • RTD\include\Siul2_Port_Ip.h
        • RTD\src\Siul2_Port_Ip.c
      • Siul2_Port包含引脚配置结构的文件:
        • Board\Siul2_Port_Ip_Cfg.h
        • Board\Siul2_Port_Ip_Cfg.c
      • Siul2_Dio 相关的驱动代码文件:
        • RTD\include\Siul2_Dio_Ip.h
        • RTD\src\Siul2_Dio_Ip.c
      • Siul2_Dio 包含引脚配置结构的文件:
        • generate\include\Siul2_Dio_Ip_Cfg.h
    2. 打开工程的main.c文件,引入引脚配置文件的头文件在这里插入图片描述

    3. 在工程的board文件夹的< Siul2_Port_Ip_Cfg.h >中可以找到下图所示的宏定义,这是因为我们在配置 I/O 属性时,在标识符字段填写了引脚 ID。那“PTA_H_HALF”是什么意思呢,为什么 PTA29 的 PIN 设为 13?

      • 通过《S32K3xx Reference Manual》附件中的《S32K344 IOMUX_Rev1.1.xlsx》表格可看出 IO 口按照A、B、C、D、E、F、G编号分成了7组(以 BGA257 为例),每组有0~31号共32个IO口,而H和L分别代表高16位和低16位,所以 PTA29实际属于高16位的第13-Pin,其他引脚以此类推。

      在这里插入图片描述

    4. 在< main.c >中添加一个延时函数在这里插入图片描述

    5. 构造主函数,主函数实现功能:红、绿、蓝三色小灯依次闪烁

      • Siul2_Port_Ip_Init(NUM_OF_CONFIGURED_PINS0, g_pin_mux_InitConfigArr0);
        //初始化所有引脚配置,“g_pin_mux_InitConfigArr0”在之前生成的代码中定义。
      • Siul2_Dio_Ip_TogglePins(LED_PTA29_PORT, 1<<(LED_PTA29_PIN+led_Switch));
        //切换指定GPIO端口的电平。

      在这里插入图片描述

  5. 编译程序并烧录到开发板

    1. 点击左上角锤子按钮进行编译,可选择debug或release,FLASH或RAM

      在这里插入图片描述

    2. 若编译成功,则出现如下界面,并生成.elf文件,如下图所示

      在这里插入图片描述

      • 注:若安装路径包含中文,则会导致如下结果(悲在这里插入图片描述

        我的解决方法——删了重装,不知道有没有更好的修改软件安装路径的方法,如果大家知道的话还麻烦告诉我:)

    3. 打开调试配置界面。如果没有出现可参照的调试目标,右键 “GDB SEGGER J-Link Debugging”选择“New Configuration”新建调试目标;如果有参考目标可以右键目标选择“Duplicate”。为工程重命名,并将Main窗口中的elf文件路径配置到工程路径。在这里插入图片描述

    在这里插入图片描述

    1. 进入Debugger页面,在J-Link Executable栏输入${jlink_path}/${jlink_gdbserver},在GDB Client Setup的Executable栏输入${cross_prefix}gdb${cross_suffix},并选择传输的协议(JTAG/SWD),其它的按默认设置即可。之后按右下角的Debug按钮,即可开始烧录程序并调试。
      在这里插入图片描述
在S32 Design Studio中导入工程后,进行程序烧录通常包括以下几个步骤: 1. **连接调试器** 确保使用支持S32K系列芯片的调试器,如J-Link、PE Micro Multilink或S32DS自带的调试接口。将调试器连接到目标板上的调试接口(通常是SWD或JTAG),然后通过USB连接到计算机。 2. **配置调试设置** 在S32DS中打开导入的工程,点击菜单栏的“Run” -> “Debug Configurations” 或者直接点击工具栏的调试按钮(虫子图标)。选择“C/C++ Application”并创建新的调试配置。确保选择正确的调试器和目标设备(如S32K3xx)。 3. **选择烧录文件** 在调试配置中,确保“C/C++ Application”字段指向生成的elf文件,通常位于`Debug_FLASH`文件夹下。该文件是编译后的主要输出文件,包含了程序的可执行代码和符号信息[^1]。 4. **配置烧录选项** 在“Debugger”选项卡中,确保选择了正确的调试接口(如SWD)和时钟频率。在“Startup”选项卡中,可以配置是否在启动时自动烧录程序。通常可以选择“Download and start”以在调试会话开始时自动烧录程序。 5. **执行烧录操作** 点击“Debug”按钮启动调试会话,S32DS将自动将程序烧录到目标设备的Flash中。如果需要手动烧录而不启动调试会话,可以通过“Run” -> “Run”选项,选择相应的运行配置进行烧录。 6. **验证烧录结果** 烧录完成后,可以使用调试功能(如单步执行、断点等)来验证程序是否正常运行。此外,也可以通过查看目标设备的Flash内容来确认烧录结果。 7. **生成其他格式的烧录文件** 如果需要生成Motorola S-record(s19)、Intel HEX或Bin文件,可以在工程设置中配置链接器脚本和输出格式,或者使用外部工具(如objcopy)将elf文件转换为所需的格式。例如,使用以下命令将elf文件转换为Intel HEX格式: ```bash arm-none-eabi-objcopy -O ihex your_project.elf your_project.hex ``` 类似地,可以使用以下命令生成Bin文件: ```bash arm-none-eabi-objcopy -O binary your_project.elf your_project.bin ``` ###
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值