#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];
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一帧数据
void VC_Play_End(void);
//打开音频播放
void VC_Play_Start(void);
+
int bk_get_imei(char *imei)
{
if(imei == NULL)
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, ...)
{
//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,"你好,请问您有什么需要我帮忙的吗?");//开机提示词
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);
}
+
+ // 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,"信号"))
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,"卡号"))
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");
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 发送线程
{
}
}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!");
}
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);
{
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\""))//结束
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
{
//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);
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
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 )//检测到说话
{
{
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)
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();
{
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)
//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;
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();
//audio_play_tone(3,500);//播放提示音,测试用
aos_sleep(1000);
}
+
bk_websocket_demo();
aic_get_uid(uid,&uid_len);
bk_printf("UID:%s",uid);
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 --)
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);
#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,//玩具机芯
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];//开机提示词
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)
{
/**********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阶段判段数********** */
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;
}
offset += message_len;
+ // audio_data(message,message_len,27);
// 发送帧
if (send(client->sockfd, frame, offset, 0) < 0) {
bk_printf("send message failed");
#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)//获取设备密码最大长度,注意要防止内存越界
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");
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¤tVersion=%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");
//ase_encrypt_demo();
//dev_NTP();//获取时间
//aut_active();//激活
- aut_login();//登录
+
+ aut_login();
+
+ update_iccid();
+ //登录
/**
35,
AOS_AUTO_START);
}
+
+// AIC_BASIC_APP_P2_INIT_EXPORT(apifota_callback_init);
\ No newline at end of file
# 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
/* 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
/* @@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__
{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
{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},
/* 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
{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
{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
.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,
.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,
.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,
#
# 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
import subprocess, fileinput
from multiprocessing import cpu_count
from colorama import init
-from datetime import datetime
init(autoreset=True)
# set global path and value
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
#
global common_path
global script_path
global board_path
- global build_start_time_str
+
if cmd == "mkpkg":
set_subsys_config("ap")
else:
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:
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()