基于RT1170 开发过程中的反思 (四)

本文分享了使用PWM驱动蜂鸣器遇到的问题及解决方法,强调了调试过程中硬件、软件及参数的重要性;介绍了快速掌握新SDK的方法,包括文档阅读、开发环境搭建及工具应用;并讨论了非官方开发板带来的挑战及应对策略。

一、调试通过PWM驱动蜂鸣器发费两天的时间,效率太低?

当排查问题有四个方面的排查手段:
1)硬件是否正常?
通过定时驱动GPIO控制蜂鸣器验证是否正常。
2)引脚初始化是否正常?
通过查看IOMUXC_GPIO_AD_27_FLEXPWM2_PWM1_B定义参数是否正常。
3) 模块时钟是否使能?
通过PWM_Init函数确认时钟是否已初始化成功。
4)初始化参数是否正确?
通过FAE确认参数是否正常。
原因:最终在FAE的支持下找到了问题PWM故障检测功能没有完全关闭,只关闭FLEXPWM2_PWM1_B不行,还得比FLEXPWM2_PWM1的故障检测功能也关闭,PWM才有输出。

二、 如何快速入手新的SDK

1、 文档要先看

2、 开发环境要快速搭建,包含编译,烧录及代码结构的认识

3、 辅助工具用起来

大趋势下使用图型化生成代码,当然也有前提条件就是需要阅读数据手册,需要发费一定的时间。之前只是通过工具生成引脚初始化代码,没有通过工具使能相关的时钟路径和设置相关的时钟频率,并且生成驱动初始化的代码。所谓的高效就是尽量一件事情只做一次,并且具备分析问题和解决问题的能力。工具生成的代码才不会出错,不出错才能保持高效,所以接下来在边学习边开发的过程中会使用 图型化工具。改变自已的开发模式和学习模式,走向高效的开发之路。
在这里插入图片描述

三、 如何看待非官方的开发板

在拿到非官方的开发板时,拿到非官方的SDK或者经过修改之后的SDK时,在这当中的开发过程及代码修改的记录缺失,其实是影响是很大的。没有一份与之相关相对应的配置Mex工程,导致无法理清整个的时钟树,在开发维护及人员变更时,带来的工作量巨大。延续官方的开发方式模式,在今后的补丁集成及版本更新起重要作用。

四、总结

在单人的成长模式下面,找一条正确的路,自已帮助自已,才是重中之中。

<think>好的,我需要处理用户关于RT1170 ENET开发的问题。首先,用户希望寻找相关的资料、教程、示例代码。我需要先回忆一下RT1170芯片的信息,ENET模块通常指的是以太网控制器,所以应该涉及到网络通信方面的开发。 接下来,我需要查看用户提供的引用内容。引用[1]提到了RT1052的ENET问题,引用[2]是关于STM32F429的web服务器和RT-Thread的网络框架,引用[3]是RT1050和RT-Thread的配置,引用[4]涉及到Kconfig和工程配置。虽然这些引用主要不是针对RT1170,但可能有一些共通点,比如RT-Thread的网络框架、ENET驱动的配置方法,这些可能对RT1170也有参考价值。 用户需要的是RT1170 ENET开发的资料,可能包括官方文档、SDK、示例代码、社区资源等。首先,我应该建议用户查阅NXP官方的SDK,因为通常芯片厂商会提供开发包和示例。例如,MCUXpresso SDK可能包含RT1170的ENET驱动和示例项目。 另外,RT-Thread作为一个实时操作系统,可能已经支持RT1170的ENET驱动。引用[2]和[3]提到在RT-Thread中配置网络功能,用户可以参考这些资料来配置RT1170的网络模块。可能需要指导用户如何在RT-Thread的env工具中配置ENET驱动,启用相关组件,比如LwIP协议栈。 关于教程和社区资源,NXP的官方论坛、RT-Thread的文档中心、GitHub仓库都是不错的来源。用户还可以参考野火或正点原子等开发板厂商提供的教程,这些厂商通常会有详细的示例和步骤说明。 在代码示例方面,需要确保用户了解如何初始化ENET模块,配置PHY芯片,处理中断,以及使用Socket API进行网络通信。可能还需要提到DMA配置、内存管理,这些都是ENET开发中的常见问题。 最后,生成的相关问题应该围绕ENET开发中的常见挑战,比如驱动调试、性能优化、协议栈集成等,帮助用户进一步深入解决问题。</think>### RT1170 ENET开发指南 #### 1. 官方开发资源 NXP为i.MX RT1170提供了完整的**MCUXpresso SDK**,包含ENET驱动、PHY芯片配置、LwIP协议栈集成等模块。关键步骤: - 下载MCUXpresso SDK时选择**MIMXRT1176xxxxx**系列芯片[^3] - 示例代码路径:`SDK_2_xx_xxx_MIMXRT1170\boards\evkbmimxrt1170\driver_examples\enet` #### 2. RT-Thread支持 RT-Thread已对RT1170 ENET提供深度支持,可通过以下方式启用: ```shell # 在env工具中执行 scons --menuconfig ``` 导航至: ``` RT-Thread Components → Device Drivers → Using Ethernet → Enable ENET → Select ENET Interface (RMII/MII) → Enable PHY芯片驱动 (如LAN8720A) ``` 需注意PHY地址配置与硬件设计匹配[^2][^3] #### 3. 关键代码结构 ```c // PHY初始化示例 void phy_init(void) { ENET_SetSMI(ENET, EXAMPLE_CLOCK_FREQ, EXAMPLE_MDIO_OPS) ENET_StartSMI(ENET) PHY_Init(EXAMPLE_ENET, EXAMPLE_PHY_ADDRESS) } // 数据接收处理 err_t ethernetif_input(struct netif *netif) { while((framelength = ENET_GetRxFrameSize(...)) != kStatus_ENET_RxFrameEmpty) { // 数据帧处理逻辑 } } ``` 注意处理`kStatus_ENET_RxFrameEmpty`状态[^1] #### 4. 双网卡配置技巧 参考RT-Thread双网卡实现方案: ```c // 在rt_hw_eth_init中初始化多个ENET实例 int rt_hw_eth_init(void) { eth_device_init(&enc28j60, "w0"); eth_device_init(&lan8720, "e0"); } ``` 需在Kconfig中启用`RT_USING_LWIP`和`RT_USING_MULTI_NETDEV`[^2][^4] #### 5. 调试工具建议 - 使用Wireshark抓包分析网络协议 - 通过`ping`命令测试基础连通性 - 使用`ifconfig`查看网卡状态
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式实操

希望博文有助于您,您不必加班。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值