Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
NXP 微控制器
NXP-MCXN947
NXP MCXN947测评之 uart
发布于 2024-03-31 18:21:11 浏览:490
订阅该版
[tocm] ## 开箱 ![微信图片_20240331181701.jpg](https://oss-club.rt-thread.org/uploads/20240331/6517cc8dbf10661e667b8dfd661b9d7d.jpg.webp) ![微信图片_20240331181432.jpg](https://oss-club.rt-thread.org/uploads/20240331/88d157e5b6727bf9b87e11b9215b843e.jpg.webp) ![微信图片_20240331181437.jpg](https://oss-club.rt-thread.org/uploads/20240331/463ef7f437d3ccbc6dd5e55ca43a6363.jpg.webp) 自带的这个简易说明书不错。 ### 开发环境 linux + scons + env 使用 pyocd 烧写 #### 修改编译器路径 打开 rtconfig.py 文件,根据使用的编译器类型,首先确认 `EXEC_PATH` 这个变量定义的路径对不对,不对的先按照自己计算机上的路径进行修改。 #### 第一次执行编译 ``` $ scons -s /mnt/rtthread/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/time.h:56:1: error: unknown type name 'clock_t'; did you mean '_flock_t'? 56 | clock_t clock (void); /mnt/rtthread/rt-thread/components/libc/compilers/common/include/sys/time.h:55:5: error: unknown type name 'suseconds_t' 55 | suseconds_t tv_usec; /* and microseconds */ ``` 首先,到论坛上搜一圈有没有类似的问题。参考论坛文章 [error: unknown type name 'clock_t'](https://club.rt-thread.org/ask/question/981978b1d833e9cf.html) 修改 "rtconfig.py" 文件 ``` $ vim rtconfig.py CFLAGS = DEVICE + ' -Wall -D__FPU_PRESENT' 修改为: CFLAGS = DEVICE + ' -Wall -D__FPU_PRESENT -D_POSIX_C_SOURCE=1' ``` 这可能是一个很古老的问题了。 #### 再次编译 ``` [lau@localhost frdm-mcxn947]$ scons -s Memory region Used Size Region Size %age Used m_interrupts: 688 B 1 KB 67.19% m_text: 84792 B 767 KB 10.80% m_core1_image: 0 GB 256 KB 0.00% m_data: 80056 B 312 KB 25.06% rpmsg_sh_mem: 0 GB 0 GB m_flash1: 0 GB 1 MB 0.00% m_sramx: 0 GB 96 KB 0.00% m_flash_config: 0 GB 512 B 0.00% m_usb_sram: 0 GB 4 KB 0.00% text data bss dec hex filename 85472 640 79424 165536 286a0 rtthread.elf ``` 第二次编译无错误生成目标文件。 #### 烧写 ``` $ pyocd load -e sector -t mcxn947vdf rtthread.bin 0001886 E Transfer error while reading AHB-AP#1 ROM table: Memory transfer fault @ 0xe00fffd0-0xe00fffff [ap] 0001934 I Loading /mnt/rtthread/rt-thread/bsp/nxp/mcx/mcxn/frdm-mcxn947/rtthread.bin [load_cmd] [==================================================] 100% 0010434 I Erased 90112 bytes (11 sectors), programmed 82944 bytes (162 pages), skipped 0 bytes (0 pages) at 9.53 kB/s [loader] ``` > 我使用的时候一直有个错误,不知道各位使用 PYOCD 烧写的有没有上面这个 "Memory transfer fault",因为没影响后面使用也没有细究原因(其实是没百度出来所以然来) #### 运行 使用 USB TypeC 线连接计算机和 MCXN947 的 MCU-LINK 口,linux 系统里会增加一个串口设备: "/dev/ttyACM0"。 rtt 默认波特率 115200,我们打开一个串口终端,按下 MCXN947 的 RESET 按键,串口终端里将打印出 rtt 启动信息。 ![rtthread-startup.gif](https://oss-club.rt-thread.org/uploads/20240331/e45d924aa79d45f56bdcc946a354a3c0.gif) [运行视频](https://club.rt-thread.org/file_download/5a5240e8cf8588bb) ### 移植 serialX 驱动 详细移植步骤参考论坛文章。 项目配置进行了改动,去掉了 finsh ,下面测试 serialX 使用的也是 uart4 (和 finsh 相同的,为减少干扰先砍掉 finsh) #### 测试 测试仍然用之前的测试方案,测试代码可以在 [serialX](https://gitee.com/thewon/serialX) 里找到。 [收发测试视频](https://club.rt-thread.org/file_download/ba6d69b38ea197d7) ### 遇到的问题 1. 第一个就是第一次编译出现的那个未定义错误。 2. 前边也提到了使用 PYOCD 烧写有个错误信息,但是没影响使用。 3. 因为我在虚拟机里的linux系统开发的,但是在 linux 系统下串口总是出问题,然后就在 linux 系统开发烧写,然后切换到 win 系统看系统调试输出信息,这个也是有问题的。每次都需要把 USB 线拔掉再重新插上。 4. 在测试打开关闭的时候,发现每次打开关闭串口设备时,都会发一个 '\xFF' 出来。这可能是一个 bug。 5. 目前测试 `LPUART_EnableInterrupts(uart->uart_base, kLPUART_TxDataRegEmptyInterruptEnable);` `LPUART_EnableInterrupts(uart->uart_base, kLPUART_RxDataRegFullInterruptEnable);` 这两个开中断的结果不是叠加的。因为我每次打开/关闭发送数据寄存器空中断后,发现不再触发接收,必须在关闭发送中断后重新打开接收中断。这可能也是一个 bug。 ### 本次测评实现的优化及改进 1. 原串口驱动只实现了接收中断,发送必须用 poll 模式。本次测评增加了发送中断,支持使用中断模式发送数据。 2. 移植了 serialX 串口驱动框架。 最后,项目源码见我的仓库分支 [mcxn947 serialX](https://github.com/thewon86/rt-thread/tree/mcxn947)
3
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
出出啊
恃人不如自恃,人之为己者不如己之自为也
文章
43
回答
1517
被采纳
342
关注TA
发私信
相关文章
1
试贴-消灭0主题
2
LPC M4的一些资料
3
LPC4088的临时分支
4
lpc1788 ad 不稳定
5
1788 LCD控制器缓冲区字节问题
6
一起来学习LPC4088吧
7
上传LPC4088的realtouch主工程
8
RealBoard 4088预定帖 [第一批板子不多,预定提前结束]
9
晒RealBoard LPC4088开箱照啦,速带小板凳前来围观
10
4088主程序需要的SD卡资源
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
a1012112796
20
个答案
3
次被采纳
张世争
11
个答案
3
次被采纳
踩姑娘的小蘑菇
7
个答案
3
次被采纳
rv666
9
个答案
2
次被采纳
用户名由3_15位
13
个答案
1
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
RTT_逍遥
1
篇文章
6
次点赞
大龄码农
1
篇文章
5
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部