From: SnickerSun Date: Tue, 27 Aug 2024 01:07:15 +0000 (+0800) Subject: patch_0720_to_0812 X-Git-Tag: leiniao_debug_1.0.0_20250922_020716~424 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=refs%2Fchanges%2F798%2F1;p=mirrors%2FFD230.git patch_0720_to_0812 --- diff --git a/code/sdk/application/brandy/brandy_standard/input_app.c b/code/sdk/application/brandy/brandy_standard/input_app.c index e4e8b39f5..947c39b6e 100644 --- a/code/sdk/application/brandy/brandy_standard/input_app.c +++ b/code/sdk/application/brandy/brandy_standard/input_app.c @@ -21,7 +21,7 @@ #endif static unsigned long g_app_queue; - +uint8_t g_long_press_flag = 0; /** * @if Eng * @brief Button state enum. @@ -350,7 +350,7 @@ static void button_report_click_state(button_id_t id) g_button[id].is_clicked = true; g_button[id].click_cnt = 0; g_button[id].click_start_time = g_button[id].end_time; - } else if (g_button[id].is_clicked == true) { + } else if (g_button[id].is_clicked == true && g_long_press_flag != 1) { /* continue click */ g_button[id].click_cnt++; g_button[id].click_start_time = g_button[id].end_time; @@ -365,6 +365,7 @@ static void button_report_click_state(button_id_t id) osTimerStop(g_button_app_timer); g_button[id].is_clicked = 0; g_button[id].click_cnt = 0; + g_long_press_flag = 0; button_set_state(id, BUTTON_STATE_NONE); } } @@ -383,6 +384,7 @@ static void button_report_click_state(button_id_t id) } g_button[id].is_clicked = 0; g_button[id].click_cnt = 0; + g_long_press_flag = 0; button_set_state(id, BUTTON_STATE_NONE); osTimerStop(g_button_app_timer); } @@ -429,6 +431,7 @@ static void button_pressed_state_handler(button_id_t id) g_button_report_state_record = BUTTON_LONGPRESS_1S; g_button_state_record = BUTTON_LONGPRESS_1S_STATUS; g_button_press_time = BUTTON_PRESS_TIME_1S + BUTTON_PRESS_TIME_1S; + g_long_press_flag = 1; } } if ((button_get_state(id) == g_button_state_record) && (button_get_state(id) > BUTTON_RELEASE_STATUS)) { diff --git a/code/sdk/application/brandy/brandy_standard/thread_init.c b/code/sdk/application/brandy/brandy_standard/thread_init.c index 99894d65d..93eebd0e0 100644 --- a/code/sdk/application/brandy/brandy_standard/thread_init.c +++ b/code/sdk/application/brandy/brandy_standard/thread_init.c @@ -175,7 +175,8 @@ app_task_definition_t g_app_tasks[] = { (osThreadFunc_t)transmit_process_thread, NULL, (CreateQueueFunction_t)transmit_thread_msg_init, USE_DTCM_MEM }, #endif -#ifdef SUPPORT_POWER_MANAGER +#if defined(SUPPORT_POWER_MANAGER) && !defined(SUPPORT_AT_OHOSFWK) + /* OHOS场景,pms不需要独立的队列和线程,事件由UI线程接管处理 */ { { "power_display", 0, NULL, 0, NULL, PM_DISPLAY_MSG_STACK_SIZE, TASK_PRIORITY_TRANSMIT, 0, 0 }, (osThreadFunc_t)power_display_msg_thread, NULL, (CreateQueueFunction_t)power_display_task_init, USE_DTCM_MEM }, diff --git a/code/sdk/application/wearable/nativeabilityfwk/src/SliceTransition.cpp b/code/sdk/application/wearable/nativeabilityfwk/src/SliceTransition.cpp index edf6b2d41..979f2a9e5 100644 --- a/code/sdk/application/wearable/nativeabilityfwk/src/SliceTransition.cpp +++ b/code/sdk/application/wearable/nativeabilityfwk/src/SliceTransition.cpp @@ -227,5 +227,6 @@ void SliceTransition::StopAnimator() } } ClearTransitionResource(); + RootView::GetInstance()->Invalidate(); } } // namespace OHOS diff --git a/code/sdk/application/wearable/nativeapp/nativeui/alarm/src/AlarmClockModel.cpp b/code/sdk/application/wearable/nativeapp/nativeui/alarm/src/AlarmClockModel.cpp index 1941e6096..ea94c0306 100644 --- a/code/sdk/application/wearable/nativeapp/nativeui/alarm/src/AlarmClockModel.cpp +++ b/code/sdk/application/wearable/nativeapp/nativeui/alarm/src/AlarmClockModel.cpp @@ -682,15 +682,14 @@ void AlarmClockModel::GetAlarmCallId(uint8_t *alarm) void AlarmClockModel::PopInterCancelMusic() { - SendMsgToUIService(SCREEN_TURN_OFF_TO_UI, 0, nullptr, 0); + ScreenTurnOff(); GraphicService::GetInstance()->PostGraphicEvent( std::bind(&AlarmClockModel::AlarmPlayerStop, AlarmClockModel::GetInstance())); } void AlarmClockModel::PopInterPlayMusic() { - int32_t timeout = -1; - SendMsgToUIService(SCREEN_TURN_ON_TO_UI, 0, &timeout, sizeof(int32_t)); + ScreenTurnOn(-1); GraphicService::GetInstance()->PostGraphicEvent( std::bind(&AlarmClockModel::AlarmPlayerStart, AlarmClockModel::GetInstance())); } @@ -882,8 +881,7 @@ void AlarmClockModel::AlarmClockNotify() if (!PlayersModel::GetInstance()->GetAudioInitStatus()) { PlayersModel::GetInstance()->AudioInit(); } - int32_t timeout = -1; - SendMsgToUIService(SCREEN_TURN_ON_TO_UI, 0, &timeout, sizeof(int32_t)); + ScreenTurnOn(-1); AlarmGetClockNum(); NativeAbility::GetInstance().ChangeSlice(VIEW_ALARM_POP_UP, TransitionType::TRANSITION_INVALID, PRIORITY_TWO); return; diff --git a/code/sdk/application/wearable/nativeapp/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp b/code/sdk/application/wearable/nativeapp/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp index 9f514d675..e4d01472d 100644 --- a/code/sdk/application/wearable/nativeapp/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp +++ b/code/sdk/application/wearable/nativeapp/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp @@ -77,17 +77,15 @@ static void AlarmCallBackProcA(void) { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmCallBackProcA"); AlarmClockEventData unuse; - GraphicService::GetInstance()->PostGraphicEvent( - std::bind(AlarmTimerEventPublish, TOPIC_EVENT_ALARM_RING, unuse)); + AlarmTimerEventPublish(TOPIC_EVENT_ALARM_RING, unuse); } static void AlarmCallBackProcB(void) { AlarmClockEventData unuse; WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmCallBackProcB"); - GraphicService::GetInstance()->PostGraphicEvent( - std::bind(AlarmTimerEventPublish, TOPIC_EVENT_NEXTDAY_UPDATE, unuse)); - GraphicService::GetInstance()->PostGraphicEvent(SetZeroAlarm); + AlarmTimerEventPublish(TOPIC_EVENT_NEXTDAY_UPDATE, unuse); + SetZeroAlarm(); } void AlarmScan(void *arg) diff --git a/code/sdk/application/wearable/nativeapp/nativeui/bluetooth/src/BluetoothModel.cpp b/code/sdk/application/wearable/nativeapp/nativeui/bluetooth/src/BluetoothModel.cpp index 029f6142a..2b70fb43d 100644 --- a/code/sdk/application/wearable/nativeapp/nativeui/bluetooth/src/BluetoothModel.cpp +++ b/code/sdk/application/wearable/nativeapp/nativeui/bluetooth/src/BluetoothModel.cpp @@ -33,6 +33,7 @@ #include "msg_center_msg.h" #include "dfx_channel.h" #include "tcxo.h" +#include "ui_service.h" namespace OHOS { @@ -94,9 +95,10 @@ void BluetoothModel::InitBluetoothInfo(void) WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "bluetooth_set_local_name %s ret = %u", watchName, ret); // 设置蓝牙地址 - bd_addr_t addr = {{0x0, 0x0, 0x33, 0x44, 0x55, 0x66} ,0}; - addr.addr[0] = currentUs & 0xFF; - addr.addr[1] = (currentUs & 0XFF00) >> 8; + bd_addr_t addr = {{0x1C, 0x1D, 0x2B, 0x0, 0x0, 0x0} ,0}; + addr.addr[3] = currentUs & 0xFF; + addr.addr[4] = (currentUs & 0XFF00) >> 8; + addr.addr[5] = currentUs & 0xFF; ret = bluetooth_set_local_addr(addr.addr, BD_ADDR_LEN); WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "bluetooth_set_local_addr [0x%x:0x%x] ret = %u", addr.addr[0], addr.addr[1], ret); } else { @@ -845,8 +847,17 @@ void GapAclStateChangedCallback(const bd_addr_t *bdAddr, gap_acl_state_t state, bdAddr->addr[2], bdAddr->addr[1], bdAddr->addr[0]); /* mac下标 0 1 2 3 4 5 */ if ((gap_get_device_class(bdAddr) & 0x200) != 0) { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "GapAclStateChangedCallback: Mobile Phone Device"); + if (state == GAP_ACL_STATE_DISCONNECTED) { + /* 通知msg_center,ble状态仍用bt状态,此处不区分 */ + SendMsgToMsgCenterService(BT_DISCONNECTED_TO_MSGCENTER, 0, nullptr, 0); + SendMsgToUIService(BT_DISCONNECTED_TO_UI, 0, nullptr, 0); + } else if (state == GAP_ACL_STATE_CONNECTED) { + SendMsgToMsgCenterService(BT_CONNECTED_TO_MSGCENTER, 0, nullptr, 0); + SendMsgToUIService(BT_CONNECTED_TO_UI, 0, nullptr, 0); + } return; } + GraphicService::GetInstance()->PostGraphicEvent( std::bind(&BluetoothModel::BtGapAclStateChangedHandle, BluetoothModel::GetInstance(), state, reason, *bdAddr)); } @@ -902,6 +913,11 @@ static void A2dpSrcConnectstateChanged(bd_addr_t *bdAddr, int connState) if (connState == PROFILE_STATE_DISCONNECTED) { PhoneAudioManagerSetDeviceConnState(OUT_BLUETOOTH_A2DP, AUDIO_DEVICE_DISCONNECTED); GraphicService::GetInstance()->PostGraphicEvent(std::bind(ACLConnectionFail, *bdAddr)); + /* 实验室测试耳机回连场景,用户根据需要调整策略 */ + bool ret = gap_br_set_bt_scan_mode(GAP_SCAN_MODE_CONNECTABLE_GENERAL_DISCOVERABLE, 60); // start scan + if (!ret) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "a2dp disc: gap_br_set_bt_scan_mode ret = 0x%x", ret); + } } } diff --git a/code/sdk/application/wearable/nativeapp/nativeui/main/src/MainPresenterSample.cpp b/code/sdk/application/wearable/nativeapp/nativeui/main/src/MainPresenterSample.cpp index d734feb2e..adc642470 100644 --- a/code/sdk/application/wearable/nativeapp/nativeui/main/src/MainPresenterSample.cpp +++ b/code/sdk/application/wearable/nativeapp/nativeui/main/src/MainPresenterSample.cpp @@ -115,13 +115,11 @@ bool MainPresenterSample::OnClick(UIView &view, const ClickEvent &event) if (HealthModel::GetInstance()->GetBriScrStatus() == 0) { ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, imgView, DROPDOWN_DROPDOWN_BRI_SCREEN_B); HealthModel::GetInstance()->UpdateBriScrStatus(1); - int32_t enable = 0; - SendMsgToUIService(SCREEN_OFF_ENABLE_TO_UI, 0, &enable, sizeof(int32_t)); + ScreenOffEnable(0); } else { ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, imgView, DROPDOWN_DROPDOWN_BRI_SCREEN); HealthModel::GetInstance()->UpdateBriScrStatus(0); - int32_t enable = 1; - SendMsgToUIService(SCREEN_OFF_ENABLE_TO_UI, 0, &enable, sizeof(int32_t)); + ScreenOffEnable(1); } } diff --git a/code/sdk/application/wearable/nativeapp/nativeui/main/src/dial/parser/DialBinParser.cpp b/code/sdk/application/wearable/nativeapp/nativeui/main/src/dial/parser/DialBinParser.cpp index a61df4821..b65627294 100644 --- a/code/sdk/application/wearable/nativeapp/nativeui/main/src/dial/parser/DialBinParser.cpp +++ b/code/sdk/application/wearable/nativeapp/nativeui/main/src/dial/parser/DialBinParser.cpp @@ -55,18 +55,18 @@ DialBinParser::~DialBinParser() void* DialBinParser::MallocAndReadBuf(FILE* file, uint32_t readSize) { if (file == nullptr || readSize == 0) { - GRAPHIC_LOGE("[%s: %d]param error!\n", __FUNCTION__, __LINE__); + GRAPHIC_LOGE("Invalid param! file: %p, readSize: %u.", file, readSize); return nullptr; } uint8_t* data = static_cast(UIMalloc(readSize)); if (data == nullptr) { - GRAPHIC_LOGE("UIMalloc fail!\n"); + GRAPHIC_LOGE("UIMalloc fail! size: %u.", readSize); return nullptr; } if (fread(data, 1, readSize, file) != readSize) { UIFree(data); - GRAPHIC_LOGE("fread fail!\n"); + GRAPHIC_LOGE("fread fail! readSize: %u.", readSize); return nullptr; } return data; @@ -304,7 +304,7 @@ int32_t DialBinParser::ParserDialOptionImg(FILE* fp) } uint16_t* imgIdArray = static_cast(MallocAndReadBuf(fp, (sizeof(uint16_t) * data->count))); - if (data == nullptr) { + if (imgIdArray == nullptr) { UIFree(data); GRAPHIC_LOGE("[%s: %d]malloc or read fail!\n", __FUNCTION__, __LINE__); return -1; diff --git a/code/sdk/application/wearable/nativeapp/nativeui/offlinevoice/src/VocassistPresenter.cpp b/code/sdk/application/wearable/nativeapp/nativeui/offlinevoice/src/VocassistPresenter.cpp index 5cd75bf95..53ae1f7b4 100644 --- a/code/sdk/application/wearable/nativeapp/nativeui/offlinevoice/src/VocassistPresenter.cpp +++ b/code/sdk/application/wearable/nativeapp/nativeui/offlinevoice/src/VocassistPresenter.cpp @@ -125,8 +125,7 @@ bool VocassistPresenter::OnDrag(UIView& view, const DragEvent& event) void VocassistPresenter::OnStart() { Presenter::OnStart(); - int32_t timeout = -1; - SendMsgToUIService(SCREEN_TURN_ON_TO_UI, 0, &timeout, sizeof(int32_t)); + ScreenTurnOn(-1); } void VocassistPresenter::OnPause(void) {} @@ -136,6 +135,6 @@ void VocassistPresenter::OnResume(void) {} void VocassistPresenter::OnStop(void) { Presenter::OnStop(); - SendMsgToUIService(SCREEN_TURN_OFF_TO_UI, 0, nullptr, 0); + ScreenTurnOff(); } } diff --git a/code/sdk/application/wearable/nativeapp/nativeui/phoneservice/src/PhoneService.cpp b/code/sdk/application/wearable/nativeapp/nativeui/phoneservice/src/PhoneService.cpp index 2d3f6ffa5..c5f729d4c 100644 --- a/code/sdk/application/wearable/nativeapp/nativeui/phoneservice/src/PhoneService.cpp +++ b/code/sdk/application/wearable/nativeapp/nativeui/phoneservice/src/PhoneService.cpp @@ -24,7 +24,6 @@ #include "service_id_define.h" #include "samgr_lite.h" #include "ui_service.h" -#include "msg_center_msg.h" #ifdef __cplusplus extern "C" { @@ -75,10 +74,9 @@ void HfpIncomingEventPublish(uint16 topic, hfp_hf_calls_info_t callsInfo); static void PhoneServiceScreenCtr(bool turnOnFlag) { if (turnOnFlag) { - int32_t timeout = -1; - SendMsgToUIService(SCREEN_TURN_ON_TO_UI, 0, &timeout, sizeof(int32_t)); + ScreenTurnOn(-1); } else { - SendMsgToUIService(SCREEN_TURN_OFF_TO_UI, 0, nullptr, 0); + ScreenTurnOff(); } } @@ -597,8 +595,6 @@ static void ConnStateChanged(const bd_addr_t *bdAddr, profile_connect_state_t st case PROFILE_STATE_CONNECTED: // 蓝牙连接成功 WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ConnStateChanged] BT connected"); BtConnectedPro(bdAddr); - SendMsgToUIService(BT_CONNECTED_TO_UI, 0, nullptr, 0); - SendMsgToMsgCenterService(BT_CONNECTED_TO_MSGCENTER, 0, nullptr, 0); break; case PROFILE_STATE_DISCONNECTING: // 蓝牙连接断连 WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ConnStateChanged] BT disconnecting"); @@ -606,8 +602,6 @@ static void ConnStateChanged(const bd_addr_t *bdAddr, profile_connect_state_t st case PROFILE_STATE_DISCONNECTED: // 蓝牙断开连接 WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ConnStateChanged] BT disconnected"); BtDisconnectedPro(); - SendMsgToUIService(BT_DISCONNECTED_TO_UI, 0, nullptr, 0); - SendMsgToMsgCenterService(BT_DISCONNECTED_TO_MSGCENTER, 0, nullptr, 0); break; default: break; diff --git a/code/sdk/application/wearable/nativeapp/nativeui/screennotify/src/ui_screennotify.cpp b/code/sdk/application/wearable/nativeapp/nativeui/screennotify/src/ui_screennotify.cpp index d9658eb29..417e91da3 100644 --- a/code/sdk/application/wearable/nativeapp/nativeui/screennotify/src/ui_screennotify.cpp +++ b/code/sdk/application/wearable/nativeapp/nativeui/screennotify/src/ui_screennotify.cpp @@ -11,6 +11,7 @@ #include "AppViewIDs.h" #include "MainViewSample.h" #include "ui_screennotify.h" +#include "components/root_view.h" #ifdef __cplusplus extern "C" { @@ -58,23 +59,17 @@ static void ChangeToHomeView(void) void notify_screen_on_event(void) { - GraphicService::GetInstance()->PostGraphicEvent( - [&] { - for (auto callback : g_callback) { - callback(SCREEN_STATUS_ON); - } - ChangeToHomeView(); - }); + for (auto callback : g_callback) { + callback(SCREEN_STATUS_ON); + } + ChangeToHomeView(); } void notify_screen_off_event(void) { - GraphicService::GetInstance()->PostGraphicEvent( - [&] { - for (auto callback : g_callback) { - callback(SCREEN_STATUS_OFF); - } - }); + for (auto callback : g_callback) { + callback(SCREEN_STATUS_OFF); + } } void set_back_to_home_interval(uint32_t time_sec) diff --git a/code/sdk/application/wearable/nativeapp/nativeui/set_dial/src/SetDialModel.cpp b/code/sdk/application/wearable/nativeapp/nativeui/set_dial/src/SetDialModel.cpp index 93f3e8355..a1164614e 100644 --- a/code/sdk/application/wearable/nativeapp/nativeui/set_dial/src/SetDialModel.cpp +++ b/code/sdk/application/wearable/nativeapp/nativeui/set_dial/src/SetDialModel.cpp @@ -95,6 +95,7 @@ namespace OHOS { if (!ret) { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "GetDialPreviewInfo %s fail", dialFullName.c_str()); + fclose(fp); return -1; } WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ParseDialHeader dialFullName: %s", @@ -111,6 +112,7 @@ namespace OHOS { preInfo.imgId, dialFullName, fp, false, preInfo.offset); if (info == nullptr) { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ParseDialHeader loadimage fail"); + fclose(fp); return -1; } diff --git a/code/sdk/application/wearable/nativeapp/nativeui/uiservice/include/ui_service.h b/code/sdk/application/wearable/nativeapp/nativeui/uiservice/include/ui_service.h index 823ad1844..472b7f8a6 100644 --- a/code/sdk/application/wearable/nativeapp/nativeui/uiservice/include/ui_service.h +++ b/code/sdk/application/wearable/nativeapp/nativeui/uiservice/include/ui_service.h @@ -44,9 +44,6 @@ typedef enum { JS_UNINSTALL_SUCESS_TO_UI, BT_CONNECTED_TO_UI, BT_DISCONNECTED_TO_UI, - SCREEN_TURN_ON_TO_UI, - SCREEN_TURN_OFF_TO_UI, - SCREEN_OFF_ENABLE_TO_UI, UI_ADD_SLEEP_VETO, UI_RM_SLEEP_VETO, } UiServiceMsgId; @@ -62,6 +59,10 @@ typedef struct { void SendMsgToUIService(int32_t msgId, uint32_t msgValue, void *data, int32_t dataLen); +void ScreenTurnOn(int32_t timeout); +void ScreenTurnOff(void); +void ScreenOffEnable(int32_t enable); + #ifdef __cplusplus } #endif diff --git a/code/sdk/application/wearable/nativeapp/nativeui/uiservice/src/ui_service.cpp b/code/sdk/application/wearable/nativeapp/nativeui/uiservice/src/ui_service.cpp index 64fd4eef6..827f4c7df 100644 --- a/code/sdk/application/wearable/nativeapp/nativeui/uiservice/src/ui_service.cpp +++ b/code/sdk/application/wearable/nativeapp/nativeui/uiservice/src/ui_service.cpp @@ -63,13 +63,12 @@ const int DATA_DIST_MAIL_LENGTH = 10; const int BYTE_OFFSET = 8; static uint32_t g_interval = 5; -static void ScreenTurnOn(Request *request) +void ScreenTurnOn(int32_t timeout) { if (OHOS::HealthModel::GetInstance()->GetBriScrStatus() == 1) { return; } #if defined(SUPPORT_POWER_MANAGER) - int32_t timeout = *((int32_t*)request->data); WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ScreenTurn] timeout = %d", timeout); g_interval = get_back_to_home_interval(); set_back_to_home_interval(0xFFFFFFFF); @@ -83,7 +82,7 @@ static void ScreenTurnOn(Request *request) return; } -static void ScreenTurnOff(Request *request) +void ScreenTurnOff(void) { if (OHOS::HealthModel::GetInstance()->GetBriScrStatus() == 1) { return; @@ -97,10 +96,9 @@ static void ScreenTurnOff(Request *request) return; } -static void ScreenOffEnable(Request *request) +void ScreenOffEnable(int32_t enable) { #if defined(SUPPORT_POWER_MANAGER) - int32_t enable = *((int32_t*)request->data); const power_display_svr_api_t *display_api = power_display_svr_get_api(); display_api->set_auto_timeout_function(enable); #endif @@ -153,15 +151,6 @@ void ServiceMsgProcess(Request *request) GraphicService::GetInstance()->PostGraphicEvent( std::bind(&OHOS::SettingModel::UpdateBlueToothConnectStatus, &OHOS::SettingModel::GetInstance(), false)); break; - case SCREEN_TURN_ON_TO_UI: - ScreenTurnOn(request); - break; - case SCREEN_TURN_OFF_TO_UI: - ScreenTurnOff(request); - break; - case SCREEN_OFF_ENABLE_TO_UI: - ScreenOffEnable(request); - break; case UI_ADD_SLEEP_VETO: uapi_pm_add_sleep_veto(PM_ID_SCREEN); break; diff --git a/code/sdk/application/wearable/service/msg_center/CMakeLists.txt b/code/sdk/application/wearable/service/msg_center/CMakeLists.txt index 1b778a285..196613d7c 100644 --- a/code/sdk/application/wearable/service/msg_center/CMakeLists.txt +++ b/code/sdk/application/wearable/service/msg_center/CMakeLists.txt @@ -202,6 +202,10 @@ build_component() set(COMPONENT_NAME "baidumapsdk") set(LIBS ${CMAKE_CURRENT_SOURCE_DIR}/libs/lib${COMPONENT_NAME}.a) +set(PUBLIC_DEFINES + SUPPORT_BAIDU +) + set(WHOLE_LINK true ) diff --git a/code/sdk/application/wearable/service/msg_center/brandy-auto-ota-cli/libmsg_center.a b/code/sdk/application/wearable/service/msg_center/brandy-auto-ota-cli/libmsg_center.a new file mode 100644 index 000000000..25f166fc0 Binary files /dev/null and b/code/sdk/application/wearable/service/msg_center/brandy-auto-ota-cli/libmsg_center.a differ diff --git a/code/sdk/application/wearable/service/msg_center/brandy-auto-ota-ser/libmsg_center.a b/code/sdk/application/wearable/service/msg_center/brandy-auto-ota-ser/libmsg_center.a new file mode 100644 index 000000000..1ed3a3d21 Binary files /dev/null and b/code/sdk/application/wearable/service/msg_center/brandy-auto-ota-ser/libmsg_center.a differ diff --git a/code/sdk/application/wearable/service/msg_center/brandy-native-js/libmsg_center.a b/code/sdk/application/wearable/service/msg_center/brandy-native-js/libmsg_center.a index bddcbf682..e31900481 100644 Binary files a/code/sdk/application/wearable/service/msg_center/brandy-native-js/libmsg_center.a and b/code/sdk/application/wearable/service/msg_center/brandy-native-js/libmsg_center.a differ diff --git a/code/sdk/application/wearable/service/msg_center/brandy-xts/libmsg_center.a b/code/sdk/application/wearable/service/msg_center/brandy-xts/libmsg_center.a index 6dfee5571..159b848c1 100644 Binary files a/code/sdk/application/wearable/service/msg_center/brandy-xts/libmsg_center.a and b/code/sdk/application/wearable/service/msg_center/brandy-xts/libmsg_center.a differ diff --git a/code/sdk/application/wearable/service/msg_center/include/msg_center_protocol.h b/code/sdk/application/wearable/service/msg_center/include/msg_center_protocol.h index 484a1eb10..af36fa6c7 100644 --- a/code/sdk/application/wearable/service/msg_center/include/msg_center_protocol.h +++ b/code/sdk/application/wearable/service/msg_center/include/msg_center_protocol.h @@ -54,6 +54,7 @@ typedef enum msg_center_xiaodu_type_id { MSGCENTER_TYPE_ID_XIAODU_START_RECORD, MSGCENTER_TYPE_ID_XIAODU_SEND_PCM_STREAM, MSGCENTER_TYPE_ID_XIAODU_END_RECORD, + MSGCENTER_TYPE_ID_XIAODU_SEND_JS_EXIT, } msg_center_xiaodu_type_id_t; typedef enum msg_center_navigation_type_id { diff --git a/code/sdk/application/wearable/service/msg_center/include/vendor_app/baidu_app.h b/code/sdk/application/wearable/service/msg_center/include/vendor_app/baidu_app.h index 2588d0ec4..7484c9022 100644 --- a/code/sdk/application/wearable/service/msg_center/include/vendor_app/baidu_app.h +++ b/code/sdk/application/wearable/service/msg_center/include/vendor_app/baidu_app.h @@ -40,6 +40,7 @@ errcode_t msg_center_xiaodu_recv_wenxin_info(uint8_t cmd_id, uint8_t type, void errcode_t msg_center_xiaodu_start_record(uint8_t cmd_id, uint8_t type, void *usr_data, uint16_t usr_len); errcode_t msg_center_xiaodu_send_pcm_stream(uint8_t cmd_id, uint8_t type, void *usr_data, uint16_t usr_len); errcode_t msg_center_xiaodu_send_end_record(uint8_t cmd_id, uint8_t type, void *usr_data, uint16_t usr_len); +errcode_t msg_center_xiaodu_send_stop_answer(uint8_t cmd_id, uint8_t type, void *usr_data, uint16_t usr_len); errcode_t msg_center_xiaodu_recv_tts(uint8_t cmd_id, uint8_t type, void *usr_data, uint16_t usr_len); errcode_t msg_center_vector_navi_pull_up(uint8_t cmd_id, uint8_t type, void *usr_data, uint16_t usr_len); errcode_t msg_center_vector_navi_recv_svg(uint8_t cmd_id, uint8_t type, void *usr_data, uint16_t usr_len); diff --git a/code/sdk/application/wearable/service/msg_center/libs/libbaidumapsdk.a b/code/sdk/application/wearable/service/msg_center/libs/libbaidumapsdk.a index 65fccf470..9a52cca28 100644 Binary files a/code/sdk/application/wearable/service/msg_center/libs/libbaidumapsdk.a and b/code/sdk/application/wearable/service/msg_center/libs/libbaidumapsdk.a differ diff --git a/code/sdk/application/wearable/service/msg_center/src/msg_center_cmd.cpp b/code/sdk/application/wearable/service/msg_center/src/msg_center_cmd.cpp index 945a33005..836088ca2 100644 --- a/code/sdk/application/wearable/service/msg_center/src/msg_center_cmd.cpp +++ b/code/sdk/application/wearable/service/msg_center/src/msg_center_cmd.cpp @@ -26,6 +26,7 @@ msg_center_cmd_map_t g_msg_center_type_tbl[] = { { MSGCENTER_CMD_XIAODU, MSGCENTER_TYPE_ID_XIAODU_START_RECORD, msg_center_xiaodu_start_record}, { MSGCENTER_CMD_XIAODU, MSGCENTER_TYPE_ID_XIAODU_SEND_PCM_STREAM, msg_center_xiaodu_send_pcm_stream}, { MSGCENTER_CMD_XIAODU, MSGCENTER_TYPE_ID_XIAODU_END_RECORD, msg_center_xiaodu_send_end_record}, + { MSGCENTER_CMD_XIAODU, MSGCENTER_TYPE_ID_XIAODU_SEND_JS_EXIT, msg_center_xiaodu_send_stop_answer}, { MSGCENTER_CMD_NAVIGATION, MSGCENTER_TYPE_ID_NAVIGATION_START, msg_center_navigation_start}, { MSGCENTER_CMD_NAVIGATION, MSGCENTER_TYPE_ID_NAVIGATION_RECV, msg_center_navigation_recv}, { MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_PULL_UP, msg_center_vector_navi_pull_up}, diff --git a/code/sdk/application/wearable/service/msg_center/src/vendor_app/baidu/baidu_app.cpp b/code/sdk/application/wearable/service/msg_center/src/vendor_app/baidu/baidu_app.cpp index 96008a187..6a079b8ac 100644 --- a/code/sdk/application/wearable/service/msg_center/src/vendor_app/baidu/baidu_app.cpp +++ b/code/sdk/application/wearable/service/msg_center/src/vendor_app/baidu/baidu_app.cpp @@ -143,6 +143,7 @@ static errcode_t pcm_stream_task_body(void *data) res = msg_center_xiaodu_send_pcm_stream(MSGCENTER_CMD_XIAODU, MSGCENTER_TYPE_ID_XIAODU_SEND_PCM_STREAM, msg.data, msg.len); free(msg.data); + msg.data = nullptr; if (res != ERRCODE_SUCC) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_MSG_CENTER, "send pcm stream failed"); return ERRCODE_FAIL; @@ -151,8 +152,9 @@ static errcode_t pcm_stream_task_body(void *data) res = msg_center_xiaodu_send_end_record(MSGCENTER_CMD_XIAODU, MSGCENTER_TYPE_ID_XIAODU_END_RECORD, msg.data, msg.len); free(msg.data); + msg.data = nullptr; if (res != ERRCODE_SUCC) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_MSG_CENTER, "send pcm stream failed"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_MSG_CENTER, "send pcm end failed"); return ERRCODE_FAIL; } return ERRCODE_SUCC; @@ -442,6 +444,20 @@ errcode_t msg_center_xiaodu_send_end_record(uint8_t cmd_id, uint8_t type, void * return ERRCODE_SUCC; } +errcode_t msg_center_xiaodu_send_stop_answer(uint8_t cmd_id, uint8_t type, void *usr_data, uint16_t usr_len) +{ + errcode_t ret = ERRCODE_SUCC; + + ret = msg_center_send_data(cmd_id, type, usr_data, usr_len); + if (ret != ERRCODE_SUCC) { + return ERRCODE_FAIL; + } + + WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "send js exit msg, usr_data = %d, usr_len = %d\r\n", + *(uint8_t *)usr_data, usr_len); /* usr_data: 0 --normal exit, 1 -- abnormal exit */ + return ERRCODE_SUCC; +} + static void msg_center_transfer_longbuf(char *data, uint8_t type) { FILE *fp = nullptr; @@ -1149,6 +1165,21 @@ errcode_t msg_center_vector_navi_rec_destroy_from_watch(uint8_t cmd_id, uint8_t return msg_center_vector_navi_rec_common_proc(cmd_id, type, usr_data, usr_len); } +__attribute__((weak)) uint8_t duer_msg_center_recv_map_info(uint8_t command_id, uint8_t type, struct Content *content) +{ + return 0; +} + +__attribute__((weak)) uint8_t duer_msg_center_send_map_info(uint8_t duer_type, void *usr_data, uint16_t usr_len) +{ + return 0; +} + +__attribute__((weak)) uint8_t duer_msg_center_map_to_title(void *data, uint16_t len) +{ + return 0; +} + #ifdef __cplusplus } #endif diff --git a/code/sdk/application/wearable/service/power_manager/src/actions/display_action.c b/code/sdk/application/wearable/service/power_manager/src/actions/display_action.c index 3509a7101..d3375963a 100644 --- a/code/sdk/application/wearable/service/power_manager/src/actions/display_action.c +++ b/code/sdk/application/wearable/service/power_manager/src/actions/display_action.c @@ -20,6 +20,9 @@ #include "pm_lp_stub.h" #include "hal_pmu_ldo.h" #include "cmsis_os2.h" +#ifdef CFG_DRIVERS_NANDFLASH +#include "nandflash_to_os.h" +#endif #ifdef SUPPORT_AT_OHOSFWK #include "ui_screennotify.h" #endif @@ -99,7 +102,13 @@ static uint32_t action_display_lcd_on() last_screen_on_timestamp = get_display_timestamp(); caculate_screen_off_time(); ext_errno ret; +#ifdef CFG_DRIVERS_NANDFLASH + nand_lock(); +#endif uapi_pm_request_mode(PM_ID_VIDEO, PM_MODE_PERFORMACE); +#ifdef CFG_DRIVERS_NANDFLASH + nand_unlock(); +#endif if (g_pms_lcd_on_first_flag == false) { if (lcd_get_status()) { POWER_DISPLAY_PRINT_ERR(0, "\r\nLCD has benn on.\r\n"); @@ -142,9 +151,6 @@ static uint32_t action_display_lcd_on() return ERRCODE_FAIL; } } -#ifdef SUPPORT_AT_OHOSFWK - notify_screen_on_event(); -#endif #if defined(ENABLE_UIKIT) || defined(ENABLE_LVGL) NotifyScreenOn(); // Instruct the uikit to start the display operation. #endif @@ -181,10 +187,6 @@ static uint32_t action_display_lcd_off() NotifyScreenOff(); // Instruct the uikit to close the display operation. #endif -#ifdef SUPPORT_AT_OHOSFWK - notify_screen_off_event(); -#endif - osDelay(100); // Wait 100ms for the uikit to complete display. touch_screen_suspend(); // close touch ext_errno ret = drv_vau_suspend(NULL); @@ -216,7 +218,13 @@ static uint32_t action_display_lcd_off() lcd_set_status(false); g_pms_dpu_ready = false; display_suspend_power_off(); +#ifdef CFG_DRIVERS_NANDFLASH + nand_lock(); +#endif uapi_pm_request_mode(PM_ID_VIDEO, PM_MODE_LP); +#ifdef CFG_DRIVERS_NANDFLASH + nand_unlock(); +#endif return ERRCODE_SUCC; } diff --git a/code/sdk/application/wearable/service/power_manager/src/power_display_service.c b/code/sdk/application/wearable/service/power_manager/src/power_display_service.c index 719336089..4bf73ca66 100644 --- a/code/sdk/application/wearable/service/power_manager/src/power_display_service.c +++ b/code/sdk/application/wearable/service/power_manager/src/power_display_service.c @@ -20,6 +20,9 @@ #include "touch_screen_def.h" #include "display_state_machine.h" #include "touch_screen_def.h" +#ifdef SUPPORT_AT_OHOSFWK +#include "graphic_service_wrapper.h" +#endif #define DISPLAY_AUTO_POWER_OFF_PERIOD_MS 5000 #define DISPLAY_DEFAULT_BRIGHTNESS 50 @@ -42,6 +45,17 @@ static screen_context_t g_screen_context = { .press_state = 0, }; +#ifdef SUPPORT_AT_OHOSFWK +void power_display_turnon_handle_ext(void *data); +void power_display_turnoff_handle_ext(void *data); +void power_display_set_screenoff_timeout_handle_ext(void *data); +void power_display_set_screenoff_switch_handle_ext(void *data); +void power_display_set_keepon_timeout_handle_ext(void *data); +void power_display_set_brightness_handle_ext(void *data); +void power_display_gui_cmd_handle_ext(void *data); +void power_display_timer_cmd_handle_ext(void *data); +#endif + static unsigned long g_power_display_queue_id = 0; static uint32_t g_power_recv_msg_num = 0; bool g_discard_all_events = false; @@ -75,23 +89,31 @@ static errcode_t power_display_msg_write(uint32_t msg_id, uint8_t *msg, uint16_t static errcode_t power_display_turn_on_screen(void) { +#ifndef SUPPORT_AT_OHOSFWK message_type_t mt = TURN_ON_SCREEN_CMD; uint32_t event_info = 0; errcode_t ret = power_display_msg_write(mt, (uint8_t *)&event_info, sizeof(uint32_t), false); if (ret != ERRCODE_SUCC) { return ERRCODE_FAIL; } +#else + PostGraphicEvent(power_display_turnon_handle_ext, NULL); +#endif return ERRCODE_SUCC; } static errcode_t power_display_turn_off_screen(void) { +#ifndef SUPPORT_AT_OHOSFWK message_type_t mt = TURN_OFF_SCREEN_CMD; uint32_t event_info = 0; errcode_t ret = power_display_msg_write(mt, (uint8_t *)&event_info, sizeof(uint32_t), false); if (ret != ERRCODE_SUCC) { return ERRCODE_FAIL; } +#else + PostGraphicEvent(power_display_turnoff_handle_ext, NULL); +#endif return ERRCODE_SUCC; } @@ -112,10 +134,18 @@ static errcode_t power_display_set_screen_auto_off_timeout(uint32_t timeout) } message_type_t mt = SET_AUTO_OFF_TIMEOUT_CMD; uint32_t event_info = timeout; +#ifndef SUPPORT_AT_OHOSFWK errcode_t ret = power_display_msg_write(mt, (uint8_t *)&event_info, sizeof(uint32_t), false); if (ret != ERRCODE_SUCC) { return ERRCODE_FAIL; } +#else + uint32_t *data = (uint32_t *)malloc(sizeof(uint32_t)); + if (data != NULL) { + *data = event_info; + PostGraphicEvent(power_display_set_screenoff_timeout_handle_ext, data); + } +#endif return ERRCODE_SUCC; } @@ -123,10 +153,18 @@ static errcode_t power_display_set_auto_timeout_function(bool enable) { message_type_t mt = SET_AUTO_OFF_FUNC_CMD; uint32_t event_info = enable; +#ifndef SUPPORT_AT_OHOSFWK errcode_t ret = power_display_msg_write(mt, (uint8_t *)&event_info, sizeof(uint32_t), false); if (ret != ERRCODE_SUCC) { return ERRCODE_FAIL; } +#else + uint32_t *data = (uint32_t *)malloc(sizeof(uint32_t)); + if (data != NULL) { + *data = event_info; + PostGraphicEvent(power_display_set_screenoff_switch_handle_ext, data); + } +#endif return ERRCODE_SUCC; } @@ -140,10 +178,18 @@ static errcode_t power_display_set_keepon_timeout(uint32_t time) message_type_t mt = SET_KEEP_SCREEN_ON_TIMEOUT_CMD; uint32_t real_time = time > POWER_DISPLAY_MAX_SET_TIME ? POWER_DISPLAY_MAX_SET_TIME : time; uint32_t event_info = real_time; +#ifndef SUPPORT_AT_OHOSFWK errcode_t ret = power_display_msg_write(mt, (uint8_t *)&event_info, sizeof(uint32_t), false); if (ret != ERRCODE_SUCC) { return ERRCODE_FAIL; } +#else + uint32_t *data = (uint32_t *)malloc(sizeof(uint32_t)); + if (data != NULL) { + *data = event_info; + PostGraphicEvent(power_display_set_keepon_timeout_handle_ext, data); + } +#endif return ERRCODE_SUCC; } @@ -163,10 +209,18 @@ static errcode_t power_display_set_brightness(uint8_t brightness) { message_type_t mt = SET_BRIGHTNESS_CMD; uint32_t event_info = brightness; +#ifndef SUPPORT_AT_OHOSFWK errcode_t ret = power_display_msg_write(mt, (uint8_t *)&event_info, sizeof(uint32_t), false); if (ret != ERRCODE_SUCC) { return ERRCODE_FAIL; } +#else + uint32_t *data = (uint32_t *)malloc(sizeof(uint32_t)); + if (data != NULL) { + *data = event_info; + PostGraphicEvent(power_display_set_brightness_handle_ext, data); + } +#endif return ERRCODE_SUCC; } @@ -211,10 +265,18 @@ static void power_display_key_event_cb(uint32_t event, uint32_t event_value) unused(event_value); message_type_t mt = GUI_EVENT_CMD; uint32_t event_info = KEY; +#ifndef SUPPORT_AT_OHOSFWK errcode_t ret = power_display_msg_write(mt, (uint8_t *)&event_info, sizeof(uint32_t), false); if (ret != ERRCODE_SUCC) { POWER_DISPLAY_PRINT_ERR(0, "key_event send msg fail, ret:%u.", ret); } +#else + uint32_t *data = (uint32_t *)malloc(sizeof(uint32_t)); + if (data != NULL) { + *data = event_info; + PostGraphicEvent(power_display_gui_cmd_handle_ext, data); + } +#endif return; } @@ -235,11 +297,18 @@ static void power_display_touch_event_cb(uint32_t event, uint32_t event_value) if (g_power_tp_press_num > 1) { return; } +#ifndef SUPPORT_AT_OHOSFWK errcode_t ret = power_display_msg_write(mt, (uint8_t *)&event_info, sizeof(uint32_t), false); if (ret != ERRCODE_SUCC) { POWER_DISPLAY_PRINT_ERR(0, "touch_event send msg fail, ret:%u.", ret); } - +#else + uint32_t *data = (uint32_t *)malloc(sizeof(uint32_t)); + if (data != NULL) { + *data = event_info; + PostGraphicEvent(power_display_gui_cmd_handle_ext, data); + } +#endif return; } @@ -247,12 +316,19 @@ static errcode_t power_display_timeout_event_proc(uint32_t event) { message_type_t mt = TIMER_EVENT_CMD; uint32_t event_info = event; +#ifndef SUPPORT_AT_OHOSFWK errcode_t ret = power_display_msg_write(mt, (uint8_t *)&event_info, sizeof(uint32_t), false); if (ret != ERRCODE_SUCC) { POWER_DISPLAY_PRINT_ERR(0, "power_display_timeout_event_proc send msg fail, ret:%u.", ret); return ERRCODE_FAIL; } - +#else + uint32_t *data = (uint32_t *)malloc(sizeof(uint32_t)); + if (data != NULL) { + *data = event_info; + PostGraphicEvent(power_display_timer_cmd_handle_ext, data); + } +#endif return ERRCODE_SUCC; } @@ -293,7 +369,6 @@ static errcode_t power_display_execute_filter_rules(event_type_t event_type, uin power_display_save_gui_event_stamp(ac, event_type); return power_display_execute_state_change_action(event_type, ac, event); } - errcode_t power_display_turnon_handle(uint32_t message_type, uint32_t message_value) { unused(message_type); @@ -303,6 +378,15 @@ errcode_t power_display_turnon_handle(uint32_t message_type, uint32_t message_va return power_display_execute_filter_rules(GUI_EVENT, keyid); } +#ifdef SUPPORT_AT_OHOSFWK +void power_display_turnon_handle_ext(void *data) +{ + unused(data); + errcode_t ret = power_display_turnon_handle(TURN_ON_SCREEN_CMD, 0); + POWER_DISPLAY_PRINT_DEBUG(0, "display_turnon ret:%u.", ret); +} +#endif + errcode_t power_display_turnoff_handle(uint32_t message_type, uint32_t message_value) { unused(message_type); @@ -312,6 +396,15 @@ errcode_t power_display_turnoff_handle(uint32_t message_type, uint32_t message_v return power_display_execute_filter_rules(GUI_EVENT, keyid); } +#ifdef SUPPORT_AT_OHOSFWK +void power_display_turnoff_handle_ext(void *data) +{ + unused(data); + errcode_t ret = power_display_turnoff_handle(TURN_OFF_SCREEN_CMD, 0); + POWER_DISPLAY_PRINT_DEBUG(0, "display_turnoff ret:%u.", ret); +} +#endif + errcode_t power_display_set_screenoff_timeout_handle(uint32_t message_type, uint32_t message_value) { unused(message_type); @@ -319,6 +412,16 @@ errcode_t power_display_set_screenoff_timeout_handle(uint32_t message_type, uint return power_display_execute_filter_rules(TIMER_EVENT, SET_DEFAULT_TIMEOUT); } +#ifdef SUPPORT_AT_OHOSFWK +void power_display_set_screenoff_timeout_handle_ext(void *data) +{ + uint32_t *message_value = (uint32_t *)data; + errcode_t ret = power_display_set_screenoff_timeout_handle(SET_AUTO_OFF_TIMEOUT_CMD, *message_value); + POWER_DISPLAY_PRINT_DEBUG(0, "display_set_screenoff_timeout ret:%u.", ret); + free(message_value); +} +#endif + errcode_t power_display_set_screenoff_switch_handle(uint32_t message_type, uint32_t message_value) { unused(message_type); @@ -329,6 +432,16 @@ errcode_t power_display_set_screenoff_switch_handle(uint32_t message_type, uint3 return ERRCODE_SUCC; } +#ifdef SUPPORT_AT_OHOSFWK +void power_display_set_screenoff_switch_handle_ext(void *data) +{ + uint32_t *message_value = (uint32_t *)data; + errcode_t ret = power_display_set_screenoff_switch_handle(SET_AUTO_OFF_FUNC_CMD, *message_value); + POWER_DISPLAY_PRINT_DEBUG(0, "display_set_screenoff_switch ret:%u.", ret); + free(message_value); +} +#endif + errcode_t power_display_set_keepon_timeout_handle(uint32_t message_type, uint32_t message_value) { unused(message_type); @@ -336,6 +449,16 @@ errcode_t power_display_set_keepon_timeout_handle(uint32_t message_type, uint32_ return power_display_execute_filter_rules(TIMER_EVENT, SET_KEEP_ON_TIMEOUT); } +#ifdef SUPPORT_AT_OHOSFWK +void power_display_set_keepon_timeout_handle_ext(void *data) +{ + uint32_t *message_value = (uint32_t *)data; + errcode_t ret = power_display_set_keepon_timeout_handle(SET_KEEP_SCREEN_ON_TIMEOUT_CMD, *message_value); + POWER_DISPLAY_PRINT_DEBUG(0, "display_set_keepon_timeout ret:%u.", ret); + free(message_value); +} +#endif + errcode_t power_display_set_brightness_handle(uint32_t message_type, uint32_t message_value) { unused(message_type); @@ -349,6 +472,16 @@ errcode_t power_display_set_brightness_handle(uint32_t message_type, uint32_t me return ERRCODE_SUCC; } +#ifdef SUPPORT_AT_OHOSFWK +void power_display_set_brightness_handle_ext(void *data) +{ + uint32_t *message_value = (uint32_t *)data; + errcode_t ret = power_display_set_brightness_handle(SET_BRIGHTNESS_CMD, *message_value); + POWER_DISPLAY_PRINT_DEBUG(0, "display_set_brightness ret:%u.", ret); + free(message_value); +} +#endif + errcode_t power_display_set_brightness_mode_handle(uint32_t message_type, uint32_t message_value) { unused(message_type); @@ -362,6 +495,16 @@ errcode_t power_display_gui_cmd_handle(uint32_t message_type, uint32_t message_v return power_display_execute_filter_rules(GUI_EVENT, message_value); } +#ifdef SUPPORT_AT_OHOSFWK +void power_display_gui_cmd_handle_ext(void *data) +{ + uint32_t *message_value = (uint32_t *)data; + errcode_t ret = power_display_gui_cmd_handle(GUI_EVENT_CMD, *message_value); + POWER_DISPLAY_PRINT_DEBUG(0, "display_gui_cmd ret:%u.", ret); + free(message_value); +} +#endif + errcode_t power_display_other_cmd_handle(uint32_t message_type, uint32_t message_value) { unused(message_type); @@ -377,6 +520,16 @@ errcode_t power_display_timer_cmd_handle(uint32_t message_type, uint32_t message return power_display_execute_filter_rules(TIMER_EVENT, message_value); } +#ifdef SUPPORT_AT_OHOSFWK +void power_display_timer_cmd_handle_ext(void *data) +{ + uint32_t *message_value = (uint32_t *)data; + errcode_t ret = power_display_timer_cmd_handle(TIMER_EVENT_CMD, *message_value); + POWER_DISPLAY_PRINT_DEBUG(0, "display_timer_cm ret:%u.", ret); + free(message_value); +} +#endif + static const power_display_svr_api_t g_power_display_svr_api = { .turn_on_screen = power_display_turn_on_screen, .turn_off_screen = power_display_turn_off_screen, diff --git a/code/sdk/application/wstp/at_service/bt/bt_manager_at_process.c b/code/sdk/application/wstp/at_service/bt/bt_manager_at_process.c index b7600d0cb..1f07bb3b6 100644 --- a/code/sdk/application/wstp/at_service/bt/bt_manager_at_process.c +++ b/code/sdk/application/wstp/at_service/bt/bt_manager_at_process.c @@ -2240,11 +2240,9 @@ uint32_t btsrv_wstp_at_pbap_pull_phonebook(const bt_manager_commu_inter_info_t * uint32_t btsrv_wstp_at_pbap_pull_vcard_listing(const bt_manager_commu_inter_info_t *at_para) { - uint8_t *folder = NULL; - uint8_t *vcf = NULL; - uint16_t *max_list_count = NULL; - uint16_t *list_offset = NULL; - uint8_t *order = NULL; + char **params[POS_7] = {NULL}; + int32_t params_cnt = 0; + char *p = NULL; char *delim = ","; uint16_t *tmp_para = (uint16_t *)BSP_MEM_ALLOC(at_para->payloadLength * sizeof(uint16_t)); int ret = memcpy_s(tmp_para, at_para->payloadLength, &at_para->payload[POS_0], at_para->payloadLength); @@ -2253,30 +2251,13 @@ uint32_t btsrv_wstp_at_pbap_pull_vcard_listing(const bt_manager_commu_inter_info BSP_MEM_FREE((void *)tmp_para); return ERRCODE_FAIL; } - folder = (uint8_t *)strtok((char*)tmp_para, delim); - vcf = (uint8_t *)strtok(NULL, delim); - max_list_count = (uint16_t *)strtok(NULL, delim); - list_offset = (uint16_t *)strtok(NULL, delim); - order = (uint8_t *)strtok(NULL, delim); - - if ((folder == NULL) || (vcf == NULL) || (max_list_count == NULL) || (list_offset == NULL) || (order == NULL)) { - wstp_print("input err\r\n"); - BSP_MEM_FREE((void *)tmp_para); - return ERRCODE_FAIL; + p = strtok((char*)tmp_para, delim); + for (int i = 0; i < POS_7 && p != NULL; i++) { + params_cnt++; + params[i] = p; + p = strtok((char*)NULL, delim); } - - *folder = (uint8_t)atoi((char*)folder); - *vcf = (uint8_t)atoi((char*)vcf); - *max_list_count = (uint16_t)atoi((char*)max_list_count); - *list_offset = (uint16_t)atoi((char*)list_offset); - *order = (uint8_t)atoi((char*)order); - wstp_print("folder=%d vcf=%d max_list_count=%d list_offset=%d order=%d\n", - *folder, - *vcf, - *max_list_count, - *list_offset, - *order); - wstp_pbap_cmd_pull_vcard_listing(*folder, *vcf, *max_list_count, *list_offset, *order); + wstp_pbap_cmd_pull_vcard_listing(params, params_cnt); BSP_MEM_FREE((void *)tmp_para); return ERRCODE_SUCC; } diff --git a/code/sdk/application/wstp/at_service/bt/sample/mc_bt_manager.h b/code/sdk/application/wstp/at_service/bt/sample/mc_bt_manager.h index 7706ac503..106f00937 100644 --- a/code/sdk/application/wstp/at_service/bt/sample/mc_bt_manager.h +++ b/code/sdk/application/wstp/at_service/bt/sample/mc_bt_manager.h @@ -384,8 +384,6 @@ extern void wstp_a2dp_src_get_active_device(void); extern void wstp_avrcp_ct_hdl_notify_play_status(uint8_t play_status); extern void wstp_pbap_cmd_pull_phonebook( uint8_t folder, uint8_t vcf, uint16_t max_list_count, uint16_t list_offset, uint8_t format); -extern void wstp_pbap_cmd_pull_vcard_listing( - uint8_t folder, uint8_t vcf, uint16_t max_list_count, uint16_t list_offset, uint8_t order); extern void wstp_pbap_cmd_pull_vcard_entry(uint8_t folder, uint8_t vcf, char *vcf_name, uint8_t format); extern int pbap_pce_stop_trans(const bth_bd_addr *bd_addr); extern int pbap_pce_get_device_connect_state(const bth_bd_addr *bd_addr); diff --git a/code/sdk/bootloader/flashboot/brandy/nandflash/hal_nandflash.c b/code/sdk/bootloader/flashboot/brandy/nandflash/hal_nandflash.c index 06298c845..871efa614 100644 --- a/code/sdk/bootloader/flashboot/brandy/nandflash/hal_nandflash.c +++ b/code/sdk/bootloader/flashboot/brandy/nandflash/hal_nandflash.c @@ -16,6 +16,8 @@ #include "nandflash_qspi.h" #include "nandflash_config.h" #include "hal_nandflash.h" +#include "pinctrl_porting.h" +#include "gpio.h" #include "nandflash.h" #define OFFSET 0 @@ -33,6 +35,28 @@ static volatile bool is_nandflash_working = false; uint8_t nand_write_buf[DEFALUT_BUFLENGTH] __attribute__((aligned(4))); uint8_t nand_read_buf[DEFALUT_BUFLENGTH] __attribute__((aligned(4))); +void cs_pulldown(void) +{ + if (SER_SELECT == 1) { + uapi_pin_set_mode(S_HGPIO11, (pin_mode_t)HAL_PIO_FUNC_GPIO); + uapi_gpio_set_dir(S_HGPIO11, GPIO_DIRECTION_OUTPUT); + uapi_gpio_set_val(S_HGPIO11, GPIO_LEVEL_LOW); + } else { + uapi_pin_set_mode(S_HGPIO12, (pin_mode_t)HAL_PIO_FUNC_GPIO); + uapi_gpio_set_dir(S_HGPIO12, GPIO_DIRECTION_OUTPUT); + uapi_gpio_set_val(S_HGPIO12, GPIO_LEVEL_LOW); + } +} + +void cs_pullup(void) +{ + if (SER_SELECT == 1) { + uapi_pin_set_mode(S_HGPIO11, (pin_mode_t)HAL_PIO_FUNC_QSPI2); + } else { + uapi_pin_set_mode(S_HGPIO12, (pin_mode_t)HAL_PIO_FUNC_QSPI2); + } +} + uint8_t mc_flash_get_offset(void) { return OFFSET; @@ -555,6 +579,7 @@ uint32_t write_by_cpu_single_line(qspi_data_type_def *qspi_data) static_time_before = uapi_tcxo_get_us(); } unsigned int irq_sts = osal_irq_lock(); + cs_pulldown(); writel(SER, 0x0); nand_qspi_write_data(ins); nand_qspi_write_data(0); // addr is 0 @@ -574,6 +599,7 @@ uint32_t write_by_cpu_single_line(qspi_data_type_def *qspi_data) nand_qspi_write_data(qspi_data->data_ptr[i]); } } + cs_pullup(); osal_irq_restore(irq_sts); if (SUPPORT_STATISTIC == 1) { static_time_after = uapi_tcxo_get_us(); diff --git a/code/sdk/build/config/target_config/brandy/config.py b/code/sdk/build/config/target_config/brandy/config.py index 31b5d67a7..5628ab016 100644 --- a/code/sdk/build/config/target_config/brandy/config.py +++ b/code/sdk/build/config/target_config/brandy/config.py @@ -105,6 +105,7 @@ target = { 'fs_image': False }, #native-js: liteos + uikit + nandflash + mipi + psram + audio 典型合封UIKIT版本 + #用户可参考user版本,删除reg/mem dump 'brandy-native-js': { 'board': 'evb', 'base_target_name': 'target_standard_brandy_application_template', @@ -121,7 +122,7 @@ target = { 'ulp_aon', 'hal_l2ram', 'bt_manager_at_service', 'x_dpal', 'x_vfs', 'x_disk', 'x_fat', 'drv_mmc', 'fs_yaffs2', 'x_vfs_private', 'pm_service', 'pm_brandy', 'cmn_header', 'at_cmd', 'graphic_at_service', 'app_at_service', 'ohosfwk_at_service', - "audio_proc", "audio_dump", "audio_probe", "power_manager", "gpu_proc",'bts_header', 'baidumapsdk'], + "audio_proc", "audio_dump", "audio_probe", "power_manager", "gpu_proc",'bts_header'], 'ram_component_set': ['bgh', 'media', 'gpu', 'graphic_uikit', 'bgh_audio', 'dfx_set', 'ohos_set', 'wearable_set', 'alipay_set'], 'dsp_version': 'max', 'packet': True, @@ -129,9 +130,10 @@ target = { }, #native-js-user: liteos + uikit + nandflash + mipi + psram + audio 典型合封UIKIT版本 #离线日志版本 + #删除reg/mem dump,写法如下:'-:DUMP_MEM_SUPPORT', '-:DUMP_REG_SUPPORT', '-:SUPPORT_DFX_EXCEPTION' 'brandy-native-js-user': { 'base_target_name': 'brandy-native-js', - 'defines': ['-:SW_UART_DEBUG'], + 'defines': ['-:SW_UART_DEBUG', '-:DUMP_MEM_SUPPORT', '-:DUMP_REG_SUPPORT', '-:SUPPORT_DFX_EXCEPTION'], }, #auto-ota-server 'brandy-auto-ota-ser': { @@ -161,7 +163,7 @@ target = { 'ulp_aon', 'hal_l2ram', 'x_dpal', 'x_vfs', 'x_disk', 'x_fat', 'drv_mmc', 'fs_yaffs2', 'x_vfs_private', 'pm_service', 'pm_brandy', 'cmn_header', 'at_cmd', 'graphic_at_service', 'app_at_service', 'ohosfwk_at_service', - "audio_proc", "audio_dump", "audio_probe", "power_manager", "gpu_proc", 'bts_header', 'baidumapsdk'], + "audio_proc", "audio_dump", "audio_probe", "power_manager", "gpu_proc", 'bts_header'], 'ram_component_set': ['bgh', 'media', 'gpu', 'graphic_uikit', 'bgh_audio', 'dfx_set', 'ohos_set', 'wearable_set', 'xts_set', 'xts_test_set', 'alipay_set'], 'dsp_version': 'max', 'packet': True, diff --git a/code/sdk/drivers/drivers/driver/button/button.c b/code/sdk/drivers/drivers/driver/button/button.c index 6bf54adec..2a65e79c6 100644 --- a/code/sdk/drivers/drivers/driver/button/button.c +++ b/code/sdk/drivers/drivers/driver/button/button.c @@ -52,6 +52,7 @@ typedef struct { button_debounced_t g_button_debounced = {0}; button_map_t g_button_pin_map[BUTTON_PIN_MAP_MAX] = {0}; timer_handle_t g_button_timer = {0}; +timer_handle_t g_gpio_button_timer = {0}; button_info_t g_button_info = {0}; bool g_timer_is_running = false; msg_send_callback_t g_msg_send_cb = NULL; @@ -126,8 +127,8 @@ static void button_timer_start_check_released(void) } if (start) { - uapi_rtc_stop(g_button_timer); - uapi_rtc_start(g_button_timer, BUTTON_CHECK_RELEADSED, button_check_released_timer_callback, 0); + uapi_rtc_stop(g_gpio_button_timer); + uapi_rtc_start(g_gpio_button_timer, BUTTON_CHECK_RELEADSED, button_check_released_timer_callback, 0); } } @@ -317,6 +318,9 @@ void uapi_button_deinit(void) uapi_rtc_stop(g_button_timer); uapi_rtc_delete(g_button_timer); g_button_timer = NULL; + uapi_rtc_stop(g_gpio_button_timer); + uapi_rtc_delete(g_gpio_button_timer); + g_gpio_button_timer = NULL; for (uint8_t i = 0; i < BUTTON_PIN_MAP_MAX; i++) { g_button_pin_map[i].pin = PIN_NONE; g_button_pin_map[i].button = BUTTON_MAX; @@ -338,6 +342,11 @@ errcode_t uapi_button_init(void) PRINT("uapi_rtc_create FAILED 0x%x", ret); return ret; } + ret = uapi_rtc_create(0, &g_gpio_button_timer); /* 1: using timer1 */ + if (ret != ERRCODE_SUCC) { + PRINT("uapi_rtc_create FAILED 0x%x", ret); + return ret; + } return ERRCODE_SUCC; } diff --git a/code/sdk/drivers/drivers/driver/nand_flash/nand/hal_nandflash.c b/code/sdk/drivers/drivers/driver/nand_flash/nand/hal_nandflash.c index f8e9a604c..96c37ee71 100644 --- a/code/sdk/drivers/drivers/driver/nand_flash/nand/hal_nandflash.c +++ b/code/sdk/drivers/drivers/driver/nand_flash/nand/hal_nandflash.c @@ -53,7 +53,8 @@ uint8_t mc_flash_get_offset(void) uint32_t read_buffer_single_line_width_32(qspi_data_type_def *qspi_data); -void cs_pulldown(void) { +void cs_pulldown(void) +{ if (SER_SELECT == 1) { uapi_pin_set_mode(S_HGPIO11, (pin_mode_t)HAL_PIO_FUNC_GPIO); uapi_gpio_set_dir(S_HGPIO11, GPIO_DIRECTION_OUTPUT); @@ -65,7 +66,8 @@ void cs_pulldown(void) { } } -void cs_pullup(void) { +void cs_pullup(void) +{ if (SER_SELECT == 1) { uapi_pin_set_mode(S_HGPIO11, (pin_mode_t)HAL_PIO_FUNC_QSPI2); } else { @@ -389,18 +391,18 @@ static void read_oob(uint8_t *oob, uint32_t oob_len) return; } -void debug_read_buffer(void) { - if (readw(0x57000010) == 0x5a) - { - for (uint32_t i = 0; i < DEFALUT_BUFLENGTH; i++) - { +void debug_read_buffer(void) +{ + if (readw(0x57000010) == 0x5a) { + for (uint32_t i = 0; i < DEFALUT_BUFLENGTH; i++) { PRINT("nand_read_buf index:%d , VALUE:%d] \r\n", i, nand_read_buf[i]); } writew(0x57000010, 0); } } -uint32_t read_buffer(qspi_data_type_def *qspi_data, uint8_t *data, uint32_t data_len, uint8_t *oob, uint32_t oob_len, enum nandflash_trans_type type) +uint32_t read_buffer(qspi_data_type_def *qspi_data, uint8_t *data, uint32_t data_len, uint8_t *oob, uint32_t oob_len, + enum nandflash_trans_type type) { while (is_nandflash_working) { uapi_tcxo_delay_us(HAL_NAND_WAIT_3US); @@ -996,7 +998,6 @@ uint32_t program_load_width_32(qspi_data_type_def *qspi_data) uint32_t write_by_cpu_single_line(qspi_data_type_def *qspi_data) { - PRINT("write_by_cpu_single_line !!!\r\n"); qspi_busy_wait(); uint16_t address = SWAP_U16(qspi_data->address); uint8_t *addr = (uint8_t *)&address; diff --git a/code/sdk/drivers/drivers/driver/nand_flash/nand/include/hal_nandflash.h b/code/sdk/drivers/drivers/driver/nand_flash/nand/include/hal_nandflash.h index 44cd9a722..c0028304c 100644 --- a/code/sdk/drivers/drivers/driver/nand_flash/nand/include/hal_nandflash.h +++ b/code/sdk/drivers/drivers/driver/nand_flash/nand/include/hal_nandflash.h @@ -100,7 +100,8 @@ typedef struct { uint8_t mc_flash_get_offset(void); uint16_t read_id(qspi_data_type_def *qspi_data); uint32_t read_cell_array(qspi_data_type_def *qspi_data); -uint32_t read_buffer(qspi_data_type_def *qspi_data, uint8_t *data, uint32_t data_len, uint8_t *oob, uint32_t oob_len, enum nandflash_trans_type type); +uint32_t read_buffer(qspi_data_type_def *qspi_data, uint8_t *data, uint32_t data_len, uint8_t *oob, uint32_t oob_len, + enum nandflash_trans_type type); uint8_t read_sr(qspi_data_type_def *qspi_data, uint8_t address); uint32_t write_sr(qspi_data_type_def *qspi_data, uint8_t addr, uint8_t data); void write_cmd(uint8_t command); @@ -119,7 +120,7 @@ void change_div(uint32_t div); dma_channel_t dma_send_data(uint32_t trans_num, uint8_t *data_ptr, uint8_t width); dma_channel_t dma_recv_data(uint32_t trans_num, uint8_t *data_ptr, uint8_t width); uint32_t read_buffer_single_line_width_8(qspi_data_type_def *qspi_data); -uint32_t read_bPffer_single_line_width_32(qspi_data_type_def *qspi_data); +uint32_t read_buffer_single_line_width_32(qspi_data_type_def *qspi_data); uint32_t read_buffer_by_dma(qspi_data_type_def *qspi_data); uint32_t program_load_by_dma_width_32(qspi_data_type_def *qspi_data); uint32_t read_buffer_by_dma_width32(qspi_data_type_def *qspi_data); diff --git a/code/sdk/drivers/drivers/driver/nand_flash/nand/include/nandflash_inner.h b/code/sdk/drivers/drivers/driver/nand_flash/nand/include/nandflash_inner.h index f8a91003a..eddf19100 100644 --- a/code/sdk/drivers/drivers/driver/nand_flash/nand/include/nandflash_inner.h +++ b/code/sdk/drivers/drivers/driver/nand_flash/nand/include/nandflash_inner.h @@ -64,8 +64,8 @@ typedef enum nandflash_trans_speed { struct nand_driver_struct { uint32_t (*nand_flash_init)(void); uint16_t (*check_id)(void); - uint32_t (*read_page)(uint32_t nand_page, uint8_t *data, uint32_t data_len, - uint8_t *oob, uint32_t oob_len, uint8_t *status_reg, enum nandflash_trans_type type); + uint32_t (*read_page)(uint32_t nand_page, uint8_t *data, uint32_t data_len, uint8_t *oob, uint32_t oob_len, + uint8_t *status_reg, enum nandflash_trans_type type); uint32_t (*write_page)(uint32_t nand_page, uint8_t *data, uint32_t data_len, uint8_t *oob, uint32_t oob_len); uint32_t (*erase_block)(uint32_t block_no); uint32_t (*mark_bad_block)(uint32_t block_no); @@ -91,8 +91,8 @@ uint32_t mc_flash_read_sr(uint8_t addr, uint8_t *data); uint32_t mc_flash_write_sr(uint8_t addr, uint8_t data); void mc_flash_write_cmd(uint8_t cmd); void mc_flash_busy_wait(void); -uint32_t mc_flash_read_page(uint32_t nand_page, uint8_t *data, uint32_t data_len, - uint8_t *oob, uint32_t oob_len, uint8_t *status_reg, enum nandflash_trans_type type); +uint32_t mc_flash_read_page(uint32_t nand_page, uint8_t *data, uint32_t data_len, uint8_t *oob, uint32_t oob_len, + uint8_t *status_reg, enum nandflash_trans_type type); uint32_t mc_flash_write_page(uint32_t nand_page, uint8_t *data, uint32_t data_len, uint8_t *oob, uint32_t oob_len); uint32_t mc_flash_erase_block(uint32_t block_no); uint32_t mc_flash_mark_bad_block(uint32_t block_no); diff --git a/code/sdk/drivers/drivers/driver/nand_flash/nand/include/nandflash_to_os.h b/code/sdk/drivers/drivers/driver/nand_flash/nand/include/nandflash_to_os.h index e25610d5c..0c93526a7 100644 --- a/code/sdk/drivers/drivers/driver/nand_flash/nand/include/nandflash_to_os.h +++ b/code/sdk/drivers/drivers/driver/nand_flash/nand/include/nandflash_to_os.h @@ -72,4 +72,14 @@ int os_nand_block_isbad(const struct mtd_info *mtd, size_t ofs); * @return 0 SUCESS 1 FAILURE */ int os_nand_block_markbad(const struct mtd_info *mtd, size_t ofs); + +/** + * @brief lock nand + */ +void nand_lock(void); + +/** + * @brief unlock nand + */ +void nand_unlock(void); #endif diff --git a/code/sdk/drivers/drivers/driver/nand_flash/nand/nandflash_config.c b/code/sdk/drivers/drivers/driver/nand_flash/nand/nandflash_config.c index fa6a2e270..7075e44ca 100644 --- a/code/sdk/drivers/drivers/driver/nand_flash/nand/nandflash_config.c +++ b/code/sdk/drivers/drivers/driver/nand_flash/nand/nandflash_config.c @@ -20,6 +20,7 @@ #include "mtd_partition.h" #include "dpal.h" #include "nandflash.h" +#include "chip_io.h" #include "hal_nandflash.h" #include "nandflash_tc58cyg.h" #include "nandflash_ds35x1g.h" @@ -107,7 +108,7 @@ static int formate_filesystem(uint32_t total_block_num) return ret; } -/* ʹÓÃÔ¼Êø£ºÖжϺÍÒì³£ÖУ¬½ûÖ¹sync²Ù×÷ */ +/* 使用约束:中断和异常中,禁止sync操作 */ void nandflash_yaffs_sync(void) { if (osal_in_interrupt() != true && get_exception_status() != true) { @@ -148,23 +149,19 @@ void erase_all(struct nand_driver_struct *driver) } } -#include "chip_io.h" void test_nand_flash_read_8(struct nand_driver_struct *test_nand_flash_driver, uint32_t nand_page) { - - struct mtd_info *mtd; + struct mtd_info *mtd; mtd = get_mtd("nand"); - if (mtd == NULL) - { + if (mtd == NULL) { nand_register(mtd); } - memset_s(buffer_verify, DEFALUT_BUFLENGTH, 0, DEFALUT_BUFLENGTH); - PRINT("nandflash [READ][PAGE:%d]\r\n", nand_page); uint32_t retlen; writew(0x57000010, 0x5a); - os_nand_read_oob(mtd, mtd->writesize * nand_page, mtd->writesize + mtd->oobsize, &retlen, (const char *)buffer_verify); + os_nand_read_oob( + mtd, mtd->writesize * nand_page, mtd->writesize + mtd->oobsize, &retlen, (const char *)buffer_verify); writew(0x57000010, 0x0); for (uint32_t i = 0; i < test_nand_flash_driver->bytes_per_page; i++) { PRINT("[READ DATA INDEX:%d , VALUE:%d] \r\n", i, buffer_verify[i]); @@ -185,11 +182,9 @@ void test_nand_flash_write_width8(struct nand_driver_struct *test_nand_flash_dri { struct mtd_info *mtd; mtd = get_mtd("nand"); - if (mtd == NULL) - { + if (mtd == NULL) { nand_register(mtd); } - int j = 0; for (uint32_t i = 0; i < test_nand_flash_driver->bytes_per_page; i++) { @@ -214,7 +209,8 @@ void test_nand_flash_write_width8(struct nand_driver_struct *test_nand_flash_dri PRINT("nandflash [READ][PAGE:%d]\r\n", nand_page); PRINT("[WRITE][WRITE][WRITE][WRITE][WRITE][WRITE][WRITE][WRITE]\r\n"); uint32_t retlen; - os_nand_write_oob(mtd, mtd->writesize * nand_page, mtd->writesize + mtd->oobsize, &retlen, (const char *)buffer_verify); + os_nand_write_oob( + mtd, mtd->writesize * nand_page, mtd->writesize + mtd->oobsize, &retlen, (const char *)buffer_verify); } void nandflash_qspi_init(void) diff --git a/code/sdk/drivers/drivers/driver/nand_flash/nand/nandflash_ds35x1g.c b/code/sdk/drivers/drivers/driver/nand_flash/nand/nandflash_ds35x1g.c index 419141a65..d87b86b72 100644 --- a/code/sdk/drivers/drivers/driver/nand_flash/nand/nandflash_ds35x1g.c +++ b/code/sdk/drivers/drivers/driver/nand_flash/nand/nandflash_ds35x1g.c @@ -23,8 +23,8 @@ static qspi_data_type_def g_qspi_data = {0}; -static uint32_t mc_ds35x1g_read_page( - uint32_t nand_page, uint8_t *data, uint32_t data_len, uint8_t *oob, uint32_t oob_len, const uint32_t *ecc_result, enum nandflash_trans_type type) +static uint32_t mc_ds35x1g_read_page(uint32_t nand_page, uint8_t *data, uint32_t data_len, uint8_t *oob, + uint32_t oob_len, const uint32_t *ecc_result, enum nandflash_trans_type type) { unused(ecc_result); uint32_t ret; diff --git a/code/sdk/drivers/drivers/driver/nand_flash/nand/nandflash_tc58cyg.c b/code/sdk/drivers/drivers/driver/nand_flash/nand/nandflash_tc58cyg.c index 4c414293c..de9864888 100644 --- a/code/sdk/drivers/drivers/driver/nand_flash/nand/nandflash_tc58cyg.c +++ b/code/sdk/drivers/drivers/driver/nand_flash/nand/nandflash_tc58cyg.c @@ -23,13 +23,13 @@ static qspi_data_type_def g_qspi_data = {0}; -static uint32_t mc_tc58cyg_read_page( - uint32_t nand_page, uint8_t *data, uint32_t data_len, uint8_t *oob, uint32_t oob_len, const uint32_t *ecc_result, enum nandflash_trans_type type) +static uint32_t mc_tc58cyg_read_page(uint32_t nand_page, uint8_t *data, uint32_t data_len, uint8_t *oob, + uint32_t oob_len, const uint32_t *ecc_result, enum nandflash_trans_type type) { unused(ecc_result); uint32_t ret; uint8_t status_reg; - ret = mc_flash_read_page(nand_page, data, data_len, oob, oob_len, &status_reg,type); + ret = mc_flash_read_page(nand_page, data, data_len, oob, oob_len, &status_reg, type); if (ret != MC_SUCCESS) { return MC_FAILURE; } diff --git a/code/sdk/drivers/drivers/driver/nand_flash/nand/nandflash_to_os.c b/code/sdk/drivers/drivers/driver/nand_flash/nand/nandflash_to_os.c index fe231efbd..fb22d4028 100644 --- a/code/sdk/drivers/drivers/driver/nand_flash/nand/nandflash_to_os.c +++ b/code/sdk/drivers/drivers/driver/nand_flash/nand/nandflash_to_os.c @@ -14,13 +14,13 @@ #include "los_misc_pri.h" #endif #include "nandflash_config.h" -#include "nandflash_to_os.h" #include "soc_osal.h" #include "soc_errno.h" #include "pinctrl_porting.h" #include "hal_gpio.h" #include "platform_core.h" #include "pinctrl.h" +#include "nandflash_to_os.h" #define NAND_FLASH_TYLE 4 #define NAND_FLASH_FLAGS 0x400 @@ -28,12 +28,13 @@ #define SUCCESS 0 #define FAILURE 1 #define MAX_RETRYS 3 + extern uint8_t nand_read_buf[DEFALUT_BUFLENGTH] __attribute__((aligned(4))); bool test_overturn = false; void test_nand_io_init(void) { - test_overturn = false; + test_overturn = false; uapi_pin_set_mode(S_AGPIO_R8, (pin_mode_t)HAL_PIO_FUNC_GPIO); uapi_gpio_set_dir(S_AGPIO_R8, GPIO_DIRECTION_OUTPUT); uapi_gpio_set_val(S_AGPIO_R8, GPIO_LEVEL_HIGH); @@ -41,14 +42,11 @@ void test_nand_io_init(void) void test_nand_io_overturn(void) { - if(test_overturn) - { + if (test_overturn) { test_overturn = false; uapi_gpio_set_dir(S_AGPIO_R8, GPIO_DIRECTION_OUTPUT); uapi_gpio_set_val(S_AGPIO_R8, GPIO_LEVEL_LOW); - } - else - { + } else { test_overturn = true; uapi_gpio_set_dir(S_AGPIO_R8, GPIO_DIRECTION_OUTPUT); uapi_gpio_set_val(S_AGPIO_R8, GPIO_LEVEL_HIGH); @@ -80,16 +78,13 @@ void nand_unlock(void) void nand_register(struct mtd_info *mtd) { - test_nand_io_init(); ext_errno ret; if (file_system_mux.mutex == NULL) { ret = osal_mutex_init(&(file_system_mux)); - if (ret != OSAL_SUCCESS) - { + if (ret != OSAL_SUCCESS) { return; } } - nand_driver = get_nand_flash(); mtd->size = nand_driver->pages_per_block * nand_driver->bytes_per_page * nand_driver->total_block; mtd->erasesize = nand_driver->pages_per_block * nand_driver->bytes_per_page; @@ -118,7 +113,7 @@ void nand_register(struct mtd_info *mtd) int os_nand_erase(const struct mtd_info *mtd, const struct erase_info *instr) { #ifdef __LITEOS__ - NFPRINT("os_nand_erase %s \r\n",OsCurTaskNameGet()); + NFPRINT("os_nand_erase %s \r\n", OsCurTaskNameGet()); #endif nand_lock(); uint32_t addr = (uint32_t)instr->addr; @@ -167,23 +162,23 @@ int os_nand_erase(const struct mtd_info *mtd, const struct erase_info *instr) int os_nand_read_oob(struct mtd_info *mtd, size_t from, size_t len, size_t *retlen, char *buf) { - nand_lock(); uint32_t *change = (uint32_t *)&from; uint32_t addr_from = change[0]; *retlen = len; NFPRINT("read oob addr_from=%x len=%d \r\n", addr_from, len); if ((addr_from & (mtd->writesize - 1)) != 0) { - PRINT("Attempt to read non page aligned data, addr_from %08x.\n", - (uint32_t)addr_from); + PRINT("Attempt to read non page aligned data, addr_from %08x.\n", (uint32_t)addr_from); nand_unlock(); return FAILURE; } if ((len % (mtd->writesize + mtd->oobsize)) != 0) { PRINT("Attempt to read non aligned data, read length should " - "be aligned with (pagesize + oobsize), length:%d " - "pagesize:%d oobsize:%d\n", - (uint32_t)len, mtd->writesize, mtd->oobsize); + "be aligned with (pagesize + oobsize), length:%d " + "pagesize:%d oobsize:%d\n", + (uint32_t)len, + mtd->writesize, + mtd->oobsize); nand_unlock(); return FAILURE; } @@ -197,12 +192,16 @@ int os_nand_read_oob(struct mtd_info *mtd, size_t from, size_t len, size_t *retl mtd->writesize, (uint8_t *)buf + i * (mtd->writesize + mtd->oobsize) + mtd->writesize, mtd->oobsize, &status, TRANS_DEFAULT); if (ret != MC_SUCCESS) { - ret = nand_driver->read_page(frompage + i, (uint8_t *)buf + i * (mtd->writesize + mtd->oobsize), - mtd->writesize, (uint8_t *)buf + i * (mtd->writesize + mtd->oobsize) + mtd->writesize, mtd->oobsize, &status, TRANS_BY_CPU_SINGLE_LINE); + ret = nand_driver->read_page(frompage + i, + (uint8_t *)buf + i * (mtd->writesize + mtd->oobsize), + mtd->writesize, + (uint8_t *)buf + i * (mtd->writesize + mtd->oobsize) + mtd->writesize, + mtd->oobsize, + &status, + TRANS_BY_CPU_SINGLE_LINE); } if (ret != MC_SUCCESS) { - PRINT("NAND read to from %08x failed %d \r\n", - (uint32_t)addr_from + i * mtd->writesize, ret); + PRINT("NAND read to from %08x failed %d \r\n", (uint32_t)addr_from + i * mtd->writesize, ret); nand_unlock(); return FAILURE; } @@ -215,7 +214,7 @@ int os_nand_read_oob(struct mtd_info *mtd, size_t from, size_t len, size_t *retl int os_nand_write_oob(struct mtd_info *mtd, size_t to, size_t len, size_t *retlen, const char *buf) { #ifdef __LITEOS__ - NFPRINT("os_nand_write_oob %s \r\n",OsCurTaskNameGet()); + NFPRINT("os_nand_write_oob %s \r\n", OsCurTaskNameGet()); #endif nand_lock(); uint32_t *change = (uint32_t *)&to; @@ -239,14 +238,16 @@ int os_nand_write_oob(struct mtd_info *mtd, size_t to, size_t len, size_t *retle uint32_t read_ret; for (uint32_t i = 0; i < len_data / mtd->writesize; i++) { uint8_t status; - write_ret = nand_driver->write_page(frompage + i, (uint8_t *)buf + i * (mtd->writesize + mtd->oobsize), - mtd->writesize, (uint8_t *)buf + i * (mtd->writesize + mtd->oobsize) + mtd->writesize, mtd->oobsize); + write_ret = nand_driver->write_page(frompage + i, + (uint8_t *)buf + i * (mtd->writesize + mtd->oobsize), + mtd->writesize, + (uint8_t *)buf + i * (mtd->writesize + mtd->oobsize) + mtd->writesize, + mtd->oobsize); memset_s(buffer_verify, OS_DUMP_LEN, 0, OS_DUMP_LEN); read_ret = nand_driver->read_page(frompage + i, (uint8_t *)buffer_verify, mtd->writesize, (uint8_t *)buffer_verify + mtd->writesize, mtd->oobsize, &status, TRANS_BY_CPU_SINGLE_LINE); - if (write_ret != MC_SUCCESS) - { + if (write_ret != MC_SUCCESS) { PRINT("NAND write to %08x failed %d \r\n", (uint32_t)from + i * mtd->writesize, write_ret); nand_unlock(); return FAILURE; @@ -262,9 +263,9 @@ int os_nand_write_oob(struct mtd_info *mtd, size_t to, size_t len, size_t *retle PRINT("PAGE = %d\r\n", frompage + i); PRINT("origin-----------------------------------------, diff index = %d\r\n", t); OsDumpMemByte(OS_DUMP_LEN, (const char *)buf + i * (mtd->writesize + mtd->oobsize)); - PRINT("after1--nand_read_buf---------------------------, diff index = %d\r\n", t); - OsDumpMemByte(200, nand_read_buf); - PRINT("after2------------------------------------------, diff index = %d\r\n", t); + PRINT("after-dma-nand_read_buf---------------------------, diff index = %d\r\n", t); + OsDumpMemByte(OS_DUMP_LEN, nand_read_buf); + PRINT("after-copy-----------------------------------------, diff index = %d\r\n", t); OsDumpMemByte(OS_DUMP_LEN, buffer_verify); #endif diff --git a/code/sdk/drivers/drivers/driver/nand_flash/nand/nandflash_w25n01g.c b/code/sdk/drivers/drivers/driver/nand_flash/nand/nandflash_w25n01g.c index 6cf36fad8..992567907 100644 --- a/code/sdk/drivers/drivers/driver/nand_flash/nand/nandflash_w25n01g.c +++ b/code/sdk/drivers/drivers/driver/nand_flash/nand/nandflash_w25n01g.c @@ -21,8 +21,8 @@ #define W25N01G_ECC_ERROR 0x03 #define NAND_ID_DATA_SIZE 0x2 -static uint32_t mc_w25n01g_read_page(uint32_t nand_page, uint8_t *data, uint32_t data_len, - uint8_t *oob, uint32_t oob_len, const uint32_t *ecc_result, enum nandflash_trans_type type) +static uint32_t mc_w25n01g_read_page(uint32_t nand_page, uint8_t *data, uint32_t data_len, uint8_t *oob, + uint32_t oob_len, const uint32_t *ecc_result, enum nandflash_trans_type type) { unused(ecc_result); uint32_t ret; diff --git a/code/sdk/include/middleware/services/bts/ble/bts_le_gap.h b/code/sdk/include/middleware/services/bts/ble/bts_le_gap.h index 3d66b491f..3f01dd33e 100644 --- a/code/sdk/include/middleware/services/bts/ble/bts_le_gap.h +++ b/code/sdk/include/middleware/services/bts/ble/bts_le_gap.h @@ -1434,6 +1434,51 @@ errcode_t gap_ble_remove_pair(const bd_addr_t *addr); */ errcode_t gap_ble_remove_all_pairs(void); +/** + * @if Eng + * @brief Use this funtion to get the bonded state of a specific device. + * @par Use this funtion to get the bonded state of a specific device. + * @attention NULL + * @param [out] addr the list of paired devices address. + * @param [inout] number as input parameter, the buffer size of user, + as output parameter, the number of paired devices. + * @retval error code. + * @par Dependency: + * @li bts_def.h + * @else + * @brief 获取本端设备的已绑定设备。 + * @par 获取本端设备的已绑定设备。 + * @attention 无 + * @param [out] addr 绑定设备地址链表。 + * @param [inout] number 作为入参时为用户分配的内存大小,作为出参时为绑定设备数量。 + * @retval 执行结果错误码。 + * @par 依赖: + * @li bts_def.h + * @endif + */ +errcode_t gap_ble_get_bonded_devices(bd_addr_t *addr, uint16_t *number); + +/** + * @if Eng + * @brief Use this funtion to remove all bond devices info from the paired list. + * @par Use this funtion to remove all paired devices info from the paired list. + * @attention NULL + * @param NULL + * @retval error code. + * @par Dependency: + * @li bts_def.h + * @else + * @brief 删除所有BLE绑定设备信息。 + * @par 删除所有BLE绑定设备信息。 + * @attention 无 + * @param 无 + * @retval 执行结果错误码。 + * @par 依赖: + * @li bts_def.h + * @endif + */ +errcode_t gap_ble_remove_all_bond_devices(void); + /** * @if Eng * @brief Use this funtion to update ble connect param. diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/app_style.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/app_style.cpp.xml index 58e9c459c..814768b37 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/app_style.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/app_style.cpp.xml @@ -1,10 +1,10 @@ - - - - - - - - - + + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/app_style_item.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/app_style_item.cpp.xml index 26b47e879..616ce6daf 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/app_style_item.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/app_style_item.cpp.xml @@ -1,9 +1,9 @@ - - - - - - - - + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/app_style_manager.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/app_style_manager.cpp.xml index 5d33c0cde..f56cf39f9 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/app_style_manager.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/app_style_manager.cpp.xml @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/bt_audio_hal.c.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/bt_audio_hal.c.xml index 116c25315..17432c1ea 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/bt_audio_hal.c.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/bt_audio_hal.c.xml @@ -11,8 +11,8 @@ - - + + diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/bt_database.c.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/bt_database.c.xml index 3c3875a65..74c06789d 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/bt_database.c.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/bt_database.c.xml @@ -5,21 +5,23 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/btsrv_gatt_server.c.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/btsrv_gatt_server.c.xml index be14d17bf..543fb98f7 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/btsrv_gatt_server.c.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/btsrv_gatt_server.c.xml @@ -37,87 +37,89 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/connection_manager.c.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/connection_manager.c.xml index 41d02663f..830491989 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/connection_manager.c.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/connection_manager.c.xml @@ -24,111 +24,111 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/image_cache_manager.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/image_cache_manager.cpp.xml index 0477d384a..076b14e7e 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/image_cache_manager.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/image_cache_manager.cpp.xml @@ -3,30 +3,38 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/js_page_state.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/js_page_state.cpp.xml index 73ce328db..83155ae4e 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/js_page_state.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/js_page_state.cpp.xml @@ -1,11 +1,11 @@ - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/js_page_state_machine.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/js_page_state_machine.cpp.xml index b7bb8bfda..879879367 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/js_page_state_machine.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/js_page_state_machine.cpp.xml @@ -1,22 +1,22 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/js_router.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/js_router.cpp.xml index efe8c9181..b28742c84 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/js_router.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/js_router.cpp.xml @@ -1,9 +1,9 @@ - - - - - - - - + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/kaleidoscope_utils.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/kaleidoscope_utils.cpp.xml index 3b813ecea..275831db1 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/kaleidoscope_utils.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/kaleidoscope_utils.cpp.xml @@ -16,10 +16,11 @@ - - - - - - + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/pbap_service.c.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/pbap_service.c.xml index 50233d12d..0eaf89b03 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/pbap_service.c.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/pbap_service.c.xml @@ -1,47 +1,48 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/platform_adapter.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/platform_adapter.cpp.xml index 4e9d3cc90..b988bc94b 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/platform_adapter.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/platform_adapter.cpp.xml @@ -1,4 +1,4 @@ - - - + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/remote_device_manager.c.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/remote_device_manager.c.xml index 57174de75..4da0f6ee3 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/remote_device_manager.c.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/remote_device_manager.c.xml @@ -72,10 +72,15 @@ - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/sdk_general_gap.c.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/sdk_general_gap.c.xml index df39006dc..4efd77217 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/sdk_general_gap.c.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/sdk_general_gap.c.xml @@ -33,12 +33,12 @@ - - - - - - - - + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/spp_service.c.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/spp_service.c.xml index ff86239b5..b0ce8cad1 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/spp_service.c.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/spp_service.c.xml @@ -1,50 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/stack_pbap_if.c.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/stack_pbap_if.c.xml index 3bc3eca65..16f48c4a5 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/stack_pbap_if.c.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/stack_pbap_if.c.xml @@ -1,14 +1,15 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ui_canvas_ext.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ui_canvas_ext.cpp.xml index 8dd6e0fbf..6fc4b2347 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ui_canvas_ext.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ui_canvas_ext.cpp.xml @@ -12,21 +12,22 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hdb/hdbcfg/mss_prim_db.xml b/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hdb/hdbcfg/mss_prim_db.xml index 0b2ac288f..b1d8c6a12 100644 --- a/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hdb/hdbcfg/mss_prim_db.xml +++ b/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hdb/hdbcfg/mss_prim_db.xml @@ -807,10 +807,10 @@ - - - - + + + + diff --git a/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hso_database/xml/base/bt_core/bt_ahi_pbap.c.xml b/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hso_database/xml/base/bt_core/bt_ahi_pbap.c.xml index e9481c54b..edfe63085 100644 --- a/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hso_database/xml/base/bt_core/bt_ahi_pbap.c.xml +++ b/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hso_database/xml/base/bt_core/bt_ahi_pbap.c.xml @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_audio_manager_wrapper.a b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_audio_manager_wrapper.a index e57248c91..c5a5e72a1 100644 Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_audio_manager_wrapper.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_audio_manager_wrapper.a differ diff --git a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_brandy_service.a b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_brandy_service.a index 1e35cc3a5..dc7c4de02 100644 Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_brandy_service.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_brandy_service.a differ diff --git a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_sdk.a b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_sdk.a index 3ed07885c..54c959693 100644 Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_sdk.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_sdk.a differ diff --git a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_audio_manager_wrapper.a b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_audio_manager_wrapper.a index d3a056ddd..1ddd57eb5 100644 Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_audio_manager_wrapper.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_audio_manager_wrapper.a differ diff --git a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_brandy_service.a b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_brandy_service.a index bb54f889b..e396688fd 100644 Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_brandy_service.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_brandy_service.a differ diff --git a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_sdk.a b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_sdk.a index 36388d058..b58bd0eca 100644 Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_sdk.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_sdk.a differ diff --git a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/br/libbt_host_brandy_service.a b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/br/libbt_host_brandy_service.a index 50f9fb2a7..d2214bc57 100644 Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/br/libbt_host_brandy_service.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/br/libbt_host_brandy_service.a differ diff --git a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/br/libbt_host_sdk.a b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/br/libbt_host_sdk.a index cba656b53..ca04ee897 100644 Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/br/libbt_host_sdk.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/br/libbt_host_sdk.a differ diff --git a/code/sdk/kernel/liteos/liteos_v207.1.0/Huawei_LiteOS/tools/build/config/brandy.config b/code/sdk/kernel/liteos/liteos_v207.1.0/Huawei_LiteOS/tools/build/config/brandy.config index 69daa6ffb..739649d90 100644 --- a/code/sdk/kernel/liteos/liteos_v207.1.0/Huawei_LiteOS/tools/build/config/brandy.config +++ b/code/sdk/kernel/liteos/liteos_v207.1.0/Huawei_LiteOS/tools/build/config/brandy.config @@ -79,7 +79,7 @@ LOSCFG_TASK_STACK_DYNAMIC_ALLOCATION=y LOSCFG_BASE_CORE_TSK_LIMIT=40 LOSCFG_BASE_CORE_TSK_MIN_STACK_SIZE=1024 LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE=2048 -LOSCFG_BASE_CORE_TSK_SWTMR_STACK_SIZE=2048 +LOSCFG_BASE_CORE_TSK_SWTMR_STACK_SIZE=3072 LOSCFG_BASE_CORE_TSK_IDLE_STACK_SIZE=3072 LOSCFG_BASE_CORE_TSK_DEFAULT_PRIO=10 LOSCFG_BASE_CORE_TICK_PER_SECOND=1000 diff --git a/code/sdk/kernel/liteos/liteos_v207.1.0/Huawei_LiteOS/tools/build/config/brandy_xts.config b/code/sdk/kernel/liteos/liteos_v207.1.0/Huawei_LiteOS/tools/build/config/brandy_xts.config index d66e1b699..9e503f1fb 100644 --- a/code/sdk/kernel/liteos/liteos_v207.1.0/Huawei_LiteOS/tools/build/config/brandy_xts.config +++ b/code/sdk/kernel/liteos/liteos_v207.1.0/Huawei_LiteOS/tools/build/config/brandy_xts.config @@ -79,7 +79,7 @@ LOSCFG_TASK_STACK_DYNAMIC_ALLOCATION=y LOSCFG_BASE_CORE_TSK_LIMIT=40 LOSCFG_BASE_CORE_TSK_MIN_STACK_SIZE=1024 LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE=2048 -LOSCFG_BASE_CORE_TSK_SWTMR_STACK_SIZE=2048 +LOSCFG_BASE_CORE_TSK_SWTMR_STACK_SIZE=3072 LOSCFG_BASE_CORE_TSK_IDLE_STACK_SIZE=3072 LOSCFG_BASE_CORE_TSK_DEFAULT_PRIO=10 LOSCFG_BASE_CORE_TICK_PER_SECOND=1000 diff --git a/code/sdk/middleware/chips/brandy/dfx/include/log_def_ohos.h b/code/sdk/middleware/chips/brandy/dfx/include/log_def_ohos.h index b5e2a6581..2d1e3bd07 100644 --- a/code/sdk/middleware/chips/brandy/dfx/include/log_def_ohos.h +++ b/code/sdk/middleware/chips/brandy/dfx/include/log_def_ohos.h @@ -120,6 +120,8 @@ typedef enum { JSI_CPP, APP_MODULE_CPP, DEVICE_MODULE_CPP, + NFC_MODULE_CPP, + GEOLOCATION_MODULE_CPP, VIBRATOR_MODULE_CPP, BATTERY_MODULE_CPP, SENSOR_MODULE_CPP, diff --git a/code/sdk/middleware/chips/brandy/exception/CMakeLists.txt b/code/sdk/middleware/chips/brandy/exception/CMakeLists.txt index 27c362549..72ef5d2ca 100644 --- a/code/sdk/middleware/chips/brandy/exception/CMakeLists.txt +++ b/code/sdk/middleware/chips/brandy/exception/CMakeLists.txt @@ -30,7 +30,6 @@ set(PRIVATE_DEFINES ) set(PUBLIC_DEFINES - SUPPORT_DFX_EXCEPTION ) # use this when you want to add ccflags like -include xxx diff --git a/code/sdk/middleware/chips/brandy/exception/exception_riscv.c b/code/sdk/middleware/chips/brandy/exception/exception_riscv.c index 39e82ad00..335c9aaf0 100644 --- a/code/sdk/middleware/chips/brandy/exception/exception_riscv.c +++ b/code/sdk/middleware/chips/brandy/exception/exception_riscv.c @@ -833,6 +833,7 @@ static errcode_t exc_info_write_local(exc_info_save_t *exc_info_save, uint32_t e set_trans_type(TRANS_BY_CPU_SINGLE_LINE); ret = exc_info_write(g_exc_info_path, 0, (const uint8_t *)exc_info_save, exc_size); dump_all_to_file(); + save_preserve_file_to_nand(); #endif #ifdef CFG_DRIVERS_MMC char *exc_info_buffer = (char *)osal_kmalloc_align(ONE_SECTOR_SIZE, 0, MMC_BUFFER_ALIGN); diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-auto-ota-cli/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-auto-ota-cli/libgfx_rm.a new file mode 100644 index 000000000..74bab2e70 Binary files /dev/null and b/code/sdk/middleware/services/gpu/api/rm/brandy-auto-ota-cli/libgfx_rm.a differ diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-auto-ota-ser/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-auto-ota-ser/libgfx_rm.a new file mode 100644 index 000000000..0c18f1d00 Binary files /dev/null and b/code/sdk/middleware/services/gpu/api/rm/brandy-auto-ota-ser/libgfx_rm.a differ diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-native-js-r/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-native-js-r/libgfx_rm.a index 818017945..901f59cf3 100644 Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-native-js-r/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-native-js-r/libgfx_rm.a differ diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-native-js/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-native-js/libgfx_rm.a index b75933c34..1f2f82e27 100644 Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-native-js/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-native-js/libgfx_rm.a differ diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-target1-r/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-target1-r/libgfx_rm.a index 20bf23a30..0406d16e5 100644 Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-target1-r/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-target1-r/libgfx_rm.a differ diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-target1/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-target1/libgfx_rm.a index 9be0af0a7..c72f49356 100644 Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-target1/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-target1/libgfx_rm.a differ diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-target3-r/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-target3-r/libgfx_rm.a index a782b2764..ed20488fd 100644 Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-target3-r/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-target3-r/libgfx_rm.a differ diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-target3/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-target3/libgfx_rm.a index 1bb1a13c8..4188f3425 100644 Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-target3/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-target3/libgfx_rm.a differ diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-target4-r/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-target4-r/libgfx_rm.a index ff59d41e6..0056cd070 100644 Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-target4-r/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-target4-r/libgfx_rm.a differ diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-target4/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-target4/libgfx_rm.a index 1f01de536..3b992823a 100644 Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-target4/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-target4/libgfx_rm.a differ diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-target5-r/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-target5-r/libgfx_rm.a index e41bccfa5..a0f017f9f 100644 Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-target5-r/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-target5-r/libgfx_rm.a differ diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-target5/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-target5/libgfx_rm.a index 652321331..4500b5129 100644 Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-target5/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-target5/libgfx_rm.a differ diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-xts/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-xts/libgfx_rm.a index 89d1d6f7c..7ca96c185 100644 Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-xts/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-xts/libgfx_rm.a differ diff --git a/code/sdk/middleware/services/gpu/api/rm/testsuite-brandy-sdk/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/testsuite-brandy-sdk/libgfx_rm.a index 2fbcf2d12..db044ac0d 100644 Binary files a/code/sdk/middleware/services/gpu/api/rm/testsuite-brandy-sdk/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/testsuite-brandy-sdk/libgfx_rm.a differ diff --git a/code/sdk/middleware/services/gui/hal/display/brandy-auto-ota-cli/libdisplay_gfx.a b/code/sdk/middleware/services/gui/hal/display/brandy-auto-ota-cli/libdisplay_gfx.a new file mode 100644 index 000000000..c43a607e5 Binary files /dev/null and b/code/sdk/middleware/services/gui/hal/display/brandy-auto-ota-cli/libdisplay_gfx.a differ diff --git a/code/sdk/middleware/services/gui/hal/display/brandy-auto-ota-ser/libdisplay_gfx.a b/code/sdk/middleware/services/gui/hal/display/brandy-auto-ota-ser/libdisplay_gfx.a new file mode 100644 index 000000000..f556eafb9 Binary files /dev/null and b/code/sdk/middleware/services/gui/hal/display/brandy-auto-ota-ser/libdisplay_gfx.a differ diff --git a/code/sdk/middleware/services/gui/hal/display/brandy-native-js/libdisplay_gfx.a b/code/sdk/middleware/services/gui/hal/display/brandy-native-js/libdisplay_gfx.a index 74ed30a9b..44063273b 100644 Binary files a/code/sdk/middleware/services/gui/hal/display/brandy-native-js/libdisplay_gfx.a and b/code/sdk/middleware/services/gui/hal/display/brandy-native-js/libdisplay_gfx.a differ diff --git a/code/sdk/middleware/services/gui/hal/display/brandy-target1/libdisplay_gfx.a b/code/sdk/middleware/services/gui/hal/display/brandy-target1/libdisplay_gfx.a index e4ea39739..49605afa7 100644 Binary files a/code/sdk/middleware/services/gui/hal/display/brandy-target1/libdisplay_gfx.a and b/code/sdk/middleware/services/gui/hal/display/brandy-target1/libdisplay_gfx.a differ diff --git a/code/sdk/middleware/services/gui/hal/display/brandy-target3/libdisplay_gfx.a b/code/sdk/middleware/services/gui/hal/display/brandy-target3/libdisplay_gfx.a index 975c3d690..6c3cb9c2b 100644 Binary files a/code/sdk/middleware/services/gui/hal/display/brandy-target3/libdisplay_gfx.a and b/code/sdk/middleware/services/gui/hal/display/brandy-target3/libdisplay_gfx.a differ diff --git a/code/sdk/middleware/services/gui/hal/display/brandy-target5/libdisplay_gfx.a b/code/sdk/middleware/services/gui/hal/display/brandy-target5/libdisplay_gfx.a index cacde7271..746d09290 100644 Binary files a/code/sdk/middleware/services/gui/hal/display/brandy-target5/libdisplay_gfx.a and b/code/sdk/middleware/services/gui/hal/display/brandy-target5/libdisplay_gfx.a differ diff --git a/code/sdk/middleware/services/gui/hal/display/brandy-xts/libdisplay_gfx.a b/code/sdk/middleware/services/gui/hal/display/brandy-xts/libdisplay_gfx.a index 1a0160a6b..6346e30ab 100644 Binary files a/code/sdk/middleware/services/gui/hal/display/brandy-xts/libdisplay_gfx.a and b/code/sdk/middleware/services/gui/hal/display/brandy-xts/libdisplay_gfx.a differ diff --git a/code/sdk/middleware/services/gui/hal/display/src/display_gralloc.c b/code/sdk/middleware/services/gui/hal/display/src/display_gralloc.c index 8afdc3f1c..a2b331d0a 100644 --- a/code/sdk/middleware/services/gui/hal/display/src/display_gralloc.c +++ b/code/sdk/middleware/services/gui/hal/display/src/display_gralloc.c @@ -56,6 +56,7 @@ typedef struct { uint64_t length; } AddrInfo; +TryToFreeImgCallback g_tryToFreeImgCallback = NULL; #if ENABLE_GMMU static bool g_gmmuAllocated[FB_COUNT] = {false, false}; struct gmmu_buf_struct g_gmmuMem = { 0 }; @@ -205,37 +206,40 @@ static int32_t AllocMem(const AllocInfo *info, BufferHandle **handle) DISP_LOGE("malloc mem for buffer failed.\n"); return DISPLAY_NULL_PTR; } - int32_t ret = InitBufferHandle(buffer, info); if (ret != DISPLAY_SUCCESS) { DISP_LOGE("InitBufferHandle failed.\n"); goto END; } -#if !ENABLE_GMMU - if (buffer->size > MAX_MALLOC_SIZE || buffer->size == 0) { - DISP_LOGE("bufferSize[%lld] is invalid.\n", buffer->size); - ret = DISPLAY_FAILURE; - goto END; - } -#endif - if ((info->usage & HBM_USE_MEM_FB) == HBM_USE_MEM_FB) { ret = AllocMemForFB(buffer); goto END; } - uint8_t *pool = g_poolId; - if (((info->usage & HBM_USE_MEM_FONT) == HBM_USE_MEM_FONT) || - ((info->usage & HBM_USE_MEM_PATH) == HBM_USE_MEM_PATH)){ - pool = g_fontPoolId; - } + uint8_t *pool = (((info->usage & HBM_USE_MEM_FONT) == HBM_USE_MEM_FONT) || + ((info->usage & HBM_USE_MEM_PATH) == HBM_USE_MEM_PATH)) ? g_fontPoolId : g_poolId; - uint8_t *addr = LosAllocMem(pool, (uint32_t)(buffer->size)); - if (addr == NULL) { + int32_t maxSize = ((pool == g_poolId) ? MEM_POOL_UI_OTHER_SIZE : MEM_POOL_UI_FONT_SIZE); + if ((buffer->size <= 0) || (buffer->size > maxSize)) { + DISP_LOGE("bufferSize[%lld] is invalid.\n", buffer->size); ret = DISPLAY_FAILURE; goto END; } + + uint8_t *addr = LosAllocMem(pool, (uint32_t)(buffer->size)); + if ((pool == g_poolId) && (g_tryToFreeImgCallback != NULL)) { + while (addr == NULL) { + if (g_tryToFreeImgCallback()) { + DISP_LOGW("Success to free image during AllocMem size:%d\n", buffer->size); + addr = LosAllocMem(pool, (uint32_t)(buffer->size)); + } else { + DISP_LOGE("Failed to AllocMem size:%d and no image can be free\n", buffer->size); + break; + } + } + } + ret = (addr == NULL) ? DISPLAY_FAILURE : DISPLAY_SUCCESS; buffer->virAddr = (void *)addr; buffer->phyAddr = (uint64_t)addr; @@ -280,6 +284,11 @@ static void FreeMem(BufferHandle *handle) free(handle); } +static void RegisterTryToFreeImgCallback(TryToFreeImgCallback callback) +{ + g_tryToFreeImgCallback = callback; +} + int32_t GrallocInitialize(GrallocFuncs **funcs) { CHECK_NULLPOINTER_RETURN_VALUE(funcs, DISPLAY_NULL_PTR); @@ -299,6 +308,7 @@ int32_t GrallocInitialize(GrallocFuncs **funcs) (void)memset_s(gFuncs, sizeof(GrallocFuncs), 0, sizeof(GrallocFuncs)); gFuncs->AllocMem = AllocMem; gFuncs->FreeMem = FreeMem; + gFuncs->RegisterTryToFreeImgCallback = RegisterTryToFreeImgCallback; *funcs = gFuncs; #if ENABLE_GMMU diff --git a/code/sdk/middleware/services/gui/uikit/brandy-auto-ota-cli/libuikit_ext.a b/code/sdk/middleware/services/gui/uikit/brandy-auto-ota-cli/libuikit_ext.a new file mode 100644 index 000000000..ce7f417b2 Binary files /dev/null and b/code/sdk/middleware/services/gui/uikit/brandy-auto-ota-cli/libuikit_ext.a differ diff --git a/code/sdk/middleware/services/gui/uikit/brandy-auto-ota-ser/libuikit_ext.a b/code/sdk/middleware/services/gui/uikit/brandy-auto-ota-ser/libuikit_ext.a new file mode 100644 index 000000000..af9e8fe96 Binary files /dev/null and b/code/sdk/middleware/services/gui/uikit/brandy-auto-ota-ser/libuikit_ext.a differ diff --git a/code/sdk/middleware/services/gui/uikit/brandy-native-js/libuikit_ext.a b/code/sdk/middleware/services/gui/uikit/brandy-native-js/libuikit_ext.a index 5c9785d25..8ee2fe15e 100644 Binary files a/code/sdk/middleware/services/gui/uikit/brandy-native-js/libuikit_ext.a and b/code/sdk/middleware/services/gui/uikit/brandy-native-js/libuikit_ext.a differ diff --git a/code/sdk/middleware/services/gui/uikit/brandy-target3/libuikit_ext.a b/code/sdk/middleware/services/gui/uikit/brandy-target3/libuikit_ext.a index e92e26d04..f23626d6b 100644 Binary files a/code/sdk/middleware/services/gui/uikit/brandy-target3/libuikit_ext.a and b/code/sdk/middleware/services/gui/uikit/brandy-target3/libuikit_ext.a differ diff --git a/code/sdk/middleware/services/gui/uikit/brandy-xts/libuikit_ext.a b/code/sdk/middleware/services/gui/uikit/brandy-xts/libuikit_ext.a index d3760eba6..8abc14ef4 100644 Binary files a/code/sdk/middleware/services/gui/uikit/brandy-xts/libuikit_ext.a and b/code/sdk/middleware/services/gui/uikit/brandy-xts/libuikit_ext.a differ diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/include/common/image_cache_manager.h b/code/sdk/middleware/services/gui/uikit/proprietary/include/common/image_cache_manager.h index 095a9f1b0..699ef700b 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/include/common/image_cache_manager.h +++ b/code/sdk/middleware/services/gui/uikit/proprietary/include/common/image_cache_manager.h @@ -34,6 +34,7 @@ #include #include #include +#include "securec.h" #include "gfx_utils/image_info.h" #include "gfx_utils/heap_base.h" #include "graphic_config.h" @@ -104,7 +105,7 @@ public: */ void UpdateImageInfoIfNecessary(ImageInfo& info); - void* FreeAndGetBuf(const AllocInfo& info, GrallocBuffer& buffer); + bool TryToFreeImage(); /** * @brief Dump image information. @@ -141,11 +142,13 @@ private: std::unordered_map pathMap_; std::unordered_map bufMap_; - ImageNode longTermList_ = {0}; - ImageNode shortTermList_ = {0}; + ImageNode longTermList_; + ImageNode shortTermList_; ImageCacheManager() { + memset_s(&longTermList_, sizeof(longTermList_), 0, sizeof(longTermList_)); + memset_s(&shortTermList_, sizeof(shortTermList_), 0, sizeof(shortTermList_)); longTermList_.prev = &longTermList_; longTermList_.next = &longTermList_; shortTermList_.prev = &shortTermList_; diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_lite_surface_view.h b/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_lite_surface_view.h index d4279dec8..aeb9dc42b 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_lite_surface_view.h +++ b/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_lite_surface_view.h @@ -32,6 +32,7 @@ * @version 1.0 */ +#include #include "common/ihardware_view.h" #include "common/lite_surface.h" #include "common/image.h" diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/include/service/graphic_event_handler.h b/code/sdk/middleware/services/gui/uikit/proprietary/include/service/graphic_event_handler.h index 7fdeef399..807ae24c5 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/include/service/graphic_event_handler.h +++ b/code/sdk/middleware/services/gui/uikit/proprietary/include/service/graphic_event_handler.h @@ -41,13 +41,16 @@ public: * @param event, indicates the task to post. */ void PostGraphicEvent(const GraphicEvent& event, bool exitLowPower = true); + + /** + * @brief Clear graphic event queue. + */ void ClearGraphicEvent(); private: std::queue eventQueue_; GraphicMutex queueMutex_; GraphicCond pthreadCond_; - GraphicEventHandler(); virtual ~GraphicEventHandler(); }; diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/include/service/graphic_service.h b/code/sdk/middleware/services/gui/uikit/proprietary/include/service/graphic_service.h index 4d7d16521..0c019c6df 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/include/service/graphic_service.h +++ b/code/sdk/middleware/services/gui/uikit/proprietary/include/service/graphic_service.h @@ -73,14 +73,23 @@ public: /** * @brief Set Native UI running state. - * @param running, indicates whether Native UI is Running or not; + * @param running, indicates whether Native UI is Running or not. */ void SetNativeUIRunning(bool isRunning); + /** + * @brief Return whether Native UI is Running or not. + */ int IsNativeRunning() const; + /** + * @brief Return whether screen is on or not. + */ int IsScreenOn() const; + /** + * @brief Return graphic task triggered count. + */ int GetGraphicTaskTriggeredCount() const; /** @@ -132,18 +141,11 @@ public: private: friend class GraphicEventHandler; static VsyncCallback jsVsyncCallback_; -#if !defined(_WIN32) static osal_atomic isNativeRunning_; static osal_atomic graphicTaskTriggeredCount_; static osal_atomic isScreenOn_; -#else - static std::atomic isNativeRunning_; - static std::atomic graphicTaskTriggeredCount_; - static std::atomic isScreenOn_; -#endif static OHOS::GraphicMutex rtcEventMutex_; static OHOS::GraphicCond rtcEventCond_; - static bool fullRefreshFlag_; bool isGpuReseting = false; void DecreaseTriggerCount(); void SetUpRootView(); diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/include/service/graphic_service_wrapper.h b/code/sdk/middleware/services/gui/uikit/proprietary/include/service/graphic_service_wrapper.h index 821da854f..067e4f560 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/include/service/graphic_service_wrapper.h +++ b/code/sdk/middleware/services/gui/uikit/proprietary/include/service/graphic_service_wrapper.h @@ -29,6 +29,8 @@ extern "C" { #endif +typedef void (*GraphicEventCb)(void*); + /** * @brief Get current frequence. */ @@ -74,6 +76,7 @@ void ShowGraphicLogo(void); */ void HideGraphicLogo(void); +void PostGraphicEvent(GraphicEventCb eventCb, void* userData); #ifdef __cplusplus }; #endif diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/service/CMakeLists.txt b/code/sdk/middleware/services/gui/uikit/proprietary/src/service/CMakeLists.txt index f9c37e20d..2e7368471 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/service/CMakeLists.txt +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/service/CMakeLists.txt @@ -32,6 +32,7 @@ set(PRIVATE_HEADER ${UIKIT_ROOT_DIR}/proprietary/src/ui/frameworks ${UIKIT_ROOT_DIR}/proprietary/src/ui/innerkits ${ROOTDIR}/open_source/openharmony/drivers/peripheral/display/interfaces/include + ${ROOTDIR}/application/wearable/nativeapp/nativeui/screennotify/include ) set(PRIVATE_DEFINES diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/service/src/graphic_service.cpp b/code/sdk/middleware/services/gui/uikit/proprietary/src/service/src/graphic_service.cpp index 626d232bb..3a0c7f944 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/service/src/graphic_service.cpp +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/service/src/graphic_service.cpp @@ -32,22 +32,18 @@ #include "engines/gfx/lite_m_gfx_engine.h" #include "common/screen.h" #include "components/root_view.h" +#ifdef SUPPORT_AT_OHOSFWK +#include "ui_screennotify.h" +#endif VsyncCallback GraphicService::jsVsyncCallback_; -#if !defined(_WIN32) osal_atomic GraphicService::isNativeRunning_{1}; osal_atomic GraphicService::graphicTaskTriggeredCount_{0}; osal_atomic GraphicService::isScreenOn_{0}; -#else -std::atomic GraphicService::isNativeRunning_(1); -std::atomic GraphicService::graphicTaskTriggeredCount_(0); -std::atomic GraphicService::isScreenOn_(0); -#endif OHOS::GraphicMutex GraphicService::rtcEventMutex_; OHOS::GraphicCond GraphicService::rtcEventCond_; static ThreadId g_rtcEventThreadId; static ThreadId g_mainThreadId; -bool GraphicService::fullRefreshFlag_{false}; GraphicService::GraphicService() {} @@ -60,19 +56,10 @@ void GraphicService::RegJSVsyncCallback(VsyncCallback callback) bool GraphicService::SyncTriggerJSGraphicTask() { -#if !defined(_WIN32) - if ((osal_atomic_read(&isNativeRunning_) == 1) || osal_atomic_read(&graphicTaskTriggeredCount_) > 0 || - osal_atomic_read(&isScreenOn_) == 0) { + if ((IsNativeRunning() == 1) || (GetGraphicTaskTriggeredCount() > 0) || (IsScreenOn() == 0)) { GRAPHIC_LOGI("Trigger JS Task failed. Native is running or Graphic Task is already triggered."); return false; } -#else - if ((isNativeRunning_.load() == 1) || graphicTaskTriggeredCount_.load() > 0 || - isScreenOn_.load() == 0) { - GRAPHIC_LOGI("Trigger JS Task failed. Native is running or Graphic Task is already triggered."); - return false; - } -#endif OHOS::TaskManager::GetInstance()->TaskHandler(); return true; @@ -80,16 +67,15 @@ bool GraphicService::SyncTriggerJSGraphicTask() bool GraphicService::AsyncTriggerNativeGraphicTask() { -#if !defined(_WIN32) - if (osal_atomic_read(&graphicTaskTriggeredCount_) <= 1) { + if (GraphicService::GetInstance()->GetGraphicTaskTriggeredCount() <= 1) { osal_atomic_inc(&graphicTaskTriggeredCount_); -#else - if (graphicTaskTriggeredCount_.load() <= 1) { - graphicTaskTriggeredCount_.fetch_add(1); -#endif OHOS::GraphicEventHandler::GetInstance()->PostGraphicEvent( [] { - OHOS::TaskManager::GetInstance()->TaskHandler(); + if (GraphicService::GetInstance()->IsScreenOn()) { + OHOS::TaskManager::GetInstance()->TaskHandler(); + } else { + GRAPHIC_LOGW("ignore redundant task when screen is off\n"); + } GraphicService::GetInstance()->DecreaseTriggerCount(); }, false); @@ -101,56 +87,32 @@ bool GraphicService::AsyncTriggerNativeGraphicTask() void GraphicService::SetNativeUIRunning(bool isRunning) { if (isRunning) { -#if !defined(_WIN32) osal_atomic_set(&isNativeRunning_, 1); } else { osal_atomic_set(&isNativeRunning_, 0); OHOS::GraphicEventHandler::GetInstance()->ClearGraphicEvent(); osal_atomic_set(&graphicTaskTriggeredCount_, 0); -#else - isNativeRunning_.store(1); - } else { - isNativeRunning_.store(0); - OHOS::GraphicEventHandler::GetInstance()->ClearGraphicEvent(); - graphicTaskTriggeredCount_.store(0); -#endif } } int GraphicService::IsNativeRunning() const { -#if !defined(_WIN32) return osal_atomic_read(&isNativeRunning_); -#else - return isNativeRunning_.load(); -#endif } int GraphicService::GetGraphicTaskTriggeredCount() const { -#if !defined(_WIN32) return osal_atomic_read(&graphicTaskTriggeredCount_); -#else - return graphicTaskTriggeredCount_.load(); -#endif } int GraphicService::IsScreenOn() const { -#if !defined(_WIN32) return osal_atomic_read(&isScreenOn_); -#else - return isScreenOn_.load(); -#endif } void GraphicService::DecreaseTriggerCount() { -#if !defined(_WIN32) osal_atomic_dec(&graphicTaskTriggeredCount_); -#else - graphicTaskTriggeredCount_.fetch_sub(1); -#endif } void GraphicService::PostGraphicEvent(const OHOS::GraphicEvent& event) @@ -160,29 +122,22 @@ void GraphicService::PostGraphicEvent(const OHOS::GraphicEvent& event) void GraphicService::NotifyScreenOn() { - fullRefreshFlag_ = true; -#if !defined(_WIN32) - if (osal_atomic_read(&isScreenOn_) == 0) { - osal_atomic_set(&isScreenOn_, 1); - } -#else - if (isScreenOn_.load() == 0) { - isScreenOn_.store(1); - } +#ifdef SUPPORT_AT_OHOSFWK + notify_screen_on_event(); #endif + OHOS::RootView::GetInstance()->Invalidate(); // full refresh + + osal_atomic_set(&isScreenOn_, 1); } void GraphicService::NotifyScreenOff() { -#if !defined(_WIN32) - osal_atomic_set(&isScreenOn_, 0); - OHOS::GraphicEventHandler::GetInstance()->ClearGraphicEvent(); - osal_atomic_set(&graphicTaskTriggeredCount_, 0); -#else - isScreenOn_.store(0); - OHOS::GraphicEventHandler::GetInstance()->ClearGraphicEvent(); - graphicTaskTriggeredCount_.store(0); +#ifdef SUPPORT_AT_OHOSFWK + notify_screen_off_event(); #endif + EnableAsyncMode(false); // flush pending frame if necessary + + osal_atomic_set(&isScreenOn_, 0); } void GraphicService::EnableAsyncMode(bool enable) @@ -218,31 +173,15 @@ void* GraphicService::RtcEventThread(void* args) rtcEventMutex_.Lock(); rtcEventCond_.Wait(rtcEventMutex_); rtcEventMutex_.Unlock(); -#if !defined(_WIN32) - if (osal_atomic_read(&isScreenOn_) == 0) { -#else - if (isScreenOn_.load() == 0) { -#endif + if (GraphicService::GetInstance()->IsScreenOn() == 0) { continue; } - if (fullRefreshFlag_) { - if (OHOS::RootView::GetInstance()->GetChildrenHead() != nullptr) { - OHOS::RootView::GetInstance()->Invalidate(); - } - fullRefreshFlag_ = false; - } -#if !defined(_WIN32) - if (osal_atomic_read(&isNativeRunning_) == 1) { + if (GraphicService::GetInstance()->IsNativeRunning() == 1) { AsyncTriggerNativeGraphicTask(); } else { jsVsyncCallback_(); } -#else - if (isNativeRunning_.load() == 1) { - AsyncTriggerNativeGraphicTask(); - } -#endif } #if !defined(ENABLE_CMSIS) return nullptr; diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/service/src/graphic_service_wrapper.cpp b/code/sdk/middleware/services/gui/uikit/proprietary/src/service/src/graphic_service_wrapper.cpp index 2e1768266..3b51a44c4 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/service/src/graphic_service_wrapper.cpp +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/service/src/graphic_service_wrapper.cpp @@ -17,7 +17,6 @@ #if !defined(_WIN32) #include "rtc.h" #endif -#include "graphic_event_handler.h" #include "graphic_service.h" #include "gfx_utils/graphic_log.h" #include "common/low_power_manager.h" @@ -34,8 +33,8 @@ static const int32_t FULL_FREQUENCE = 60; #if !defined(_WIN32) static rtc_handle_t g_rtcHandle = nullptr; #endif -static int32_t g_timeInterval = 16; -static int32_t g_freq = FULL_FREQUENCE; +static int32_t g_timeInterval = -1; +static int32_t g_freq = 0; static bool g_initialized = false; bool g_isScreenOn = false; static bool g_showLogo = false; @@ -52,6 +51,7 @@ static void UikitRTCCallBack(uintptr_t data) { (void)(data); if (!g_initialized || !g_isScreenOn) { + GRAPHIC_LOGE("RTC should not be started when g_isScreenOn:%d g_initialized:%d", g_isScreenOn, g_initialized); return; } #if !defined(_WIN32) @@ -73,7 +73,7 @@ void SetFrequenceInner(int freq) if ((g_freq != freq) && (freq != 0)) { g_freq = freq; g_timeInterval = SECOND_TO_MILLISECOND / freq; - GRAPHIC_LOGI("set freq: %d, time: %dms", freq, g_timeInterval); + GRAPHIC_LOGI("set freq: %d, time: %dms\n", freq, g_timeInterval); if (freq == FULL_FREQUENCE) { if (!OHOS::LowPowerManager::GetInstance()->IsLiteSurfaceInRootView()) { GraphicService::GetInstance()->EnableAsyncMode(true); @@ -106,6 +106,7 @@ void SetFrequence(int freq) void NotifyScreenOn(void) { + GraphicService::GetInstance()->NotifyScreenOn(); #if !defined(_WIN32) if (g_rtcHandle == nullptr) { return; @@ -114,37 +115,20 @@ void NotifyScreenOn(void) if (!g_isScreenOn) { g_isScreenOn = true; OHOS::LowPowerManager::GetInstance()->ExitLowPower(); -#if !defined(_WIN32) - GRAPHIC_LOGP("ScreenOn and start RTC! time interval: %d", g_timeInterval); - uapi_rtc_start(g_rtcHandle, g_timeInterval, static_cast(UikitRTCCallBack), 0); -#endif } - GraphicService::GetInstance()->NotifyScreenOn(); } void NotifyScreenOff(void) { #if !defined(_WIN32) - if (g_rtcHandle == nullptr) { - return; - } -#endif - - if (g_isScreenOn) { - g_isScreenOn = false; -#if !defined(_WIN32) - GRAPHIC_LOGP("ScreenOff and stop RTC!"); + if (g_rtcHandle != nullptr) { uapi_rtc_stop(g_rtcHandle); -#endif + g_freq = 0; + g_timeInterval = -1; } - g_freq = 1; - g_timeInterval = SECOND_TO_MILLISECOND; +#endif + g_isScreenOn = false; GraphicService::GetInstance()->NotifyScreenOff(); - OHOS::GraphicEventHandler::GetInstance()->PostGraphicEvent( - [] { - GraphicService::GetInstance()->EnableAsyncMode(false); - }, - false); } void InitGraphicService(void) @@ -154,7 +138,7 @@ void InitGraphicService(void) } #if !defined(_WIN32) - /* start RTC timer */ + /* create RTC timer */ uapi_rtc_create(RTC_0, &g_rtcHandle); if (g_rtcHandle == nullptr) { GRAPHIC_LOGE("create RTC timer fail!!"); @@ -185,12 +169,11 @@ void ShowGraphicLogo() g_logo->SetResizeMode(OHOS::UIImageView::CENTER); g_imgInfo = OHOS::ImageCacheManager::GetInstance().LoadSingleRes(IMAGE_OPEN_LOGO_PATH); g_logo->SetSrc(g_imgInfo); - OHOS::GraphicEventHandler::GetInstance()->PostGraphicEvent( + GraphicService::GetInstance()->PostGraphicEvent( [] { OHOS::RootView::GetInstance()->Add(g_logo); OHOS::RootView::GetInstance()->Invalidate(); - }, - false); + }); } void HideGraphicLogo() @@ -199,7 +182,7 @@ void HideGraphicLogo() return; } g_showLogo = false; - OHOS::GraphicEventHandler::GetInstance()->PostGraphicEvent( + GraphicService::GetInstance()->PostGraphicEvent( [] { if (g_logo != nullptr) { OHOS::RootView::GetInstance()->Remove(g_logo); @@ -208,10 +191,16 @@ void HideGraphicLogo() OHOS::ImageCacheManager::GetInstance().UnloadSingleRes(IMAGE_OPEN_LOGO_PATH); g_imgInfo = nullptr; } - }, - false); + }); } +void PostGraphicEvent(GraphicEventCb eventCb, void* userData) +{ + GraphicService::GetInstance()->PostGraphicEvent( + [=] { + eventCb(userData); + }); +} #ifdef __cplusplus }; #endif diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/components/ui_sweep_clock.cpp b/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/components/ui_sweep_clock.cpp index 86515b8fa..1e487d13d 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/components/ui_sweep_clock.cpp +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/components/ui_sweep_clock.cpp @@ -257,6 +257,10 @@ void UISweepClock::DrawHand(BufferInfo& gfxDstBuffer, const Rect& current, const hand.imageInfo_ = entry.GetImageInfo(); } else if (hand.image_.GetSrcType() == IMG_SRC_VARIABLE) { ImageCacheManager::GetInstance().UpdateImageInfoIfNecessary(hand.imageInfo_); + if (hand.imageInfo_.data == nullptr) { + GRAPHIC_LOGE("DrawHand failed. UpdateImageInfoIfNecessary failed."); + return; + } } DrawHandImage(gfxDstBuffer, current, invalidatedArea, hand); } else { diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/components/ui_text_preview_box.cpp b/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/components/ui_text_preview_box.cpp index 51355dd80..e08ccf4bb 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/components/ui_text_preview_box.cpp +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/components/ui_text_preview_box.cpp @@ -187,6 +187,10 @@ void UITextPreviewBox::InitCursor() void UITextPreviewBox::InsertChar(UI_KEYCODE& keyCode) { + uint16_t len = TypedText::GetUTF8CharacterSize(GetText()); + if (len >= GetMaxLength()) { + return; + } std::wstring temp = tempText_; std::string str; temp.insert(cursorIndex_, 1, static_cast(keyCode)); @@ -210,6 +214,10 @@ void UITextPreviewBox::InsertChar(UI_KEYCODE& keyCode) void UITextPreviewBox::InsertHanzi(const std::string &u8hanzi) { + uint16_t len = TypedText::GetUTF8CharacterSize(GetText()); + if (len >= GetMaxLength()) { + return; + } std::wstring temp = tempText_; std::string str; std::wstring u16hanzi = Utf8ToUtf16(u8hanzi); diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/dfx/dfx_cmd.cpp b/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/dfx/dfx_cmd.cpp index cc221dcf5..344e953a9 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/dfx/dfx_cmd.cpp +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/dfx/dfx_cmd.cpp @@ -92,7 +92,7 @@ void DumpState(int argc, char *argv[]) printf("=== Dump State ===\n"); printf(" NativeRunninng: %d\n", GraphicService::GetInstance()->IsNativeRunning()); printf(" IsScreenOn: %d\n", GraphicService::GetInstance()->IsScreenOn()); - printf(" GraphicTaskTriggeredCount_: %d\n", GraphicService::GetInstance()->GetGraphicTaskTriggeredCount()); + printf(" GraphicTaskTriggeredCount: %d\n", GraphicService::GetInstance()->GetGraphicTaskTriggeredCount()); } void LeakPanic(int argc, char *argv[]) diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/dfx/dfx_dom_dump.cpp b/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/dfx/dfx_dom_dump.cpp index 038b17e48..79b7aecad 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/dfx/dfx_dom_dump.cpp +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/dfx/dfx_dom_dump.cpp @@ -87,6 +87,7 @@ static const struct { {UI_ICOSAHEDRON_VIEW, "UI_ICOSAHEDRON_VIEW"}, {UI_TRANSFORM_GROUP, "UI_TRANSFORM_GROUP"}, {UI_TRANSFORM_LIST, "UI_TRANSFORM_LIST"}, + {UI_COVER_FLOW_2, "UI_COVER_FLOW_2"}, {UI_NUMBER_MAX, "UI_NUMBER_MAX"}, }; diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/frameworks/hals/gralloc_engines.cpp b/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/frameworks/hals/gralloc_engines.cpp index 9a6a33edc..084dfed50 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/frameworks/hals/gralloc_engines.cpp +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/frameworks/hals/gralloc_engines.cpp @@ -32,6 +32,11 @@ GrallocEngines* GrallocEngines::GetInstance() return &instance; } +static bool TryToFreeImage() +{ + return ImageCacheManager::GetInstance().TryToFreeImage(); +} + bool GrallocEngines::Init() { if (grallocFuncs_ != nullptr) { @@ -41,10 +46,11 @@ bool GrallocEngines::Init() if (GrallocInitialize(&grallocFuncs_) != DISPLAY_SUCCESS) { return false; } + grallocFuncs_->RegisterTryToFreeImgCallback(TryToFreeImage); return true; } -bool GrallocEngines::AllocBufferOnce(const AllocInfo& info, GrallocBuffer& buffer) +bool GrallocEngines::AllocBuffer(const AllocInfo& info, GrallocBuffer& buffer) { if (grallocFuncs_ == nullptr) { GRAPHIC_LOGE("GrallocEngines not init!"); @@ -52,6 +58,13 @@ bool GrallocEngines::AllocBufferOnce(const AllocInfo& info, GrallocBuffer& buffe } BufferHandle* bufferHandle = nullptr; if (grallocFuncs_->AllocMem(&info, &bufferHandle) != DISPLAY_SUCCESS || bufferHandle == nullptr) { + GRAPHIC_LOGE("GrallocEngines AllocMem size:%d usage:%x failed.", info.expectedSize, info.usage); +#if ENABLE_MEMORY_CHECK + DumpMem(); +#endif +#ifdef __LITEOS__ + OsMemInfoPrint(reinterpret_cast(MEM_POOL_UI_OTHER)); +#endif return false; } g_buffers.insert(std::make_pair(reinterpret_cast(bufferHandle->virAddr), bufferHandle)); @@ -65,28 +78,6 @@ bool GrallocEngines::AllocBufferOnce(const AllocInfo& info, GrallocBuffer& buffe printf("[Alloc] addr = %p, size = %d, usage = %llu\n", bufferHandle->virAddr, bufferHandle->size, bufferHandle->usage); } #endif - return true; -} - -bool GrallocEngines::AllocBuffer(const AllocInfo& info, GrallocBuffer& buffer) -{ - if (grallocFuncs_ == nullptr && info.expectedSize == 0) { - GRAPHIC_LOGE("alloc failed!!, size: %u", info.expectedSize); - return false; - } - - if (!AllocBufferOnce(info, buffer)) { - GRAPHIC_LOGE("GrallocEngines::AllocBuffer realloc size: %u", info.expectedSize); - if (ImageCacheManager::GetInstance().FreeAndGetBuf(info, buffer) == nullptr) { -#if ENABLE_MEMORY_CHECK - DumpMem(); -#endif -#ifdef __LITEOS__ - OsMemInfoPrint(reinterpret_cast(MEM_POOL_UI_OTHER)); -#endif - return false; - } - } if ((info.usage & HBM_USE_MEM_YUV) == HBM_USE_MEM_YUV) { yuvBufCnt_++; if (yuvBufCnt_ > 3) { // 3: yuv buf cnt diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/frameworks/hals/lite_input_distributer.cpp b/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/frameworks/hals/lite_input_distributer.cpp index 53179160f..ea497d58c 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/frameworks/hals/lite_input_distributer.cpp +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/frameworks/hals/lite_input_distributer.cpp @@ -63,9 +63,9 @@ void LiteInputDistributer::GetEventData(DeviceData& data, InputDevType type) DfxTPGetEvent(); } DeviceData curData; - if (!dataBuf_.IsEmpty()) { - curData = dataBuf_.Front(); - dataBuf_.PopFront(); + if (!tpList_.empty()) { + curData = tpList_.front(); + tpList_.pop_front(); } else { curData = deviceData_; } @@ -79,18 +79,16 @@ void LiteInputDistributer::GetEventData(DeviceData& data, InputDevType type) } if (type == InputDevType::INDEV_TYPE_KEY) { - if (keyList_.IsEmpty()) { + if (keyList_.empty()) { data.keyId = INVALID_KEY_ID; eventLock_.Unlock(); return; } - DeviceData* tmp = keyList_.Front(); - keyList_.PopFront(); - data.keyId = tmp->keyId; - data.state = tmp->state; - data.timestamp = tmp->timestamp; - delete tmp; - tmp = nullptr; + DeviceData tmp = keyList_.front(); + keyList_.pop_front(); + data.keyId = tmp.keyId; + data.state = tmp.state; + data.timestamp = tmp.timestamp; } eventLock_.Unlock(); } @@ -107,25 +105,22 @@ void LiteInputDistributer::SetEventData(const RawEvent& event) deviceData_.point.y = event.y; deviceData_.state = event.state; deviceData_.timestamp = event.timestamp; - dataBuf_.PushBack(deviceData_); - while (dataBuf_.Size() > BUFLEN) { - dataBuf_.PopFront(); + while (tpList_.size() >= MAX_TP_LIST_SIZE) { + tpList_.pop_front(); } + tpList_.push_back(deviceData_); eventLock_.Unlock(); return; } if (event.type == InputDevType::INDEV_TYPE_KEY) { - DeviceData* data = new DeviceData(); - data->keyId = event.keyId; - data->state = event.state; - data->timestamp = event.timestamp; - if (keyList_.Size() >= MAX_KEY_LIST_SIZE) { - DeviceData* tmp = keyList_.Front(); - keyList_.PopFront(); - delete tmp; - tmp = nullptr; + DeviceData data; + data.keyId = event.keyId; + data.state = event.state; + data.timestamp = event.timestamp; + while (keyList_.size() >= MAX_KEY_LIST_SIZE) { + keyList_.pop_front(); } - keyList_.PushBack(data); + keyList_.push_back(data); } eventLock_.Unlock(); } @@ -133,9 +128,9 @@ void LiteInputDistributer::SetEventData(const RawEvent& event) bool LiteInputDistributer::IsEventEmpty(InputDevType type) { if (type == InputDevType::INDEV_TYPE_TOUCH) { - return ((g_lastData.state == 0) && (deviceData_.state == 0) && (dataBuf_.IsEmpty())); + return ((g_lastData.state == 0) && (deviceData_.state == 0) && (tpList_.empty())); } else if (type == InputDevType::INDEV_TYPE_KEY) { - return keyList_.IsEmpty(); + return keyList_.empty(); } return true; } diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/frameworks/mem_custom.cpp b/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/frameworks/mem_custom.cpp index 01f4c1c21..7b1656278 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/frameworks/mem_custom.cpp +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/frameworks/mem_custom.cpp @@ -20,6 +20,7 @@ #if ENABLE_MEMORY_CHECK #include "gfx_utils/mem_check.h" #endif +#include "engines/gfx/lite_m_gfx_engine.h" namespace OHOS { void* ImageCacheMalloc(ImageInfo& info) @@ -34,7 +35,8 @@ void* ImageCacheMalloc(ImageInfo& info) } info.phyAddr = reinterpret_cast(buffer.phyAddr); info.data = reinterpret_cast(buffer.virAddr); - info.cacheNode = nullptr; + info.fileLen = 0; + info.resId = 0; return buffer.virAddr; } @@ -43,6 +45,11 @@ void ImageCacheFree(ImageInfo& info) if (info.data == nullptr) { return; } + + if (LiteMGfxEngine::GetInstance()->IsAsyncModeEnabled()) { + LiteMGfxEngine::GetInstance()->Flush(Rect(0, 0, 0, 0)); + } + LiteMGfxEngine::GetInstance()->SyncHwDraw(); GrallocEngines::GetInstance()->FreeBuffer(const_cast(info.data)); info.phyAddr = nullptr; info.data = nullptr; diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/innerkits/hals/lite_input_distributer.h b/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/innerkits/hals/lite_input_distributer.h index b0e76d5c2..e8c8a2516 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/innerkits/hals/lite_input_distributer.h +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/utils/innerkits/hals/lite_input_distributer.h @@ -17,14 +17,15 @@ #define GRAPHIC_LITE_INPUT_DISTRIBUTER_H #include +#include #include "dock/input_device.h" #include "gfx_utils/input_event_info.h" -#include "gfx_utils/list.h" #include "graphic_mutex.h" namespace OHOS { const uint16_t INVALID_KEY_ID = 0xffff; const uint8_t MAX_KEY_LIST_SIZE = 60; +const uint8_t MAX_TP_LIST_SIZE = 3; class LiteInputDistributer : public HeapBase { public: static LiteInputDistributer* GetInstance() @@ -46,9 +47,8 @@ private: GraphicMutex eventLock_; DeviceData deviceData_; - List keyList_; - List dataBuf_; - static const uint8_t BUFLEN = 3; + std::list keyList_; + std::list tpList_; }; } #endif diff --git a/code/sdk/middleware/services/gui/uikit/ui/frameworks/common/image.cpp b/code/sdk/middleware/services/gui/uikit/ui/frameworks/common/image.cpp index 75c86eacb..ea8d6f724 100644 --- a/code/sdk/middleware/services/gui/uikit/ui/frameworks/common/image.cpp +++ b/code/sdk/middleware/services/gui/uikit/ui/frameworks/common/image.cpp @@ -237,6 +237,10 @@ void Image::DrawImage(BufferInfo& gfxDstBuffer, { if (srcType_ == IMG_SRC_VARIABLE) { ImageCacheManager::GetInstance().UpdateImageInfoIfNecessary(*const_cast(imageInfo_)); + if (imageInfo_->data == nullptr) { + GRAPHIC_LOGE("DrawImage failed. UpdateImageInfoIfNecessary failed."); + return; + } DrawImage::DrawCommon(gfxDstBuffer, coords, mask, imageInfo_, style, opaScale); } else if (srcType_ == IMG_SRC_FILE) { DrawImage::DrawCommon(gfxDstBuffer, coords, mask, path_, style, opaScale); diff --git a/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_analog_clock.cpp b/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_analog_clock.cpp index fd9d50f3e..5e9a127fd 100644 --- a/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_analog_clock.cpp +++ b/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_analog_clock.cpp @@ -285,6 +285,10 @@ void UIAnalogClock::DrawHand(BufferInfo& gfxDstBuffer, const Rect& current, cons hand.imageInfo_ = entry.GetImageInfo(); } else if (hand.image_.GetSrcType() == IMG_SRC_VARIABLE) { ImageCacheManager::GetInstance().UpdateImageInfoIfNecessary(hand.imageInfo_); + if (hand.imageInfo_.data == nullptr) { + GRAPHIC_LOGE("DrawHand failed. UpdateImageInfoIfNecessary failed."); + return; + } } DrawHandImage(gfxDstBuffer, current, invalidatedArea, hand); } else { diff --git a/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_edit_text.cpp b/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_edit_text.cpp index b045c5eb6..0274f2e13 100644 --- a/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_edit_text.cpp +++ b/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_edit_text.cpp @@ -436,8 +436,11 @@ void UIEditText::SetMaxLength(uint16_t maxLength) maxLength = MAX_TEXT_LENGTH; } maxLength_ = maxLength; - if (textStr_.length() > maxLength) { - SetText(textStr_.substr(0, maxLength)); + uint16_t curLen = static_cast(TypedText::GetUTF8CharacterSize(textStr_.c_str())); + if (curLen > maxLength) { + uint32_t byteIndex = TypedText::GetByteIndexFromUTF8Id(textStr_.c_str(), maxLength); + std::string str = textStr_.substr(0, byteIndex); + SetText(str); } } diff --git a/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_image_view.cpp b/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_image_view.cpp index 6402c36b9..996115f75 100644 --- a/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_image_view.cpp +++ b/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_image_view.cpp @@ -463,6 +463,10 @@ void UIImageView::OnDraw(BufferInfo& gfxDstBuffer, const Rect& invalidatedArea) imgInfo = entry.GetImageInfo(); } else { ImageCacheManager::GetInstance().UpdateImageInfoIfNecessary(*const_cast(GetImageInfo())); + if (GetImageInfo()->data == nullptr) { + GRAPHIC_LOGE("Draw UIImageView failed. UpdateImageInfoIfNecessary failed."); + return; + } imgInfo = *(GetImageInfo()); } uint8_t pxSize = DrawUtils::GetPxSizeByColorMode(imgInfo.header.colorMode); @@ -587,9 +591,9 @@ std::string UIImageView::GetGuiInfo() const if (image_.GetSrcType() == IMG_SRC_VARIABLE && buf != nullptr) { memset_s(buf, size, 0, size); const ImageInfo* info = image_.GetImageInfo(); - sprintf_s(buf, size, "ImgInfo[%p]: size = [%d, %d], fmt = %d, data = %p, dataSize = %d, cacheNode = %p", - info, info->header.width, info->header.height, - info->header.colorMode, info->data, info->dataSize, info->cacheNode); + sprintf_s(buf, size, "ImgInfo[%p]: size = [%d, %d], fmt = %d, data = %p, dataSize = %d, file = %s, resId = %u", + info, info->header.width, info->header.height, info->header.colorMode, + info->data, info->dataSize, info->file, info->resId); std::string res(buf); delete []buf; return res; diff --git a/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_view.cpp b/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_view.cpp index 247d8886f..6576e95f1 100644 --- a/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_view.cpp +++ b/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_view.cpp @@ -1209,8 +1209,9 @@ void UIView::PrintImgInfo(const ImageInfo* info) if (info == nullptr) { printf(" ImgInfo[%p]\n", info); } else { - printf(" ImgInfo[%p]: size = [%d, %d], fmt = %d, data = %p, dataSize = %d, cacheNode = %p\n", - info, info->header.width, info->header.height, info->header.colorMode, info->data, info->dataSize, info->cacheNode); + printf(" ImgInfo[%p]: size = [%d, %d], fmt = %d, data = %p, dataSize = %d, file = %s, resId = %u\n", + info, info->header.width, info->header.height, info->header.colorMode, + info->data, info->dataSize, info->file, info->resId); } } diff --git a/code/sdk/middleware/services/gui/uikit/ui/frameworks/engines/gfx/gfx_engine_manager.cpp b/code/sdk/middleware/services/gui/uikit/ui/frameworks/engines/gfx/gfx_engine_manager.cpp index dd55a21b6..31357dc84 100644 --- a/code/sdk/middleware/services/gui/uikit/ui/frameworks/engines/gfx/gfx_engine_manager.cpp +++ b/code/sdk/middleware/services/gui/uikit/ui/frameworks/engines/gfx/gfx_engine_manager.cpp @@ -96,6 +96,10 @@ void BaseGfxEngine::ClipCircle(const ImageInfo* info, float x, float y, float ra { if (info != nullptr) { ImageCacheManager::GetInstance().UpdateImageInfoIfNecessary(*const_cast(info)); + if (info->data == nullptr) { + GRAPHIC_LOGE("ClipCircle failed. UpdateImageInfoIfNecessary failed."); + return; + } } ClipPath path; diff --git a/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_abstract_scroll.h b/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_abstract_scroll.h index f48bbdaa2..6c95fb16d 100644 --- a/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_abstract_scroll.h +++ b/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_abstract_scroll.h @@ -182,7 +182,7 @@ public: * @since 1.0 * @version 1.0 */ - void SetElasticTime(bool elasticTime) + void SetElasticTime(uint16_t elasticTime) { elasticTime_ = elasticTime; } diff --git a/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_edit_text.h b/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_edit_text.h index c9f714890..d93f9a656 100644 --- a/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_edit_text.h +++ b/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_edit_text.h @@ -33,6 +33,7 @@ #include "animator/animator.h" #include "common/text.h" +#include "common/typed_text.h" #include "components/ui_view.h" #include namespace OHOS { diff --git a/code/sdk/middleware/services/gui/uikit/utils/interfaces/kits/gfx_utils/image_info.h b/code/sdk/middleware/services/gui/uikit/utils/interfaces/kits/gfx_utils/image_info.h index 7e39fe96f..681721b8c 100644 --- a/code/sdk/middleware/services/gui/uikit/utils/interfaces/kits/gfx_utils/image_info.h +++ b/code/sdk/middleware/services/gui/uikit/utils/interfaces/kits/gfx_utils/image_info.h @@ -38,6 +38,7 @@ #include #include "graphic_config.h" namespace OHOS { +#define MAX_IMG_PATH_LEN 64 /** * @brief Defines image head node information. */ @@ -67,6 +68,9 @@ struct ImageInfo { const uint8_t* phyAddr; /** used for ImageCacheManager lru logic */ void* cacheNode; + char file[MAX_IMG_PATH_LEN]; + uint8_t fileLen; + uint32_t resId; #endif union { /** used for alpha image */ diff --git a/code/sdk/middleware/services/media/foundation/utils/src/media_thread_adapt.cpp b/code/sdk/middleware/services/media/foundation/utils/src/media_thread_adapt.cpp index 4dfe52f5a..f33f978c5 100644 --- a/code/sdk/middleware/services/media/foundation/utils/src/media_thread_adapt.cpp +++ b/code/sdk/middleware/services/media/foundation/utils/src/media_thread_adapt.cpp @@ -259,11 +259,11 @@ static void *MediaThreadFunc(void *arg) member.process(member.argument); -#ifdef CMSIS_SUPPORT -#ifndef CMSIS_SUPPORT_JOIN - if (!member.detached) { - osThreadFlagsSet(member.mainId, THREAD_EVENT_EXIT_FLAG); - } +#ifdef CMSIS_SUPPORT +#ifndef CMSIS_SUPPORT_JOIN + if (!member.detached) { + osThreadFlagsSet(member.mainId, THREAD_EVENT_EXIT_FLAG); + } #endif #endif if (member.detached) { @@ -294,8 +294,6 @@ static int32_t MediaDoCreateThread(MediaThreadMember *member, const MediaThreada osThreadAttr_t taskAttr = { attr->name, attrBits, nullptr, 0, nullptr, attr->stackSize, osPriorityNormal, 0, 0 }; - // Allocate the memory of the thread to the psram. - taskAttr.stack_mem = memalign(0x10, attr->stackSize); MediaSetCmsisThreadPriorityAttr(&taskAttr, attr->prioty); subId = osThreadNew((osThreadFunc_t)MediaThreadFunc, member, &taskAttr); } @@ -377,13 +375,13 @@ void MediaThreadJoin(MediaThreadIdHandle *thdId) return; } #ifdef CMSIS_SUPPORT -#ifdef CMSIS_SUPPORT_JOIN - osThreadJoin((osThreadId_t)*thdId); -#else - /* - * MediaThreadMember *member = *thdId; - * osThreadJoin not support join, can use osThreadFlagsSet/osThreadFlagsWait replace - */ +#ifdef CMSIS_SUPPORT_JOIN + osThreadJoin((osThreadId_t)*thdId); +#else + /* + * MediaThreadMember *member = *thdId; + * osThreadJoin not support join, can use osThreadFlagsSet/osThreadFlagsWait replace + */ osThreadFlagsWait(THREAD_EVENT_EXIT_FLAG, osFlagsWaitAll, osWaitForever); #endif #else diff --git a/code/sdk/middleware/services/media/hal/common/src/media_hal_thread_adapt.c b/code/sdk/middleware/services/media/hal/common/src/media_hal_thread_adapt.c index 21b116b0d..593481cd5 100644 --- a/code/sdk/middleware/services/media/hal/common/src/media_hal_thread_adapt.c +++ b/code/sdk/middleware/services/media/hal/common/src/media_hal_thread_adapt.c @@ -295,8 +295,6 @@ static int32_t MediaHalDoCreateThread(MediaHalThreadMember *member, const MediaH uint32_t attrBits = osThreadDetached; #endif osThreadAttr_t taskAttr = { attr->name, attrBits, NULL, 0, NULL, attr->stackSize, osPriorityNormal, 0, 0 }; - // Allocate the memory of the thread to the psram. - taskAttr.stack_mem = memalign(0x10, attr->stackSize); MediaHalSetCmsisThreadPriorityAttr(&taskAttr, attr->prioty); subId = osThreadNew(MediaHalThreadFunc, member, &taskAttr); } diff --git a/code/sdk/middleware/utils/dfx/CMakeLists.txt b/code/sdk/middleware/utils/dfx/CMakeLists.txt index d7b1eab77..ccdd6e45e 100644 --- a/code/sdk/middleware/utils/dfx/CMakeLists.txt +++ b/code/sdk/middleware/utils/dfx/CMakeLists.txt @@ -450,7 +450,6 @@ set(PRIVATE_DEFINES set(PUBLIC_DEFINES SUPPORT_DFX_LOG - SUPPORT_DFX_EXCEPTION ) # use this when you want to add ccflags like -include xxx diff --git a/code/sdk/middleware/utils/dfx/log/log_oml_exception.c b/code/sdk/middleware/utils/dfx/log/log_oml_exception.c index cdf3a5554..08de6bdae 100644 --- a/code/sdk/middleware/utils/dfx/log/log_oml_exception.c +++ b/code/sdk/middleware/utils/dfx/log/log_oml_exception.c @@ -47,7 +47,6 @@ #endif #endif #include "chip_io.h" -#include "nandflash_config.h" #define STACK_SIZE 3 @@ -470,11 +469,6 @@ void log_oml_memory_dump(void) #elif CORE == APPS && !defined(BUILD_RECOVERY_IMAGE) #ifdef HSO_SUPPORT dfx_last_dump(); - nand_driver_init(SPEED_SLOW); - set_trans_type(TRANS_BY_CPU_SINGLE_LINE); -#if defined SAVE_EXC_INFO - save_preserve_file_to_nand(); -#endif #else log_exception_dump_memory(APP_ITCM_ORIGIN, APP_ITCM_LENGTH); log_exception_dump_memory(APP_DTCM_ORIGIN, APP_DTCM_LENGTH); diff --git a/code/sdk/middleware/utils/dfx/panic/private/panic.c b/code/sdk/middleware/utils/dfx/panic/private/panic.c index 4a16e9f8b..b625429c6 100644 --- a/code/sdk/middleware/utils/dfx/panic/private/panic.c +++ b/code/sdk/middleware/utils/dfx/panic/private/panic.c @@ -40,6 +40,7 @@ #include "tcxo.h" #include "pm.h" #endif +#include "nandflash_config.h" #define NON_OS_ENTER_MAX_NUM 8 #define MAX_STR_LEN 64 @@ -275,9 +276,16 @@ void panic_deal(panic_id_t origin, uint32_t code, uint32_t caller) if (g_panic_dump_callback != NULL) { g_panic_dump_callback(); } -#ifdef SUPPORT_DFX_LOG +#ifdef SUPPORT_DFX_EXCEPTION // Dump whole memory log_oml_memory_dump(); +#endif +#ifdef CFG_DRIVERS_NANDFLASH + nand_driver_init(SPEED_SLOW); + set_trans_type(TRANS_BY_CPU_SINGLE_LINE); +#if defined(SAVE_EXC_INFO) && (CONFIG_DFX_SUPPORT_FILE_SYSTEM == DFX_YES) + save_preserve_file_to_nand(); +#endif #endif panic_deal_wait(); non_os_exit_critical(); diff --git a/code/sdk/middleware/utils/dfx/preserve/private/preserve.c b/code/sdk/middleware/utils/dfx/preserve/private/preserve.c index e26b6d8e8..9f1ebc5f5 100644 --- a/code/sdk/middleware/utils/dfx/preserve/private/preserve.c +++ b/code/sdk/middleware/utils/dfx/preserve/private/preserve.c @@ -102,13 +102,13 @@ static void system_set_reboot_status_by_crash_cause(void) g_preserve_data_lib.reboot_status = REBOOT_SOFT_PANIC_TRIGGER_STATUS; } } -#if defined SAVE_EXC_INFO +#if defined(SAVE_EXC_INFO) && (CONFIG_DFX_SUPPORT_FILE_SYSTEM == DFX_YES) #if !defined(BUILD_RECOVERY_IMAGE) void save_preserve_file_to_nand(void) { const char *preserve_info_ex_path = "/user/exc/preserve.bin"; int32_t ret = exc_info_write(preserve_info_ex_path, 0, (uint8_t *)&g_preserve_data_lib, sizeof(preserve_data_t)); - printf("save_preserve_file_to_nand ret:%d.\r\n", ret); + PRINT("save_preserve_file_to_nand ret:%d.\r\n", ret); } void save_btram_file_to_nand(void) @@ -116,14 +116,14 @@ void save_btram_file_to_nand(void) const char *btram_info_path = "/user/exc/bt_ram_info.bin"; int32_t ret = exc_info_write(btram_info_path, 0, (uint8_t *)BT_RAM_ORIGIN_APP_MAPPING, BT_RAM_ORIGIN_APP_MAPPING_LENGTH); - printf("save_btram_file_to_nand ret:%d.\r\n", ret); + PRINT("save_btram_file_to_nand ret:%d.\r\n", ret); } void save_btrace_file_to_nand(void) { const char *btrace_info_path = "/user/exc/btrace_info.bin"; int32_t ret = exc_info_write(btrace_info_path, 0, (uint8_t *)BTRACE_ADDR_EXEC, BTRACE_ADDR_EXEC_LEN); - printf("save_btrace_file_to_nand ret:%d.\r\n", ret); + PRINT("save_btrace_file_to_nand ret:%d.\r\n", ret); } #endif #endif diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-auto-ota-cli/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-auto-ota-cli/libx_vfs_private.a new file mode 100644 index 000000000..8811498b4 Binary files /dev/null and b/code/sdk/middleware/utils/fs/vfs/brandy-auto-ota-cli/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-auto-ota-ser/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-auto-ota-ser/libx_vfs_private.a new file mode 100644 index 000000000..2b088ccd8 Binary files /dev/null and b/code/sdk/middleware/utils/fs/vfs/brandy-auto-ota-ser/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-native-js-r/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-native-js-r/libx_vfs_private.a index a09538e0d..d4ad57565 100644 Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-native-js-r/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-native-js-r/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-native-js/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-native-js/libx_vfs_private.a index 805841e57..9af3d9c5c 100644 Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-native-js/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-native-js/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-target1-r/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-target1-r/libx_vfs_private.a index 53d8983d3..0c9171776 100644 Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-target1-r/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-target1-r/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-target1/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-target1/libx_vfs_private.a index 30ba4d9f4..71587fc57 100644 Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-target1/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-target1/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-target3-r/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-target3-r/libx_vfs_private.a index e13fd8e7f..8b6acb947 100644 Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-target3-r/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-target3-r/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-target3/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-target3/libx_vfs_private.a index cdf5a0095..23468d2a0 100644 Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-target3/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-target3/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-target4-r/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-target4-r/libx_vfs_private.a index 1fa3ef014..1fa6576d7 100644 Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-target4-r/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-target4-r/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-target4/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-target4/libx_vfs_private.a index 24d9728ba..b856b1a57 100644 Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-target4/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-target4/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-target5-r/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-target5-r/libx_vfs_private.a index b43fc335b..ba9c39112 100644 Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-target5-r/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-target5-r/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-target5/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-target5/libx_vfs_private.a index bea77d49b..6ade7132a 100644 Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-target5/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-target5/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-xts-r/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-xts-r/libx_vfs_private.a index 3afe3f2ac..d3ffd47b8 100644 Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-xts-r/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-xts-r/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-xts/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-xts/libx_vfs_private.a index db01c4fbe..2ac65c0ad 100644 Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-xts/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-xts/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/vfs/testsuite-brandy-sdk/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/testsuite-brandy-sdk/libx_vfs_private.a index a31e01d46..f29bef29f 100644 Binary files a/code/sdk/middleware/utils/fs/vfs/testsuite-brandy-sdk/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/testsuite-brandy-sdk/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-auto-ota-cli/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-auto-ota-cli/libfs_yaffs2.a new file mode 100644 index 000000000..24138d847 Binary files /dev/null and b/code/sdk/middleware/utils/fs/yaffs2/brandy-auto-ota-cli/libfs_yaffs2.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-auto-ota-ser/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-auto-ota-ser/libfs_yaffs2.a new file mode 100644 index 000000000..80921f3d0 Binary files /dev/null and b/code/sdk/middleware/utils/fs/yaffs2/brandy-auto-ota-ser/libfs_yaffs2.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js-r/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js-r/libfs_yaffs2.a index 169751cd9..f120d29d8 100644 Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js-r/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js-r/libfs_yaffs2.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js/libfs_yaffs2.a index 5732c59e4..f9f27b792 100644 Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js/libfs_yaffs2.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-target1-r/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-target1-r/libfs_yaffs2.a index 2afb70e81..f21bf59a2 100644 Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-target1-r/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-target1-r/libfs_yaffs2.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-target1/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-target1/libfs_yaffs2.a index 29623ed81..39ededcc0 100644 Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-target1/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-target1/libfs_yaffs2.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-target3-r/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-target3-r/libfs_yaffs2.a index f58886cd6..d30d0ab50 100644 Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-target3-r/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-target3-r/libfs_yaffs2.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-target3/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-target3/libfs_yaffs2.a index 96e28c734..8c44918f4 100644 Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-target3/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-target3/libfs_yaffs2.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-target4-r/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-target4-r/libfs_yaffs2.a index a9a009e2a..99adba076 100644 Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-target4-r/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-target4-r/libfs_yaffs2.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-target4/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-target4/libfs_yaffs2.a index da5ece74c..721fb7c7e 100644 Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-target4/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-target4/libfs_yaffs2.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-target5-r/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-target5-r/libfs_yaffs2.a index 93b676067..24f1ab15d 100644 Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-target5-r/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-target5-r/libfs_yaffs2.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-target5/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-target5/libfs_yaffs2.a index d16d30518..0f6afbc05 100644 Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-target5/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-target5/libfs_yaffs2.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-xts-r/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-xts-r/libfs_yaffs2.a index 40599e6cb..ec02bba40 100644 Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-xts-r/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-xts-r/libfs_yaffs2.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-xts/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-xts/libfs_yaffs2.a index 9a542dd15..fe9825e06 100644 Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-xts/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-xts/libfs_yaffs2.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/testsuite-brandy-sdk/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/testsuite-brandy-sdk/libfs_yaffs2.a index 1c31928f1..139ea697c 100644 Binary files a/code/sdk/middleware/utils/fs/yaffs2/testsuite-brandy-sdk/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/testsuite-brandy-sdk/libfs_yaffs2.a differ diff --git a/code/sdk/open_source/openharmony/drivers/peripheral/display/interfaces/include/display_gralloc.h b/code/sdk/open_source/openharmony/drivers/peripheral/display/interfaces/include/display_gralloc.h index 44617418b..892af1d7e 100644 --- a/code/sdk/open_source/openharmony/drivers/peripheral/display/interfaces/include/display_gralloc.h +++ b/code/sdk/open_source/openharmony/drivers/peripheral/display/interfaces/include/display_gralloc.h @@ -43,6 +43,7 @@ extern "C" { #endif +typedef bool (*TryToFreeImgCallback)(void); /** * @brief Defines pointers to the memory driver functions. */ @@ -140,6 +141,8 @@ typedef struct { * @version 1.0 */ int32_t (*InvalidateCache)(BufferHandle* handle); + + void (*RegisterTryToFreeImgCallback)(TryToFreeImgCallback callback); } GrallocFuncs; /** diff --git a/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-auto-ota-cli/libams.a b/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-auto-ota-cli/libams.a new file mode 100644 index 000000000..8dccc7839 Binary files /dev/null and b/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-auto-ota-cli/libams.a differ diff --git a/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-auto-ota-ser/libams.a b/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-auto-ota-ser/libams.a new file mode 100644 index 000000000..67622a669 Binary files /dev/null and b/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-auto-ota-ser/libams.a differ diff --git a/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-native-js/libams.a b/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-native-js/libams.a index bec8d62ba..c3b361c64 100644 Binary files a/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-native-js/libams.a and b/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-native-js/libams.a differ diff --git a/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-xts/libams.a b/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-xts/libams.a index 17e3a8856..fd74cca09 100644 Binary files a/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-xts/libams.a and b/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-xts/libams.a differ diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-auto-ota-cli/libace.a b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-auto-ota-cli/libace.a new file mode 100644 index 000000000..19cfb8430 Binary files /dev/null and b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-auto-ota-cli/libace.a differ diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-auto-ota-ser/libace.a b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-auto-ota-ser/libace.a new file mode 100644 index 000000000..9788f97cd Binary files /dev/null and b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-auto-ota-ser/libace.a differ diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-native-js/libace.a b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-native-js/libace.a index defda6c56..8fdfdbf50 100644 Binary files a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-native-js/libace.a and b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-native-js/libace.a differ diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-xts/libace.a b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-xts/libace.a index 1c00ced39..ce01aba77 100644 Binary files a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-xts/libace.a and b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-xts/libace.a differ diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/baidu_map_component.cpp b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/baidu_map_component.cpp index 8b50db0da..250506576 100644 --- a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/baidu_map_component.cpp +++ b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/baidu_map_component.cpp @@ -95,21 +95,29 @@ BaiduMapComponent::BaiduMapComponent(jerry_value_t options, jerry_value_t childr BaiduMapComponent::~BaiduMapComponent() { HILOG_INFO(HILOG_MODULE_ACE,"BaiduMapComponent destructor"); +#ifdef SUPPORT_BAIDU MapComponentApi::getInstance().destroy(); uapi_vau_set_cubic_threshold(0.125f); +#endif } UIView *BaiduMapComponent::GetComponentRootView() const { +#ifdef SUPPORT_BAIDU return const_cast(MapComponentApi::getInstance().get_baidumap_root_view()); +#else + return nullptr; +#endif } JSValue BaiduMapComponent::SetZoomEventEnabled(const jerry_value_t func, const jerry_value_t context, const jerry_value_t args[], const jerry_length_t argsSize) { HILOG_INFO(HILOG_MODULE_ACE,"SetZoomEventEnabled"); +#ifdef SUPPORT_BAIDU bool enabled = BoolOf(args[0]); MapComponentApi::getInstance().set_zoom_event_enabled(enabled); +#endif return UNDEFINED; } @@ -117,7 +125,9 @@ JSValue BaiduMapComponent::ZoomIn(const jerry_value_t func, const jerry_value_t const jerry_value_t args[], const jerry_length_t argsSize) { HILOG_INFO(HILOG_MODULE_ACE,"ZoomIn"); +#ifdef SUPPORT_BAIDU MapComponentApi::getInstance().zoom_in(); +#endif return UNDEFINED; } @@ -125,7 +135,9 @@ JSValue BaiduMapComponent::ZoomOut(const jerry_value_t func, const jerry_value_t const jerry_value_t args[], const jerry_length_t argsSize) { HILOG_INFO(HILOG_MODULE_ACE,"ZoomOut"); +#ifdef SUPPORT_BAIDU MapComponentApi::getInstance().zoom_out(); +#endif return UNDEFINED; } @@ -133,8 +145,10 @@ JSValue BaiduMapComponent::ZoomTo(const jerry_value_t func, const jerry_value_t const jerry_value_t args[], const jerry_length_t argsSize) { HILOG_INFO(HILOG_MODULE_ACE,"ZoomTo"); +#ifdef SUPPORT_BAIDU int amount = IntegerOf(args[0]); MapComponentApi::getInstance().zoom_to(amount); +#endif return UNDEFINED; } @@ -142,8 +156,10 @@ JSValue BaiduMapComponent::ZoomBy(const jerry_value_t func, const jerry_value_t const jerry_value_t args[], const jerry_length_t argsSize) { HILOG_INFO(HILOG_MODULE_ACE,"ZoomBy"); +#ifdef SUPPORT_BAIDU int amount = IntegerOf(args[0]); MapComponentApi::getInstance().zoom_by(amount); +#endif return UNDEFINED; } @@ -151,8 +167,10 @@ JSValue BaiduMapComponent::SetMapBackgroundColor(const jerry_value_t func, const const jerry_value_t args[], const jerry_length_t argsSize) { HILOG_INFO(HILOG_MODULE_ACE,"SetMapBackgroundColor"); +#ifdef SUPPORT_BAIDU char *json_color = MallocStringOf(args[0]); MapComponentApi::getInstance().set_map_background_color(json_color); +#endif return UNDEFINED; } @@ -160,8 +178,10 @@ JSValue BaiduMapComponent::SetMapOverlayerEnabled(const jerry_value_t func, cons const jerry_value_t args[], const jerry_length_t argsSize) { HILOG_INFO(HILOG_MODULE_ACE,"SetMapOverlayerEnabled"); +#ifdef SUPPORT_BAIDU bool enabled = BoolOf(args[0]); MapComponentApi::getInstance().set_map_overlayer_enabled(enabled); +#endif return UNDEFINED; } @@ -169,8 +189,10 @@ JSValue BaiduMapComponent::SetMapTilesEnabled(const jerry_value_t func, const je const jerry_value_t args[], const jerry_length_t argsSize) { HILOG_INFO(HILOG_MODULE_ACE,"SetMapTilesEnabled"); +#ifdef SUPPORT_BAIDU bool enabled = BoolOf(args[0]); MapComponentApi::getInstance().set_map_tiles_enabled(enabled); +#endif return UNDEFINED; } @@ -178,8 +200,10 @@ JSValue BaiduMapComponent::SetScrollGesturesEnabled(const jerry_value_t func, co const jerry_value_t args[], const jerry_length_t argsSize) { HILOG_INFO(HILOG_MODULE_ACE,"SetScrollGesturesEnabled"); +#ifdef SUPPORT_BAIDU bool enabled = BoolOf(args[0]); MapComponentApi::getInstance().set_scroll_gestures_enabled(enabled); +#endif return UNDEFINED; } @@ -187,9 +211,11 @@ JSValue BaiduMapComponent::ScrollBy(const jerry_value_t func, const jerry_value_ const jerry_value_t args[], const jerry_length_t argsSize) { HILOG_INFO(HILOG_MODULE_ACE,"ScrollBy"); +#ifdef SUPPORT_BAIDU int pixel_x = IntegerOf(args[0]); int pixel_y = IntegerOf(args[1]); MapComponentApi::getInstance().scroll_by(pixel_x,pixel_y); +#endif return UNDEFINED; } @@ -197,8 +223,10 @@ JSValue BaiduMapComponent::NewLatLng(const jerry_value_t func, const jerry_value const jerry_value_t args[], const jerry_length_t argsSize) { HILOG_INFO(HILOG_MODULE_ACE,"NewLatLng"); +#ifdef SUPPORT_BAIDU char *json_lat_lng = MallocStringOf(args[0]); MapComponentApi::getInstance().new_lat_lng(json_lat_lng); +#endif return UNDEFINED; } @@ -206,9 +234,11 @@ JSValue BaiduMapComponent::NewLatLngZoom(const jerry_value_t func, const jerry_v const jerry_value_t args[], const jerry_length_t argsSize) { HILOG_INFO(HILOG_MODULE_ACE,"NewLatLngZoom"); +#ifdef SUPPORT_BAIDU char *json_lat_lng = MallocStringOf(args[0]); int zoom = IntegerOf(args[1]); MapComponentApi::getInstance().new_lat_lng_zoom(json_lat_lng,zoom); +#endif return UNDEFINED; } @@ -216,7 +246,9 @@ JSValue BaiduMapComponent::ClearMapOverlayer(const jerry_value_t func, const jer const jerry_value_t args[], const jerry_length_t argsSize) { HILOG_INFO(HILOG_MODULE_ACE,"ClearMapOverlayer"); +#ifdef SUPPORT_BAIDU MapComponentApi::getInstance().clear_map_overlayer(); +#endif return UNDEFINED; } @@ -224,8 +256,10 @@ JSValue BaiduMapComponent::DrawMarker(const jerry_value_t func, const jerry_valu const jerry_value_t args[], const jerry_length_t argsSize) { HILOG_INFO(HILOG_MODULE_ACE,"DrawMarker"); +#ifdef SUPPORT_BAIDU char *json_marker = MallocStringOf(args[0]); MapComponentApi::getInstance().draw_marker(json_marker); +#endif return UNDEFINED; } @@ -233,8 +267,10 @@ JSValue BaiduMapComponent::DrawNaviMarker(const jerry_value_t func, const jerry_ const jerry_value_t args[], const jerry_length_t argsSize) { HILOG_INFO(HILOG_MODULE_ACE,"DrawNaviMarker"); +#ifdef SUPPORT_BAIDU char *json_navi_marker = MallocStringOf(args[0]); MapComponentApi::getInstance().draw_navi_marker(json_navi_marker); +#endif return UNDEFINED; } @@ -242,8 +278,10 @@ JSValue BaiduMapComponent::DrawPolygon(const jerry_value_t func, const jerry_val const jerry_value_t args[], const jerry_length_t argsSize) { HILOG_INFO(HILOG_MODULE_ACE,"DrawPolygon"); +#ifdef SUPPORT_BAIDU char *json_polygon = MallocStringOf(args[0]); MapComponentApi::getInstance().draw_polygon(json_polygon); +#endif return UNDEFINED; } @@ -251,8 +289,10 @@ JSValue BaiduMapComponent::DrawPath(const jerry_value_t func, const jerry_value_ const jerry_value_t args[], const jerry_length_t argsSize) { HILOG_INFO(HILOG_MODULE_ACE,"DrawPath"); +#ifdef SUPPORT_BAIDU char *json_path = MallocStringOf(args[0]); MapComponentApi::getInstance().draw_path(json_path); +#endif return UNDEFINED; } @@ -260,8 +300,10 @@ JSValue BaiduMapComponent::DrawCircle(const jerry_value_t func, const jerry_valu const jerry_value_t args[], const jerry_length_t argsSize) { HILOG_INFO(HILOG_MODULE_ACE,"DrawCircle"); +#ifdef SUPPORT_BAIDU char *json_circle = MallocStringOf(args[0]); MapComponentApi::getInstance().draw_circle(json_circle); +#endif return UNDEFINED; } @@ -269,8 +311,10 @@ JSValue BaiduMapComponent::DrawText(const jerry_value_t func, const jerry_value_ const jerry_value_t args[], const jerry_length_t argsSize) { HILOG_INFO(HILOG_MODULE_ACE,"DrawText"); +#ifdef SUPPORT_BAIDU char *json_text = MallocStringOf(args[0]); MapComponentApi::getInstance().draw_text(json_text); +#endif return UNDEFINED; } @@ -306,7 +350,9 @@ JSValue BaiduMapComponent::OverlayerClearCircle(const jerry_value_t func, const const jerry_value_t args[], const jerry_length_t argsSize) { HILOG_INFO(HILOG_MODULE_ACE,"OverlayerClearCircle"); +#ifdef SUPPORT_BAIDU MapComponentApi::getInstance().overlayer_clear_circle(); +#endif return UNDEFINED; } @@ -314,7 +360,9 @@ JSValue BaiduMapComponent::OverlayerClearMarker(const jerry_value_t func, const const jerry_value_t args[], const jerry_length_t argsSize) { HILOG_INFO(HILOG_MODULE_ACE,"OverlayerClearMarker"); +#ifdef SUPPORT_BAIDU MapComponentApi::getInstance().overlayer_clear_marker(); +#endif return UNDEFINED; } @@ -322,7 +370,9 @@ JSValue BaiduMapComponent::OverlayerClearNaviMarker(const jerry_value_t func, co const jerry_value_t args[], const jerry_length_t argsSize) { HILOG_INFO(HILOG_MODULE_ACE,"OverlayerClearNaviMarker"); +#ifdef SUPPORT_BAIDU MapComponentApi::getInstance().overlayer_clear_navi_marker(); +#endif return UNDEFINED; } @@ -330,7 +380,9 @@ JSValue BaiduMapComponent::Destroy(const jerry_value_t func, const jerry_value_t const jerry_value_t args[], const jerry_length_t argsSize) { HILOG_INFO(HILOG_MODULE_ACE,"Destroy"); +#ifdef SUPPORT_BAIDU MapComponentApi::getInstance().destroy(); +#endif return UNDEFINED; } diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/canvas_component.cpp b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/canvas_component.cpp index e78c09ed4..63cea7b39 100644 --- a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/canvas_component.cpp +++ b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/canvas_component.cpp @@ -49,6 +49,7 @@ const char * const CanvasComponent::FUNC_RECT = "rect"; const char * const CanvasComponent::FUNC_ARC = "arc"; const char * const CanvasComponent::FUNC_CLOSEPATH = "closePath"; const char * const CanvasComponent::FUNC_STROKE = "stroke"; +const char * const CanvasComponent::FUNC_CLEAR = "clear"; // create canvas draw attribute-callback mapping const AttrMap CanvasComponent::attrMap_[] = { @@ -71,7 +72,8 @@ const MethodMap CanvasComponent::methodMap_[] = { {FUNC_RECT, Rect}, {FUNC_ARC, Arc}, {FUNC_CLOSEPATH, ClosePath}, - {FUNC_STROKE, Stroke} + {FUNC_STROKE, Stroke}, + {FUNC_CLEAR, Clear} }; CanvasComponent::CanvasComponent(jerry_value_t options, jerry_value_t children, AppStyleManager *styleManager) @@ -822,6 +824,25 @@ jerry_value_t CanvasComponent::Stroke(const jerry_value_t func, return UNDEFINED; } +jerry_value_t CanvasComponent::Clear(const jerry_value_t func, + const jerry_value_t context, + const jerry_value_t args[], + const jerry_length_t argsNum) +{ + (void)func; + (void)args; + (void)argsNum; + CanvasComponent *component = static_cast(ComponentUtils::GetComponentFromBindingObject(context)); + if (component == nullptr) { + HILOG_ERROR(HILOG_MODULE_ACE, "canvas_component: get canvas component from js object failed!"); + return jerry_create_error(JERRY_ERROR_TYPE, + reinterpret_cast("get canvas component from js object failed")); + } + + component->canvas_.Clear(); + return UNDEFINED; +} + void CanvasComponent::GetSubFont(const char *font, const uint8_t index, char *&subFont) const { if (font == nullptr || *font == '\0') { diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/canvas_component.h b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/canvas_component.h index 46ec159b9..e7a388d5c 100644 --- a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/canvas_component.h +++ b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/canvas_component.h @@ -173,6 +173,11 @@ private: const jerry_value_t args[], const jerry_length_t argsNum); + static jerry_value_t Clear(const jerry_value_t func, + const jerry_value_t context, + const jerry_value_t args[], + const jerry_length_t argsNum); + UICanvas canvas_; jerry_value_t context_; Paint paint_; @@ -203,6 +208,7 @@ private: static const char * const FUNC_ARC; static const char * const FUNC_CLOSEPATH; static const char * const FUNC_STROKE; + static const char * const FUNC_CLEAR; }; } // namespace ACELite } // namespace OHOS diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/component.cpp b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/component.cpp index b8c24d7e3..554e82684 100644 --- a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/component.cpp +++ b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/component.cpp @@ -1316,7 +1316,6 @@ void Component::ReleaseCommonEventListeners() { ACE_DELETE(onClickListener_); ACE_DELETE(onLongPressListener_); - ACE_DELETE(onKeyInputListener_); #ifdef JS_TOUCH_EVENT_SUPPORT ACE_DELETE(keyBoardEventListener_); ACE_DELETE(onTouchStartListener_); diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/picker_view_component.cpp b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/picker_view_component.cpp index b16265d4e..655f789ce 100644 --- a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/picker_view_component.cpp +++ b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/picker_view_component.cpp @@ -410,6 +410,9 @@ void PickerViewComponent::UpdatePickerStyles() const switch (pickerType_) { case PickerType::TEXT: { UIPicker *textPicker = reinterpret_cast(pickerView_); + if (PICKER_ITEM_HEIGHT < selectedFontSize_) { + textPicker->SetItemHeight(selectedFontSize_); + } textPicker->SetBackgroundFont(fontFamily_, fontSize_); textPicker->SetHighlightFont(selectedFontFamily_, selectedFontSize_); textPicker->SetTextColor(color_, selectedColor_); diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/app_module.cpp b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/app_module.cpp index 057374341..58487dbe2 100644 --- a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/app_module.cpp +++ b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/app_module.cpp @@ -16,6 +16,7 @@ #include "app_module.h" #include "ace_log.h" #include "js_app_context.h" +#include "bundle_manager.h" #ifdef FEATURE_SCREEN_ON_VISIBLE #include "js_async_work.h" #include "product_adapter.h" @@ -25,6 +26,7 @@ namespace OHOS { namespace ACELite { const char * const AppModule::FILE_MANIFEST = "manifest.json"; const char * const AppModule::KEY_APP_NAME = "appName"; +const char * const AppModule::KEY_APP_ID = "appID"; const char * const AppModule::KEY_VERSION_NAME = "versionName"; const char * const AppModule::KEY_VERSION_CODE = "versionCode"; @@ -55,13 +57,18 @@ JSIValue AppModule::GetInfo(const JSIValue thisVal, const JSIValue *args, uint8_ return result; } - cJSON *appName = cJSON_GetObjectItem(manifest, KEY_APP_NAME); + cJSON *appID = cJSON_GetObjectItem(manifest, KEY_APP_ID); + cJSON *versionName = cJSON_GetObjectItem(manifest, KEY_VERSION_NAME); cJSON *versionCode = cJSON_GetObjectItem(manifest, KEY_VERSION_CODE); result = JSI::CreateObject(); - if (appName != nullptr && appName->type == cJSON_String) { - JSI::SetStringProperty(result, KEY_APP_NAME, appName->valuestring); + if (appID != nullptr && appID->type == cJSON_String) { + BundleInfo bundleInfo; + uint8_t ret = GetBundleInfo(appID->valuestring, true, &bundleInfo); + if (ret == 0) { + JSI::SetStringProperty(result, KEY_APP_NAME, bundleInfo.label); + } } if (versionName != nullptr && versionName->type == cJSON_String) { JSI::SetStringProperty(result, KEY_VERSION_NAME, versionName->valuestring); diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/app_module.h b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/app_module.h index c978889ed..00e7a3cad 100644 --- a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/app_module.h +++ b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/app_module.h @@ -41,7 +41,7 @@ private: static const char * const KEY_APP_NAME; static const char * const KEY_VERSION_NAME; static const char * const KEY_VERSION_CODE; - + static const char * const KEY_APP_ID; static cJSON* ReadManifest(); #ifdef FEATURE_SCREEN_ON_VISIBLE diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/baidumapcomponent/baidumap.cpp b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/baidumapcomponent/baidumap.cpp index 4f55505a9..ce9a837f8 100644 --- a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/baidumapcomponent/baidumap.cpp +++ b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/baidumapcomponent/baidumap.cpp @@ -1065,6 +1065,19 @@ JSIValue BaiduMapComponentModule::NaviDestroy(const JSIValue thisVal, const JSIV return JSI::CreateBoolean(0); } +/** + * stop answer + */ +JSIValue BaiduMapComponentModule::StopAnswer(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) +{ + HILOG_INFO(HILOG_MODULE_ACE,"StopAnswer"); + char *data = JSI::JsonStringify(args[0]); + HILOG_INFO(HILOG_MODULE_ACE,"StopAnswer : %s \n",data); + msg_center_xiaodu_send_stop_answer(MSGCENTER_CMD_XIAODU,MSGCENTER_TYPE_ID_XIAODU_SEND_JS_EXIT,data,strlen(data)); + return JSI::CreateBoolean(0); +} + + void InitBaiduMapComponentModule(JSIValue exports) { HILOG_INFO(HILOG_MODULE_ACE,"InitBaiduMapComponentModule"); @@ -1122,6 +1135,10 @@ void InitBaiduMapComponentModule(JSIValue exports) * exit navigation */ JSI::SetModuleAPI(exports, "naviDestroy", BaiduMapComponentModule::NaviDestroy); + /** + * stop anwser + */ + JSI::SetModuleAPI(exports, "stopAnswer", BaiduMapComponentModule::StopAnswer); } } // namespace ACELite @@ -1185,3 +1202,22 @@ int32_t BaidumapFailSendMsgToJS(const char *msgBody,uint8_t type) return 0; } +__attribute__((weak)) void WGS84ToGCJ02(double lon, double lat, JSCoordinate &output) +{ + +} + +__attribute__((weak)) void GCJ02ToBD09(double lon, double lat, JSCoordinate &output) +{ + +} + +__attribute__((weak)) void WGS84ToBD09(double lon, double lat, JSCoordinate &output) +{ + +} + +__attribute__((weak)) void BD09ToGCJ02(double bd_lon, double bd_lat, JSCoordinate &output) +{ + +} diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/baidumapcomponent/baidumap.h b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/baidumapcomponent/baidumap.h index b874985d7..5c665e1e5 100644 --- a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/baidumapcomponent/baidumap.h +++ b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/baidumapcomponent/baidumap.h @@ -107,6 +107,10 @@ public: */ static JSIValue NaviDestroy(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize); + /** + * stop answer + */ + static JSIValue StopAnswer(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize); }; void InitBaiduMapComponentModule(JSIValue exports); diff --git a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-auto-ota-cli/libbms.a b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-auto-ota-cli/libbms.a new file mode 100644 index 000000000..d4ecb8d31 Binary files /dev/null and b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-auto-ota-cli/libbms.a differ diff --git a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-auto-ota-ser/libbms.a b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-auto-ota-ser/libbms.a new file mode 100644 index 000000000..53a5362dc Binary files /dev/null and b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-auto-ota-ser/libbms.a differ diff --git a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-native-js/libbms.a b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-native-js/libbms.a index d39cac67c..686c9eaaf 100644 Binary files a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-native-js/libbms.a and b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-native-js/libbms.a differ diff --git a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-xts/libbms.a b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-xts/libbms.a index b81389216..b91cc5452 100644 Binary files a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-xts/libbms.a and b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-xts/libbms.a differ diff --git a/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-auto-ota-cli/libjerryscript.a b/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-auto-ota-cli/libjerryscript.a new file mode 100644 index 000000000..bba9869d1 Binary files /dev/null and b/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-auto-ota-cli/libjerryscript.a differ diff --git a/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-auto-ota-ser/libjerryscript.a b/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-auto-ota-ser/libjerryscript.a new file mode 100644 index 000000000..5ef202516 Binary files /dev/null and b/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-auto-ota-ser/libjerryscript.a differ diff --git a/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-native-js/libjerryscript.a b/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-native-js/libjerryscript.a index 0eb9f5921..73de5fecc 100644 Binary files a/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-native-js/libjerryscript.a and b/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-native-js/libjerryscript.a differ diff --git a/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-xts/libjerryscript.a b/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-xts/libjerryscript.a index 732f3c970..8e4eeec29 100644 Binary files a/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-xts/libjerryscript.a and b/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-xts/libjerryscript.a differ diff --git a/code/sdk/open_source/openharmony/utils/native/lite/memory/include/ohos_mem_pool.h b/code/sdk/open_source/openharmony/utils/native/lite/memory/include/ohos_mem_pool.h new file mode 100644 index 000000000..4b186352e --- /dev/null +++ b/code/sdk/open_source/openharmony/utils/native/lite/memory/include/ohos_mem_pool.h @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @addtogroup ohos_mem_pool + * @{ + * + * @brief Provides functions for memory alloc and memory free. + * + * @since 1.0 + * @version 1.0 + */ + +/** + * @file ohos_mem_pool.h + * + * @brief Provides functions for memory alloc and memory free. + * + * @since 1.0 + * @version 1.0 + */ + +#ifndef OHOS_MEM_POOL_H +#define OHOS_MEM_POOL_H + +#include "ohos_types.h" + +#ifdef __cplusplus +#if __cplusplus +extern "C"{ +#endif +#endif /* End of #ifdef __cplusplus */ + +/** + * @brief memory pool enum definition. + */ +typedef enum { + MEM_TYPE_BEGIN = 100, + MEM_TYPE_UIKIT = MEM_TYPE_BEGIN, /* UIKIT memory pool */ + MEM_TYPE_UIKIT_LSRAM, /* UIKIT low speed memory pool */ + MEM_TYPE_APPFMK, /* appexecfmk memory pool */ + MEM_TYPE_APPFMK_LSRAM, /* appexecfmk low speed memory pool */ + MEM_TYPE_ACE, /* ACE memory pool */ + MEM_TYPE_ACE_LSRAM, /* ACE low speed memory pool */ + MEM_TYPE_JERRY, /* jerry script memory pool */ + MEM_TYPE_JERRY_LSRAM, /* jerry script low speed memory pool */ + MEM_TYPE_HICHAIN, /* security memory pool */ + MEM_TYPE_SOFTBUS_LSRAM, /* softbus low speed memory pool */ + MEM_TYPE_I18N_LSRAM = 111, /* global i18n low speed memory pool */ + MEM_TYPE_CJSON_LSRAM = 114, + MEM_TYPE_APP_VERIFY_LSRAM = 116, + + MEM_TYPE_MAX /* maximum definition of memory, add a new memory pool before it */ +} MemType; + +/** + * @brief According to the input parameters type and size, + * memory is applied in the corresponding memory pool. + * + * Because memory management needs to consume memory, + * it is not recommended to use the memory application interface to apply for memory + * if the application memory is small (less than 8 bytes). + * Applying for small memory blocks is easy to cause memory fragmentation. + * + * @param type identify which memory pool to apply for memory in + * @param size size of memory block to apply for + * @return requested memory block address + * return if the memory request fails NULL. + * @since 1.0. + * @version 1.0. + */ +void *OhosMalloc(MemType type, uint32 size); + +/** + * @brief free incoming memory space. + * + * @param ptr identify the memory blocks that need to be released. + * @attention Do not release null pointers or memory blocks not requested by OhosMalloc! + * @return void + * @since 1.0. + * @version 1.0. + */ +void OhosFree(void *ptr); + +#ifdef __cplusplus +#if __cplusplus +} +#endif +#endif /* End of #ifdef __cplusplus */ + +#endif /* End of #ifndef OHOS_MEM_POOL_H */ +/** @} */ \ No newline at end of file diff --git a/code/sdk/protocol/bt/host/bt/bts/brandy_service/service/src/spp_service.h b/code/sdk/protocol/bt/host/bt/bts/brandy_service/service/src/spp_service.h index 00d4eb455..6e250ace4 100644 --- a/code/sdk/protocol/bt/host/bt/bts/brandy_service/service/src/spp_service.h +++ b/code/sdk/protocol/bt/host/bt/bts/brandy_service/service/src/spp_service.h @@ -11,6 +11,7 @@ enum { SPP_MSG_ID_HANDLE_SPP_CONNECT, SPP_MSG_ID_HANDLE_SPP_DISCONNECT, + SPP_MSG_ID_HANDLE_SPP_CONNECTION_EVENT, }; /* 发送A2DP Service模块消息 */ diff --git a/code/sdk/protocol/bt/host/bt/bts/bt_sample/br_profile/sample_hfp_hf_service.c b/code/sdk/protocol/bt/host/bt/bts/bt_sample/br_profile/sample_hfp_hf_service.c index 2908e33b1..b18558186 100644 --- a/code/sdk/protocol/bt/host/bt/bts/bt_sample/br_profile/sample_hfp_hf_service.c +++ b/code/sdk/protocol/bt/host/bt/bts/bt_sample/br_profile/sample_hfp_hf_service.c @@ -17,6 +17,7 @@ #else #include "bt_audio_manager_wrapper.h" #endif +#include "bts_pbap.h" #ifdef __cplusplus extern "C" { @@ -610,6 +611,7 @@ static td_char g_call_state_string[][20] = { "Finished" }; +#define HFP_PHONENUM_MAX_DIGITS 32 static void sample_handle_hfp_call_state_changed(const bd_addr_t *bd_addr, const hfp_hf_calls_info_t *call) { sample_hfp_hf_print_addr(bd_addr); @@ -620,6 +622,31 @@ static void sample_handle_hfp_call_state_changed(const bd_addr_t *bd_addr, const } bts_sample_log_no_header(", outgoing: %d, state: %s\n", call->outgoing, g_call_state_string[call->state]); } + /* 响铃时查询电话号码对应的list返回vcf和name */ + if (call->state == HFP_HF_CALL_STATE_INCOMING && call->number_len != 0) { + char *tel_name = "telecom"; + uint32_t ret = (uint32_t)pbap_pce_set_phone_book(bd_addr, (unsigned char*)tel_name); + if (ret != ERRCODE_BT_SUCCESS) { + bts_sample_log_with_func("set phone book ret 0x%x\n", ret); + return; + } + char *name = "pb"; + char number[HFP_PHONENUM_MAX_DIGITS + 1] = {0}; + if (memcpy_s(number, HFP_PHONENUM_MAX_DIGITS, call->number, call->number_len) != EOK) { + bts_sample_log("memcpy_s fail."); + return; + } + pbap_pce_pull_vcard_listing_param_t thr_par = {0}; + thr_par.name = (unsigned char*)name; + thr_par.max_list_count = 1; /* 1: max list */ + thr_par.list_offset = 0; + thr_par.order = PBAP_ORDER_INDEXED; + thr_par.search_value = (unsigned char*)number; /* 查询条件要有字符串结束符 */ + thr_par.search_property = PBAP_SEARCH_PROPERTY_NUMBER; + bts_sample_log_with_func("pull vcard list number %s search_value %s\n", call->number, thr_par.search_value); + ret = pbap_pce_pull_vcard_listing(bd_addr, &thr_par); + bts_sample_log_with_func("pull vcard list ret 0x%x\n", ret); + } } void sample_hfp_hf_set_spk_volume(uint8_t volume) diff --git a/code/sdk/protocol/bt/host/bt/bts/bt_sample/br_profile/sample_pbap_service.c b/code/sdk/protocol/bt/host/bt/bts/bt_sample/br_profile/sample_pbap_service.c index 62000f531..c078e330c 100644 --- a/code/sdk/protocol/bt/host/bt/bts/bt_sample/br_profile/sample_pbap_service.c +++ b/code/sdk/protocol/bt/host/bt/bts/bt_sample/br_profile/sample_pbap_service.c @@ -474,9 +474,16 @@ static bool sample_pbap_set_vcard_listing_name(bd_addr_t* bd_addr, uint8_t folde } /* get phone vCard-Listing */ -void wstp_pbap_cmd_pull_vcard_listing( - uint8_t folder, uint8_t vcf, uint16_t max_list_count, uint16_t list_offset, uint8_t order) +void wstp_pbap_cmd_pull_vcard_listing(const char **params, int32_t params_cnt) { + if (params_cnt != 5 && params_cnt != 7) { /* 5个参数不带过滤,7个参数带过滤 */ + bts_sample_log_with_func("params cnt err: %d!\n", params_cnt); + return; + } + uint8_t folder = (uint8_t)atoi(params[0]); /* index = 0 */ + uint8_t vcf = (uint8_t)atoi(params[1]); /* index = 1 */ + uint16_t max_list_count = (uint16_t)atoi(params[2]); /* index = 2 */ + uint16_t list_offset = (uint16_t)atoi(params[3]); /* index = 3 */ if (!wstp_pbap_check_param_valid(folder, vcf, max_list_count, list_offset, 0)) { bts_sample_log_with_func("pbap param invalid\n"); return; @@ -503,8 +510,13 @@ void wstp_pbap_cmd_pull_vcard_listing( thr_par->max_list_count = max_list_count; thr_par->list_offset = list_offset; /* index = 5 */ /* 0:索引序 1:字典序 */ - thr_par->order = order; - + thr_par->order = (uint8_t)atoi(params[4]); /* index = 4 */ + if (params_cnt == 7) { /* 7个参数带过滤 */ + thr_par->search_value = (unsigned char *)params[5]; /* index = 5 */ + thr_par->search_property = (uint8_t)atoi(params[6]); /* index = 6 */ + } + bts_sample_log_with_func("folder=%d vcf=%d max_list_count=%d list_offset=%d order=%d search_value=%s property=%d\n", + folder, vcf, max_list_count, list_offset, thr_par->order, thr_par->search_value, thr_par->search_property); if (sample_pbap_set_vcard_listing_name(bd_addr, folder, vcf, thr_par->name)) { bts_sample_log_with_func("pbap_pce_pull_vcard_listing name=%s\n", thr_par->name); pbap_pce_pull_vcard_listing(bd_addr, thr_par); diff --git a/code/sdk/protocol/bt/host/bt/bts/bt_sample/br_profile/sample_pbap_service.h b/code/sdk/protocol/bt/host/bt/bts/bt_sample/br_profile/sample_pbap_service.h index 993772073..18b567316 100644 --- a/code/sdk/protocol/bt/host/bt/bts/bt_sample/br_profile/sample_pbap_service.h +++ b/code/sdk/protocol/bt/host/bt/bts/bt_sample/br_profile/sample_pbap_service.h @@ -11,8 +11,7 @@ void bt_pbap_service_sample_cmd(uint32_t cmd_id, const char **params, int32_t pa void wstp_pbap_pce_reg_callback(void); void wstp_pbap_cmd_pull_phonebook( uint8_t folder, uint8_t vcf, uint16_t max_list_count, uint16_t list_offset, uint8_t format); -void wstp_pbap_cmd_pull_vcard_listing( - uint8_t folder, uint8_t vcf, uint16_t max_list_count, uint16_t list_offset, uint8_t order); +void wstp_pbap_cmd_pull_vcard_listing(const char **params, int32_t params_cnt); void wstp_pbap_cmd_pull_vcard_entry(uint8_t folder, uint8_t vcf, td_char *vcf_name, uint8_t format); #endif /* SAMPLE_PBAP_SERVICE_H */ diff --git a/code/sdk/protocol/bt/host/bt/bts/sdk/src/inc/bt_data_config.h b/code/sdk/protocol/bt/host/bt/bts/sdk/src/inc/bt_data_config.h index 1a843b7be..faecbea67 100644 --- a/code/sdk/protocol/bt/host/bt/bts/sdk/src/inc/bt_data_config.h +++ b/code/sdk/protocol/bt/host/bt/bts/sdk/src/inc/bt_data_config.h @@ -6,6 +6,7 @@ #define DATA_CONFIG_H #include "custdefs.h" +#include "bts_def.h" #include "mpc_struct.h" #include "stack_gap_if.h" #ifdef __cplusplus @@ -100,7 +101,7 @@ void bt_acore_get_system_config(uint32_t *system_config); void bt_acore_get_calibration_data(uint8_t *calibration_data, uint16_t data_length); void bt_acore_delete_smp_key(struct hci_address_stru *delete_addr, uint8_t *delete_num); void bt_acore_delete_single_smp_key(struct hci_address_stru *delete_addr); -int8_t bt_acore_get_bonded_device(uint8_t *bonded_device); +errcode_t bt_acore_get_bonded_device(bd_addr_t *bonded_device, uint16_t *number); void bt_acore_set_sys_config(uint8_t is_key_from_btc); void bt_acore_set_product_type(uint8_t product_type); uint8_t bt_acore_get_local_dev_info(uint16_t kvalue_max_length, uint16_t *kvalue_length, uint8_t *kvalue); diff --git a/code/sdk/protocol/bt/host/bt/bts/sdk/src/inc/sdk_general_gap.h b/code/sdk/protocol/bt/host/bt/bts/sdk/src/inc/sdk_general_gap.h index 391c17bb5..abd8b7634 100644 --- a/code/sdk/protocol/bt/host/bt/bts/sdk/src/inc/sdk_general_gap.h +++ b/code/sdk/protocol/bt/host/bt/bts/sdk/src/inc/sdk_general_gap.h @@ -83,7 +83,6 @@ int8_t mc_ble_remove_adv_by_handle_atb(uint8_t adv_handle); int8_t mc_ble_smp_remove_pair_device(uint8_t *addr); int8_t mc_ble_disconnect_all_links(void); int8_t mc_ble_smp_pair_remote_device(bth_address *addr); -int8_t mc_get_bonded_device(uint8_t *bonded_device); int8_t mc_ble_smp_remove_pair_info(void); uint8_t ble_gap_internal_callback_regist(uint16_t module_id, uint16_t event, sdk_ble_cbk cbk); diff --git a/code/sdk/tools/pkg/bin/brandy/bt.bin b/code/sdk/tools/pkg/bin/brandy/bt.bin index d74338701..1418d4a16 100644 Binary files a/code/sdk/tools/pkg/bin/brandy/bt.bin and b/code/sdk/tools/pkg/bin/brandy/bt.bin differ diff --git a/js/com.vendor.voiceassistant.bin b/js/com.vendor.voiceassistant.bin new file mode 100644 index 000000000..bc3edc138 Binary files /dev/null and b/js/com.vendor.voiceassistant.bin differ diff --git a/jsapp/baidu_voiceassistant/entry/src/main/js/default/app.js b/jsapp/baidu_voiceassistant/entry/src/main/js/default/app.js index 66c470de9..79ec75e11 100644 --- a/jsapp/baidu_voiceassistant/entry/src/main/js/default/app.js +++ b/jsapp/baidu_voiceassistant/entry/src/main/js/default/app.js @@ -1,8 +1,11 @@ +import baidu from '@system.baidumapcomponent'; + export default { onCreate() { console.info("Application onCreate"); }, onDestroy() { + baidu.stopAnswer({}); console.info("Application onDestroy"); } }; \ No newline at end of file diff --git a/jsapp/baidu_voiceassistant/entry/src/main/js/default/pages/first/first.js b/jsapp/baidu_voiceassistant/entry/src/main/js/default/pages/first/first.js index 4774074ea..d3f2d9744 100644 --- a/jsapp/baidu_voiceassistant/entry/src/main/js/default/pages/first/first.js +++ b/jsapp/baidu_voiceassistant/entry/src/main/js/default/pages/first/first.js @@ -1,5 +1,6 @@ import router from '@system.router'; import messageCenter from "@system.message"; +import baidu from '@system.baidumapcomponent'; var receiverDataStr = "" var receiverindex = 0 @@ -123,6 +124,7 @@ export default { console.info("Life Cycle onShow" + this); }, onHide() { + baidu.stopAnswer({}) receiverDataStr = null clearInterval(iid) unregisterReceiver(receiver) diff --git a/patch_0720_to_0812.txt b/patch_0720_to_0812.txt new file mode 100644 index 000000000..df2f293f4 --- /dev/null +++ b/patch_0720_to_0812.txt @@ -0,0 +1,52 @@ +【补丁名称】patch_0720_to_0812 +【基础版本】b602 + 0521 + 0626 +0720 +【修复问题】 +BT合入内容 + 1、解决【手表连接时检查到连接已存在上报了断开导致连接状态错误】问题。 + 2、解决【空所有配对信息接口,存在已配对未连接的配对信息时,无法全部清除】问题。 + 3、解决【连接spp时找不到匹配的client】问题。 + 4、解决【snk音乐请求开始后未开始前断开连接未unmap后续unmap时失败】问题。 + 5、解决【通过PBAP-PCE 模块通过电话号码查找对应的联系人】问题。 + 6、新增BLE绑定信息查询和删除接口,解决【BLE 绑定信息无法删除】问题。 +PLT合入内容 + 1、隔离baidumapsdk组件,默认不参与编译 + 2、亮灭平过程中屏蔽调频对NANDFLASH的影响 + 3、解决button双击误报以及按键失效 + 4、PMS不拉起单独线程,事件由UI线程处理 +GUI合入内容 + 1、修复SetElasticTime接口问题 + 2、修复UICrossView单张卡片问题 + 3、修复输入法输入中文字符问题 + 4、完善LRU资源释放方案 + 5、图片资源加载优化 + 6、量灭屏优化,在UI主线程处理量灭屏事件 + 7、touch/key事件上报流程优化 +AUDIO&MEDIA合入内容 + 1、媒体线程栈重新部署到DTCM,解决内存泄露以及适配兼容的问题 +OHOS合入内容 + 1、小度语音Demo新加stopAnswer方法,更新bin文件 + 2、文心一言新加answer打断协议+接口名称修改 + 3、msgCenter下发消息到js失败,释放msgBody + 4、picker-view设置超大字体item自适应 + 5、解决客户多次进入退出js会触发list冻屏问题 + 6、解决Canvas控件卡顿问题,js增加clear接口 + 7、app_module模块getinfo接口修改 +SDK Sample合入内容: + 1、BT链接状态上报JS时在MsgCenter做判断拦截 + 2、User版本去除reg/mem dump + 3、耳机断链后开启scan 60秒,用于耳机回连测试 +【修改影响】NA +【使用方法】 + 1、合入0521补丁 + 2、合入0626补丁 + 3、合入0720补丁 + 4、合入0812补丁 +【自测情况】 + 自验证范围: + 全功能冒烟 + 自验证target: + Native-js、target3 rc版本 +【是否合入版本】根据测试结果确定 + +【遗留问题】 + 1、IOS手机连接手表,长时间压测音乐通话并发场景概率出现系统异常,后续补丁解决。