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

蓝牙 BLE设备、蓝牙 MESH设备、蓝牙 Beacon设备、Sub-G设备等


Post Reply
wxq1123
Posts: 108
Location: 深圳市水世界有限公司

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
Last edited by wxq1123 on 2023年 Nov 27日 15:13, edited 1 time in total.
kangxi
Posts: 40

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

用keil加一下

wxq1123
Posts: 108
Location: 深圳市水世界有限公司

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

kangxi 2023年 Nov 14日 14:02

用keil加一下

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

User avatar
逻辑的院子
Posts: 284
Contact:

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

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

wxq1123
Posts: 108
Location: 深圳市水世界有限公司

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

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

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

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

Attachments
evt.jpg
kangxi
Posts: 40

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

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

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);
			}			
		}
}
luzhihui
Posts: 32

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

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

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

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

User avatar
逻辑的院子
Posts: 284
Contact:

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

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

luzhihui
Posts: 32

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

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

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

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

Post Reply