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 }