大大通开发板评测专区
直播中

张兴照

12年用户 93经验值
擅长:可编程逻辑 电源/新能源 模拟技术 测量仪表 嵌入式技术 存储技术 接口/总线/驱动 控制/MCU
私信 关注

【大联大品佳 NXP i.MX RT1050试用体验】rt-thread + modbus调试

` 本帖最后由 apleilx 于 2020-8-23 22:42 编辑

感谢 大联大和elecfans提供的rt1052评估板,板载资源十分丰富。Rt1052以600MHz的M7核心提供强大的处理能力,内核配置32K I-cache和32K D-cache大大降低了flash及外部ram访问速度的瓶颈,如虎添翼。 内部512RAM可自由配置 ITCM,DTCM以及外设共享RAM,应用十分灵活。
接下来介绍本次项目,rtthread+ modbus调试。


1、 首先准备所需软件资源,到恩智浦官网下载SDK以及github下载最新版的rt-thread包。
2、 rt-thread包解压后打开bsp目录,保留imxrt文件夹,其余全部删除。在imxrt中找到MIMXRT1050目录,内容替换为官方SDK的最新文件,否则部分新特性不能用。Rtt中原本的启动文件要保留,这个在链接文件中有使用。另外rtt默认用的是ARMcc5编译,官方新版SDK中的启动文件只能在armcc6中编译,这个应该是官方sdk的以后的标配了,毕竟armcc6比armcc5编译速度快太多,对于大型项目来说编译速度很影响项目进展速度。这样替换好文件之后,操作系统环境就算是配置完成了,将工程打开编译下载就可以运行。
3、 接下来添加modbus,创建modbus任务,将编译好的可以支持多通道的modbus库添加到工程,编写串口底层文件及定时器管理文件。本项目使用板载arduino的uart3端口进行调试。
引脚配置很简单,和之前用过的LPC4357类似。
  1.   IOMUXC_SetPinMux(
  2.       IOMUXC_GPIO_AD_B1_06_LPUART3_TX,        /* GPIO_AD_B0_12 is configured as LPUART1_TX */
  3.       0U);                                    /* Software Input On Field: Input Path is determined by functionality */
  4.   IOMUXC_SetPinMux(
  5.       IOMUXC_GPIO_AD_B1_07_LPUART3_RX,        /* GPIO_AD_B0_13 is configured as LPUART1_RX */
  6.       0U);
代码不多贴了,整个工程上传到附件。想一起学习的同学可以下载来测试交流。

需要注意的一点,中断退出前必须执行SDK_ISR_EXIT_BARRIER,该宏在新版库中定义,2018版本的没有。这个宏用于数据同步,否则会出现莫名其妙的中断。猜测可能与高速流水线有关,清中断指令已经加入流水线,但还未执行就已经退出中断服务程序。

下面看演示结果:
硬件连接

mb2.png
上位机调试软件

调试.png
评估板调试监控

代码工程:
rt-thread.part1.rar (15 MB)
(下载次数: 2, 2020-8-23 22:22 上传)
rt-thread.part2.rar (8.76 MB)
(下载次数: 2, 2020-8-23 22:22 上传)
`
rt-thread.part1.rar (15 MB)
(下载次数: 0, 2020-8-23 22:22 上传)
hal.jpg

更多回帖

发帖
×
20
完善资料,
赚取积分