Alipay

Results 3 issues of Alipay

实在没有找到在哪改(

question

# 环境 芯片:NXP-MCXN947 开发板:FRDM-MCXN947 BSP:nxp->mcx->mcxn 工具链:Keil 5, ArmClang V6.21 RT-Thread版本:5.1.0 # 现象及复现步骤 **调用 `rt_device_write(can_dev, 0, &msg, sizeof(msg));` 导致阻塞** 在编写CAN外设测评时,简单复制了RT-Thread[官方文档提供的CAN示例代码](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/can/can),可以正常发送一帧ID为0x78的CAN数据帧 但是对设备写入函数rt_device_write进行简单的for循环发送的时候却出现了阻塞,第一条写入函数后的代码均无法执行,尝试取消掉for循环,直接在rt_device_write后加入rt_kprintf也同样无法打印任何内容。 # 目前已知 ## 第一次排查 5.1.0版本的mcxn提供的bsp文件中`drv_can.c`中,`flexcan_callback`函数有部分被注释,尝试取消注释。 ![image](https://github.com/RT-Thread/rt-thread/assets/82697713/7de5ef14-f083-4b6c-a32f-b339708c49f4) 并且`drv_can.c`中的CAN发送函数使用的是NXP提供的FSL库中的阻塞发送函数,推测该函数不能触发发送完成中断。 ![image](https://github.com/RT-Thread/rt-thread/assets/82697713/8091c8fd-cb23-4701-b2c6-7536872d627b) 于是作出如下更改:(红框为原有发送函数,绿框为修改后的函数) 修改后的发送函数确实可以运行至`flexcan_callback`的`kStatus_FLEXCAN_TxIdle`分支...

在board.c中 ``` uint32_t board_init_spi_clock(SPI_Type *ptr) { if (ptr == HPM_SPI1) { clock_add_to_group(clock_spi1, 0); return clock_get_frequency(clock_spi1); } else if (ptr == HPM_SPI2) { clock_add_to_group(clock_spi2, 0); return clock_get_frequency(clock_spi3); } else if (ptr...