嗨对话框,
我们正在构建自己的prod_test.bin,我们希望在“void hci_custom_action_cmd(Uint8_t * ptr_data)中添加一些测试。
我们尝试修改测试行为的功能......所以我们这样做了
void hci_custom_action_cmd(uint8_t * ptr_data)
{
struct msg_custom_action_cfm s;
s.packet_type = hci_evt_msg_type;
s.event_code = hci_cmd_cmpl_evt_code;
S.Length = 5;
s.param0 = 0x01;
s.param_opcode = hci_custom_action_cmd_opcode;
s.data = ptr_data [0] +10;//由+10修改
UART_WRITE((uint8_t *)&s,sizeof(s),null);
}
这导致以下PLT错误:
||||
#####################################################################################################
| 11:31:26.824 | dut_com_port_identify_started |开始| COM端口识别启动。dut = [1]。
| 11:31:28.528 | DUT_COM_PORT_IDERDIFY_OK |通过| COM端口识别OK。dut = [1] < - > com_port = [10]。
| 11:31:28.574 | dut_udll_fw_download_init |启动| UDLL固件下载初始化。固件是= [C:\ Users \ cfr \ documents \ dogoval \ sw \ plt \ da1458x_da1468x_plt_v_3.1 \ executable \ binaries \ prod_test.bin]]。
| 11:31:28.600 | dut_udll_fw_download_start |启动| UDLL固件下载已启动OK。固件是= [C:\ Users \ cfr \ documents \ dogoval \ sw \ plt \ da1458x_da1468x_plt_v_3.1 \ executable \ binaries \ prod_test.bin]]。
| 11:31:32.816 | dut_udll_fw_download_ok |通行证| UDLL固件下载OK。固件是= [C:\ Users \ cfr \ documents \ dogoval \ sw \ plt \ da1458x_da1468x_plt_v_3.1 \ executable \ binaries \ prod_test.bin]]。
| 11:31:32.832 | dut_udll_fw_download_ok |通行证| UDLL固件下载OK。固件是= [C:\ Users \ cfr \ documents \ dogoval \ sw \ plt \ da1458x_da1468x_plt_v_3.1 \ executable \ binaries \ prod_test.bin]]。
| 11:31:32.960 | DUT_PDLL_COM_PORT_INIT |启动|设备PDLL COM端口打开初始化。
| 11:31:32.999 | DUT_PDLL_COM_PORT_START |启动|设备PDLL COM端口打开开始。
| 11:31:33.039 | DUT_PDLL_COM_PORT_OK |通过|设备PDLL COM端口打开OK。
| 11:31:33.105 | dut_pdll_fw_version_get_tart |启动|设备PDLL固件版本开始。
| 11:31:33.148 | dut_pdll_fw_vers_get_ok |通过|设备PDLL固件版本得到确定。pdll版本= [v_3.170.6.90],ble fw版本= [v_5.0.4],app fw version = [v_5.0.4]。
| 11:31:33.186 | DUT_PDLL_XTAL_TRIM_INIT |启动| XTAL Trim操作初始化。
| 11:31:33.226 | DUT_PDLL_XTAL_TRIM_START |开始| XTAL Trim操作开始。
| 11:31:35.718 | DUT_PDLL_XTAL_TRIM_OK |通过| XTAL Trim操作结束了。
| 11:31:35.837 | dut_pdll_uart_resync_init |启动| UART RENYNC进程初始化。
| 11:31:35.870 | DUT_PDLL_UART_RESYNC_START |启动| UART RENYNC进程已启动。
| 11:31:36.162 | DUT_PDLL_UART_RESYNC_FAILED |失败| UART RENYNC进程失败。当前设备状态= [37]。
| 11:31:36.179 | DUT_PDLL_UART_RESYNC_FAILED |失败| UART RENYNC进程失败。当前设备状态= [37]。
所以它看起来像“void hci_custom_action_cmd(uint8_t * ptr_data)”用于多于自定义操作。
然后,如果输入为0x34,则更改代码以仅修改输出,因此输出将是0x40。
PLT现在看起来像这样:
||||
#####################################################################################################
| 11:22:09.486 | dut_com_port_identify_started |开始| COM端口识别启动。dut = [1]。
| 11:22:11.234 | dut_com_port_identify_ok |通过| COM端口识别OK。dut = [1] < - > com_port = [10]。
| 11:22:11.305 | dut_udll_fw_download_init |启动| UDLL固件下载初始化。固件是= [C:\ Users \ cfr \ documents \ dogoval \ sw \ plt \ da1458x_da1468x_plt_v_3.1 \ executable \ binaries \ prod_test.bin]]。
| 11:22:11.337 | DUT_UDLL_FW_DOWNLOAD_START |启动| UDLL固件下载已启动OK。固件是= [C:\ Users \ cfr \ documents \ dogoval \ sw \ plt \ da1458x_da1468x_plt_v_3.1 \ executable \ binaries \ prod_test.bin]]。
| 11:22:15.574 | DUT_UDLL_FW_DOWNLOAD_OK |通行证| UDLL固件下载OK。固件是= [C:\ Users \ cfr \ documents \ dogoval \ sw \ plt \ da1458x_da1468x_plt_v_3.1 \ executable \ binaries \ prod_test.bin]]。
| 11:22:15.592 | dut_udll_fw_download_ok |通行证| UDLL固件下载OK。固件是= [C:\ Users \ cfr \ documents \ dogoval \ sw \ plt \ da1458x_da1468x_plt_v_3.1 \ executable \ binaries \ prod_test.bin]]。
| 11:22:15.716 | dut_pdll_com_port_init |启动|设备PDLL COM端口打开初始化。
| 11:22:15.744 | DUT_PDLL_COM_PORT_START |启动|设备PDLL COM端口打开开始。
| 11:22:15.765 | DUT_PDLL_COM_PORT_OK |通过|设备PDLL COM端口打开OK。
| 11:22:15.822 | dut_pdll_fw_version_get_tart |启动|设备PDLL固件版本开始。
| 11:22:15.858 | DUT_PDLL_FW_VERSION_GET_OK |通过|设备PDLL固件版本得到确定。pdll版本= [v_3.170.6.90],ble fw版本= [v_5.0.4],app fw version = [v_5.0.4]。
| 11:22:15.893 | dut_pdll_xtal_trim_init |启动| XTAL Trim操作初始化。
| 11:22:15.923 | dut_pdll_xtal_trim_start |开始| XTAL Trim操作开始。
| 11:22:18.300 | DUT_PDLL_XTAL_TRIM_OK |通过| XTAL Trim操作结束了。
| 11:22:18.418 | dut_pdll_uart_resync_init |启动| UART RENYNC进程初始化。
| 11:22:18.428 | dut_pdll_uart_resync_start |启动| UART RENYNC进程已启动。
| 11:22:18.436 | dut_pdll_uart_resync_ok |通过| UART RENYNC PROCESS OK。
| 11:22:18.446 | DUT_PDLL_XTAL_TRIM_READ_INIT |启动| XTAL Trim值读取初始化。
| 11:22:18.456 | dut_pdll_xtal_trim_read_start |启动| XTAL Trim Value读取开始。
| 11:22:18.485 | DUT_PDLL_XTAL_TRIM_READ_OK |通过| XTAL TRIM值读取确定。值是= [1324]。
| 11:22:18.525 | dut_pdll_custom_action_init |启动|自定义测试操作初始化。发送数据= [34]
| 11:22:18.539 | dut_pdll_custom_action_start |启动|自定义测试操作开始。
| 11:22:18.565 | dut_pdll_custom_action_ok |通过|自定义测试操作结束了。数据发送是= [34]
| 11:22:18.593 | dut_pdll_custom_action_data_match_failed |故障|自定义测试操作数据匹配失败。数据发送= [0x34]。收到的数据= [0x40]。
所以它通过了输入= 0x34的自定义命令。
如果我们将输出等于“void hci_custom_action_cmd(uint8_t * ptr_data)”中的输入,那么它都通过了。
现在有关我们的问题:
一般来说,如何使用旨在使用的“void hci_custom_action_cmd(uint8_t * ptr_data)”?
其中测试包括“void hci_custom_action_cmd(UInt8_t * ptr_data)”?
还有哪些输入值被其他测试用例保留和使用?
哪个输入值可以在不干扰其他测试序列的情况下使用我们的自定义测试?
此致,
Ciano Frost.
丹麦
嗨Ciano,
我不太明白+10到ptr_data的原因是什么,当命令操作代码为0x40d0时触发自定义函数,这是命令应该为580执行a的操作代码自定义功能。如果要执行多个自定义功能,则必须标记自定义函数并将自定义标记放在命令的有效载荷中。
谢谢mt_dialog.
嗨对话框
是的,我想我们需要退回这里,澄清我们的问题。
我们正在使用PLT,并希望在Prod_test.bin中添加一个自最终功能。根据PLT参数文件,可以使用params.ini文件中的以下行启动。
custom_data_enable = true
custom_data_value = 01
到目前为止,一切都很好。
用于在prod_test.bin中捕获此命令,使用值参数= 0x01,我们必须在customer_prod.c中修改“void hci_custom_action_cmd(uint8_t * ptr_data)”函数
这是我们需要一些支持的地方。
现在输入参数是“uint8_t * ptr_data”。
问题:在ptr_data上存储多少数据......在ptr_data [0],ptr_data [1],ptr_data [2],ptr_data [3]中是多少?
我们该如何解释此数据?
此致,
Ciano Frost.
丹麦
嗨Ciano,
由于这是自定义命令在FW侧没有实现,因此从PLT工具中没有使用此命令进行其他命令,如果您检查FW,则会看到这是一个空命令,所以您必须添加根据您在params.ini文件中输入的标签,根据您输入的标签。因此,为了访问此命令,您将必须在0x01前面添加标记0x40d0(如果要通过带有简单终端的UART测试它)。例如,假设我们希望实现一个自定义命令,该命令将有一个0x34的标签,所以在prod_test fw中实现代码进行解析,当我们从UART端口0x01 d0 40 01 34发送时,代码应该看到标记并相应地执行函数。
0x40d0 - >自定义命令操作码的标签
0x01 - >有效载荷的长度
0x34 - >用于执行适当的自定义测试的标签
ptr_data它只是一个uint8_t指针,指向UART发送数据的开始。ptr_data [0]将具有刚刚发送的命令的有效载荷的第一个字节,在上一个示例中,它将包含0x34。
在PARP.INI文件中,您在Custom_data_value上设置的值将标记您希望执行的自定义命令,以便您将0x01设置为自定义命令标记。
谢谢mt_dialog.