新硬件更新配置
authorcheng.chen <cheng.chen@raisound.com>
Sat, 26 Jul 2025 06:24:17 +0000 (14:24 +0800)
committercheng.chen <cheng.chen@raisound.com>
Fri, 1 Aug 2025 01:51:25 +0000 (09:51 +0800)
2.code/aicos/app/AI_AMP_2_5/AI_AMP_2_5.c
2.code/aicos/app/AI_AMP_2_5/AI_AMP_2_5.h
2.code/aicos/app/AI_AMP_2_5/bk_opus_coder.c
2.code/aicos/app/AI_AMP_2_5/bk_websocket.c
2.code/aicos/app/AI_AMP_2_5/dev_authentication.c
2.code/aicos/projects/banyan/ap/307h_du_tracker/default_config
2.code/aicos/projects/banyan/ap/gx306l_h3_d_sms_aichat/config/connmgr_cfg.h
2.code/aicos/projects/banyan/ap/gx306l_h3_d_sms_aichat/config/pin_cfg.h
2.code/aicos/projects/banyan/ap/gx306l_h3_d_sms_aichat/config/serial/serial_config.h
2.code/aicos/projects/banyan/ap/gx306l_h3_d_sms_aichat/default_config
2.code/make.py

index 8ee1940..a1dc428 100644 (file)
@@ -35,7 +35,7 @@
 #include "app_msg.h"
 #include "aic_ogg.h"
 #include "efuse.h"
-#include "bk_make_time.h"
+// #include "bk_make_time.h"
 // #include "opus/include/opus.h"
 char FXH01_Version[100];
 
@@ -47,7 +47,7 @@ typedef enum
     attributes_format_OPUS,
 }attributes_format_type;
 attributes_format_type inbound_attributes_format = attributes_format_PCM;
-attributes_format_type outbound_attributes_format = attributes_format_PCM;
+attributes_format_type outbound_attributes_format = attributes_format_OPUS;
 #define  OPUS_ENCODER_PACK_MS 60  //多少ms一帧数据
 
 
@@ -136,6 +136,7 @@ int play_data_len = 0;
 void VC_Play_End(void);
 //打开音频播放
 void VC_Play_Start(void);
+
 int bk_get_imei(char *imei)
 {
     if(imei == NULL)
@@ -143,6 +144,16 @@ int bk_get_imei(char *imei)
     strcpy(imei,vc_cfg.dev_imei);
     return 0;
 }
+
+int bk_get_iccid(char *iccid)
+{
+    if(iccid == NULL)
+        return -1;
+    strcpy(iccid,vc_cfg.ICCID);
+    return 0;
+}
+
+
 #if (BK_LOG_CFG==BK_LOG_UART)
 int bk_printf(const char *format, ...)
 {
@@ -281,7 +292,7 @@ void reset_VC_cfg(void)
     //vc_cfg.dev_type = DEV_ADS;//奥德赛
     vc_cfg.dev_type = DEV_JSWM;//金山完美
     //vc_cfg.dev_type = DEV_ALY;//阿里云
-    //strcpy(vc_cfg.server_ip,"amp.raisound.com");//服务器地址
+    // strcpy(vc_cfg.server_ip,"amp.raisound.com");//服务器地址
     strcpy(vc_cfg.server_ip,"115.190.94.208:22080");//服务器地址
     vc_cfg.VC_mode =0;//对话模式
     strcpy(vc_cfg.power_on_tone,"你好,请问您有什么需要我帮忙的吗?");//开机提示词
@@ -332,6 +343,38 @@ int init_VC_cfg(void)
     return 0;
 }
 
+
+int   isExist_file(char *filepath){
+
+
+    FILE *fp = NULL;
+    fp = fopen(filepath,"r");
+
+    if(fp){
+
+     fclose(fp);
+
+     return 0;
+
+    }else{
+
+      return -1;
+    }
+     
+
+}
+ 
+int isneedsave=0;
+
+int startsave_tts=0;
+
+FILE *fp_tts_save = NULL;
+
+u8  recv_get[1024];
+
+static int play_audio_file_event(char *file_name);
+
+
 int check_text(char *text,int ret_str_len)
 {
     //bk_printf("check_text:text:%s",text);
@@ -413,6 +456,26 @@ int check_text(char *text,int ret_str_len)
         
     }
 
+
+    //  status
+
+    if(strstr(text,"升级版本"))
+    {
+
+        AI_AMP_MSG_put("开始升级版本,大概需要几分钟",strlen("开始升级版本,大概需要几分钟"),VC_TTS_PLAY);
+        ret = 0;
+        goto RET;
+    }
+
+    if(strstr(text,"最新版本"))
+    {
+
+        AI_AMP_MSG_put("当前版本是最新的",strlen("当前版本是最新的"),VC_TTS_PLAY);
+        ret = 0;
+        goto RET;
+    }
+
+
     if(strstr(text,"查询"))
     {
         if(strstr(text,"信号"))
@@ -448,8 +511,51 @@ int check_text(char *text,int ret_str_len)
             goto RET;
         }else if(strstr(text,"设备号"))
         {
-            tmp_data_len = snprintf(tmp_data,sizeof(tmp_data),"当前设备号为:%s。",vc_cfg.dev_imei);
-            AI_AMP_MSG_put(tmp_data,tmp_data_len,VC_TTS_PLAY);   
+            tmp_data_len = snprintf(tmp_data,sizeof(tmp_data),"当前设备号为%s。",vc_cfg.dev_imei);
+
+            // bk_printf("playshebei");
+
+    
+            isneedsave=isExist_file("C:/cmd_local_301.pcm");
+
+            if(isneedsave==0){
+
+                bk_printf("exist");
+
+                     // play_audio_file_event("C:/R_POWER_1.mp3");
+
+                   FILE  *fp_play_local=fopen("C:/cmd_local_301.pcm","r");
+
+
+                   if(fp_play_local){
+
+
+                     while(fread(recv_get,1,1024,fp_play_local)>0){
+
+                        // fread(recv_get,1,1024,fp_play_local);
+                        //  bk_printf("readttsfile");          
+
+                       AI_VC_put_play_data(recv_get,1024);
+
+                                         
+                     }
+
+                     fclose(fp_play_local);
+                   }     
+
+            }else{
+               
+                 bk_printf("needsave");
+                 
+                 fp_tts_save=fopen("C:/cmd_local_301.pcm","wb");           
+
+                 AI_AMP_MSG_put(tmp_data,tmp_data_len,VC_TTS_PLAY);
+
+                 startsave_tts=1;
+
+            }
+
+              
             ret = 0;
             goto RET;
         }else if(strstr(text,"卡号"))
@@ -731,9 +837,10 @@ static void AI_VC_send_satrt(char is_greeting)
     cJSON_AddNumberToObject(outbound_cfg, "channel", 1);
     cJSON_AddNumberToObject(outbound_cfg, "volume", 100);
     cJSON_AddNumberToObject(outbound_cfg, "speech_rate", vc_cfg.speech_rate);
-    cJSON_AddNumberToObject(outbound_cfg, "chunk_interval_ms", 20);
+    cJSON_AddNumberToObject(outbound_cfg, "chunk_interval_ms", 10);
     //cJSON_AddStringToObject(outbound_cfg, "voice", "7426720361733013513");
     //cJSON_AddStringToObject(outbound_cfg, "voice", "ICL_zh_female_huoponvhai_tob");
+
     
     if(vc_cfg.dev_type == DEV_ADS)
         cJSON_AddStringToObject(outbound_cfg, "voice", "7511638457475710987");
@@ -944,7 +1051,9 @@ void AI_VC_send_ping_ping(void)
     AI_VC_send_data("ping",strlen("ping"),AIC_WEBSOCKET_OPCODE_TEXT_FRAME);//发送数据
 }
 
+int send_count_pcm=0;
 
+int send_update=0;;
 
 static void AI_VC_send_task(void *thread_input)//websocket 发送线程
 {
@@ -984,8 +1093,14 @@ static void AI_VC_send_task(void *thread_input)//websocket 发送线程
                     }
                 }else
                 {
+
+                   
+
+                    //  audio_data(AI_VC_send_queue_data.data,AI_VC_send_queue_data.len,28);
+
                     ret = send_websocket_message(AI_client_VC,AI_VC_send_queue_data.data,AI_VC_send_queue_data.len,
                         (WebSocketMessageType)AI_VC_send_queue_data.AIC_WEBSOCKET_OPCODE);
+
                     //bk_printf("AI_VC_send_task:send str!");
                 }
                 
@@ -994,6 +1109,18 @@ static void AI_VC_send_task(void *thread_input)//websocket 发送线程
                 else if(AI_VC_send_queue_data.AIC_WEBSOCKET_OPCODE ==AIC_WEBSOCKET_OPCODE_BINARY_FRAME )
                 {
                     bk_printf("send ret=%d,len=%d",ret,AI_VC_send_queue_data.len);
+
+                   // send_update+=AI_VC_send_queue_data.len;
+
+                   //  send_count_pcm++;
+
+                   // bk_printf("send_count_pcm: %d  len: %d !",send_count_pcm,send_update);
+
+                   
+
+
+                  //  audio_data(AI_VC_send_queue_data.data,AI_VC_send_queue_data.len,25);
+
                 }
                 if(AI_VC_send_queue_data.data)    
                     aic_free(AI_VC_send_queue_data.data);
@@ -1142,12 +1269,28 @@ static void AI_VC_read_task(void *thread_input)//websocket 读线程
                     {
                         VC_state = VC_State_TTSStart;
                         play_data_len = 0;
+
+                        if(outbound_attributes_format == attributes_format_OPUS){
+
+                            bk_printf("opus_clean tts.started....\n");
+
+                            opus_clean();
+
+                        }
+                            
+                        
+             
                         AI_AMP_MSG_put(0,0,VC_PLAY_START);//打开声音
                         
                     }else if(strstr(recv_buff,"\"tts.completed\""))//tts结束
                     {
                         // VC_state = VC_State_TTSData;
                         // AI_AMP_MSG_put(0,0,VC_PLAY_START);//打开声音
+
+                        startsave_tts=0;
+
+                        if(fp_tts_save)
+                         fclose(fp_tts_save);
                         
                     }
                     else if(strstr(recv_buff,"\"completed\""))//结束
@@ -1184,8 +1327,22 @@ static void AI_VC_read_task(void *thread_input)//websocket 读线程
                     
                     
                     bk_printf("read BIN  status:%d,code:%d!!!!!!",status,code);
+
+                    if(startsave_tts==1){
+
+                        if(fp_tts_save){
+
+                            //  bk_printf("save tts!!!");
+                            fwrite(recv_buff,1,status,fp_tts_save);
+                        }
+                    }
+
+
+                    // audio_data(recv_buff,status,29);
+
                     if(outbound_attributes_format == attributes_format_OPUS)
                     {
+                        bk_printf("ogg_opus_decode_data");
                         ogg_opus_decode_data(recv_buff,status);
                     }else
                     {
@@ -1261,9 +1418,11 @@ static void AI_VC_record_task(void *thread_input)//录音线程
         //bk_printf("AI_VC_record_task 1 ");
         ret = app_audio_read(APP_AUDIO_TYPE_STREAM_DUPLEX,
             vrecord_buf, 3200, 1010);
+
+       // audio_data(vrecord_buf,ret,23);
         // u32 timer_ms = aos_get_tickcount();
         // bk_printf("%d:ret=%d",timer_ms,ret);
-        app_logi("AI_VC_record_task app_audio_read len = %d,VC_state = %d",ret,VC_state);
+      //  app_logi("AI_VC_record_task app_audio_read len = %d,VC_state = %d",ret,VC_state);
         if(ret<=0)
         {
             //bk_printf("AI_VC_record_task continue len = %d,VC_state = %d",ret,VC_state);
@@ -1282,8 +1441,9 @@ static void AI_VC_record_task(void *thread_input)//录音线程
             run_vad((int16_t *)vrecord_buf, ret / 2);
             //bk_printf("run_vad 用时:%d",aos_get_tickcount()-vad_test_time);
             vad_status_t = vad_detect(); 
-            //bk_printf("VAD:vad_status_t:%d",vad_status_t);  
-            audio_data(vrecord_buf,ret,23);
+            //  bk_printf("VAD:vad_status_t:%d",vad_status_t);  
+            //  audio_data(vrecord_buf,ret,23);
+
             if (vad_status_t == 2) {//说话停止
                 vad_clear();
                 if(VAD_status == 1)//清空buff
@@ -1302,9 +1462,9 @@ static void AI_VC_record_task(void *thread_input)//录音线程
                     AI_VC_put_record_data(vrecord_buf,ret);
                 }
                 VAD_status = 2;
-                audio_data(vrecord_buf,ret,21);
+              //  audio_data(vrecord_buf,ret,21);
                 memset(vrecord_buf,0xff,sizeof(vrecord_buf));
-                audio_data(vrecord_buf,sizeof(vrecord_buf),21);
+              //  audio_data(vrecord_buf,sizeof(vrecord_buf),21);
             }else if(vad_status_t == 1 )//检测到说话
             {
 
@@ -1323,7 +1483,7 @@ static void AI_VC_record_task(void *thread_input)//录音线程
                         {
                             
                             unsigned int r_len =  bk_rb_read(VAD_rb_data,vad_r_tmp,2560);
-                            audio_data(vad_r_tmp,r_len,21);
+                         //   audio_data(vad_r_tmp,r_len,21);
                             //AI_VC_send_data(vad_r_tmp,r_len,AIC_WEBSOCKET_OPCODE_BINARY_FRAME);//发送缓冲数据
                             AI_VC_put_record_data(vad_r_tmp,r_len);//入队缓冲数据
                             if(vc_cfg.is_KWS)
@@ -1352,7 +1512,7 @@ static void AI_VC_record_task(void *thread_input)//录音线程
                 
 
                 AI_VC_put_record_data(vrecord_buf,ret);
-                audio_data(vrecord_buf,ret,21);
+               // audio_data(vrecord_buf,ret,21);
                 if(vc_cfg.is_KWS)
                 {
                     int KWS_time = aos_get_tickcount();
@@ -1410,7 +1570,7 @@ static void AI_VC_record_task(void *thread_input)//录音线程
                     {
                         if(aos_recv_from_queue(AI_VC_record_tmp_queue,&AI_VC_play_record_data,AOS_NO_WAIT) == AOS_SUCCESS)//有有效录音数据
                         {
-                            audio_data(AI_VC_play_record_data.data,AI_VC_play_record_data.len,22);
+                          //  audio_data(AI_VC_play_record_data.data,AI_VC_play_record_data.len,22);
                             
                             AI_VC_send_data(AI_VC_play_record_data.data,AI_VC_play_record_data.len,AIC_WEBSOCKET_OPCODE_BINARY_FRAME);
                             if(AI_VC_play_record_data.data)
@@ -2751,6 +2911,12 @@ static void sys_10S_timeout_even(void)
     //tmp_data_len = snprintf(tmp_data,sizeof(tmp_data),"当前电量为百分之%d。",psy_info.bat_capacity);
 }
 
+ // extern char *ota_url;
+
+ const char *bk_make_timer = "V1_2_250730_1";
+
+
+
 static void AI_AMP_2_5_task(void *thread_input)//做逻辑线程
 {
     char count = 30;
@@ -2760,12 +2926,25 @@ static void AI_AMP_2_5_task(void *thread_input)//做逻辑线程
     init_VC_cfg();
    
     app_audio_set_master_volume(15*vc_cfg.VC_TTS_volume/100);
-    play_audio_file_event("C:/R_POWER_1.mp3");
-    //aic_get_version(FXH01_Version,sizeof(FXH01_Version));
-    snprintf(FXH01_Version,sizeof(FXH01_Version),"FX01H_%s",bk_make_timer);
+
+     play_audio_file_event("C:/R_POWER_1.mp3");
+
+     // play_audio_file("C:/R_POWER_1.mp3");
+
+     // aic_get_version(FXH01_Version,sizeof(FXH01_Version));
+     // snprintf(FXH01_Version,sizeof(FXH01_Version),"FX01H_%s",bk_make_timer);
+
+     snprintf(FXH01_Version,sizeof(FXH01_Version),"FX01H_%s",bk_make_timer);
+
+     // bk_printf("new version123...\n");
+
+     // http://dmp-ota.tos-cn-guangzhou.volces.com/ota/2025_07_24/1948312805093978114gx306l_h3.diff
+
     bk_printf("FXH01_Version:%s",FXH01_Version);
     bk_printf("FXH01_Version:%s",FXH01_Version);
     bk_printf("FXH01_Version:%s",FXH01_Version);
+
+
     while(count --)
     {
         pdp_activated = aic_is_default_pdp_activated();
@@ -2776,6 +2955,7 @@ static void AI_AMP_2_5_task(void *thread_input)//做逻辑线程
         //audio_play_tone(3,500);//播放提示音,测试用
         aos_sleep(1000);
     }
+
     bk_websocket_demo();
     aic_get_uid(uid,&uid_len);
     bk_printf("UID:%s",uid);
@@ -2787,6 +2967,20 @@ static void AI_AMP_2_5_task(void *thread_input)//做逻辑线程
     memset(vc_cfg.ICCID,0,sizeof(vc_cfg.ICCID));
     aic_srv_tele_sim_get_iccid_sync(current_card_id,vc_cfg.ICCID);
     bk_printf("vc_cfg.ICCID:%s",vc_cfg.ICCID);
+
+    bk_printf("start V123dev_authentication_init123456 ..... \n");
+
+    // play_audio_file_event("C:/local_tts_004.wav");
+
+    ota_check_version();
+
+    // AI_AMP_MSG_put("正常启动",4,VC_TTS_PLAY);
+
+    ota_update_version();
+
+    // if(strlen(ota_url)>3){
+
+
     dev_authentication_init();
     count =50;
     while(count --)
@@ -2807,13 +3001,13 @@ static void AI_AMP_2_5_task(void *thread_input)//做逻辑线程
         aic_assert(sys_10S_timer);
     }
     aic_network_enable_pdp_nic_capdump();//打开网络调试log
-    struct AuthInfo auth_info;
-    strcpy(auth_info.dmp_token, get_token());
-    auth_vad(&auth_info);
+    
     // while(1)
     // {
     //     aos_sleep(1000);
     // }
+ 
+
     if(vc_cfg.dev_type == DEV_JSWM)//金三完美使用dmp配置开场白
     {
         AI_VC_start(1);
index 0f4d2da..0d3dd53 100644 (file)
@@ -6,7 +6,8 @@
 #define BK_LOG_USB 2//USB打印
 
 
-#define BK_LOG_CFG BK_LOG_UART
+// #define BK_LOG_CFG BK_LOG_UART
+
 typedef enum 
 {
     DEV_FX1_H,//玩具机芯
@@ -32,8 +33,8 @@ typedef struct
     unsigned int start_flag;
     char dev_pass[50];
     DEV_TYPE dev_type;//产品
-    char dev_imei[20] ;
-    char ICCID[20] ;
+    char dev_imei[30] ;
+    char ICCID[30] ;
     char server_ip[100];//服务器地址
     char VC_mode ;//对话模式
     char power_on_tone[1024];//开机提示词
index 86bc93d..7dd5d28 100644 (file)
@@ -154,6 +154,10 @@ void opus_clean(void)
         bk_rb_clear(OPUS_encoder_rb_data);
     }
     ogg_hend_len = 0;
+
+    // bk_printf("opus_clean ogg_hend_len123:%d",ogg_hend_len);
+
+    //  bk_printf("opus_clean bk_rb_data_len:%d",bk_rb_data_len(OPUS_decoder_rb_data));
 }
 int opus_encode_data(char *PCM_data,int data_len,int one_pack_len,char *opus_data,int opus_data_max_len)
 {
@@ -270,8 +274,14 @@ int ogg_opus_decode_data(char *in_ogg_data,int in_ogg_data_len)
             /**********1阶段判断头********** */
             if(ogg_hend_len==0)//没有剩余的头数据
             {
+                bk_printf("ogg_hend_len123:%d",ogg_hend_len);
+
+                bk_printf("bk_rb_data_len:%d",bk_rb_data_len(OPUS_decoder_rb_data));
+               
                 bk_rb_read(OPUS_decoder_rb_data,ogg_hend,27);
                 ogg_hend_len+=27;//读页头
+
+                
                 
             }
             /**********2阶段判段数********** */
@@ -356,6 +366,9 @@ int ogg_opus_decode_data(char *in_ogg_data,int in_ogg_data_len)
                             if (ret == OPUS_RESULT_ERROR) {
                                 bk_printf("opus解码  error:%d", ret);
                                 //bk_printf("ogg data:");
+
+                                audio_data(ogg_buf,27+seg_num+seg_size,27);
+
                                 bk_print_hex(ogg_buf,27+seg_num+seg_size);
                                 aic_free(pcm_buf);
                                 break;
index a4f06fb..1a28154 100644 (file)
@@ -413,6 +413,7 @@ int send_websocket_message(WebSocketClient *client, const unsigned char *message
     }
     offset += message_len;
 
+    // audio_data(message,message_len,27);
     // 发送帧
     if (send(client->sockfd, frame, offset, 0) < 0) {
         bk_printf("send message failed");
index 92352bb..9ad0993 100644 (file)
@@ -22,6 +22,8 @@
 #include "dev_authentication.h"
 #include "aic_http_comm.h"
 #include "aic_http_client.h"
+#include "aic_fota.h"
+
 #define bk_malloc aic_malloc
 #define bk_free aic_free
 int get_dev_pass_MAX_len(void)//获取设备密码最大长度,注意要防止内存越界
@@ -373,6 +375,8 @@ void aut_active(void)//设备激活
     bk_printf("dev_id:%s timestamp:%s ",deviceId,timestamp_str);
     char *sign_url = "http://dmp.raisound.com/bz-api/dev/auth/active";
 
+    bk_printf("http://dmp.raisound.com/bz-api/dev/auth/active\n");
+
     u32 response = 0;
     //创建客户端实例
     aut_active_http_handle = aic_http_client_create("HTTP_DEMO_CLIENT_NAME");
@@ -500,6 +504,688 @@ aut_active_return:
     if(aut_active_http_handle)
         aic_http_client_delete(aut_active_http_handle);
 }
+
+void update_iccid(void)//设备激活
+{
+    int ret;
+    bk_printf("update_iccid");
+
+
+    AIC_HTTPS_CLIENT_INSTANCE *http_client;
+    char deviceId[30] = {0};
+    //char dev_pass_base64[100] ={0};
+   // char enc_iv[65] = {0};
+
+    char dev_iccid[100] ={0};
+
+    // http创建客户端句柄
+    u32 aut_active_http_handle = 0;
+    char *aut_buf =NULL;
+    char *json_string =NULL;
+    char form_data_string[200]={0};
+
+
+    char  sign_url[200]={0};
+
+    cJSON *root = NULL;
+    aut_buf = bk_malloc(5*1024);
+    if(aut_buf)
+        memset(aut_buf , 0,5*1024);
+    else
+        goto aut_active_return;
+
+    bk_get_imei(deviceId);
+
+    bk_get_iccid(dev_iccid);
+
+    
+   // const char *signMethod ="MD5";
+
+   // alog_info("http demo start");
+    //登陆数据
+
+   // bk_printf("dev_id:%s timestamp:%s ",deviceId,timestamp_str);
+   // char *sign_url = "http://dmp.raisound.com/bz-api/dev/iccid";
+
+    sprintf(sign_url,"http://dmp.raisound.com/bz-api/dev/iccid?deviceId=%s&iccid=%s",deviceId,dev_iccid);
+
+    bk_printf(sign_url);
+
+
+    //  http://dmp.raisound.com/bz-api/dev/iccid
+    u32 response = 0;
+    //创建客户端实例
+    aut_active_http_handle = aic_http_client_create("HTTP_DEMO_CLIENT_NAME");
+    if (aut_active_http_handle == 0) {
+        bk_printf("Failed to create HTTP client instance\n");
+        goto aut_active_return;
+    }
+    int url_value = aic_process_https_url(aut_active_http_handle,sign_url,AIC_HTTP_HEAD);               
+    bk_printf("url_value:%d",url_value);      
+    http_client = (AIC_HTTPS_CLIENT_INSTANCE *)aut_active_http_handle;
+    http_client->login_info.server_port = 80;
+    aic_http_client_connect(aut_active_http_handle, 5000);
+        
+    // 创建JSON对象
+    root = cJSON_CreateObject();
+    if (root == NULL) {
+    bk_printf( "Failed to create JSON object\n");
+        goto aut_active_return; ;
+    }
+
+    // 添加字段
+   // cJSON_AddStringToObject(root, "deviceId", deviceId);
+   // cJSON_AddStringToObject(root, "iccid", dev_iccid);
+    //cJSON_AddStringToObject(root, "sign", md5_buf);
+    //cJSON_AddStringToObject(root, "timeStamp", timestamp_str);
+    // cJSON_AddStringToObject(root, "signMethod", signMethod);
+
+    // 生成JSON字符串
+    json_string = cJSON_Print(root);
+    if (json_string == NULL) {
+    bk_printf("Failed to print JSON\n");
+        //cJSON_Delete(root);
+        goto aut_active_return; 
+    }
+
+    // 输出JSON
+    bk_printf("JSON output: %s\n", json_string);
+
+    //sprintf(form_data_string,"deviceId=%s&iccid=%s",deviceId,dev_iccid);
+
+    //bk_printf("form_data_string: %s\n", form_data_string);
+
+
+    aic_https_client_request_initialize(aut_active_http_handle,AIC_HTTPS_METHOD_POST, strlen(json_string),
+    0, NULL,NULL, 10000);
+    
+    aic_https_client_request_header_add(aut_active_http_handle,"Content-Type",strlen("Content-Type"),"application/json",strlen("application/json"),10000);//添加头
+    bk_printf("aic_https_client_request_header_add1");
+
+    aic_https_client_request_header_add(aut_active_http_handle,"bz-dt",strlen("bz-dt"),aut_token,strlen(aut_token),10000);//添加头
+    bk_printf("aic_https_client_request_header_add3");
+
+    
+    response = nx_web_http_client_request_send(http_client->https_client,10 * 1000);
+
+
+    http_client->https_client->nx_web_http_client_state = NX_WEB_HTTP_CLIENT_STATE_POST;
+
+   ret = aic_https_client_put_data(aut_active_http_handle, json_string, strlen(json_string),
+   1000);
+    if (ret == 0) {
+        bk_printf("数据发送成功\n");
+
+   } else {
+        // 处理错误
+        bk_printf("数据发送失败,错误码: %d\n", ret);
+        goto aut_active_return; 
+    }
+    
+    long read_bytes = aic_https_client_response_data_get(aut_active_http_handle,aut_buf,5*1024,10000);
+
+    bk_printf("read_bytes :%d\n",read_bytes);
+
+
+    if(read_bytes<=0)
+        goto aut_active_return; 
+
+    bk_printf("http put data update_iccid :%s",aut_buf);
+
+    char *str_tmp = NULL;
+    str_tmp = strstr(aut_buf,"\"password\":\"");
+    //bk_printf("str_tmp:%p",str_tmp);
+    if(str_tmp)//解析password
+    {
+       // str_tmp += strlen("\"password\":\"");
+      //  int count = str_count(str_tmp,'\"');
+       // bk_printf("count:%d",count);
+       // if(count < sizeof(dev_pass_base64))
+       // {
+        //    memcpy(dev_pass_base64,str_tmp,count);
+        //    dev_pass_base64[count] = 0;
+        //    bk_printf("dev_pass_base64:%s",dev_pass_base64);
+            
+       // }else
+       // {
+       //     bk_printf("激活获取base64失败");
+       // }
+    }
+    str_tmp = NULL;
+    str_tmp = strstr(aut_buf,"\"nonce\":\"");
+    if(str_tmp)//nonce
+    {
+       // str_tmp += strlen("\"nonce\":\"");
+       // int count = str_count(str_tmp,'\"');
+       // if(count < sizeof(enc_iv))
+       // {
+        //    if(count>=sizeof(enc_iv))
+        //        count = sizeof(enc_iv)-1;
+        //    memcpy(enc_iv,str_tmp,count);
+        //    enc_iv[count] = 0;
+        //    bk_printf("nonce:%s",enc_iv);
+            
+        //}
+       // else
+       // {
+          //  bk_printf("激活获取nonce失败");
+       // }
+    }
+    int dev_pass_len = get_dev_pass_MAX_len();
+    char *dev_pass = bk_malloc(dev_pass_len);
+    if(dev_pass)
+    {
+       // memset(dev_pass,0,dev_pass_len);
+       // if(strlen(enc_iv)>8 && strlen(dev_pass_base64)>8)
+       // {
+          //  aes_cbc_pkcs5_decrypt(dev_pass_base64, dev_key, enc_iv,dev_pass,&dev_pass_len);//解密
+          //  dev_pass[dev_pass_len] = 0;
+          //  bk_printf("dev_pass:%s dev_pass_len:%d",dev_pass,dev_pass_len);
+           // save_dev_pass(dev_pass);//保存设备密钥
+        //}
+       // bk_free(dev_pass);
+
+    }else
+    {
+        bk_printf("dev_pass malloc error!!!!!!!!!!!");
+    }
+        
+    
+aut_active_return:   
+    // 释放内存
+    if(aut_buf)
+        bk_free(aut_buf);
+    if(json_string)
+        cJSON_free(json_string);
+    if(root)
+        cJSON_Delete(root);
+    if(aut_active_http_handle)
+        aic_http_client_delete(aut_active_http_handle);
+}
+
+ char ota_url[200] ={0};
+
+static int apifota_start_h3(void) 
+{ 
+ struct fota_input fota_input; 
+
+ // u8 url[]="http:// xx.xx.xx.xx /doc/test_fota/gx316h_h1_old_to_new.diff"; 
+ u8 user_name[]=""; 
+ u8 password[]=""; 
+ 
+    if(strlen(ota_url)<3)
+       return -1;
+
+ bk_printf("apifota_start_h3:%s\n",ota_url); 
+
+
+ memset(fota_input.http.url,0,257);
+
+ strncpy(fota_input.http.url, ota_url, strlen(ota_url)); 
+
+ fota_input.http.port=80; 
+
+ strncpy(fota_input.http.user_name, user_name, strlen(user_name)); 
+ strncpy(fota_input.http.password, password, strlen(password)); 
+
+ fota_input.serial_port_id=0xFF; 
+ fota_input.serial_port_baud=0; 
+
+ fota_input.upgrd_mode=0; 
+
+ fota_input.upgrd_type=FOTA_UPG_ALL;
+
+ fota_input.dl_urc=10; 
+ fota_input.upgrd_urc=18; 
+ 
+ fota_start(&fota_input); 
+
+//if(retstatus==0){
+       
+  bk_printf("fota_start success\n"); 
+
+//}else{
+       
+   // bk_printf("fota_start fail\n"); 
+ 
+//}
+
+
+
+ return 0; 
+}
+
+
+static void apifota_callback(void *user_data, int event, u32 data1, u32 data2) 
+{ 
+    bk_printf("apifota_callback test!!!\n"); 
+} 
+
+static int apifota_callback_init(void) 
+{ 
+if(AIC_SUCCESS != fota_notify_register(apifota_callback, 0,  
+FOTA_START_BY_APP)) 
+    { 
+        FASSERT(0); 
+        return -1; 
+    } 
+ return 0; 
+} 
+
+
+
+void ota_check_version(void)//OTA更新
+{
+    int ret;
+    bk_printf("ota_check_version");
+
+
+    AIC_HTTPS_CLIENT_INSTANCE *http_client;
+    char deviceId[30] = {0};
+    //char dev_pass_base64[100] ={0};
+
+    // http创建客户端句柄
+    u32 aut_active_http_handle = 0;
+    char *aut_buf =NULL;
+
+    //char *json_string =NULL;
+    //char form_data_string[200]={0};
+
+    char  sign_url[200]={0};
+
+    cJSON *root = NULL;
+    aut_buf = bk_malloc(5*1024);
+    if(aut_buf)
+        memset(aut_buf , 0,5*1024);
+    else
+        goto aut_active_return;
+
+    bk_get_imei(deviceId);
+
+    // bk_get_iccid(dev_iccid);
+ 
+    sprintf(sign_url,"http://dmp.raisound.com/bz-api/ota/task?deviceId=%s&sourceVersion=%s",deviceId,FXH01_Version);
+
+    bk_printf(sign_url);
+
+    u32 response = 0;
+    //创建客户端实例
+    aut_active_http_handle = aic_http_client_create("HTTP_DEMO_CLIENT_NAME");
+    if (aut_active_http_handle == 0) {
+        bk_printf("Failed to create HTTP client instance\n");
+        goto aut_active_return;
+    }
+    int url_value = aic_process_https_url(aut_active_http_handle,sign_url,AIC_HTTP_HEAD);               
+    bk_printf("url_value:%d",url_value);      
+    http_client = (AIC_HTTPS_CLIENT_INSTANCE *)aut_active_http_handle;
+    http_client->login_info.server_port = 80;
+    aic_http_client_connect(aut_active_http_handle, 5000);
+        
+    // 创建JSON对象
+    root = cJSON_CreateObject();
+    if (root == NULL) {
+    bk_printf( "Failed to create JSON object\n");
+        goto aut_active_return; ;
+    }
+ 
+    // 输出JSON
+    // bk_printf("JSON output: %s\n", json_string);
+
+    aic_https_client_request_initialize(aut_active_http_handle,AIC_HTTPS_METHOD_GET, 0,
+    0, NULL,NULL, 10000);
+    
+   // aic_https_client_request_header_add(aut_active_http_handle,"Content-Type",strlen("Content-Type"),"application/json",strlen("application/json"),10000);//添加头
+   // bk_printf("aic_https_client_request_header_add1");
+
+   // aic_https_client_request_header_add(aut_active_http_handle,"bz-dt",strlen("bz-dt"),aut_token,strlen(aut_token),10000);//添加头
+   // bk_printf("aic_https_client_request_header_add3");
+
+    response = nx_web_http_client_request_send(http_client->https_client,10 * 1000);
+
+    // http_client->https_client->nx_web_http_client_state = NX_WEB_HTTP_CLIENT_STATE_GET;
+    // ret = aic_https_client_put_data(aut_active_http_handle, json_string, strlen(json_string),
+    // 1000);
+
+  ret=0;
+    if (ret == 0) {
+        bk_printf("数据发送成功\n");
+
+   } else {
+        // 处理错误
+        bk_printf("数据发送失败,错误码: %d\n", ret);
+        goto aut_active_return; 
+    }
+    
+    long read_bytes = aic_https_client_response_data_get(aut_active_http_handle,aut_buf,5*1024,10000);
+
+    bk_printf("read_bytes :%d\n",read_bytes);
+
+    if(read_bytes<=0)
+        goto aut_active_return; 
+
+    bk_printf("ota_check_version :%s",aut_buf);
+
+
+     char *str_tmp = NULL;
+    str_tmp = strstr(aut_buf,"\"url\":\"");
+    //bk_printf("str_tmp:%p",str_tmp);
+    if(str_tmp)//解析password
+    {
+        str_tmp += strlen("\"url\":\"");
+        int count = str_count(str_tmp,'\"');
+        bk_printf("count:%d",count);
+        if(count < sizeof(ota_url))
+        {
+            memcpy(ota_url,str_tmp,count);
+            ota_url[count] = 0;
+            bk_printf("otaurl:%s",ota_url);
+
+
+            
+        }
+        else
+        {
+            bk_printf("获取otaurl失败");
+        }
+    }
+
+    if(strlen(ota_url)>3){
+
+
+            int total_size=0,dl_dize=0;
+
+            int status_fota=0;
+
+            int count_test=10;
+
+            bk_printf("OTA need update 2222....\n");
+
+          
+
+           while(count_test--){
+
+             //       // status_fota=fota_get_stage();
+
+             //       // fota_get_download_size(&total_size,&dl_dize);
+                
+               bk_printf("count: %d  ....",count_test);
+
+               aos_sleep(1000);
+
+          }
+
+             apifota_start_h3();
+
+           //    fota_stop();
+    }else{
+
+
+        
+    }
+
+    
+ 
+aut_active_return:   
+    // 释放内存
+    if(aut_buf)
+        bk_free(aut_buf);
+   // if(json_string)
+   //     cJSON_free(json_string);
+    if(root)
+        cJSON_Delete(root);
+    if(aut_active_http_handle)
+        aic_http_client_delete(aut_active_http_handle);
+}
+
+
+void ota_download_version(void)//OTA更新
+{
+    int ret;
+    bk_printf("ota_download_version");
+
+
+    AIC_HTTPS_CLIENT_INSTANCE *http_client;
+    char deviceId[30] = {0};
+    //char dev_pass_base64[100] ={0};
+
+    // http创建客户端句柄
+    u32 aut_active_http_handle = 0;
+    char *aut_buf =NULL;
+
+    //char *json_string =NULL;
+    //char form_data_string[200]={0};
+
+    char  sign_url[200]={0};
+
+    cJSON *root = NULL;
+    aut_buf = bk_malloc(5*1024);
+    if(aut_buf)
+        memset(aut_buf , 0,5*1024);
+    else
+        goto aut_active_return;
+
+    bk_get_imei(deviceId);
+
+    // bk_get_iccid(dev_iccid);
+ 
+    sprintf(sign_url,"http://dmp-ota.tos-cn-guangzhou.volces.com/ota/2025_07_24/1948312805093978114gx306l_h3.diff");
+
+    bk_printf(sign_url);
+
+    u32 response = 0;
+    //创建客户端实例
+    aut_active_http_handle = aic_http_client_create("HTTP_DEMO_CLIENT_NAME");
+    if (aut_active_http_handle == 0) {
+        bk_printf("Failed to create HTTP client instance\n");
+        goto aut_active_return;
+    }
+    int url_value = aic_process_https_url(aut_active_http_handle,sign_url,AIC_HTTP_HEAD);               
+    bk_printf("url_value:%d",url_value);      
+    http_client = (AIC_HTTPS_CLIENT_INSTANCE *)aut_active_http_handle;
+    http_client->login_info.server_port = 80;
+    aic_http_client_connect(aut_active_http_handle, 5000);
+        
+    // 创建JSON对象
+    root = cJSON_CreateObject();
+    if (root == NULL) {
+    bk_printf( "Failed to create JSON object\n");
+        goto aut_active_return; ;
+    }
+ 
+    // 输出JSON
+    // bk_printf("JSON output: %s\n", json_string);
+
+    aic_https_client_request_initialize(aut_active_http_handle,AIC_HTTPS_METHOD_GET, 0,
+    0, NULL,NULL, 10000);
+    
+    response = nx_web_http_client_request_send(http_client->https_client,10 * 1000);
+
+    ret=0;
+
+    if (ret == 0) {
+        bk_printf("数据发送成功\n");
+
+   } else {
+        // 处理错误
+        bk_printf("数据发送失败,错误码: %d\n", ret);
+        goto aut_active_return; 
+    }
+    
+    long read_bytes = aic_https_client_response_data_get(aut_active_http_handle,aut_buf,5*1024,10000);
+
+    bk_printf("read_bytes :%d\n",read_bytes);
+
+    if(read_bytes<=0)
+        goto aut_active_return; 
+
+    bk_printf("ota_download_version :%s",aut_buf);
+
+
+aut_active_return:   
+    // 释放内存
+    if(aut_buf)
+        bk_free(aut_buf);
+   // if(json_string)
+   //     cJSON_free(json_string);
+    if(root)
+        cJSON_Delete(root);
+    if(aut_active_http_handle)
+        aic_http_client_delete(aut_active_http_handle);
+}
+
+void ota_update_version(void)//OTA上报
+{
+    int ret;
+    bk_printf("ota_update_version");
+
+
+    AIC_HTTPS_CLIENT_INSTANCE *http_client;
+    char deviceId[30] = {0};
+    //char dev_pass_base64[100] ={0};
+   // char enc_iv[65] = {0};
+
+    char dev_iccid[100] ={0};
+
+    // http创建客户端句柄
+    u32 aut_active_http_handle = 0;
+    char *aut_buf =NULL;
+    char *json_string =NULL;
+    char form_data_string[200]={0};
+
+
+    char  sign_url[200]={0};
+
+    cJSON *root = NULL;
+    aut_buf = bk_malloc(5*1024);
+    if(aut_buf)
+        memset(aut_buf , 0,5*1024);
+    else
+        goto aut_active_return;
+
+    bk_get_imei(deviceId);
+
+    // bk_get_iccid(dev_iccid);
+
+
+    sprintf(sign_url,"http://dmp.raisound.com/bz-api/ota/result?deviceId=%s&currentVersion=%s",deviceId,FXH01_Version);
+
+    bk_printf(sign_url);
+
+    //  http://dmp.raisound.com/bz-api/dev/iccid
+
+    u32 response = 0;
+    //创建客户端实例
+    aut_active_http_handle = aic_http_client_create("HTTP_DEMO_CLIENT_NAME");
+    if (aut_active_http_handle == 0) {
+        bk_printf("Failed to create HTTP client instance\n");
+        goto aut_active_return;
+    }
+    int url_value = aic_process_https_url(aut_active_http_handle,sign_url,AIC_HTTP_HEAD);               
+    bk_printf("url_value:%d",url_value);      
+    http_client = (AIC_HTTPS_CLIENT_INSTANCE *)aut_active_http_handle;
+    http_client->login_info.server_port = 80;
+    aic_http_client_connect(aut_active_http_handle, 5000);
+        
+    // 创建JSON对象
+    root = cJSON_CreateObject();
+    if (root == NULL) {
+    bk_printf( "Failed to create JSON object\n");
+        goto aut_active_return; ;
+    }
+
+    // 添加字段
+    // cJSON_AddStringToObject(root, "deviceId", deviceId);
+    // cJSON_AddStringToObject(root, "iccid", dev_iccid);
+    // cJSON_AddStringToObject(root, "sign", md5_buf);
+    // cJSON_AddStringToObject(root, "timeStamp", timestamp_str);
+    // cJSON_AddStringToObject(root, "signMethod", signMethod);
+
+    // 生成JSON字符串
+    json_string = cJSON_Print(root);
+    if (json_string == NULL) {
+    bk_printf("Failed to print JSON\n");
+        //cJSON_Delete(root);
+        goto aut_active_return; 
+    }
+
+    // 输出JSON
+    bk_printf("JSON output: %s\n", json_string);
+
+    //sprintf(form_data_string,"deviceId=%s&iccid=%s",deviceId,dev_iccid);
+
+    //bk_printf("form_data_string: %s\n", form_data_string);
+
+
+    aic_https_client_request_initialize(aut_active_http_handle,AIC_HTTPS_METHOD_POST, strlen(json_string),
+    0, NULL,NULL, 10000);
+    
+    aic_https_client_request_header_add(aut_active_http_handle,"Content-Type",strlen("Content-Type"),"application/json",strlen("application/json"),10000);//添加头
+    bk_printf("aic_https_client_request_header_add1");
+
+   // aic_https_client_request_header_add(aut_active_http_handle,"bz-dt",strlen("bz-dt"),aut_token,strlen(aut_token),10000);//添加头
+   // bk_printf("aic_https_client_request_header_add3");
+
+    
+    response = nx_web_http_client_request_send(http_client->https_client,10 * 1000);
+
+
+    http_client->https_client->nx_web_http_client_state = NX_WEB_HTTP_CLIENT_STATE_POST;
+
+   ret = aic_https_client_put_data(aut_active_http_handle, json_string, strlen(json_string),
+   1000);
+    if (ret == 0) {
+        bk_printf("数据发送成功\n");
+
+   } else {
+        // 处理错误
+        bk_printf("数据发送失败,错误码: %d\n", ret);
+        goto aut_active_return; 
+    }
+    
+    long read_bytes = aic_https_client_response_data_get(aut_active_http_handle,aut_buf,5*1024,10000);
+
+    bk_printf("read_bytes :%d\n",read_bytes);
+
+
+    if(read_bytes<=0)
+        goto aut_active_return; 
+
+    bk_printf("http put data update_iccid :%s",aut_buf);
+
+    char *str_tmp = NULL;
+    str_tmp = strstr(aut_buf,"\"password\":\"");
+    //bk_printf("str_tmp:%p",str_tmp);
+    if(str_tmp)//解析password
+    {
+       // str_tmp += strlen("\"password\":\"");
+      //  int count = str_count(str_tmp,'\"');
+       // bk_printf("count:%d",count);
+       // if(count < sizeof(dev_pass_base64))
+       // {
+        //    memcpy(dev_pass_base64,str_tmp,count);
+        //    dev_pass_base64[count] = 0;
+        //    bk_printf("dev_pass_base64:%s",dev_pass_base64);
+            
+       // }else
+       // {
+       //     bk_printf("激活获取base64失败");
+       // }
+    }
+   
+     
+aut_active_return:   
+    // 释放内存
+    if(aut_buf)
+        bk_free(aut_buf);
+    if(json_string)
+        cJSON_free(json_string);
+    if(root)
+        cJSON_Delete(root);
+    if(aut_active_http_handle)
+        aic_http_client_delete(aut_active_http_handle);
+}
+
+
 void aut_login(void)//登录
 {
     bk_printf("dev_sign_in 1");
@@ -692,7 +1378,11 @@ static void dev_authentication_task(void *thread_input)//鉴权逻辑线程
     //ase_encrypt_demo();
     //dev_NTP();//获取时间
     //aut_active();//激活
-    aut_login();//登录
+
+    aut_login();
+    
+    update_iccid();
+    //登录
     
 
     /**
@@ -741,3 +1431,5 @@ void dev_authentication_init(void)
         35,
         AOS_AUTO_START);
 }
+
+// AIC_BASIC_APP_P2_INIT_EXPORT(apifota_callback_init); 
\ No newline at end of file
index ae2fa08..9740038 100644 (file)
@@ -514,6 +514,9 @@ CONFIG_FOTA_HTTP_SUPPORT=y
 # end of FOTA protocol
 
 # CONFIG_ATFOTA is not set
+
+CONFIG_ATFOTA=y
+
 # CONFIG_FOTA_CERT_SUPPORT is not set
 CONFIG_COMPLETE_UPGRADE_PKG=y
 CONFIG_FOTA_CMIOT_CMD=y
index 3804231..d9bf95a 100644 (file)
@@ -15,7 +15,7 @@
 
 /* at cmd dev config tbl. */
 const static conn_dev_t s_at_dev_tbl[] = {
-//    {AIC_IODEV_UART,    AIC_COM0}, /* use the uart com5. */
+   //  {AIC_IODEV_UART,    AIC_COM0}, /* use the uart com5. */
 #ifdef CONFIG_CDC_ACM_INSTANCE
     {AIC_IODEV_USB,     AIC_COM2}, /* use the usb com2. */
 #endif
index 63d3826..f1e03c6 100644 (file)
@@ -9,7 +9,7 @@
 /* @@Platform: GX306 */
 /* @@Author:  */
 /* @@Version:  */
-/* @@Time: 2025/5/13 17:00:19 */
+/* @@Time: 2025/7/22 17:13:54 */
 
 #ifndef __PIN_CFG_H__
 #define __PIN_CFG_H__
@@ -51,8 +51,8 @@ const u32 pin_cfg0[][2] = {
 {REG_IOMUX_RFCTRL7,                   BIT_FUNC_SEL(1)},//RFFE_SDA
 {REG_PG1_PAD_CTRL_RFCTRL7,            BIT_PAD_DRV(1)|BIT_PAD_WPD|BIT_PAD_SLP_CP|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z},
 /* Group2 */
-{REG_IOMUX_IIS_MCLK,                  BIT_FUNC_SEL(3)},//GPIO20_MOT_EN1
-{REG_PG2_PAD_CTRL_IIS_MCLK,           BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_PX|BIT_PAD_SLP_OE},
+{REG_IOMUX_IIS_MCLK,                  BIT_FUNC_SEL(0)},//IIS_MCLK
+{REG_PG2_PAD_CTRL_IIS_MCLK,           BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z},
 {REG_IOMUX_IIS_CLK,                   BIT_FUNC_SEL(0)},//IIS_CLK
 {REG_PG2_PAD_CTRL_IIS_CLK,            BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z},
 {REG_IOMUX_IIS_LRCLK,                 BIT_FUNC_SEL(0)},//IIS_LRCLK
@@ -66,18 +66,18 @@ const u32 pin_cfg0[][2] = {
 {REG_IOMUX_UART1_TXD,                 BIT_FUNC_SEL(0)},//DEBUG_TXD
 {REG_PG2_PAD_CTRL_UART1_TXD,          BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPU|BIT_PAD_SLP_Z},
 /* Group3 */
-{REG_IOMUX_SSP_CS1,                   BIT_FUNC_SEL(3)},//2210_WAKE_6824
-{REG_PG3_PAD_CTRL_SSP_CS1,            BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_PX|BIT_PAD_SLP_OE},
+{REG_IOMUX_SSP_CS1,                   BIT_FUNC_SEL(3)},//MOT_EN_REV_GPO14
+{REG_PG3_PAD_CTRL_SSP_CS1,            BIT_PAD_DRV(1)|BIT_PAD_WPD|BIT_PAD_SLP_TOP|BIT_PAD_SLP_PX|BIT_PAD_SLP_OE},
 {REG_IOMUX_SSP_CLK,                   BIT_FUNC_SEL(3)},//NC
 {REG_PG3_PAD_CTRL_SSP_CLK,            BIT_PAD_DRV(2)|BIT_PAD_WPD|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z},
 {REG_IOMUX_SSP_CS0,                   BIT_FUNC_SEL(3)},//NC
 {REG_PG3_PAD_CTRL_SSP_CS0,            BIT_PAD_DRV(2)|BIT_PAD_WPD|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z},
-{REG_IOMUX_SSP_MISO,                  BIT_FUNC_SEL(3)},//NC
-{REG_PG3_PAD_CTRL_SSP_MISO,           BIT_PAD_DRV(1)|BIT_PAD_WPD|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z},
-{REG_IOMUX_SSP_MOSI,                  BIT_FUNC_SEL(3)},//NC
-{REG_PG3_PAD_CTRL_SSP_MOSI,           BIT_PAD_DRV(1)|BIT_PAD_WPD|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z},
-{REG_IOMUX_AUX_CLK0,                  BIT_FUNC_SEL(5)},//IIS_MCLK
-{REG_PG3_PAD_CTRL_AUX_CLK0,           BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z},
+{REG_IOMUX_SSP_MISO,                  BIT_FUNC_SEL(3)},//LED0_GPIO17
+{REG_PG3_PAD_CTRL_SSP_MISO,           BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z},
+{REG_IOMUX_SSP_MOSI,                  BIT_FUNC_SEL(3)},//LED1_GPIO18
+{REG_PG3_PAD_CTRL_SSP_MOSI,           BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z},
+{REG_IOMUX_AUX_CLK0,                  BIT_FUNC_SEL(3)},//GPIO19_MOT_EN
+{REG_PG3_PAD_CTRL_AUX_CLK0,           BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_PX|BIT_PAD_SLP_OE},
 /* Group4 */
 {REG_PG4_PAD_CTRL_PSRAM_RWDS,         BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_NONE|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z},
 {REG_PG4_PAD_CTRL_PSRAM_DQ7,          BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_NONE|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z},
@@ -96,12 +96,12 @@ const u32 pin_cfg0[][2] = {
 /* Group5 */
 {REG_IOMUX_GPO0,                      BIT_FUNC_SEL(4)},//TP_EN_GPO0
 {REG_PG5_PAD_CTRL_GPO0,               BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_PX|BIT_PAD_SLP_OE},
-{REG_IOMUX_GPO1,                      BIT_FUNC_SEL(4)},//MOT_EN_REV_GPO1
+{REG_IOMUX_GPO1,                      BIT_FUNC_SEL(4)},//2210_WAKE_6824
 {REG_PG5_PAD_CTRL_GPO1,               BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_PX|BIT_PAD_SLP_OE},
-{REG_IOMUX_EIU_INT4,                  BIT_FUNC_SEL(0)},//KEY3_INT4
-{REG_PG5_PAD_CTRL_EIU_INT4,           BIT_PAD_DRV(1)|BIT_PAD_WPU|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPU|BIT_PAD_SLP_IE},
+{REG_IOMUX_EIU_INT4,                  BIT_FUNC_SEL(4)},//MOT_EN_FWD_GPO2
+{REG_PG5_PAD_CTRL_EIU_INT4,           BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_PX|BIT_PAD_SLP_OE},
 {REG_IOMUX_EIU_INT5,                  BIT_FUNC_SEL(4)},//GPO3_INT5_TPQ1
-{REG_PG5_PAD_CTRL_EIU_INT5,           BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_PX|BIT_PAD_SLP_OE},
+{REG_PG5_PAD_CTRL_EIU_INT5,           BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_PX|BIT_PAD_SLP_IE},
 {REG_IOMUX_EIU_INT6,                  BIT_FUNC_SEL(5)},//IIC3_SDA
 {REG_PG5_PAD_CTRL_EIU_INT6,           BIT_PAD_DRV(1)|BIT_PAD_SSPU|BIT_PAD_SLP_MCU|BIT_PAD_SLP_SPU|BIT_PAD_SLP_Z},
 {REG_IOMUX_EIU_INT7,                  BIT_FUNC_SEL(5)},//IIC3_SCL
@@ -124,14 +124,14 @@ const u32 pin_cfg0[][2] = {
 {REG_PG6_PAD_CTRL_PMIC_INT,           BIT_PAD_DRV(1)|BIT_PAD_WPD|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPD|BIT_PAD_SLP_IE},
 {REG_IOMUX_CHIP_SLEEP,                BIT_FUNC_SEL(0)},//CHIP_SLEEP
 {REG_PG6_PAD_CTRL_CHIP_SLEEP,         BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_PX|BIT_PAD_SLP_OE},
-{REG_IOMUX_UART0_TXD,                 BIT_FUNC_SEL(4)},//MOT_EN_FWD_GPO
-{REG_PG6_PAD_CTRL_UART0_TXD,          BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_PX|BIT_PAD_SLP_OE},
+{REG_IOMUX_UART0_TXD,                 BIT_FUNC_SEL(1)},//KEY3_INT4
+{REG_PG6_PAD_CTRL_UART0_TXD,          BIT_PAD_DRV(1)|BIT_PAD_WPU|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPU|BIT_PAD_SLP_IE},
 {REG_IOMUX_UART0_RXD,                 BIT_FUNC_SEL(4)},//STATUS_GPO9
 {REG_PG6_PAD_CTRL_UART0_RXD,          BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_PX|BIT_PAD_SLP_OE},
-{REG_IOMUX_UART0_CTS,                 BIT_FUNC_SEL(1)},//G_EINT_INT6_GPO1
+{REG_IOMUX_UART0_CTS,                 BIT_FUNC_SEL(1)},//G_EINT_INT6_GPO10
 {REG_PG6_PAD_CTRL_UART0_CTS,          BIT_PAD_DRV(1)|BIT_PAD_WPU|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPU|BIT_PAD_SLP_IE},
 {REG_IOMUX_UART0_RTS,                 BIT_FUNC_SEL(4)},//GPO11_INT7_TPQ2
-{REG_PG6_PAD_CTRL_UART0_RTS,          BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_PX|BIT_PAD_SLP_OE},
+{REG_PG6_PAD_CTRL_UART0_RTS,          BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_PX|BIT_PAD_SLP_IE},
 {REG_IOMUX_EIU_INT0,                  BIT_FUNC_SEL(0)},//U_BOOT_KEY_KEYIN
 {REG_PG6_PAD_CTRL_EIU_INT0,           BIT_PAD_DRV(1)|BIT_PAD_WPU|BIT_PAD_SLP_MCU|BIT_PAD_SLP_WPU|BIT_PAD_SLP_IE},
 {REG_IOMUX_EIU_INT3,                  BIT_FUNC_SEL(4)},//CODEC_VDD_EN_GPO13
@@ -176,15 +176,15 @@ const u32 pin_cfg0[][2] = {
 {REG_IOMUX_SIM_DAT,                   BIT_FUNC_SEL(0)},//SIM0_DAT
 {REG_PG9_PAD_CTRL_SIM_DAT,            BIT_PAD_DRV(1)|BIT_PAD_SSPU|BIT_PAD_SLP_CP|BIT_PAD_SLP_SPU|BIT_PAD_SLP_Z},
 /* Group10 */
-{REG_IOMUX_CAN_TXD,                   BIT_FUNC_SEL(6)},//LED1_GPIO30
+{REG_IOMUX_CAN_TXD,                   BIT_FUNC_SEL(6)},//NC
 {REG_PG10_PAD_CTRL_CAN_TXD,           BIT_PAD_DRV(1)|BIT_PAD_WPD|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z},
-{REG_IOMUX_CAN_RXD,                   BIT_FUNC_SEL(6)},//LED2_GPIO32
+{REG_IOMUX_CAN_RXD,                   BIT_FUNC_SEL(6)},//NC
 {REG_PG10_PAD_CTRL_CAN_RXD,           BIT_PAD_DRV(1)|BIT_PAD_WPD|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z},
-{REG_IOMUX_CAN_STBY,                  BIT_FUNC_SEL(6)},//LED0_GPIO25
+{REG_IOMUX_CAN_STBY,                  BIT_FUNC_SEL(6)},//NC
 {REG_PG10_PAD_CTRL_CAN_STBY,          BIT_PAD_DRV(1)|BIT_PAD_WPD|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z},
 /* Group11 */
-{REG_IOMUX_SPI_LCD_SDI,               BIT_FUNC_SEL(6)},//NC
-{REG_PG11_PAD_CTRL_SPI_LCD_SDI,       BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z},
+{REG_IOMUX_SPI_LCD_SDI,               BIT_FUNC_SEL(6)},//LED3_GPIO26
+{REG_PG11_PAD_CTRL_SPI_LCD_SDI,       BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_TOP|BIT_PAD_SLP_PX|BIT_PAD_SLP_OE},
 {REG_IOMUX_SPI_LCD_SDO,               BIT_FUNC_SEL(5)},//SPI_D0
 {REG_PG11_PAD_CTRL_SPI_LCD_SDO,       BIT_PAD_DRV(1)|BIT_PAD_PX|BIT_PAD_SLP_MCU|BIT_PAD_SLP_WPD|BIT_PAD_SLP_Z},
 {REG_IOMUX_SPI_LCD_DCX,               BIT_FUNC_SEL(5)},//SPI_D1
index 5016b43..cc69f37 100644 (file)
@@ -160,7 +160,7 @@ struct aic_uart aic_uart[4] = {
         .inf = SERIAL_INF1,
         .dst_inf = SERIAL_INF1,
         .base = REG_BASE_TOP_UART,
-        .baud = 2000000,
+        .baud = 115200,
         .source_clk = SERIAL_96M_CLK,
         .irq = IRQ_TOP_UART0,
         .wsize = SERIAL_WSIZE1,
@@ -189,7 +189,7 @@ struct aic_uart aic_uart[4] = {
         .inf = SERIAL_INF2,
         .dst_inf = SERIAL_INF2,
         .base = REG_BASE_BLK_MCU_UART0,
-        .baud = 2000000,
+        .baud = 115200,
         .source_clk = SERIAL_26M_CLK,
         .irq = IRQ_UART0,
         .wsize = SERIAL_WSIZE1,
@@ -216,7 +216,7 @@ struct aic_uart aic_uart[4] = {
         .inf = SERIAL_INF3,
         .dst_inf = SERIAL_INF3,
         .base = REG_BASE_BLK_MCU_UART1,
-        .baud = 2000000,
+        .baud = 115200,
         .source_clk = SERIAL_26M_CLK,
         .irq = IRQ_UART1,
         .wsize = SERIAL_WSIZE1,
index 22cb2cb..8b7c128 100644 (file)
@@ -552,14 +552,14 @@ CONFIG_FOTA_SUPPORT=y
 #
 # FOTA protocol
 #
-# CONFIG_FOTA_HTTPS_SUPPORT is not set
-# CONFIG_FOTA_HTTP_SUPPORT is not set
+# CONFIG_FOTA_HTTPS_SUPPORT=y
+CONFIG_FOTA_HTTP_SUPPORT=y
 # CONFIG_FOTA_FTP_SUPPORT is not set
 # CONFIG_FOTA_BY_UART is not set
 # CONFIG_FOTA_BY_MCU is not set
 # end of FOTA protocol
 
-# CONFIG_ATFOTA is not set
+CONFIG_ATFOTA=y
 # CONFIG_FOTA_CERT_SUPPORT is not set
 CONFIG_COMPLETE_UPGRADE_PKG=y
 # CONFIG_FOTA_CMIOT_CMD is not set
index f5f9353..0e672a6 100644 (file)
@@ -6,7 +6,6 @@ import os, sys, time, re, shutil, platform
 import subprocess, fileinput
 from multiprocessing import cpu_count
 from colorama import init
-from datetime import datetime
 init(autoreset=True)
 
 # set global path and value
@@ -23,9 +22,7 @@ global md_board_name, nv_board_name, nvram_board_config
 global subsys_config, board_config
 global binary_path, board_path, common_path
 global maincmd, subcmd, thirdcmd
-# 获取当前日期时间
-now = datetime.now()
-build_start_time_str = now.strftime("%Y_%m_%d_%H_%M_%S")
+
 #
 # Get build command parameter
 #
@@ -685,7 +682,7 @@ def aicos_build(cmd):
     global common_path
     global script_path
     global board_path
-    global build_start_time_str
+
     if cmd == "mkpkg":
         set_subsys_config("ap")
     else:
@@ -765,7 +762,7 @@ def aicos_build(cmd):
             suffix = "release"
         else:
             suffix = "debug"
-        suffix +="_{}".format(build_start_time_str)
+
         pkg_cfg_dir = targets_path  + "/" + chip_name + "/" + project_name + "/pkg"
         for root, dirs, files in os.walk(pkg_cfg_dir):
             for pkg_cfg_name in files:
@@ -1063,13 +1060,8 @@ def kconfig_build(subsys, kcfg_cmd):
         except:
             print("Unexpected error:", sys.exc_info())
             exit(1)
-def add_make_time_file():
-    global build_start_time_str
-    with open('aicos/app/AI_AMP_2_5/bk_make_time.h', 'w', encoding='utf-8') as file:
-        file.write('const char *bk_make_timer = \"{}\";\n'.format(build_start_time_str))
+
 if __name__ == '__main__':
-    #创建版本.h文件
-    add_make_time_file()
     # Init global board parameters.
     get_board_config()