1 /* 2 * Copyright (C) 2015-2020 Alibaba Group Holding Limited 3 */ 4 5 #include "amp_boot.h" 6 7 static amp_boot_cmd_t g_amp_boot_cmd[] = { 8 [AMP_BOOT_CMD_EXIT] = { 9 "cmd_exit" 10 }, 11 [AMP_BOOT_CMD_QUERY_IMEI] = { 12 "cmd_query_imei" 13 }, 14 [AMP_BOOT_CMD_QUERY_SEC] = { 15 "cmd_query_sec" 16 }, 17 [AMP_BOOT_CMD_FLASH_SEC] = { 18 "cmd_flash_sec" 19 }, 20 [AMP_BOOT_CMD_FLASH_JS] = { 21 "cmd_flash_js" 22 }, 23 [AMP_BOOT_CMD_FLASH_KV] = { 24 "cmd_flash_kv" 25 } 26 }; 27 amp_boot_get_cmd(int timeout_ms)28int amp_boot_get_cmd(int timeout_ms) 29 { 30 int32_t cmd_id = 0; 31 int32_t recv_len = 0; 32 char cmd_buff[32] = {0}; 33 34 recv_len = amp_boot_uart_recv_line(cmd_buff, 32, timeout_ms); 35 if (recv_len <= 0) { 36 return AMP_BOOT_CMD_NULL; 37 } 38 for (cmd_id = 0; cmd_id < AMP_BOOT_CMD_MAX; cmd_id++) { 39 if(recv_len != strlen(g_amp_boot_cmd[cmd_id].cmd_str)) { 40 continue; 41 } 42 if (strncmp(cmd_buff, g_amp_boot_cmd[cmd_id].cmd_str, recv_len) == 0) { 43 return cmd_id; 44 } 45 } 46 return AMP_BOOT_CMD_ERROR; 47 } 48 amp_boot_cmd_begin(int cmd)49void amp_boot_cmd_begin(int cmd) 50 { 51 amp_boot_uart_send_str(">>>>"); 52 amp_boot_uart_send_str(g_amp_boot_cmd[cmd].cmd_str); 53 } 54 amp_boot_cmd_end(int cmd)55void amp_boot_cmd_end(int cmd) 56 { 57 amp_boot_uart_send_str("<<<<"); 58 amp_boot_uart_send_str(g_amp_boot_cmd[cmd].cmd_str); 59 }