1 /*
2 * Copyright (C) 2015-2020 Alibaba Group Holding Limited
3 */
4
5 #include "amp_boot.h"
6
7 static py_boot_cmd_t g_pyamp_boot_cmd[] = {
8 [AMP_BOOT_CMD_EXIT] = { "cmd_exit" }, [AMP_BOOT_CMD_QUERY_IMEI] = { "cmd_query_imei" },
9 [AMP_BOOT_CMD_QUERY_SEC] = { "cmd_query_sec" }, [AMP_BOOT_CMD_FLASH_SEC] = { "cmd_flash_sec" },
10 [AMP_BOOT_CMD_FLASH_JS] = { "cmd_flash_js" }, [AMP_BOOT_CMD_FILE_TRANSFER] = { "cmd_file_transfer" },
11 [AMP_BOOT_CMD_FLASH_KV] = { "cmd_flash_kv" }
12 };
13
pyamp_boot_get_cmd(int timeout_ms)14 int pyamp_boot_get_cmd(int timeout_ms)
15 {
16 int32_t cmd_id = 0;
17 int32_t recv_len = 0;
18 char cmd_buff[32] = { 0 };
19
20 recv_len = pyamp_boot_uart_recv_line(cmd_buff, 32, timeout_ms);
21 if (recv_len <= 0) {
22 return AMP_BOOT_CMD_NULL;
23 }
24 for (cmd_id = 0; cmd_id < AMP_BOOT_CMD_MAX; cmd_id++) {
25 if (recv_len != strlen(g_pyamp_boot_cmd[cmd_id].cmd_str)) {
26 continue;
27 }
28 if (strncmp(cmd_buff, g_pyamp_boot_cmd[cmd_id].cmd_str, recv_len) == 0) {
29 return cmd_id;
30 }
31 }
32 return AMP_BOOT_CMD_ERROR;
33 }
34
pyamp_boot_cmd_begin(int cmd)35 void pyamp_boot_cmd_begin(int cmd)
36 {
37 pyamp_boot_uart_send_str(">>>>");
38 pyamp_boot_uart_send_str(g_pyamp_boot_cmd[cmd].cmd_str);
39 }
40
pyamp_boot_cmd_end(int cmd)41 void pyamp_boot_cmd_end(int cmd)
42 {
43 pyamp_boot_uart_send_str("<<<<");
44 pyamp_boot_uart_send_str(g_pyamp_boot_cmd[cmd].cmd_str);
45 }