Page 1 of 1

[已解决]【tuyaos】PHY6222 DMA打开宏后找不到文件

Posted: 2023年 Nov 13日 11:46
by wxq1123

1)开发包全称:tuyaos-subdev-bt_3.8.3_phy6222_ble_ble-common_1.0.0.tar
2)问题现象:用SPI驱动SW2811,需要打开DMA,但是打开宏后编译器找不到dma.h文件
3)复现流程:
4)发生时间:
5)iPhone 14,涂鸦智能线上版本,V5.6.1(20231023190929)

def.jpg
cannt_find.jpg

Re: [求助]【tuyaos】PHY6222 DMA打开宏后找不到文件

Posted: 2023年 Nov 14日 14:02
by kangxi

用keil加一下


Re: [求助]【tuyaos】PHY6222 DMA打开宏后找不到文件

Posted: 2023年 Nov 14日 18:20
by wxq1123
kangxi 2023年 Nov 14日 14:02

用keil加一下

文档里说不能用KEIL加。虽然KEIL是很方便


Re: [求助]【tuyaos】PHY6222 DMA打开宏后找不到文件

Posted: 2023年 Nov 14日 18:27
by 逻辑的院子

如果使用Keil开发方便是可以使用Keil的,文档里禁止在Keil中手动添加头文件或源文件,是因为使用vscode编译的过程中会重新生成Keil工程文件,即便使用keil添加头文件/源文件也会被vscode生成的keil工程文件覆盖掉,导致开发者产生困惑。
如果明白了这个原理,是可以直接在keil中添加头文件的,只是添加后就不要再使用vscode进行编译了,否则就需要重新添加头文件。


Re: [求助]【tuyaos】PHY6222 DMA打开宏后找不到文件

Posted: 2023年 Nov 15日 14:18
by wxq1123
逻辑的院子 2023年 Nov 14日 18:27

如果使用Keil开发方便是可以使用Keil的,文档里禁止在Keil中手动添加头文件或源文件,是因为使用vscode编译的过程中会重新生成Keil工程文件,即便使用keil添加头文件/源文件也会被vscode生成的keil工程文件覆盖掉,导致开发者产生困惑。
如果明白了这个原理,是可以直接在keil中添加头文件的,只是添加后就不要再使用vscode进行编译了,否则就需要重新添加头文件。

请教下SPI的DMA初始化这里dma的event函数该怎么写呢?有模板吗?然后该如何发送(只发送)呢?


Re: [求助]【tuyaos】PHY6222 DMA打开宏后找不到文件

Posted: 2023年 Nov 15日 14:24
by kangxi

我这边是分数据包发的,你可以按照你实际使用发包。

Code: Select all

void ty_light_driver_dma_int(DMA_CH_t ch)
{
		static uint8_t data_send_cnt = 0;	
		spi_data_tx.send_cnt --;
	
		if(spi_data_tx.send_cnt == 0){
			uint8_t retval = PPlus_SUCCESS;
			retval = tuya_ble_free((uint8_t *)spi_data_tx.tx_buffer);
			spi_data_tx.spi_data_send_flag = 0;
			spi_data_tx.send_cnt = 0;
			spi_data_tx.tx_buffer_len = 0;

			data_send_cnt = 0;	
			if(retval != PPlus_SUCCESS){				
				TUYA_APP_LOG_ERROR("spi_data_tx != PPlus_SUCCESS!\n");							
			}
//			TUYA_APP_LOG_ERROR("ok\n");
//			TUYA_APP_LOG_ERROR("ty_light_dma_data_send ok!\n");
		}else{
			data_send_cnt ++;	
			if(spi_data_tx.send_cnt == 1){	
				hal_spi_transmit(&ty_spi_ptr, SPI_TXD, &spi_data_tx.tx_buffer[(DMA_H0_DATA_MAX_LEN*data_send_cnt)], NULL, (spi_data_tx.tx_buffer_len%DMA_H0_DATA_MAX_LEN), 0);
			}else{
				hal_spi_transmit(&ty_spi_ptr, SPI_TXD, &spi_data_tx.tx_buffer[DMA_H0_DATA_MAX_LEN*data_send_cnt], NULL, DMA_H0_DATA_MAX_LEN, 0);
			}			
		}
}

Re: [求助]【tuyaos】PHY6222 DMA打开宏后找不到文件

Posted: 2023年 Nov 17日 18:03
by luzhihui
逻辑的院子 2023年 Nov 14日 18:27

如果使用Keil开发方便是可以使用Keil的,文档里禁止在Keil中手动添加头文件或源文件,是因为使用vscode编译的过程中会重新生成Keil工程文件,即便使用keil添加头文件/源文件也会被vscode生成的keil工程文件覆盖掉,导致开发者产生困惑。
如果明白了这个原理,是可以直接在keil中添加头文件的,只是添加后就不要再使用vscode进行编译了,否则就需要重新添加头文件。

我也遇到了这个问题,请问有没有方法直接在VSCODE里面解决这个问题?


Re: [求助]【tuyaos】PHY6222 DMA打开宏后找不到文件

Posted: 2023年 Nov 17日 18:20
by 逻辑的院子

在vscode里面也可以解决,但是相对麻烦一点,可以打开 “\software\TuyaOS\vendor\phy6222_ble\toolchain\templates\vendor.json” 文件,然后仿照已有的格式添加需要的.c/.h文件,然后使用vscode重新编译即可。


Re: [求助]【tuyaos】PHY6222 DMA打开宏后找不到文件

Posted: 2023年 Nov 17日 18:26
by luzhihui
逻辑的院子 2023年 Nov 17日 18:20

在vscode里面也可以解决,但是相对麻烦一点,可以打开 “\software\TuyaOS\vendor\phy6222_ble\toolchain\templates\vendor.json” 文件,然后仿照已有的格式添加需要的.c/.h文件,然后使用vscode重新编译即可。

感谢,按照您的方法编译可以