From: SnickerSun Date: Sat, 20 Jul 2024 02:32:20 +0000 (+0800) Subject: 添加A5133驱动支持 X-Git-Tag: release_V1.2.70_20241020_135402~745^2~27 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=refs%2Fchanges%2F559%2F1;p=mirrors%2FFD230.git 添加A5133驱动支持 --- diff --git a/autobuild.sh b/autobuild.sh index ae2614403..5751dd0a5 100755 --- a/autobuild.sh +++ b/autobuild.sh @@ -49,6 +49,12 @@ then TARGET_PACK_NAME=pack_brandy_native_js_z1 APPLICATION_NAME=brandy-native-js-z1 fi +if [ "$1" == "lt22" ] +then +TARGET_PACK_NAME=pack_brandy_native_js_lt22 +APPLICATION_NAME=brandy-native-js-lt22 +fi + } CURRENT_BRANCH=`git branch |awk '$1=="*"{print $2}'` COMMIT_ID=`git rev-parse HEAD` diff --git a/code/sdk/application/brandy/brandy_standard/thread_pri_init.c b/code/sdk/application/brandy/brandy_standard/thread_pri_init.c index 4fc14019d..cd87c7295 100755 --- a/code/sdk/application/brandy/brandy_standard/thread_pri_init.c +++ b/code/sdk/application/brandy/brandy_standard/thread_pri_init.c @@ -101,6 +101,10 @@ #include "custom_utils.h" #endif +#ifdef SUPPORT_A5133_SERVICE +#include "service/a5133_service.h" +#endif + #define EMMC_BASE_ADDR 0x52062000 #define TASK_PRIORITY_APP (osPriority_t)(17) #define TICK_TEN_MS (10U) @@ -463,6 +467,10 @@ static void thread_main(const void *unused) uapi_alipay_svr_init(); #endif +#ifdef SUPPORT_A5133_SERVICE + uapi_a5133_service_init(); +#endif + startup_post_init(); set_startup_finish_flag(); diff --git a/code/sdk/application/wearable/fd230app/CMakeLists.txt b/code/sdk/application/wearable/fd230app/CMakeLists.txt index 53d4fd4ba..6b8033223 100644 --- a/code/sdk/application/wearable/fd230app/CMakeLists.txt +++ b/code/sdk/application/wearable/fd230app/CMakeLists.txt @@ -695,6 +695,14 @@ set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/goal/src/goalControlView.cpp #${CMAKE_CURRENT_SOURCE_DIR} /service/acc_service.c ) + + +if("SUPPORT_A5133_SERVICE" IN_LIST DEFINES) +set(SOURCES + ${SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/producttest/src/testA5133.cpp +) +endif() if("SUPPORT_ALIPAY_SEC" IN_LIST DEFINES) set(SOURCES ${SOURCES} diff --git a/code/sdk/application/wearable/fd230app/nativeui/producttest/include/testA5133.h b/code/sdk/application/wearable/fd230app/nativeui/producttest/include/testA5133.h new file mode 100644 index 000000000..cabadad60 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/producttest/include/testA5133.h @@ -0,0 +1,80 @@ +#ifndef TEST_A5133_VIEW_H +#define TEST_A5133_VIEW_H + +#include "BaseView.h" +#include "View.h" +#include "components/ui_scroll_view.h" +#include "components/ui_label.h" +#include "components/ui_label_ext.h" +#include "components/ui_button.h" +#include "components/ui_image_view.h" +#include "components/ui_label_button_ext.h" + +//#include "cmsis_os.h" +#include +namespace OHOS +{ + + class testA5133View + { + + public: + struct ButtonConfig_ext_t + { + int x; + int y; + int w; + int h; + const char *str; + const char *ViewId; + const char *ImageSrc; + + //label + int label_x; + int label_y; + uint8_t ALIGN; + int Fontsize; + + }; + + struct LabelConfig + { + int16_t left; + int16_t top; + int16_t width; + int16_t height; + int16_t fontSize; // 字体大小 + int16_t lineHeigh; // 行高 + char *text; // 文本 + uint8_t lineBreakMode; // 断行模式。 + }; + + + testA5133View(); + virtual ~testA5133View(); + static testA5133View *GetInstance(void); + void dial_112(bool); + void BT_discovery_callback(void); + + UIScrollView *testA5133InitIView(void); + void ClearAll(void); + void set_BR_connect(char *); + bool br_scan_set_text(unsigned char *name ,unsigned char *addr,int16_t rssi,int i); + UILabelButtonExt* button{NULL}; + + private: + UILabelButtonExt *SetTheButton_ext(ButtonConfig_ext_t &buttonconfig);//, UIView::OnTouchListener *clickListener); + UILabel *InitLabel(LabelConfig &labelConfig); + bool testA5133ScrollViewcrollViewinit(void); + UIScrollView *testa5133ScrollView{nullptr}; + + + UILabelButtonExt* labelButton_next = nullptr; + UILabel *label_a5133_SCAN[5]{nullptr}; + + bool initViewStatus{false}; + UILabel *Title{nullptr}; // 标题 + + }; +} +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/producttest/include/testPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/producttest/include/testPresenter.h index d3e76ad97..6d7f831e7 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/producttest/include/testPresenter.h +++ b/code/sdk/application/wearable/fd230app/nativeui/producttest/include/testPresenter.h @@ -41,6 +41,9 @@ namespace OHOS shutdown, FACTORYRESE, +#ifdef SUPPORT_A5133_SERVICE + RF5133, +#endif TEST_1, MAX_TESTVIEWID, diff --git a/code/sdk/application/wearable/fd230app/nativeui/producttest/include/testView.h b/code/sdk/application/wearable/fd230app/nativeui/producttest/include/testView.h index 06c7b1af4..1c70adb36 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/producttest/include/testView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/producttest/include/testView.h @@ -28,7 +28,9 @@ #include "producttest/include/testold.h" #include "producttest/include/testbt.h" #include "producttest/include/testSEChipTest.h" - +#ifdef SUPPORT_A5133_SERVICE +#include "producttest/include/testA5133.h" +#endif namespace OHOS { @@ -89,7 +91,9 @@ namespace OHOS bool ChangeoldTESTView(int16_t thisView); bool ChangeBTTESTView(int16_t thisView); bool ChangeSEChipTESTView(int16_t thisView); - + #ifdef SUPPORT_A5133_SERVICE + bool ChangeA5133TESTView(int16_t thisView); + #endif bool ClickFunc(int16_t interface); void ChangeView(int16_t hideView, int16_t showView); UIScrollView *GetSystemScrollView(int ViewId); @@ -104,7 +108,7 @@ namespace OHOS UILabelButtonExt *SetTheButton_ext(ButtonConfig_ext_t &ButtonConfig_ext, UIView::OnClickListener *clickListener); testAboutView *test_about_view; - UIScrollView *SystemScrollView[20]{nullptr}; + UIScrollView *SystemScrollView[30]{nullptr}; UILabel *SystemLabel{nullptr}; // 标题 UILabelButtonExt *SystemUpgradeButtonExt{nullptr}; @@ -125,7 +129,9 @@ namespace OHOS testBTView *test_BT_view{nullptr}; testSEChipView *test_SEChip_view{nullptr}; - + #ifdef SUPPORT_A5133_SERVICE + testA5133View *test_A5133_view{nullptr}; + #endif UILabelButtonExt *button[20]={NULL}; bool initViewStatus{false}; }; diff --git a/code/sdk/application/wearable/fd230app/nativeui/producttest/src/testA5133.cpp b/code/sdk/application/wearable/fd230app/nativeui/producttest/src/testA5133.cpp new file mode 100644 index 000000000..d69470102 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/producttest/src/testA5133.cpp @@ -0,0 +1,335 @@ +#include "wearable_log.h" +#include "custom_utils.h" +#include "producttest/include/testPresenter.h" +#include "producttest/include/testA5133.h" +#include "AlarmClockModel.h" +#include "cmsis_os2.h" +#include "cat1_server.h" +#include "cat1_ctl.h" +#include "cat1_server_hal.h" +#include "custom_runtime.h" +#include "bts_br_gap.h" +#include "bts_le_gap.h" +#include "bleService.h" +#include "BluetoothModel.h" +#ifdef __cplusplus +#if __cplusplus +extern "C" +{ +#endif +#endif + #include "pm_veto.h" + #include "pm.h" +#ifdef __cplusplus +#if __cplusplus +} +#endif +#endif + +namespace OHOS +{ + // #define BLE_scan + static testA5133View *g_ptestA5133View{nullptr}; + + testA5133View::testA5133View() + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemAboutTheWatchView::SystemAboutTheWatchView"); + g_ptestA5133View = this; + } + + testA5133View::~testA5133View() + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "testA5133View::~testA5133View"); + ClearAll(); + //g_ptestA5133View = nullptr; + } + + testA5133View *testA5133View::GetInstance() + { + return g_ptestA5133View; + } + static osTimerId_t BR_TEST_timer=NULL; + void testA5133View::ClearAll() + { + if(testa5133ScrollView) + { + BluetoothModel::GetInstance()->SetCaseListClear(); + + testa5133ScrollView->RemoveAll(); + + if (BR_TEST_timer != NULL) { + osTimerStop(BR_TEST_timer); + osTimerDelete(BR_TEST_timer); + BR_TEST_timer = NULL; + return ; + } + if(button) + { + delete button; + button=nullptr; + } + + if(labelButton_next) + { + delete labelButton_next; + labelButton_next=nullptr; + } + + + if(Title) + { + delete Title; + Title=nullptr; + } + + for(int i=0;i<5;i++) + { + if(label_a5133_SCAN[i]) + { + delete label_a5133_SCAN[i]; + label_a5133_SCAN[i]=nullptr; + } + } + + + uint8_t cnt = pm_veto_get_id_cnt(PM_ID_P_TEST); + if (cnt == 1) { + uapi_pm_remove_sleep_veto(PM_ID_P_TEST); + } else { + // WEARABLE_LOGE(WEARABLE_LOG_MODULE_MAIN_SERVICE,"CAT1 SERVICE MCU has got pm_id_cat1 vote\r\n"); + } + + + delete testa5133ScrollView; + testa5133ScrollView=nullptr; + } + } + + + + UILabelButtonExt *testA5133View::SetTheButton_ext(ButtonConfig_ext_t &buttonconfig) + { + UILabelButtonExt *button = new UILabelButtonExt(); + if (button == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " SystemView::SetTheButton: button new fail!"); + return nullptr; + } + button->SetPosition(buttonconfig.x, buttonconfig.y, buttonconfig.w, buttonconfig.h); + button->SetViewId(buttonconfig.ViewId); + button->SetStyle(STYLE_BACKGROUND_COLOR, Color::Blue().full); + //button->SetStyle(STYLE_BORDER_RADIUS,0); + button->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::Black().full, UIButton::PRESSED); + //button->SetStyleForState(STYLE_BORDER_RADIUS,0, UIButton::PRESSED); + button->SetTouchable(true); + button->SetStyle(STYLE_BACKGROUND_OPA, 0x80); + button->SetText(buttonconfig.str); + button->SetAlign(TEXT_ALIGNMENT_LEFT); + button->SetLabelPosition(buttonconfig.label_x,buttonconfig.label_y ); + button->SetFont(DEFAULT_VECTOR_FONT_FILENAME, buttonconfig.Fontsize); + UIView:: OnClickListener *touchListener = static_cast(testPresenter::GetInstance()); + button->SetOnClickListener(touchListener); + + // UIView::OnDragListener *drgListener = static_cast(testPresenter::GetInstance()); + // button->SetOnDragListener(drgListener); + + // button->SetDraggable(false); + return button; + } + static bool speakfalg=false; + + static bool discovery_falg=false; + + void testA5133View:: BT_discovery_callback( void) + { + + bool reT_gap; + if(discovery_falg==false) + { + + + button->SetText("scaning"); + button->SetStyle(STYLE_BACKGROUND_COLOR, Color::Green().full); + discovery_falg=true; + } + else + { + + button->SetText("discovery"); + button->SetStyle(STYLE_BACKGROUND_COLOR, Color::Blue().full); + + discovery_falg=false; + } + } + + + UILabel *testA5133View::InitLabel(LabelConfig &labelConfig) + { + UILabel *label = new UILabel(); + if (label == nullptr) + { + return nullptr; + } + label->SetPosition(labelConfig.left, labelConfig.top, labelConfig.width, labelConfig.height); // 位置大小 + label->SetStyle(STYLE_TEXT_FONT, labelConfig.fontSize); // 字体大小 + label->SetStyle(STYLE_LINE_HEIGHT, labelConfig.lineHeigh); // 字体行高 + label->SetText(labelConfig.text); // 内容 + label->SetLineBreakMode(labelConfig.lineBreakMode); // 断行模式。 + label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_TOP); + label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelConfig.fontSize); + label->SetAlign(TEXT_ALIGNMENT_LEFT); + return label; + } + + + static bd_addr_t bd_addr; + static unsigned char addr[6] = {0}; + static uint8_t number =0; + static uint8_t scan_i=0; + + static void sample_gap_discovery_result_callback(const bd_addr_t *bd_addr) + { + unsigned char length = BD_NAME_LEN; + unsigned char *device_name = (unsigned char *)(void *)malloc(length); + if (device_name == NULL) { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"gap_discovery_result_callback malloc error!\n"); + return; + } + (void)memset_s(device_name, length, 0, length); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RemovePair gap_get_paired_devices_list ret = %s %s", device_name,bd_addr); + number++; + + free(device_name); + } + + + static void mgdataTimerCallBack(int data) + { + + + + } + + bool testA5133View::br_scan_set_text(unsigned char *name ,unsigned char *addr,int16_t rssi,int i) + { + if(i>=5) + { + return false; + } + char buf[128]={0}; + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "rssi %d",rssi); + + sprintf_s(buf,128,"addr:%02X %02X %02X %02X %02X %02X\nRssi:%d",addr[0],addr[1],addr[2],addr[3],addr[4],addr[5],rssi); + label_a5133_SCAN[i]->SetText(buf); + RootView::GetInstance()->Invalidate(); + + return true; + } + + + bool testA5133View::testA5133ScrollViewcrollViewinit(void) + { + + testa5133ScrollView = new UIScrollView(); + if (testa5133ScrollView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemAboutTheWatchView::testa5133ScrollView new fail!"); + return false; + } + testa5133ScrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); + testa5133ScrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff); + testa5133ScrollView->SetStyle(STYLE_BORDER_RADIUS, 0); + testa5133ScrollView->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full); + testa5133ScrollView->SetStyle(STYLE_BORDER_COLOR, Color::Yellow().blue); + testa5133ScrollView->SetScrollBlankSize(50); + testa5133ScrollView->SetReboundSize(50); + testa5133ScrollView->SetDirection(1); + + + LabelConfig Config = { + .left = 33, + .top = 80, + .width = 400, + .height = 44, + .fontSize = 30, + .lineHeigh = 0, + .text = "", + .lineBreakMode = UILabel::LINE_BREAK_WRAP, + }; + + + for(int i=0 ;i<5;i++) + { + Config.top+=100; + label_a5133_SCAN[i]= InitLabel(Config); + testa5133ScrollView->Add(label_a5133_SCAN[i]); + } + + ButtonConfig_ext_t buttonconfig; + buttonconfig.x = 55; + buttonconfig.y = 80; + buttonconfig.w = 180; + buttonconfig.h = 88; + buttonconfig.label_x=40; + buttonconfig.label_y=0; + buttonconfig.Fontsize=30; + buttonconfig.ViewId="discovery"; + buttonconfig.str="discovery"; + buttonconfig.ALIGN=TEXT_ALIGNMENT_LEFT; + + button=SetTheButton_ext(buttonconfig); + testa5133ScrollView->Add(button); + + + UIView::OnDragListener *draglistener = static_cast(testPresenter::GetInstance()); + if (draglistener == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::draglistener can not be nullptr!"); + return false; + } + testa5133ScrollView->SetOnDragListener(draglistener); + + + + labelButton_next= testAboutView::GetInstance()->init_button_next(270,80,"SEChipTestbutton_next"); + testa5133ScrollView->Add(labelButton_next); + + Title= testAboutView::GetInstance()->init_title(165,45,"BT_TEST"); + testa5133ScrollView->Add(Title); + + + testa5133ScrollView->SetTouchable(true); + testa5133ScrollView->SetDraggable(true); + uint32_t tick; + osStatus_t retTimer; + BR_TEST_timer = osTimerNew((osTimerFunc_t)mgdataTimerCallBack, osTimerPeriodic, NULL, NULL); + tick =5000;// osMs2Tick(1000); + retTimer = osTimerStart(BR_TEST_timer, tick); + if (retTimer != osOK && BR_TEST_timer != NULL) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"StartCallTimer osTimerStart failed, ret = %lx!!", retTimer); + osTimerDelete(BR_TEST_timer); + BR_TEST_timer = NULL; + return false; + } + + discovery_falg=false; + uint8_t cnt = pm_veto_get_id_cnt(PM_ID_P_TEST); + if (cnt == 0) { + uapi_pm_add_sleep_veto(PM_ID_P_TEST); + } else { + // WEARABLE_LOGE(WEARABLE_LOG_MODULE_MAIN_SERVICE,"CAT1 SERVICE MCU has got pm_id_cat1 vote\r\n"); + } + + return true; + } + + UIScrollView *testA5133View::testA5133InitIView() + { + if (!testA5133ScrollViewcrollViewinit()) + { + return nullptr; + } + return testa5133ScrollView; + } +} + diff --git a/code/sdk/application/wearable/fd230app/nativeui/producttest/src/testPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/producttest/src/testPresenter.cpp index 879f0b411..db7463fc3 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/producttest/src/testPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/producttest/src/testPresenter.cpp @@ -59,6 +59,9 @@ namespace OHOS {DEEPSLEEP,"deepsleep","xxxxxxxxx",true}, {shutdown,"shutdown","xxxxxxxxx",true}, {FACTORYRESE,"FactoryReset","xxxxxxxxx",true}, + #ifdef SUPPORT_A5133_SERVICE + {RF5133,"RF5133","xxxxxxxxx",true}, + #endif }; // {FACTORYRESETVIEW,"FactoryResetButton",true}, // {SYSTEMLUPGRADE,"systemupgread",true}, @@ -217,7 +220,7 @@ namespace OHOS mcu_pm_lcd_off(NULL,NULL); return true; } - + if(strcmp(view.GetViewId(),"FactoryReset") == 0) { //TODO: close bt and cat1 , then deepsleep diff --git a/code/sdk/application/wearable/fd230app/nativeui/producttest/src/testView.cpp b/code/sdk/application/wearable/fd230app/nativeui/producttest/src/testView.cpp index f78493d4f..5cdab6500 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/producttest/src/testView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/producttest/src/testView.cpp @@ -45,6 +45,9 @@ namespace OHOS {DEEPSLEEP,"deepsleep","DeepSleepCurrent" ,&testView::ChangeoldTESTView}, {shutdown,"shutdown","shutdown" ,&testView::ChangeoldTESTView}, {FACTORYRESE,"FactoryReset","FactoryReset", &testView::ChangeoldTESTView}, + #ifdef SUPPORT_A5133_SERVICE + {RF5133,"RF5133","RF5133", &testView::ChangeA5133TESTView}, + #endif // {SYSTEMLUPGRADE,"systemupgread","系统升级",&testView::ChangeSystemAboutView}, // {TEST,"testButton","测试模式", &testView::ChangeSystemAboutView}, @@ -56,13 +59,13 @@ namespace OHOS testView::testView() { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::SystemView"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "testView::testView"); g_pSystemView = this; } testView::~testView() { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::~SystemView"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "testView::~testView"); ClearAll(); g_pSystemView = nullptr; } @@ -159,6 +162,13 @@ namespace OHOS delete test_G_view;//13 test_G_view= nullptr; } +#ifdef SUPPORT_A5133_SERVICE + if(test_A5133_view) + { + delete test_A5133_view;//13 + test_A5133_view= nullptr; + } +#endif // delete test_G_view;//13 // test_G_view= nullptr; @@ -186,7 +196,7 @@ namespace OHOS SystemScrollView[TESTVIEW] = new UIScrollView(); if (SystemScrollView[TESTVIEW] == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::SystemScrollView new fail!"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::SetTheSystemScrollView new fail!"); return false; } SystemScrollView[TESTVIEW]->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); @@ -336,7 +346,7 @@ namespace OHOS { if (SystemScrollView[thisView] == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeLCDTESTView"); test_LCD_view = new testLCDView(); if (test_LCD_view == nullptr) { @@ -353,7 +363,7 @@ namespace OHOS { if (SystemScrollView[thisView] == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeTPTESTView"); test_TP_view = new testTPView(); if (test_TP_view == nullptr) { @@ -370,7 +380,7 @@ namespace OHOS { if (SystemScrollView[thisView] == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeMGTESTView"); test_MG_view = new testMagicView(); if (test_MG_view == nullptr) { @@ -387,7 +397,7 @@ namespace OHOS { if (SystemScrollView[thisView] == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangLUMTESTView"); test_lum_view = new testLUMView(); if (test_lum_view == nullptr) { @@ -404,7 +414,7 @@ namespace OHOS { if (SystemScrollView[thisView] == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangchargingTESTView"); test_charging_view = new testCHANINGView(); if (test_charging_view == nullptr) { @@ -421,7 +431,7 @@ namespace OHOS { if (SystemScrollView[thisView] == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangspeakTESTView"); test_speak_view = new testSPEAKView(); if (test_speak_view == nullptr) { @@ -438,7 +448,7 @@ namespace OHOS { if (SystemScrollView[thisView] == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangmotorTESTView"); test_motor_view = new testMOTORView(); if (test_motor_view == nullptr) { @@ -455,7 +465,7 @@ namespace OHOS { if (SystemScrollView[thisView] == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeCAT1TESTView"); test_cat1_view = new testcat1View(); if (test_cat1_view == nullptr) { @@ -472,7 +482,7 @@ namespace OHOS { if (SystemScrollView[thisView] == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangKEYTESTView"); test_KEY_view = new testbuttonView(); if (test_KEY_view == nullptr) { @@ -489,7 +499,7 @@ namespace OHOS { if (SystemScrollView[thisView] == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeMPTESTView"); test_MP_view = new testmicrohoneView(); if (test_MP_view == nullptr) { @@ -506,7 +516,7 @@ namespace OHOS { if (SystemScrollView[thisView] == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeHRTESTView"); test_hr_view = new testhrsenson1View(); if (test_hr_view == nullptr) { @@ -524,7 +534,7 @@ namespace OHOS { if (SystemScrollView[thisView] == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeGTESTView"); test_G_view = new testgsensonView(); if (test_G_view == nullptr) { @@ -541,7 +551,7 @@ namespace OHOS { if (SystemScrollView[thisView] == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeoldTESTView"); test_old_view = new testoldView(); if (test_old_view == nullptr) { @@ -558,7 +568,7 @@ namespace OHOS { if (SystemScrollView[thisView] == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeBTTESTView"); test_BT_view = new testBTView(); if (test_BT_view == nullptr) { @@ -576,7 +586,7 @@ namespace OHOS { if (SystemScrollView[thisView] == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSEChipTESTView"); test_SEChip_view = new testSEChipView(); if (test_SEChip_view == nullptr) { @@ -588,8 +598,24 @@ namespace OHOS } return true; } - - +#ifdef SUPPORT_A5133_SERVICE + bool testView::ChangeA5133TESTView(int16_t thisView) + { + if (SystemScrollView[thisView] == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeA5133TESTView"); + test_A5133_view = new testA5133View(); + if (test_A5133_view == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView); + return false; + } + SystemScrollView[thisView] = test_A5133_view->testA5133InitIView(); + RootView::GetInstance()->Add(SystemScrollView[thisView]); + } + return true; + } +#endif UIScrollView *testView::GetSystemScrollView(int ViewId) { @@ -735,12 +761,19 @@ namespace OHOS test_SEChip_view = nullptr; SystemScrollView[hideView]=nullptr; break; - +#ifdef SUPPORT_A5133_SERVICE + case RF5133: + RootView::GetInstance()->Remove(SystemScrollView[hideView]); + delete test_A5133_view; + test_A5133_view = nullptr; + SystemScrollView[hideView]=nullptr; + break; +#endif default: break; } } - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "change>>>>>>>>>>>>>"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "change>>>>>>>>>>>hideView %d > showView %d >>>",hideView,showView); } /* -------------------------------------------------------------------------- */ diff --git a/code/sdk/application/wearable/service/msg_center/brandy-native-js-lt22/libmsg_center.a b/code/sdk/application/wearable/service/msg_center/brandy-native-js-lt22/libmsg_center.a new file mode 100644 index 000000000..5ee51f2c9 Binary files /dev/null and b/code/sdk/application/wearable/service/msg_center/brandy-native-js-lt22/libmsg_center.a differ diff --git a/code/sdk/build/config/target_config/brandy/config.py b/code/sdk/build/config/target_config/brandy/config.py index 65fb3d409..744f1789e 100755 --- a/code/sdk/build/config/target_config/brandy/config.py +++ b/code/sdk/build/config/target_config/brandy/config.py @@ -207,6 +207,12 @@ target = { 'defines': ['CUSTOM_Z1'], 'fs_image_path':'z1', }, + 'brandy-native-js-lt22': { + 'base_target_name': 'brandy-native-js', + 'defines': ['SUPPORT_A5133_SERVICE'], + 'ram_component':["driver_a5133","a5133_service"], + 'fs_image_path':'fd230', + }, #native-xts: liteos + uikit + nandflash + mipi + psram + audio 典型合封UIKIT版本 'brandy-xts': { 'board': 'evb', @@ -397,6 +403,7 @@ target_group = { 'pack_brandy_native_js_user': ['brandy-ssb', 'brandy-native-js-r', 'brandy-native-js-user'], 'pack_brandy_native_js_fd230': ['brandy-ssb', 'brandy-native-js-r', 'brandy-native-fd230'], 'pack_brandy_native_js_z1': ['brandy-ssb', 'brandy-native-js-r', 'brandy-native-js-z1'], + 'pack_brandy_native_js_lt22': ['brandy-ssb', 'brandy-native-js-r', 'brandy-native-js-lt22'], 'pack_brandy_xts': ['brandy-ssb', 'brandy-xts-r', 'brandy-xts'], 'brandy_all': ['brandy-ssb', diff --git a/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h b/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h index 26fb5c3a4..949291eaa 100755 --- a/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h +++ b/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h @@ -94,12 +94,19 @@ const hal_pio_config_t g_pio_function_config[PIN_MAX_NUMBER] = { // #endif { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO5 NC +#ifdef A5133_USE_HW_SPI { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_MGPIO6 SPI1 DI { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_MGPIO7 SPI1 DO { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_MGPIO8 SPI1 CLK { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_MGPIO9 SPI1 CS0 { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO10 SPI1 CS1 NC - +#else + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO6 SPI1 DI + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO7 SPI1 DO + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO8 SPI1 CLK + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO9 SPI1 CS0 + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO10 SPI1 CS1 NC +#endif { HAL_PIO_FUNC_I2C0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO11 i2c0 SCL NC { HAL_PIO_FUNC_I2C0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO12 I2C0 SDA { HAL_PIO_FUNC_I2C1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO13 I2C1 SCL touch i2c diff --git a/code/sdk/drivers/peripheral/CMakeLists.txt b/code/sdk/drivers/peripheral/CMakeLists.txt index 10fe5b8e1..9a046ad46 100644 --- a/code/sdk/drivers/peripheral/CMakeLists.txt +++ b/code/sdk/drivers/peripheral/CMakeLists.txt @@ -18,3 +18,4 @@ add_subdirectory_if_exist(config) add_subdirectory_if_exist(rotary_encoder) add_subdirectory_if_exist(vibrator/service) add_subdirectory_if_exist(cywee) +add_subdirectory_if_exist(a5133) diff --git a/code/sdk/drivers/peripheral/a5133/A5133Config.h b/code/sdk/drivers/peripheral/a5133/A5133Config.h new file mode 100644 index 000000000..2073d3f7b --- /dev/null +++ b/code/sdk/drivers/peripheral/a5133/A5133Config.h @@ -0,0 +1,638 @@ +/******************************************************************** +* A5133Config.h +* RF Chip-A5133 Config Definitions +* +********************************************************************/ +#ifndef _A5133CONFIG_h_ +#define _A5133CONFIG_h_ +#define code +/************************************ +* Define DR +************************************/ +#define DR_4Mbps //IF=4MHz +//#define DR_2Mbps //IF=2MHz +//#define DR_1Mbps //IF=1MHz +//#define DR_500Kbps //IF=1MHz + +#ifdef DR_4Mbps +const Uint8 code A5133_RFConfigTab_Main[]= +{ + 0x00, //RESET register, + 0x62, //MODE register, + 0x00, //CALIBRATION register, + 0x3F, //FIFO1 register, + 0x00, //FIFO2 register, + 0x00, //FIFO register, + 0x00, //IDDATA register, + 0x00, //RCOSC1 register, + 0x00, //RCOSC2 register, + 0x0C, //RCOSC3 register, + 0x02, //CKO register, + 0x01, //GPIO1 register + 0x1D, //GPIO2 register, + 0x1F, //DATARATECLOCK register, + 0x00, //PLL1 register, + 0x1E, //PLL2 register, + 0x59, //PLL3 register, + 0x74, //PLL4 register, + 0x01, //PLL5 register, + 0x28, //ChannelGroup1 register, + 0x50, //ChannelGroup1 register, + 0x2D, //TX1 register, + 0x40, //TX2 register, + 0x1B, //DELAY1 register, + 0x40, //DELAY2 register, + 0x70, //RX register, + 0x7B, //RXGAIN1 register, + 0xC0, //RXGAIN2 register, + 0x3C, //RXGAIN3 register, + 0xCA, //RXGAIN4 register, + 0x00, //RSSI register, + 0xC1, //ADC register, + 0x00, //CODE1 register, + 0x00, //CODE2 register, + 0x00, //CODE3 register, + 0xE4, //IFCAL1 register, + 0x01, //IFCAL2 register, + 0x4F, //VCOCCAL register, + 0xC0, //VCOCAL1 register, + 0x80, //VCOCAL2 register, + 0x30, //VCO deviation 1 register, + 0x40, //VCO deviation 2 register, + 0x00, //DSA register, + 0xFF, //VCO Modulation delay register, + 0x40, //BATTERY register, + 0xA7, //TXTEST register, + 0x57, //RXDEM1 register, + 0x74, //RXDEM2 register, + 0xF3, //CPC1 register, + 0x33, //CPC2 register, + 0x4D, //CRYSTAL register, + 0x15, //PLLTEST register, + 0x0F, //VCOTEST register, + 0x00, //RF Analog register, + 0x00, //Key data register, + 0x33, //Channel select register, + 0x00, //ROM register, + 0x00, //DataRate register, + 0x00, //FCR register, + 0x00, //ARD register, + 0x00, //AFEP register, + 0x00, //FCB register, + 0x00, //KEYC register, + 0x00 //USID register, +}; + +const Uint8 code A5133_RFConfigTab_Addr0x20[]= +{ + 0x0E, //page0, + 0x00, //page1, + 0x00, //Page2, + 0x00, //page3, + 0x00, //page4, + 0x00, //page5, + 0x00, //page6, + 0x00, //page7, + 0x00, //page8, + 0x00, //page9, + 0x02, //page10, + 0x00, //page11, + 0x00 //page12, +}; + +const Uint8 code A5133_RFConfigTab_Addr0x21[]= +{ + 0x09, //page0, + 0x00, //page1, + 0x00, //Page2, + 0x00, //page3, + 0x00, //page4, + 0x00, //page5, + 0xE0, //page6, + 0x00, //page7, + 0x2C, //page8, + 0x4F, //page9, + 0x01, //page10 + 0x42, //page11 + 0x56 //page12 crystal type 3225, CL=9pF, CSXTL=108 +}; + +const Uint8 code A5133_RFConfigTab_Addr0x22[]= +{ + 0x00, //page0, + 0x10, //page1, + 0x00, //Page2, + 0x10, //page3, + 0x00, //page4, + 0x04 //page5, +}; + +const Uint8 code A5133_RFConfigTab_Addr0x2A[]= +{ + 0x00, //page0, + 0x01, //page1, + 0xF0, //Page2, + 0x80, //page3, + 0x80, //page4, + 0x48, //page5, + 0x03, //page6, + 0xC0, //page7, + 0x3A, //page8, + 0x3E, //page9, + 0xE8, //page10, + 0x80, //page11, + 0x00 //page12, +}; + +const Uint8 code A5133_RFConfigTab_Addr0x38[]= +{ + 0x80, //page0, + 0x50, //page1, + 0x20, //page2, + 0x64, //page3, + 0x20, //page4, + 0x40, //page5, + 0x60, //page6, + 0x04, //page7, + 0x00, //page8, + 0x00, //page9, + 0x00, //page10, + 0x00 //page11, +}; + +const Uint8 code ACQ_Tab[]= +{ + 0x03,0x50, 0x03,0x50, 0x03,0x50, 0x03,0x40, 0x03,0x40, 0x03,0x40, 0x03,0x40, 0x03,0x00, //0c00~0x0F, + 0x03,0x40, 0x03,0x40, 0x03,0x40, 0x02,0xB0, 0x03,0x20, 0x02,0xc0, 0x02,0x80, 0x03,0xF0, + 0x02,0x80, 0x02,0x80, 0x02,0x80, 0x02,0x80, 0x03,0x20, 0x03,0x00, 0x03,0x20, 0x02,0xa0, //0x10~0x1F + 0x03,0x60, 0x02,0x80, 0x03,0x30, 0x03,0x40, 0x03,0x50, 0x03,0x40, 0x03,0x50, 0x03,0x00 +}; +#endif /* end of DR_4Mbps */ + +#ifdef DR_2Mbps +const Uint8 code A5133_RFConfigTab_Main[]= +{ + 0x00, //RESET register, + 0x62, //MODE register, + 0x00, //CALIBRATION register, + 0x3F, //FIFO1 register, + 0x00, //FIFO2 register, + 0x00, //FIFO register, + 0x00, //IDDATA register, + 0x00, //RCOSC1 register, + 0x00, //RCOSC2 register, + 0x0C, //RCOSC3 register, + 0x02, //CKO register, + 0x01, //GPIO1 register + 0x1D, //GPIO2 register, + 0x1F, //DATARATECLOCK register, + 0x00, //PLL1 register, + 0x1E, //PLL2 register, + 0x59, //PLL3 register, + 0x74, //PLL4 register, + 0x01, //PLL5 register, + 0x28, //ChannelGroup1 register, + 0x50, //ChannelGroup1 register, + 0x2C, //TX1 register, + 0x40, //TX2 register, + 0x1B, //DELAY1 register, + 0x40, //DELAY2 register, + 0x70, //RX register, + 0x7B, //RXGAIN1 register, + 0xC0, //RXGAIN2 register, + 0x1C, //RXGAIN3 register, + 0xCA, //RXGAIN4 register, + 0x00, //RSSI register, + 0xC1, //ADC register, + 0x00, //CODE1 register, + 0x00, //CODE2 register, + 0x00, //CODE3 register, + 0xA4, //IFCAL1 register, + 0x01, //IFCAL2 register, + 0x4F, //VCOCCAL register, + 0xC0, //VCOCAL1 register, + 0x80, //VCOCAL2 register, + 0x30, //VCO deviation 1 register, + 0x40, //VCO deviation 2 register, + 0x00, //DSA register, + 0xFF, //VCO Modulation delay register, + 0x40, //BATTERY register, + 0xA7, //TXTEST register, + 0x57, //RXDEM1 register, + 0x74, //RXDEM2 register, + 0xF3, //CPC1 register, + 0x33, //CPC2 register, + 0x4D, //CRYSTAL register, + 0x15, //PLLTEST register, + 0x0F, //VCOTEST register, + 0x00, //RF Analog register, + 0x00, //Key data register, + 0x11, //Channel select register, + 0x00, //ROM register, + 0x00, //DataRate register, + 0x00, //FCR register, + 0x00, //ARD register, + 0x00, //AFEP register, + 0x00, //FCB register, + 0x00, //KEYC register, + 0x00 //USID register, +}; + +const Uint8 code A5133_RFConfigTab_Addr0x20[]= +{ + 0x0E, //page0, + 0x00, //page1, + 0x00, //Page2, + 0x00, //page3, + 0x00, //page4, + 0x00, //page5, + 0x00, //page6, + 0x00, //page7, + 0x00, //page8, + 0x00, //page9, + 0x02, //page10, + 0x00, //page11, + 0x00 //page12, +}; + +const Uint8 code A5133_RFConfigTab_Addr0x21[]= +{ + 0x09, //page0, + 0x00, //page1, + 0x00, //Page2, + 0x00, //page3, + 0x00, //page4, + 0x00, //page5, + 0xE0, //page6, + 0x00, //page7, + 0x2C, //page8, + 0x4F, //page9, + 0x01, //page10 + 0x42, //page11 + 0x56 //page12 +}; + +const Uint8 code A5133_RFConfigTab_Addr0x22[]= +{ + 0x00, //page0, + 0x10, //page1, + 0x00, //Page2, + 0x10, //page3, + 0x00, //page4, + 0x04 //page5, +}; + +const Uint8 code A5133_RFConfigTab_Addr0x2A[]= +{ + 0x00, //page0, + 0x01, //page1, + 0xF0, //Page2, + 0x80, //page3, + 0x80, //page4, + 0x48, //page5, + 0x03, //page6, + 0xC0, //page7, + 0x3A, //page8, + 0x3E, //page9, + 0xE8, //page10, + 0x80, //page11, + 0x00 //page12, +}; + +const Uint8 code A5133_RFConfigTab_Addr0x38[]= +{ + 0x80, //page0, + 0x50, //page1, + 0x20, //page2, + 0x64, //page3, + 0x20, //page4, + 0x40, //page5, + 0x60, //page6, + 0x04, //page7, + 0x00, //page8, + 0x00, //page9, + 0x00, //page10, + 0x00 //page11, +}; + +const Uint8 code ACQ_Tab[]= +{ + 0x03,0x50, 0x03,0x50, 0x03,0x50, 0x03,0x40, 0x03,0x40, 0x03,0x40, 0x03,0x40, 0x03,0x00, //0c00~0x0F, + 0x03,0x40, 0x03,0x40, 0x03,0x40, 0x02,0xB0, 0x03,0x20, 0x02,0xc0, 0x02,0x80, 0x03,0xF0, + 0x02,0x80, 0x02,0x80, 0x02,0x80, 0x02,0x80, 0x03,0x20, 0x03,0x00, 0x03,0x20, 0x02,0xa0, //0x10~0x1F + 0x03,0x60, 0x02,0x80, 0x03,0x30, 0x03,0x40, 0x03,0x50, 0x03,0x40, 0x03,0x50, 0x03,0x00 +}; +#endif /* end of DR_2Mbps */ + + +#ifdef DR_1Mbps +const Uint8 code A5133_RFConfigTab_Main[]= +{ + 0x00, //RESET register, + 0x62, //MODE register, + 0x00, //CALIBRATION register, + 0x3F, //FIFO1 register, + 0x00, //FIFO2 register, + 0x00, //FIFO register, + 0x00, //IDDATA register, + 0x00, //RCOSC1 register, + 0x00, //RCOSC2 register, + 0x0C, //RCOSC3 register, + 0x02, //CKO register, + 0x01, //GPIO1 register + 0x1D, //GPIO2 register, + 0x1F, //DATARATECLOCK register, + 0x00, //PLL1 register, + 0x1E, //PLL2 register, + 0x59, //PLL3 register, + 0x74, //PLL4 register, + 0x01, //PLL5 register, + 0x28, //ChannelGroup1 register, + 0x50, //ChannelGroup1 register, + 0x2B, //TX1 register, + 0x40, //TX2 register, + 0x1B, //DELAY1 register, + 0x40, //DELAY2 register, + 0x70, //RX register, + 0x7B, //RXGAIN1 register, + 0xC0, //RXGAIN2 register, + 0x0C, //RXGAIN3 register, + 0xCA, //RXGAIN4 register, + 0x00, //RSSI register, + 0xC1, //ADC register, + 0x00, //CODE1 register, + 0x00, //CODE2 register, + 0x00, //CODE3 register, + 0x84, //IFCAL1 register, + 0x01, //IFCAL2 register, + 0x4F, //VCOCCAL register, + 0xC0, //VCOCAL1 register, + 0x80, //VCOCAL2 register, + 0x30, //VCO deviation 1 register, + 0x40, //VCO deviation 2 register, + 0x00, //DSA register, + 0x40, //VCO Modulation delay register, + 0x40, //BATTERY register, + 0xE7, //TXTEST register, + 0x57, //RXDEM1 register, + 0x74, //RXDEM2 register, + 0xF3, //CPC1 register, + 0x33, //CPC2 register, + 0x4D, //CRYSTAL register, + 0x15, //PLLTEST register, + 0x0F, //VCOTEST register, + 0x00, //RF Analog register, + 0x00, //Key data register, + 0x03, //Channel select register, + 0x00, //ROM register, + 0x00, //DataRate register, + 0x00, //FCR register, + 0x00, //ARD register, + 0x00, //AFEP register, + 0x00, //FCB register, + 0x00, //KEYC register, + 0x00 //USID register, +}; + +const Uint8 code A5133_RFConfigTab_Addr0x20[]= +{ + 0x0E, //page0, + 0x00, //page1, + 0x00, //Page2, + 0x00, //page3, + 0x00, //page4, + 0x00, //page5, + 0x00, //page6, + 0x00, //page7, + 0x00, //page8, + 0x00, //page9, + 0x02, //page10, + 0x00, //page11, + 0x00 //page12, +}; + +const Uint8 code A5133_RFConfigTab_Addr0x21[]= +{ + 0x09, //page0, + 0x00, //page1, + 0x00, //Page2, + 0x00, //page3, + 0x00, //page4, + 0x00, //page5, + 0xE0, //page6, + 0x00, //page7, + 0x2C, //page8, + 0x4F, //page9, + 0x01, //page10 + 0x42, //page11 + 0x56 //page12 +}; + +const Uint8 code A5133_RFConfigTab_Addr0x22[]= +{ + 0x00, //page0, + 0x10, //page1, + 0x00, //Page2, + 0x10, //page3, + 0x00, //page4, + 0x04 //page5, +}; + +const Uint8 code A5133_RFConfigTab_Addr0x2A[]= +{ + 0x00, //page0, + 0x01, //page1, + 0xF0, //Page2, + 0x80, //page3, + 0x80, //page4, + 0x48, //page5, + 0x03, //page6, + 0xC0, //page7, + 0x3A, //page8, + 0x3E, //page9, + 0xE8, //page10, + 0x80, //page11, + 0x00 //page12, +}; + +const Uint8 code A5133_RFConfigTab_Addr0x38[]= +{ + 0x80, //page0, + 0x50, //page1, + 0x20, //page2, + 0x64, //page3, + 0x20, //page4, + 0x40, //page5, + 0x60, //page6, + 0x04, //page7, + 0x00, //page8, + 0x00, //page9, + 0x00, //page10, + 0x00 //page11, +}; + +const Uint8 code ACQ_Tab[]= +{ + 0x03,0x50, 0x03,0x50, 0x03,0x50, 0x03,0x40, 0x03,0x40, 0x03,0x40, 0x03,0x40, 0x03,0x00, //0c00~0x0F, + 0x03,0x40, 0x03,0x40, 0x03,0x40, 0x02,0xB0, 0x03,0x20, 0x02,0xc0, 0x02,0x80, 0x03,0xF0, + 0x02,0x80, 0x02,0x80, 0x02,0x80, 0x02,0x80, 0x03,0x20, 0x03,0x00, 0x03,0x20, 0x02,0xa0, //0x10~0x1F + 0x03,0x60, 0x02,0x80, 0x03,0x30, 0x03,0x40, 0x03,0x50, 0x03,0x40, 0x03,0x50, 0x03,0x00 +}; +#endif /* end of DR_1Mbps */ + +#ifdef DR_500Kbps +const Uint8 code A5133_RFConfigTab_Main[]= +{ + 0x00, //RESET register, + 0x62, //MODE register, + 0x00, //CALIBRATION register, + 0x3F, //FIFO1 register, + 0x00, //FIFO2 register, + 0x00, //FIFO register, + 0x00, //IDDATA register, + 0x00, //RCOSC1 register, + 0x00, //RCOSC2 register, + 0x0C, //RCOSC3 register, + 0x02, //CKO register, + 0x01, //GPIO1 register + 0x1D, //GPIO2 register, + 0x1F, //DATARATECLOCK register, + 0x00, //PLL1 register, + 0x1E, //PLL2 register, + 0x59, //PLL3 register, + 0x74, //PLL4 register, + 0x01, //PLL5 register, + 0x28, //ChannelGroup1 register, + 0x50, //ChannelGroup1 register, + 0x2B, //TX1 register, + 0x40, //TX2 register, + 0x1B, //DELAY1 register, + 0x40, //DELAY2 register, + 0x70, //RX register, + 0x7B, //RXGAIN1 register, + 0xC0, //RXGAIN2 register, + 0x0C, //RXGAIN3 register, + 0xCA, //RXGAIN4 register, + 0x00, //RSSI register, + 0xC1, //ADC register, + 0x00, //CODE1 register, + 0x00, //CODE2 register, + 0x00, //CODE3 register, + 0x84, //IFCAL1 register, + 0x01, //IFCAL2 register, + 0x4F, //VCOCCAL register, + 0xC0, //VCOCAL1 register, + 0x80, //VCOCAL2 register, + 0x30, //VCO deviation 1 register, + 0x40, //VCO deviation 2 register, + 0x00, //DSA register, + 0x40, //VCO Modulation delay register, + 0x40, //BATTERY register, + 0xE7, //TXTEST register, + 0x57, //RXDEM1 register, + 0x74, //RXDEM2 register, + 0xF3, //CPC1 register, + 0x33, //CPC2 register, + 0x4D, //CRYSTAL register, + 0x15, //PLLTEST register, + 0x0F, //VCOTEST register, + 0x00, //RF Analog register, + 0x00, //Key data register, + 0x03, //Channel select register, + 0x00, //ROM register, + 0x01, //DataRate register, + 0x00, //FCR register, + 0x00, //ARD register, + 0x00, //AFEP register, + 0x00, //FCB register, + 0x00, //KEYC register, + 0x00 //USID register, +}; + +const Uint8 code A5133_RFConfigTab_Addr0x20[]= +{ + 0x0E, //page0, + 0x00, //page1, + 0x00, //Page2, + 0x00, //page3, + 0x00, //page4, + 0x00, //page5, + 0x00, //page6, + 0x00, //page7, + 0x00, //page8, + 0x00, //page9, + 0x02, //page10, + 0x00, //page11, + 0x00 //page12, +}; + +const Uint8 code A5133_RFConfigTab_Addr0x21[]= +{ + 0x09, //page0, + 0x00, //page1, + 0x00, //Page2, + 0x00, //page3, + 0x00, //page4, + 0x00, //page5, + 0xE0, //page6, + 0x00, //page7, + 0x2C, //page8, + 0x4F, //page9, + 0x01, //page10 + 0x42, //page11 + 0x56 //page12 +}; + +const Uint8 code A5133_RFConfigTab_Addr0x22[]= +{ + 0x00, //page0, + 0x10, //page1, + 0x00, //Page2, + 0x10, //page3, + 0x00, //page4, + 0x04 //page5, +}; + +const Uint8 code A5133_RFConfigTab_Addr0x2A[]= +{ + 0x00, //page0, + 0x01, //page1, + 0xF0, //Page2, + 0x80, //page3, + 0x80, //page4, + 0x48, //page5, + 0x03, //page6, + 0x40, //page7, + 0x3A, //page8, + 0x3E, //page9, + 0xE8, //page10, + 0x80, //page11, + 0x00 //page12, +}; + +const Uint8 code A5133_RFConfigTab_Addr0x38[]= +{ + 0x80, //page0, + 0x50, //page1, + 0x20, //page2, + 0x64, //page3, + 0x20, //page4, + 0x40, //page5, + 0x60, //page6, + 0x04, //page7, + 0x00, //page8, + 0x00, //page9, + 0x00, //page10, + 0x00 //page11, +}; + +const Uint8 code ACQ_Tab[]= +{ + 0x03,0x50, 0x03,0x50, 0x03,0x50, 0x03,0x40, 0x03,0x40, 0x03,0x40, 0x03,0x40, 0x03,0x00, //0c00~0x0F, + 0x03,0x40, 0x03,0x40, 0x03,0x40, 0x02,0xB0, 0x03,0x20, 0x02,0xc0, 0x02,0x80, 0x03,0xF0, + 0x02,0x80, 0x02,0x80, 0x02,0x80, 0x02,0x80, 0x03,0x20, 0x03,0x00, 0x03,0x20, 0x02,0xa0, //0x10~0x1F + 0x03,0x60, 0x02,0x80, 0x03,0x30, 0x03,0x40, 0x03,0x50, 0x03,0x40, 0x03,0x50, 0x03,0x00 +}; +#endif /* end of DR_500Kbps */ + +#endif diff --git a/code/sdk/drivers/peripheral/a5133/A5133GlobalVar.h b/code/sdk/drivers/peripheral/a5133/A5133GlobalVar.h new file mode 100644 index 000000000..10be5de8b --- /dev/null +++ b/code/sdk/drivers/peripheral/a5133/A5133GlobalVar.h @@ -0,0 +1,71 @@ +#ifndef _A5133_GLOBALVAR_H_ +#define _A5133_GLOBALVAR_H_ + +#ifdef _MAIN_C_ +/************************************************************************ +** Global Variable Declaration +************************************************************************/ +Uint8 data timer; +Uint16 data TimerCnt; +Uint8 data Slot_TX; +Uint8 data Flag_Timeout; +Uint16 idata RxCnt; +Uint8 data *Uartptr; +Uint8 data UartSendCnt; +Uint8 data CmdBuf[25]; +Uint8 idata tmpbuf[80]; +Uint16 idata Err_Loss; +Uint16 idata Err_Frame; +Uint32 idata Err_BitCnt; +Uint8 data Flag_Report; +Uint8 idata Flag_FirstLink; +Uint8 idata Flag_MASTER; + +const Uint8 code BitCount_Tab[16] = {0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4}; +//const Uint8 //code ID_Tab[8]={0x34,0x75,0xC5,0x2A,0xC7,0x33,0x45,0xEA}; //ID code +const Uint8 code ID_Tab[8]={0x55,0x55,0x55,0x55,0x34,0x75,0xC5,0x6A}; //ID2 code +//const Uint8 code ID_Tab[8]={0xFF,0xFF,0xFF,0xFF,0x36,0x75,0xC5,0xBA}; //ID2 code +//const Uint8 code ID_Tab[8]={0x34,0x75,0xC5,0x2A,0x34,0x75,0xC5,0x2A}; //ID2 code +const Uint8 code KeyData_Tab[16]={0x00,0x00,0x00,0x00,0x00,0x0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; //keyData code +const Uint8 code FCB_Tab[20]={0x00,0x00,0x00,0x00,0x00,0x15,0x20,0x25,0x30,0x35,0x40,0x45,0x50,0x55,0x60,0x65,0x70,0x75,0x80,0x85}; //keyData code +const Uint8 code PN9_Tab[]= +{ 0xFF,0x83,0xDF,0x17,0x32,0x09,0x4E,0xD1, + 0xE7,0xCD,0x8A,0x91,0xC6,0xD5,0xC4,0xC4, + 0x40,0x21,0x18,0x4E,0x55,0x86,0xF4,0xDC, + 0x8A,0x15,0xA7,0xEC,0x92,0xDF,0x93,0x53, + 0x30,0x18,0xCA,0x34,0xBF,0xA2,0xC7,0x59, + 0x67,0x8F,0xBA,0x0D,0x6D,0xD8,0x2D,0x7D, + 0x54,0x0A,0x57,0x97,0x70,0x39,0xD2,0x7A, + 0xEA,0x24,0x33,0x85,0xED,0x9A,0x1D,0xE0, +}; + +#else +/************************************************************************ +** Extern Global Variable Declaration +************************************************************************/ +extern Uint8 data timer; +extern Uint16 data TimerCnt; +extern Uint8 data Slot_TX; +extern Uint8 data Flag_Timeout; +extern Uint16 idata RxCnt; +extern Uint8 data *Uartptr; +extern Uint8 data UartSendCnt; +extern Uint8 data CmdBuf[25]; +extern Uint8 idata tmpbuf[80]; +extern Uint16 idata Err_Loss; +extern Uint16 idata Err_Frame; +extern Uint32 idata Err_BitCnt; +extern Uint8 data Flag_Report; +extern Uint8 idata Flag_FirstLink; +extern Uint8 data Flag_MASTER; + +extern const Uint8 code BitCount_Tab[16]; +extern const Uint8 code ID_Tab[8]; +extern const Uint8 code KeyData_Tab[]; +extern const Uint8 code FCB_Tab[]; +extern const Uint8 code PN9_Tab[]; + +#endif + +#endif + diff --git a/code/sdk/drivers/peripheral/a5133/A5133Main.c b/code/sdk/drivers/peripheral/a5133/A5133Main.c new file mode 100644 index 000000000..becb635cb --- /dev/null +++ b/code/sdk/drivers/peripheral/a5133/A5133Main.c @@ -0,0 +1,859 @@ +/********************************************************************* ** +** Device: A5133 +** File: main.c +** Author: JPH +** Target: A8xxx +** Tools: ICE +** Created: +** Description: +** This file is a sample code for your reference. +** +** Copyright (C) 2007 AMICCOM Electronics Corp. +** +** Revision history: +** +*********************************************************************/ +#include "debug_print.h" +#include "errcode.h" + +#include "A5133define.h" +// #include "A8105Reg.h" + +#include "A5133reg.h" +#include "A5133Config.h" +#include "A5133Uti.h" +#include "A5133main.h" +#include "platform_core.h" +#include "errcode.h" + +/********************************************************************* +** I/O Declaration +// S_MGPIO6 SPI1 DI + { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_MGPIO7 SPI1 DO + { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_MGPIO8 SPI1 CLK + { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_MGPIO9 SPI1 CS0 +*********************************************************************/ + + +static void nop(void){} + +#define idata + +/********************************************************************* +** Constant Declaration +*********************************************************************/ +#define TIMEOUT 50 +#define t0hrel 1333//1000 +#define BaudRate38400 (65536-((16000000)/(32*38400))) + +/************************************************************************ +** Global Variable Declaration +************************************************************************/ +Uint8 data timer; +Uint16 data TimerCnt; +Uint8 data Slot_TX; +Uint8 data Flag_Timeout; +Uint16 idata RxCnt; +Uint8 data *Uartptr; +// Uint8 data UartSendCnt; +Uint8 data CmdBuf[25]; +Uint8 idata tmpbuf[80]; +Uint16 idata Err_Loss; +Uint16 idata Err_Frame; +Uint32 idata Err_BitCnt; +// Uint8 data Flag_Report; +// Uint8 idata Flag_FirstLink; +// Uint8 idata Flag_MASTER; +Uint8 idata Mem_RH; +Uint8 idata Mem_RL; + +const Uint8 code BitCount_Tab[16] = {0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4}; +const Uint8 code ID_Tab[8]={0xC3,0x3C,0x95,0x6A,0x36,0x75,0xC5,0x2A};//ID code +//const Uint8 //code ID_Tab[8]={0x34,0x75,0xC5,0x2A,0xC7,0x33,0x45,0xEA};//ID code +//const Uint8 code ID_Tab[8]={0x55,0x55,0x55,0x55,0x34,0x75,0xC5,0x6A}; //ID2 code +//const Uint8 code ID_Tab[8]={0xFF,0xFF,0xFF,0xFF,0x36,0x75,0xC5,0xBA}; //ID2 code +//const Uint8 code ID_Tab[8]={0x34,0x75,0xC5,0x2A,0x34,0x75,0xC5,0x2A}; //ID2 code +const Uint8 code KeyData_Tab[16]={0x00,0x00,0x00,0x00,0x00,0x0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; //keyData code +const Uint8 code FCB_Tab[20]={0x00,0x00,0x00,0x00,0x00,0x15,0x20,0x25,0x30,0x35,0x40,0x45,0x50,0x55,0x60,0x65,0x70,0x75,0x80,0x85}; //keyData code +const Uint8 code PN9_Tab[]= +{ 0xFF,0x83,0xDF,0x17,0x32,0x09,0x4E,0xD1, + 0xE7,0xCD,0x8A,0x91,0xC6,0xD5,0xC4,0xC4, + 0x40,0x21,0x18,0x4E,0x55,0x86,0xF4,0xDC, + 0x8A,0x15,0xA7,0xEC,0x92,0xDF,0x93,0x53, + 0x30,0x18,0xCA,0x34,0xBF,0xA2,0xC7,0x59, + 0x67,0x8F,0xBA,0x0D,0x6D,0xD8,0x2D,0x7D, + 0x54,0x0A,0x57,0x97,0x70,0x39,0xD2,0x7A, + 0xEA,0x24,0x33,0x85,0xED,0x9A,0x1D,0xE0, +}; + + +/********************************************************************* +* main loop +*********************************************************************/ +void a5133_main(Uint8 Flag_MASTER) +{ + + if(RF_Init())/* init RF */ + Err_State(); + + if (Flag_MASTER) + { + while(1) + { + RF_WriteReg(GIO1_REG,0x01);/* gio1-wtr */ + RF_WriteReg(GIO2_REG,0x1D);/* gio2-trxd */ + RF_WriteReg(CKO_REG,0x02);/* cko-dck */ + + RF_FIFOLength(64-1);/* fifo length 64 bytes */ + RF_StrobeCmd(CMD_PLL); + RF_SetCH(80);/* ch=80, freq=5805.001MHz */ + /* To set RF channel */ + /* RF base Freq : 5725.001MHz */ + /* Channel step : 1MHz */ + /* SetCH : 80 */ + /* RF Frequency = RF base Freq + (Channel step * SetCH) = 5725.001MHz + ( 1MHz * 80 ) = 5805.001MHz */ + + RxCnt = 0; + Err_Loss=0; + Err_Frame=0; + Err_BitCnt = 0; + timer=0; + // TR0=1; + // EA=1; + + while(1) + { + RF_FIFOWrite(64);/* write data to tx fifo */ + if(RF_LVR_Check())/* check if BOD reset has occurred */ + break;/* exit loop & re-RF init */ + else + RF_StrobeCmd(CMD_TX);/* transmit packet */ + + Delay10us(1); + while(a5133_gpio_get_gio1_value());/* wait transmit completed */ + + if(RF_LVR_Check())/* check if BOD reset has occurred */ + break;/* exit loop & re-RF init */ + else + RF_StrobeCmd(CMD_RX); + + timer=0; + Flag_Timeout=0; + while(a5133_gpio_get_gio1_value()==1 && Flag_Timeout==0);/* wait receive completed */ + if (Flag_Timeout) + { + RF_StrobeCmd(CMD_PLL);/* exit rx mode */ + } + else + { + RxPacket(); + Delay10ms(1); + } + } + } + } + else + { + while(1) + { + RF_WriteReg(GIO1_REG,0x01);/* gio1-wtr */ + RF_WriteReg(GIO2_REG,0x1D);/* gio2-trxd */ + RF_WriteReg(CKO_REG,0x02);/* cko-dck */ + + RF_FIFOLength(64-1);/* write data to tx fifo */ + RF_StrobeCmd(CMD_PLL); + RF_SetCH(80);/* ch=80, freq=5805.001MHz */ + + RxCnt = 0; + Err_Loss=0; + Err_Frame=0; + Err_BitCnt = 0; + timer=0; + // TR0=1; + // EA=1; + + while(1) + { + if(RF_LVR_Check())/* check if BOD reset has occurred */ + break;/* exit loop & re-RF init */ + else + RF_StrobeCmd(CMD_RX); + + Delay10us(1); + while(a5133_gpio_get_gio1_value()); + RxPacket(); + + RF_FIFOWrite(64); + if(RF_LVR_Check())/* check if BOD reset has occurred */ + break;/* exit loop & re-RF init */ + else + RF_StrobeCmd(CMD_TX); + + Delay10us(1); + while(a5133_gpio_get_gio1_value()); + } + } + } +} + +/************************************************************************ +** ISR_Timer0 +************************************************************************/ +void ISR_Timer0 (void) //interrupt 1 +{ + //set next timer + + // TF0 = 0; // Clear Timer0 interrupt + // TH0 = (65536-t0hrel)>>8; // Reload Timer0 high byte,low byte + // TL0 = 65536-t0hrel; + + timer++; + if (timer == TIMEOUT) + Flag_Timeout=1; + + if (timer==2) + Slot_TX=1; + + TimerCnt++; + if (TimerCnt >=500) + { + TimerCnt=0; + CmdBuf[0]=0xF1; + memcpy(&CmdBuf[1], &RxCnt, 2); + memcpy(&CmdBuf[3], &Err_Loss, 2); + memcpy(&CmdBuf[5], &Err_Frame, 2); + memcpy(&CmdBuf[7], &Err_BitCnt, 4); + + //输出日志 + PRINT("RxCnt %d , Err_Loss %d , Err_Frame %d , Err_BitCnt %d \n",RxCnt,Err_Loss,Err_Frame,Err_BitCnt); + // UartSendCnt=12; + // Uartptr=&CmdBuf[0]; + // SBUF=CmdBuf[0]; + } +} + +/************************************************************************ +** Clr_timer +************************************************************************/ +void Clr_timer(void) +{ + // TR0 = 0; + // TH0 = (65536-t0hrel-5)>>8; // Reload Timer0 high byte,low byte + // TL0 = 65536-t0hrel-5; + //清楚timer + timer = 2; + // TR0 = 1; +} + +/********************************************************************* +** Err_State +*********************************************************************/ +void Err_State(void) +{ + //ERR display + //Error Proc... + //... + // while(1); + PRINT("Err_State\n"); +} + +/************************************************************************ +** Reset_RF +************************************************************************/ +void RF_Reset(void) +{ + RF_WriteReg(MODE_REG, 0x00); //reset RF chip +} + +/************************************************************************ +** RF_WriteID +************************************************************************/ +void RF_WriteID(Uint8* ptr) +{ + Uint8 i; + + a5133_gpio_scs_set_value(0); + ByteSend(IDCODE_REG); + for (i=0; i < 8; i++) + ByteSend(*ptr++); + a5133_gpio_scs_set_value(1); +} + +/************************************************************************ +** RF_ReadID +************************************************************************/ +void RF_ReadID(Uint8* ptr) +{ + Uint8 i; + + a5133_gpio_scs_set_value(0); + ByteSend(IDCODE_REG | 0x40); + for (i=0; i<8; i++) + *ptr++ = ByteRead(); + a5133_gpio_scs_set_value(1); +} + +/********************************************************************* +** RF_ReadPage +*********************************************************************/ +Uint8 RF_ReadPage(Uint8 addr, Uint8 page) +{ + Uint8 tmp; + + RF_WriteReg(RFANALOG_REG, (A5133_RFConfigTab_Main[0x35]&0x0F) | page<<4); + tmp = RF_ReadReg(addr); + return tmp; +} + +/********************************************************************* +** RF_WritePage +*********************************************************************/ +void RF_WritePage(Uint8 addr, Uint8 wbyte, Uint8 page) +{ + RF_WriteReg(RFANALOG_REG, (A5133_RFConfigTab_Main[0x35]&0x0F) | page<<4); + RF_WriteReg(addr, wbyte); +} + + +/********************************************************************* +** RF_SetCH +*********************************************************************/ +void RF_SetCH(Uint8 ch) +{ + RF_WriteReg(PLL1_REG, ch); //RF freq = RFbase + (CH_Step * ch) +} + +/********************************************************************* +** initRF +*********************************************************************/ +Uint8 RF_Init(void) +{ + Uint8 i,id[8]; + + // /* init io pin */ + // SCS = 1; + // SCK = 0; + // SDIO = 1; + // // CKO = 1; + // GIO1 = 1; + // // GIO2 = 1; + + RF_Reset();/* reset RF chip */ + RF_WriteID(ID_Tab);/* write ID code */ + RF_ReadID(id); + for (i=0; i<8; i++) + { + if (id[i] ^ ID_Tab[i]) + return 1;/* fail */ + } + + RF_Config();/* config A7157 chip */ + RF_TrimmedValue_Init();/* load trimming value */ + if(RF_Cal())/* rf calibration */ + return 1; + + return 0; +} + +/********************************************************************* +** RF_FIFOWrite +*********************************************************************/ +void RF_FIFOWrite(Uint8 len) +{ + Uint8 i; + + RF_StrobeCmd(CMD_TFR);//TX fifo pointer reset + a5133_gpio_scs_set_value(0); + ByteSend(FIFO_REG);//send address 0x05, bit7 cmd=0, bit6 r/w=0 + for(i=0; i >4] + BitCount_Tab[tmp & 0x0F]); + err=1; + } + } + a5133_gpio_scs_set_value(1); + + if (err)//packet error + Err_Frame++; +} + +/********************************************************************* +** RF_Cal_CHGroup +*********************************************************************/ +Uint8 RF_Cal_CHGroup(Uint8 ch) +{ + Uint8 tmp; + Uint8 vb,vbcf,vcb,vccf; + Uint8 deva,adev; + + RF_WriteReg(PLL1_REG, ch); + RF_WriteReg(CALIBRATION_REG, 0x1C); + do{ + tmp = RF_ReadReg(CALIBRATION_REG)&0x1C; + }while (tmp); + + //for check + tmp = RF_ReadReg(VCOCCAL_REG); + vcb = tmp & 0x0F; + vccf = (tmp>>4) & 0x01; + + tmp = RF_ReadReg(VCOCAL1_REG); + vb = tmp & 0x0F; + vbcf = (tmp >>4) & 0x01; + + tmp = RF_ReadReg(VCODEVCAL1_REG); + deva = tmp; + + tmp = RF_ReadReg(VCODEVCAL2_REG); + adev = tmp; + + if(vbcf) + return 1;//error + + return 0; +} + +/********************************************************************* +** calibration +*********************************************************************/ +Uint8 RF_Cal(void) +{ + Uint8 tmp; + Uint8 rhc,rlc,fb,fbcf,fcd; + + RF_StrobeCmd(CMD_PLL); //calibration @PLL state + RF_WriteReg(RFANALOG_REG, 0); + + //IF,RSSI,RC procedure + RF_WriteReg(CALIBRATION_REG, 0x23); + do{ + tmp = RF_ReadReg(CALIBRATION_REG)&0x23; + }while(tmp); + + //calibration VBC,VDC procedure + if(RF_Cal_CHGroup(20)) //calibrate channel group Bank I + return 1; + if(RF_Cal_CHGroup(60)) //calibrate channel group Bank II + return 1; + if(RF_Cal_CHGroup(100)) //calibrate channel group Bank III + return 1; + + RF_StrobeCmd(CMD_STBY); //return to STBY state + + //for check + tmp = RF_ReadReg(IFCAL1_REG); + fb = tmp & 0x0F; + fbcf = (tmp>>4) & 0x01; + + tmp = RF_ReadReg(IFCAL2_REG); + fcd = tmp & 0x1F; + + rhc = RF_ReadReg(RXGAIN2_REG); + rlc = RF_ReadReg(RXGAIN3_REG); + Mem_RH = rhc; + Mem_RL = rlc; + + if(fbcf) + return 1;//error + + return 0; +} + +/********************************************************************* +** RF_Config +*********************************************************************/ +void RF_Config(void) +{ + Uint8 i; + + //0x00 mode register, for reset + //0x05 fifo data register + //0x06 id code register + //0x36 key data, 16 bytes + //0x3D FCB register,4 bytes + //0x3F USID register, read only + + for (i=0x01; i<=0x04; i++) + RF_WriteReg(i, A5133_RFConfigTab_Main[i]); + + for (i=0x07; i<=0x1F; i++) + RF_WriteReg(i, A5133_RFConfigTab_Main[i]); + + for (i=0; i<=12; i++)//0x20 code1 + RF_WritePage(0x20, A5133_RFConfigTab_Addr0x20[i], i); + + for (i=0; i<=12; i++)//0x21 code2 + RF_WritePage(0x21, A5133_RFConfigTab_Addr0x21[i], i); + + for (i=0; i<=5; i++)//0x22 code3 + RF_WritePage(0x22, A5133_RFConfigTab_Addr0x22[i], i); + + for (i=0x23; i<=0x29; i++) + RF_WriteReg(i, A5133_RFConfigTab_Main[i]); + + for (i=0; i<=12; i++)//0x2A DAS + RF_WritePage(0x2A, A5133_RFConfigTab_Addr0x2A[i], i); + + for (i=0x2B; i<=0x35; i++) + RF_WriteReg(i, A5133_RFConfigTab_Main[i]); + + RF_WriteReg(0x37, A5133_RFConfigTab_Main[0x37]); + + for (i=0; i<=11; i++)//0x38 ROM + RF_WritePage(0x38, A5133_RFConfigTab_Addr0x38[i], i); + + for (i=0x39; i<=0x3C; i++) + RF_WriteReg(i, A5133_RFConfigTab_Main[i]); + + RF_WriteReg(0x3E, A5133_RFConfigTab_Main[0x3E]); +} + +/********************************************************************* +** RF_FCB +*********************************************************************/ +void RF_FCB(void) +{ + Uint8 i; + + a5133_gpio_scs_set_value(0); + ByteSend(FCB_REG);//address 0x3D, bit7 cmd=0, bit6 r/w=0 + for (i=0; i < 20; i++) + ByteSend(FCB_Tab[i]); + a5133_gpio_scs_set_value(1); +} + +/********************************************************************* +** A7157_KeyData +*********************************************************************/ +void RF_KeyData(void) +{ + Uint8 i; + + a5133_gpio_scs_set_value(0); + ByteSend(KEYDATA_REG);//address 0x36, bit7 cmd=0, bit6 r/w=0 + for (i=0; i < 16; i++) + ByteSend(KeyData_Tab[i]); + a5133_gpio_scs_set_value(1); +} + +/********************************************************************* +** RF_FIFOLength +*********************************************************************/ +void RF_FIFOLength(Uint16 len) +{ + a5133_gpio_scs_set_value(0); + ByteSend(FIFO1_REG); + ByteSend(len & 0xFF);//low byte + ByteSend(len>>8);//high byte + a5133_gpio_scs_set_value(1); +} + +/********************************************************************* +** RF_TrimmedValue_Init +*********************************************************************/ +void RF_TrimmedValue_Init(void) +{ + Uint8 i; + Uint8 trimValue[8]; + //Uint8 tmp_checksum; + + //trimValue[0]=FBG + //trimValue[1]=CTR + //trimValue[2]=BDC + //trimValue[3]=STM + //trimValue[4]=Checksum for trimvalue[0]~trimvalue[3] + //trimValue[5]=CSXTL + //trimValue[6]=FBG_CP + //trimValue[7]=Checksum for customer + + RF_WritePage(ROMP_REG, A5133_RFConfigTab_Addr0x38[9] | 0xA0, 9);//enable EFSW=1, EFRE=1 + + Delay1ms(5); //wait for stability + + a5133_gpio_scs_set_value(0); + ByteSend(USID_REG | 0x40); + for (i=0; i < 8; i++) + trimValue[i] = ByteRead(); + a5133_gpio_scs_set_value(1); + RF_WritePage(ROMP_REG, A5133_RFConfigTab_Addr0x38[9], 9);//disable EFSW=1, EFRE=1 + + if((trimValue[0] + trimValue[1]) == trimValue[4]) //case1-only FT + { + if((trimValue[0]!=0) && (trimValue[1]!=0)) + { + RF_WritePage(ROMP_REG, (A5133_RFConfigTab_Addr0x38[1] & 0xE0) | trimValue[0], 1);//FBG + RF_WritePage(ROMP_REG, (A5133_RFConfigTab_Addr0x38[2] & 0xC0) | trimValue[1], 2);//CTR + } + else + Err_State(); + } + else if((trimValue[0] + trimValue[1] + trimValue[2] + trimValue[3]) == trimValue[4]) //case2-CP+FT + { + if((trimValue[0]!=0) && (trimValue[1]!=0) && (trimValue[2]!=0) && (trimValue[3]!=0)) + { + RF_WritePage(ROMP_REG, (A5133_RFConfigTab_Addr0x38[1] & 0xE0) | trimValue[0], 1);//FBG + RF_WritePage(ROMP_REG, (A5133_RFConfigTab_Addr0x38[2] & 0xC0) | trimValue[1], 2);//CTR + RF_WritePage(ROMP_REG, (A5133_RFConfigTab_Addr0x38[0] & 0x03) | (trimValue[2]<<2), 0);//BDC + RF_WritePage(ROMP_REG, (A5133_RFConfigTab_Addr0x38[4] & 0x40) | trimValue[3], 4);//STM + } + else + Err_State(); + } + else //only CP + { + if((trimValue[0]==0) && (trimValue[1]!=0) && (trimValue[2]!=0) && (trimValue[3]!=0) && (trimValue[4]==0) && (trimValue[6]!=0)) + { + RF_WritePage(ROMP_REG, (A5133_RFConfigTab_Addr0x38[1] & 0xE0) | trimValue[6], 1);//FBG + RF_WritePage(ROMP_REG, (A5133_RFConfigTab_Addr0x38[2] & 0xC0) | trimValue[1], 2);//CTR + RF_WritePage(ROMP_REG, (A5133_RFConfigTab_Addr0x38[0] & 0x03) | (trimValue[2]<<2), 0);//BDC + RF_WritePage(ROMP_REG, (A5133_RFConfigTab_Addr0x38[4] & 0x40) | trimValue[3], 4);//STM + } + else + Err_State(); + } +} + +/********************************************************************* +** RF_RSSI_Read +*********************************************************************/ +Sint16 RF_RSSI_Read(void) +{ + Uint8 rssi; + Sint16 tmp; + + rssi= RF_ReadReg(RSSI_REG); //read RSSI value(wanted signal RSSI) + + //RF power in(dBm) = (RSSI - RL) / (RH - RL) * 12 - 80dbm - 3 + tmp = ((rssi*1.0 - Mem_RL) / (Mem_RH - Mem_RL) * 12.0) - 80 - 3; + return tmp; +} + +/********************************************************************* +** RF_PM_SleepMode +*********************************************************************/ +void RF_PM_SleepMode(void) +{ + RF_StrobeCmd(CMD_SLEEP); + a5133_gpio_sck_set_value(1); + a5133_gpio_sdio_set_value(1); +} + +/********************************************************************* +** RF_Low Voltage Reset_Check +*********************************************************************/ +Uint8 RF_LVR_Check(void) +{ + Uint8 tmp; + + tmp = RF_ReadReg(VCOCAL2_REG); + if(tmp == 0xFF)//default reset value 0xFF + return 1; + else + return 0; +} + +/********************************************************************* +** RF_WOR_En +*********************************************************************/ +void RF_WOR_En(void) +{ + RF_WriteReg(GIO1_REG, 0x01);//WTR + RF_WriteReg(GIO2_REG, 0x11);//MCU wakeup signal + RF_WriteReg(CKO_REG, 0x02); + + RF_WriteReg(RCOSC1_REG, 0x0B);//WOR_SL=11, SL time=(11+1)*32*(1/4KHz) + RF_WriteReg(RCOSC2_REG, 0x0B);//WOR_AC=11, AC time(wakeup time + RX time)=(11+1)*(1/4KHz) + RF_WriteReg(RCOSC3_REG, 0x0C);//RCOSC enable + + while(1) + { + RF_WriteReg(MODECTRL_REG, A5133_RFConfigTab_Main[1] | (1<<3)); //WOR enable + // while(~GIO2);//waitting to wakeup until packet is received + + RF_StrobeCmd(CMD_PLL); + //Wakeup process... + //RxPacket(); + //...; + } +} + +/********************************************************************* +** RF_AdvFIFO_Init +*********************************************************************/ +void RF_AdvFIFO_Init(void) +{ + RF_WriteReg(FCR_REG, 0x0F);/* EARTS=1, EACKS=1, ARC=3, FCL=0 */ + RF_WriteReg(ARD_REG, 0x02);/* ARD=2, ARD=600us */ + RF_WriteReg(AFEP_REG, 0x40);/* spss=1 */ + RF_WriteReg(KEYC_REG, 0x20);/* ARTMS=1, fixed interval */ + RF_WriteReg(USID_REG, 0x00);/* Random seed=0, fixed interval=200us */ +} + +/********************************************************************* +** Is_Vpoak +*********************************************************************/ +Uint8 Is_Vpoak(void) +{ + Uint8 tmp; + + tmp = (RF_ReadReg(FCR_REG) >>6) & 0x01;/* read vpoak bit */ + return tmp; +} + +/********************************************************************* +** main_prog_ACK +*********************************************************************/ +void main_prog_ACK(Uint8 Flag_MASTER) +{ + /* A sample code for auto-resend & auto-ack function */ + + RF_AdvFIFO_Init();/* init advance fifo with auto-resend & auto-ack */ + + if (Flag_MASTER) + { + while(1) + { + RF_WriteReg(GIO1_REG,0x01);/* gio1-wtr */ + RF_WriteReg(GIO2_REG,0x1D);/* gio2-trxd */ + RF_WriteReg(CKO_REG,0x02);/* cko-dck */ + + RF_FIFOLength(64-1);/* fifo length 64 bytes */ + RF_StrobeCmd(CMD_PLL); + RF_SetCH(80);/* ch=80, freq=5805.001MHz */ + /* To set RF channel */ + /* RF base Freq : 5725.001MHz */ + /* Channel step : 1MHz */ + /* SetCH : 80 */ + /* RF Frequency = RF base Freq + (Channel step * SetCH) = 5725.001MHz + ( 1MHz * 80 ) = 5805.001MHz */ + + RxCnt = 0; + Err_Loss=0; + Err_Frame=0; + Err_BitCnt = 0; + timer=0; + // TR0=1; + // EA=1; + + while(1) + { + RF_FIFOWrite(64); /* write data to tx fifo */ + if(RF_LVR_Check())/* check if BOD reset has occurred */ + break;/* exit loop & re-RF init */ + else + RF_StrobeCmd(CMD_TX);/* transmit packet */ + + Delay10us(1); + while(a5133_gpio_get_gio1_value()); + + /* check vpoak */ + if(Is_Vpoak()) + // P3 = P3 ^ 0x04;/* transmit completed, toggle I/O */ + PRINT("transmit complete!\n"); + else + nop();/* resend fail */ + + Delay10ms(5); + } + } + } + else + { + while(1) + { + RF_WriteReg(GIO1_REG,0x01);/* gio1-wtr */ + RF_WriteReg(GIO2_REG,0x1D);/* gio2-trxd */ + RF_WriteReg(CKO_REG,0x02);/* cko-dck */ + + RF_FIFOLength(64-1);/* fifo length 64 bytes */ + RF_StrobeCmd(CMD_PLL); + RF_SetCH(80);/* ch=80, freq=5805.001MHz */ + + RxCnt = 0; + Err_Loss=0; + Err_Frame=0; + Err_BitCnt = 0; + timer=0; + // TR0=1; + // EA=1; + + while(1) + { + if(RF_LVR_Check())/* check if BOD reset has occurred */ + break;/* exit loop & re-RF init */ + else + RF_StrobeCmd(CMD_RX); + + Delay10us(1); + while(a5133_gpio_get_gio1_value()); + + /* check vpoak */ + if(Is_Vpoak()) + { + // P3 = P3 ^ 0x04;/* valid packet, toggle I/O */ + PRINT("valid packet !\n"); + RxPacket(); + } + else + nop();/* invalid packet */ + + Delay10ms(4); + } + } + } +} + +/********************************************************************* +** RF_TXPower +*********************************************************************/ +void RF_TXPower(Uint8 tbf, Uint8 tpa) +{ + /* + * Users can get different TX power by setting TBF(in register 0x2D), TPA(in register 0x2D, page 8) under fixed conditions, + * a)Fixed bit TXLPN=1(in register 0x22, page1) + * b)Fixed bit PGV_PA=2.5V(in register 0x21, page9) + * For tbf,tpa setting, please refer to chapter "3.Tx Power Control Setting" in Application Note_AN_A5133_HW pdf + */ + + Uint8 tmp; + + tmp = A5133_RFConfigTab_Main[TXTEST_REG] & 0xF8; + tmp = tmp | (tbf & 0x07); + RF_WriteReg(TXTEST_REG, tmp);//set TBF + + tmp = A5133_RFConfigTab_Addr0x21[8] & 0x8F; + tmp = tmp | (tpa & 0x07)<<4; + RF_WritePage(CODE2_REG, tmp, 8);//set TPA +} diff --git a/code/sdk/drivers/peripheral/a5133/A5133Uti.c b/code/sdk/drivers/peripheral/a5133/A5133Uti.c new file mode 100644 index 000000000..7976ace87 --- /dev/null +++ b/code/sdk/drivers/peripheral/a5133/A5133Uti.c @@ -0,0 +1,296 @@ +/******************************************************************** ** +* Uti.h +* Function Definitions +* +********************************************************************/ + +#include "gpio.h" +#include "pinctrl_porting.h" +#include "chip_io.h" +#include "debug_print.h" +#include "pinctrl.h" + +#include "A5133define.h" +#include "A5133Uti.h" + +static void nop(void){} + +/********************************************************** +* Delay1ms +**********************************************************/ +void Delay1ms(Uint8 n) +{ + LOS_Mdelay(n); +} + +/********************************************************** +* Delay10ms +**********************************************************/ +void Delay10ms(Uint8 n) +{ + LOS_Mdelay(n*10); +} + +/********************************************************** +* Delay100us +**********************************************************/ +void Delay100us(Uint8 n) +{ + LOS_Udelay(n*100); +} + +/********************************************************** +* Delay10us +**********************************************************/ +void Delay10us(Uint8 n) +{ + LOS_Udelay(n*10); +} + + +/**direction 1 out , 0 in*/ +errcode_t a5133_gpio_set_direction(pin_t pin, int direction) +{ + errcode_t ret = ERRCODE_SUCC; + + if (direction) + { + ret = uapi_gpio_set_dir(pin, GPIO_DIRECTION_OUTPUT); + if (ret != ERRCODE_SUCC) { + return ERRCODE_FAIL; + } + }else{ + ret = uapi_gpio_set_dir(pin, GPIO_DIRECTION_INPUT); + if (ret != ERRCODE_SUCC) { + return ERRCODE_FAIL; + } + } + + return ret; +} + + +errcode_t a5133_gpio_set_value(pin_t pin,uint8_t value) +{ + errcode_t ret = ERRCODE_SUCC; + if (value == 1) { + ret = uapi_gpio_set_val(pin, GPIO_LEVEL_HIGH); + } else if (value == 0) { + ret = uapi_gpio_set_val(pin, GPIO_LEVEL_LOW); + } else { + return ERRCODE_FAIL; + } + return ret; +} + +uint8_t a5133_gpio_get_value(pin_t pin) +{ + gpio_level_t gpio_level; + gpio_level = uapi_gpio_get_val(pin); + if (gpio_level == GPIO_LEVEL_HIGH) { + // PRINT("read level is %d\r\n", GPIO_LEVEL_HIGH); + } else { + // PRINT("read level is %d\r\n", GPIO_LEVEL_LOW); + } + return gpio_level; +} + +#define SCS_OUT S_MGPIO9 //spi SCS +#define SCK_OUT S_MGPIO8 //spi SCK +#define SDIO_IN_OUT S_MGPIO7 //spi SDIO +#define GIO1_IN S_MGPIO6 //GPIO1 + +uint8_t a5133_gpio_get_gio1_value(void) +{ + return a5133_gpio_get_value(GIO1_IN); +} + +errcode_t a5133_gpio_scs_set_value(uint8_t value) +{ + if(value) + return a5133_gpio_set_value(SCS_OUT,1); + else + return a5133_gpio_set_value(SCS_OUT,0); +} + +errcode_t a5133_gpio_sdio_set_value(uint8_t value) +{ + if(value) + return a5133_gpio_set_value(SDIO_IN_OUT,1); + else + return a5133_gpio_set_value(SDIO_IN_OUT,0); +} +errcode_t a5133_gpio_sck_set_value(uint8_t value) +{ + if(value) + return a5133_gpio_set_value(SCK_OUT,1); + else + return a5133_gpio_set_value(SCK_OUT,0); +} +errcode_t a5133_gpio_init(void) +{ + + errcode_t ret = ERRCODE_SUCC; + + ret = uapi_pin_set_mode(SCS_OUT, HAL_PIO_FUNC_GPIO); + if (ret != ERRCODE_SUCC) { + return ERRCODE_FAIL; + } + + ret = uapi_pin_set_mode(SCK_OUT, HAL_PIO_FUNC_GPIO); + if (ret != ERRCODE_SUCC) { + return ERRCODE_FAIL; + } + + ret = uapi_pin_set_mode(SDIO_IN_OUT, HAL_PIO_FUNC_GPIO); + if (ret != ERRCODE_SUCC) { + return ERRCODE_FAIL; + } + + ret = uapi_pin_set_mode(GIO1_IN, HAL_PIO_FUNC_GPIO); + if (ret != ERRCODE_SUCC) { + return ERRCODE_FAIL; + } + + ret = a5133_gpio_set_direction(SCS_OUT,1); + if (ret != ERRCODE_SUCC) { + return ERRCODE_FAIL; + } + + + ret = a5133_gpio_set_direction(SCK_OUT,1); + if (ret != ERRCODE_SUCC) { + return ERRCODE_FAIL; + } + ret = a5133_gpio_set_direction(SDIO_IN_OUT,1); + if (ret != ERRCODE_SUCC) { + return ERRCODE_FAIL; + } + ret = a5133_gpio_set_direction(GIO1_IN,0); + if (ret != ERRCODE_SUCC) { + return ERRCODE_FAIL; + } + return ret; +} + + +// int test_gpio_toggle(pin_t pin, int level) +// { + +// errcode_t ret = ERRCODE_SUCC; + +// PRINT("[Params] PIN:%d, levle: %d. \r\n", pin, (uint32_t)level); +// ret = uapi_pin_set_mode(pin, HAL_PIO_FUNC_GPIO); +// if (ret != ERRCODE_SUCC) { +// return ERRCODE_FAIL; +// } + +// ret = uapi_gpio_set_dir(pin, GPIO_DIRECTION_OUTPUT); +// if (ret != ERRCODE_SUCC) { +// return ERRCODE_FAIL; +// } + +// if (level == 1) { +// uapi_gpio_set_val(pin, GPIO_LEVEL_HIGH); +// } else if (level == 0) { +// uapi_gpio_set_val(pin, GPIO_LEVEL_LOW); +// } else { +// return ERRCODE_FAIL; +// } + +// ret = uapi_gpio_toggle(pin); +// if (ret != ERRCODE_SUCC) { +// return ERRCODE_FAIL; +// } + +// gpio_level_t gpio_level; +// gpio_level = uapi_gpio_get_val(pin); +// if (gpio_level != (gpio_level_t)level) { +// PRINT("gpio toggle success\r\n"); +// PRINT("read level is %d\r\n", gpio_level); +// } else { +// PRINT("gpio toggle failed\r\n"); +// PRINT("read level is %d\r\n", gpio_level); +// return ERRCODE_FAIL; +// } + +// return ERRCODE_SUCC; +// } + + + +/************************************************************************ +** RF_WriteReg +************************************************************************/ +void RF_WriteReg(Uint8 addr, Uint8 dataByte) +{ + a5133_gpio_scs_set_value(0); + ByteSend(addr);//bit7 cmd=0, bit6 r/w=0 + ByteSend(dataByte); + a5133_gpio_scs_set_value(1); +} + +/************************************************************************ +** RF_ReadReg +************************************************************************/ +Uint8 RF_ReadReg(Uint8 addr) +{ + Uint8 tmp; + + a5133_gpio_scs_set_value(0); + ByteSend(addr | 0x40);//bit7 cmd=0,bit6 r/w=1 + tmp = ByteRead(); + a5133_gpio_scs_set_value(1); + + return tmp; +} + +/************************************************************************ +** ByteSend +************************************************************************/ +void ByteSend(Uint8 src) +{ + Uint8 i; + + for(i = 0; i < 8; i++) + { + if(src & 0x80) + a5133_gpio_set_value(SDIO_IN_OUT,1); + else + a5133_gpio_set_value(SDIO_IN_OUT,0); + + nop(); + a5133_gpio_set_value(SCK_OUT,1); + nop(); + a5133_gpio_set_value(SCK_OUT,0); + src = src << 1; + } +} + +/************************************************************************ +** ByteRead +************************************************************************/ +Uint8 ByteRead(void) +{ + Uint8 i,tmp; + + //sdio pull high + a5133_gpio_sdio_set_value(1); + // P0OE = P0OE & (~0x02); + + a5133_gpio_set_direction(SDIO_IN_OUT,0); + for(i = 0; i < 8; i++) + { + if(a5133_gpio_get_value(SDIO_IN_OUT)) + tmp = (tmp << 1) | 0x01; + else + tmp = tmp << 1; + + a5133_gpio_sck_set_value(1); + nop(); + a5133_gpio_sck_set_value(0); + } + a5133_gpio_set_direction(SDIO_IN_OUT,1); + // P0OE = P0OE | (0x02); + return tmp; +} \ No newline at end of file diff --git a/code/sdk/drivers/peripheral/a5133/A5133Uti.h b/code/sdk/drivers/peripheral/a5133/A5133Uti.h new file mode 100644 index 000000000..eeec5be58 --- /dev/null +++ b/code/sdk/drivers/peripheral/a5133/A5133Uti.h @@ -0,0 +1,29 @@ +/******************************************************************** +* UTI.h +* Function Definitions +* +********************************************************************/ +#ifndef _A5133_UTI_H_ +#define _A5133_UTI_H_ + +/******************************************************************** +** function declaration +********************************************************************/ +#include "errcode.h" +#include "platform_core.h" +void Delay10us(Uint8); +void Delay100us(Uint8); +void Delay1ms(Uint8); +void Delay10ms(Uint8); +errcode_t a5133_gpio_init(void); +uint8_t a5133_gpio_get_value(pin_t pin); +errcode_t a5133_gpio_set_value(pin_t pin,uint8_t value); +errcode_t a5133_gpio_set_direction(pin_t pin, int direction); +errcode_t a5133_gpio_scs_set_value(uint8_t value); +errcode_t a5133_gpio_sdio_set_value(uint8_t value); +errcode_t a5133_gpio_sck_set_value(uint8_t value); +uint8_t a5133_gpio_get_gio1_value(void); +void ByteSend(Uint8 src); +Uint8 ByteRead(void); + +#endif diff --git a/code/sdk/drivers/peripheral/a5133/A5133define.h b/code/sdk/drivers/peripheral/a5133/A5133define.h new file mode 100644 index 000000000..7df6f53d7 --- /dev/null +++ b/code/sdk/drivers/peripheral/a5133/A5133define.h @@ -0,0 +1,48 @@ +/***************************************************************************** +** ** +** AMIC Proprietary Document ** +** Copyright (c) 2004-2008 AMIC Technology Inc. ** +** ** +** No.2, Li-Hsin 6th Road, Science_Based Industrid Park, ** +** Hsin_Chu City, 300, Taiwan, ROC. ** +** Tel: 886-3-5679966 Fax: 886-3-5679977 ** +** E-mail:info@amic.com.tw http: //www.amic.com.tw ** +** ** +*****************************************************************************/ +#ifndef _A5133_DEFINE_H_ +#define _A5133_DEFINE_H_ + +#include +#include +// #include +#include +#define data + +#define Sint8 signed char +#define Sint16 signed int +#define Uint8 unsigned char +#define Uint16 unsigned int +#define Uint32 unsigned long + +#define NO 0 +#define YES 1 + +#define LOW 0 +#define HIGH 1 + +#ifndef ON +#define ON 1 +#define OFF 0 +#endif + + +#define ENABLE 1 +#define DISABLE 0 + +#define MASTER 1 +#define SLAVE 0 + +#define ONEWAY 0 +#define TWOWAY 1 + +#endif \ No newline at end of file diff --git a/code/sdk/drivers/peripheral/a5133/A5133main.h b/code/sdk/drivers/peripheral/a5133/A5133main.h new file mode 100644 index 000000000..f55111397 --- /dev/null +++ b/code/sdk/drivers/peripheral/a5133/A5133main.h @@ -0,0 +1,67 @@ +#ifndef _A5133_MAIN_H_ +#define _A5133_MAIN_H_ + +#include +#include "A5133define.h" + +/********************************************************************* +** I/O Declaration +*********************************************************************/ +// #define SCS //P0_3 //spi SCS +// #define SCK //P0_0 //spi SCK +// #define SDIO //P0_1 //spi SDIO +// #define CKO //P1_3 //CKO +// #define GIO1 //P0_2 //GPIO1 +// #define GIO2 //P1_2 //GPIO2 +// #define Button //P3_2 //test Button + +/********************************************************************* +** Constant Declaration +*********************************************************************/ +#define TIMEOUT 50 +#define t0hrel 1333//1000 +#define BaudRate38400 (65536-((16000000)/(32*38400))) + + + + +/********************************************************************* +** function Declaration +*********************************************************************/ + +void ISR_Timer0 (void); +void Clr_timer(void); + +void Err_State(void); +void RF_Reset(void); +void RF_WriteID(Uint8* ptr); +void RF_ReadID(Uint8* ptr); +Uint8 RF_ReadPage(Uint8 addr, Uint8 page); +void RF_WritePage(Uint8 addr, Uint8 wbyte, Uint8 page); +void RF_WriteReg(Uint8, Uint8); +Uint8 RF_ReadReg(Uint8); +void ByteSend(Uint8 src); +Uint8 ByteRead(void); +void RF_SetCH(Uint8); +Uint8 RF_Init(void); +void RF_FIFOWrite(Uint8); +void RF_StrobeCmd(Uint8); +void RxPacket(void); +Uint8 RF_Cal_CHGroup(Uint8 ch); +Uint8 RF_Cal(void); +void RF_Config(void); +void RF_FCB(void); +void RF_KeyData(void); +void RF_FIFOLength(Uint16 len); +void RF_TrimmedValue_Init(void); +Sint16 RF_RSSI_Read(void); +void RF_PM_SleepMode(void); +Uint8 RF_LVR_Check(void); +void RF_WOR_En(void); +void RF_AdvFIFO_Init(void); +Uint8 Is_Vpoak(void); +void main_prog_ACK(Uint8 Flag_MASTER); +void RF_TXPower(Uint8 tbf, Uint8 tpa); +void a5133_main(Uint8 Flag_MASTER); + +#endif \ No newline at end of file diff --git a/code/sdk/drivers/peripheral/a5133/A5133reg.h b/code/sdk/drivers/peripheral/a5133/A5133reg.h new file mode 100644 index 000000000..7470f87bc --- /dev/null +++ b/code/sdk/drivers/peripheral/a5133/A5133reg.h @@ -0,0 +1,89 @@ +/******************************************************************** +* A5133REG.h +* RF Chip-A5133 Hardware Definitions +* +* This file provides the constants associated with the +* AMICCOM A5133 device. +* +********************************************************************/ +#ifndef _A5133REG_h_ +#define _A5133REG_h_ + +#define MODE_REG 0x00 +#define MODECTRL_REG 0x01 +#define CALIBRATION_REG 0x02 +#define FIFO1_REG 0x03 +#define FIFO2_REG 0x04 +#define FIFO_REG 0x05 +#define IDCODE_REG 0x06 +#define RCOSC1_REG 0x07 +#define RCOSC2_REG 0x08 +#define RCOSC3_REG 0x09 +#define CKO_REG 0x0A +#define GIO1_REG 0x0B +#define GIO2_REG 0x0C +#define DATARATE_REG 0x0D +#define PLL1_REG 0x0E +#define PLL2_REG 0x0F +#define PLL3_REG 0x10 +#define PLL4_REG 0x11 +#define PLL5_REG 0x12 +#define CHGROUP1_REG 0x13 +#define CHGROUP2_REG 0x14 +#define TX1_REG 0x15 +#define TX2_REG 0x16 +#define DELAY1_REG 0x17 +#define DELAY2_REG 0x18 +#define RX_REG 0x19 +#define RXGAIN1_REG 0x1A +#define RXGAIN2_REG 0x1B +#define RXGAIN3_REG 0x1C +#define RXGAIN4_REG 0x1D +#define RSSI_REG 0x1E +#define ADC_REG 0x1F +#define CODE1_REG 0x20 +#define CODE2_REG 0x21 +#define CODE3_REG 0x22 +#define IFCAL1_REG 0x23 +#define IFCAL2_REG 0x24 +#define VCOCCAL_REG 0x25 +#define VCOCAL1_REG 0x26 +#define VCOCAL2_REG 0x27 +#define VCODEVCAL1_REG 0x28 +#define VCODEVCAL2_REG 0x29 +#define DASP_REG 0x2A +#define VCOMODDELAY_REG 0x2B +#define BATTERY_REG 0x2C +#define TXTEST_REG 0x2D +#define RXDEM1_REG 0x2E +#define RXDEM2_REG 0x2F +#define CPC1_REG 0x30 +#define CPC2_REG 0x31 +#define CRYSTALTEST_REG 0x32 +#define PLLTEST_REG 0x33 +#define VCOTEST_REG 0x34 +#define RFANALOG_REG 0x35 +#define KEYDATA_REG 0x36 +#define CHSELECT_REG 0x37 +#define ROMP_REG 0x38 +#define DATARATECLOCK 0x39 +#define FCR_REG 0x3A +#define ARD_REG 0x3B +#define AFEP_REG 0x3C +#define FCB_REG 0x3D +#define KEYC_REG 0x3E +#define USID_REG 0x3F + +//strobe command +#define CMD_SLEEP 0x80 //1000,xxxx SLEEP mode +#define CMD_IDLE 0x90 //1001,xxxx IDLE mode +#define CMD_STBY 0xA0 //1010,xxxx Standby mode +#define CMD_PLL 0xB0 //1011,xxxx PLL mode +#define CMD_RX 0xC0 //1100,xxxx RX mode +#define CMD_TX 0xD0 //1101,xxxx TX mode +#define CMD_TFR 0xE0 //1110,xxxx TX FIFO reset +#define CMD_RFR 0xF0 //1111,xxxx RX FIFO reset +#define CMD_DPSLEEP_TRI 0x88 //1000,1000 deep sleep tri mode +#define CMD_DPSLEEP_PULL 0x8B //1000,1011 deep sleep Pull high mode + +#endif \ No newline at end of file diff --git a/code/sdk/drivers/peripheral/a5133/CMakeLists.txt b/code/sdk/drivers/peripheral/a5133/CMakeLists.txt new file mode 100644 index 000000000..03d1f02c1 --- /dev/null +++ b/code/sdk/drivers/peripheral/a5133/CMakeLists.txt @@ -0,0 +1,43 @@ +#=============================================================================== +# @brief cmake file +# Copyright (c) @CompanyNameMagicTag 2023-2023. All rights reserved. +#=============================================================================== +add_subdirectory_if_exist(service) +set(COMPONENT_NAME "driver_a5133") + + +set(SOURCES ${SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/A5133Main.c + ${CMAKE_CURRENT_SOURCE_DIR}/A5133Uti.c +) +set(PUBLIC_HEADER + ${CMAKE_CURRENT_SOURCE_DIR} +) +set(PUBLIC_DEFINES +) +set(PRIVATE_HEADER + # ${CMAKE_CURRENT_SOURCE_DIR} +) +set(PRIVATE_DEFINES +) +# use this when you want to add ccflags like -include xxx +set(COMPONENT_PUBLIC_CCFLAGS +) + + +set(COMPONENT_CCFLAGS + -Wno-incompatible-function-pointer-types + -Wno-unused-function +) + +set(WHOLE_LINK + true +) + +set(MAIN_COMPONENT + false +) + +build_component() + +install_sdk(${CMAKE_CURRENT_SOURCE_DIR} "*") diff --git a/code/sdk/drivers/peripheral/a5133/service/CMakeLists.txt b/code/sdk/drivers/peripheral/a5133/service/CMakeLists.txt new file mode 100644 index 000000000..fbadb6d3e --- /dev/null +++ b/code/sdk/drivers/peripheral/a5133/service/CMakeLists.txt @@ -0,0 +1,55 @@ +#=============================================================================== +# @brief cmake file +# Copyright (c) @CompanyNameMagicTag 2022-2022. All rights reserved. +#=============================================================================== + +set(COMPONENT_NAME "a5133_service") + +set(PUBLIC_HEADER +) +set(PRIVATE_HEADER + ${ROOT_DIR}/middleware/services/gui/uikit/utils/interfaces/innerkits + ${ROOT_DIR}/middleware/services/gui/uikit/utils/interfaces/kits + ${ROOT_DIR}/application/wearable/nativeapp/nativeui/heartrate/include +) + +set(SOURCES +# ${CMAKE_CURRENT_SOURCE_DIR}/a5133_at_cmd.cpp +${CMAKE_CURRENT_SOURCE_DIR}/a5133_service.cpp +) + +set(COMPONENT_PUBLIC_CCFLAGS +) + +set(COMPONENT_CCFLAGS + -std=c++11 + -Wno-error + -Wno-unused-parameter + -fno-exceptions + -fno-unwind-tables + -fno-asynchronous-unwind-tables + -Wno-undef + -Wno-bitwise-op-parentheses + -Wno-shift-op-parentheses + -nostdlibinc + -nostdinc + -nostdlib + -Wno-c++11-narrowing + -Wno-error=unused-function +) + +set(WHOLE_LINK + true +) + +set(MAIN_COMPONENT + false +) + +set(PUBLIC_DEFINES +) + +set(PRIVATE_DEFINES +) + +build_component() diff --git a/code/sdk/drivers/peripheral/a5133/service/a5133_service.cpp b/code/sdk/drivers/peripheral/a5133/service/a5133_service.cpp new file mode 100644 index 000000000..0c0aa9f92 --- /dev/null +++ b/code/sdk/drivers/peripheral/a5133/service/a5133_service.cpp @@ -0,0 +1,178 @@ +/** + * Copyright (c) @CompanyNameMagicTag 2022-2022. All rights reserved. \n + * + * Description: Test source \n + * Author: @CompanyNameTag \n + * History: \n + * 2022-08-16, Create file. \n + */ + +#include "wearable_log.h" +#include "securec.h" +#include "broadcast_service.h" +#include "broadcast_feature.h" +#include "service_id_define.h" +#include "samgr_lite.h" +#include "thread_adapter.h" +#include "graphic_service.h" + +#ifdef __cplusplus +#if __cplusplus +extern "C" { +#endif /* __cplusplus */ +#endif /* __cplusplus */ + +#include "pinctrl.h" +#include "debug_print.h" +#include "soc_osal.h" +#include "tcxo.h" +#include "irmalloc.h" +#include "errcode.h" +#include "common_def.h" + +#include "chip_core_irq.h" +#include "chip_io.h" +#include "gpio.h" +#include "pm_veto.h" + +#include "rtc.h" +#include "timer.h" +#include "systick.h" +#include "cmsis_os2.h" +#include "los_printf.h" +#include "custom_utils.h" +#include "a5133_service.h" +#include "A5133define.h" +#include "A5133main.h" +#include "A5133Uti.h" +static bool g_a5133_service_initialled = false; + +/*** + * 其他cmd在Header里定义,对外开放 +*/ + + +#define A5133_SERVICE_MSG_COUNT 16 +#define A5133_SERVICE_TASK_SIZE 0x1000 + +static unsigned long g_app_queue; + +static bool a5133_service_running_stat = false; +static bool a5133_sensor_exist = false; + + +static bool g_a5133_timer_is_running = false; +osTimerId_t g_a5133_service_timer = NULL; +static void a5133_service_check_timer_callback(void* data); + +static void acc_service_timer_start_check(uint32_t rtc_ms) +{ + + if (g_a5133_timer_is_running ) osTimerStop(g_a5133_service_timer); + if (a5133_service_running_stat == true) osTimerStart(g_a5133_service_timer, rtc_ms); + g_a5133_timer_is_running = true; + +} +static void a5133_timer_init(void) +{ + g_a5133_service_timer = osTimerNew((osTimerFunc_t)a5133_service_check_timer_callback, osTimerPeriodic, NULL, NULL); +} + +void uapi_a5133_service_deinit(void) +{ + a5133_service_running_stat = false; +} + +uint32_t a5133_suspend(void) +{ + return 0; +} +uint32_t a5133_resume(void) +{ + return 0; +} + +static uint8_t a5133_server_working_mode = SLAVE ; +static uint8_t a5133_server_break_flag = 0; +void send_a5133_cmd_msg(int cmd) +{ + int ret; + if (a5133_sensor_exist == false) + return ; + + A5133_CMD_TYPE_T mail = 0; + mail = cmd; + ret = osal_msg_queue_write_copy(g_app_queue, (void *)&mail, + sizeof(A5133_CMD_TYPE_T), 0); + if (ret != OSAL_SUCCESS) { + PRINT_ERR("Error mag Check MSG 0x%02X send failed! err=0x%x! \r\n",cmd, ret); + } + +} + +static void a5133_service_check_task(void *arg) +{ + unused(arg); + int32_t ret; + uint32_t mail; + uint32_t msgsize = (uint32_t)sizeof(A5133_CMD_TYPE_T); + a5133_service_running_stat = true; + + a5133_gpio_init(); + PRINT("a5133_service_check_task !\r\n"); + + while (1) { + ret = osal_msg_queue_read_copy(g_app_queue, (void *)&mail, &msgsize, + OSAL_MSGQ_WAIT_FOREVER); + if (ret != OSAL_SUCCESS) { + continue; + } + + if (mail == A5133_SERVICE_CMD_TYPE_RUN_MASTER) + { + a5133_main(MASTER); + }else if (mail == A5133_SERVICE_CMD_TYPE_RUN_SLAVE) + { + a5133_main(SLAVE); + } + } + a5133_server_break_flag = 0; + a5133_service_running_stat = false; +} +void create_a5133_queue(void) +{ + if (osal_msg_queue_create("a5133_service_queue", A5133_SERVICE_MSG_COUNT, &g_app_queue, + 0, sizeof(A5133_CMD_TYPE_T)) != ERRCODE_SUCC) { + PRINT_ERR("[ppg][service] app create mail fail\n"); + } +} +errcode_t uapi_a5133_service_init(void) +{ + + + PRINT("uapi_a5133_service_init !\r\n"); + + app_task_definition_t taskcfg={0}; + taskcfg.create_queue_handle = create_a5133_queue; + taskcfg.attr.name="a5133_service"; + taskcfg.attr.priority = osPriorityBelowNormal1; + taskcfg.attr.stack_size = A5133_SERVICE_TASK_SIZE; + taskcfg.func = a5133_service_check_task; + taskcfg.use_mem = USE_EXTEND_MEM; + + errcode_t ret=uapi_create_osThread_custom(&taskcfg); + if(ret != ERRCODE_SUCC) + { + PRINT("create a5133_service failed %d!\r\n",ret); + return ERRCODE_FAIL; + } + + return ERRCODE_SUCC; +} + + +#ifdef __cplusplus +#if __cplusplus +} +#endif /* __cplusplus */ +#endif /* __cplusplus */ diff --git a/code/sdk/drivers/peripheral/a5133/service/a5133_service.h b/code/sdk/drivers/peripheral/a5133/service/a5133_service.h new file mode 100644 index 000000000..39aa64855 --- /dev/null +++ b/code/sdk/drivers/peripheral/a5133/service/a5133_service.h @@ -0,0 +1,50 @@ +/* + * @Author: penglei 1624952103@qq.com + * @Date: 2024-03-27 09:07:00 + * @LastEditors: SnickerSun snickersun@163.com + * @LastEditTime: 2024-07-20 08:16:02 + * @FilePath: /FD230/code/sdk/drivers/peripheral/ppg/service/a5133_service.h + * @Description: + * + * Copyright (c) 2024 by ${git_name_email}, All Rights Reserved. + */ +/** + * Copyright (c) @CompanyNameMagicTag 2022-2022. All rights reserved. \n + * + * Description: Test adc header \n + * Author: @CompanyNameTag \n + * History: \n + * 2022-08-16, Create file. \n + */ + +#ifndef A5133_SERVICE_H__ +#define A5133_SERVICE_H__ + +#ifdef __cplusplus +#if __cplusplus +extern "C" { +#endif /* __cplusplus */ +#endif /* __cplusplus */ + +#include "stdint.h" +#include "errcode.h" +typedef uint32_t A5133_CMD_TYPE_T ; +#define A5133_SERVICE_CMD_TYPE_RUN_MASTER 0x09 +#define A5133_SERVICE_CMD_TYPE_RUN_SLAVE 0x0A + +errcode_t uapi_a5133_service_init(void); +void uapi_a5133_service_deinit(void); +/** + * 测试指令 参数cmd 选项: A5133_SERVICE_CMD_START_CHECK,A5133_SERVICE_CMD_STOP_CHECK +*/ +void send_a5133_cmd_msg(int cmd); + + + +#ifdef __cplusplus +#if __cplusplus +} +#endif /* __cplusplus */ +#endif /* __cplusplus */ + +#endif \ No newline at end of file diff --git a/code/sdk/drivers/peripheral/utils/custom_utils_at_cmd.c b/code/sdk/drivers/peripheral/utils/custom_utils_at_cmd.c index 90ba3fb1d..372eb3196 100644 --- a/code/sdk/drivers/peripheral/utils/custom_utils_at_cmd.c +++ b/code/sdk/drivers/peripheral/utils/custom_utils_at_cmd.c @@ -9,7 +9,9 @@ #include "custom_runtime.h" #include "lwip/altcp_tls.h" #include "ConfigModelC.h" - +#ifdef SUPPORT_A5133_SERVICE +#include "service/a5133_service.h" +#endif #define ARRAY_COUNT(array) (sizeof(array) / sizeof(array[0])) #define CUSTOM_UTILS_MAX_ARGC 8 #define CUSTOM_UTILS_MAX_ARGV_LEN 256 @@ -794,6 +796,34 @@ static uint32_t custom_get_cywee_active_state(uint8_t *para, uint32_t paraLen, c wstp_print("cywee is not active !!!\n"); return ERRCODE_SUCC; } +#ifdef SUPPORT_A5133_SERVICE +static uint32_t custom_a5133_send_msg(uint8_t *para, uint32_t paraLen, char *strCommonCmd) +{ + UNUSED(strCommonCmd); + + uint8_t argv[CUSTOM_UTILS_MAX_ARGC][CUSTOM_UTILS_MAX_ARGV_LEN] = {0}; + uint32_t argc = 0; + + int ret = ConvertCmdToParam(para, paraLen, argv, &argc); + if (ret != CUSTOM_UTILS_SUCCESS) + { + wstp_print("CUSTOM_UTILSTEST ATCMD Convert Command Failed\n"); + return ERRCODE_FAIL; + } + + if (argc != 1) + { + wstp_print("CUSTOM_UTILSTEST A5133 ATCMD Set Parameter Failed argc %d\r\n"); + return ERRCODE_FAIL; + } + int cmd = atol((char *)argv[0]); + wstp_print("A5133 Service %d!!!\n",cmd); + send_a5133_cmd_msg(cmd); + + return ERRCODE_SUCC; +} +#endif + static const at_cmd_table_t g_custom_utils_cmd[] = { { (char *)"AT^CUSTOM_SN", custom_utils_setsn, (char *)"123456789ABCDEF2345678" }, @@ -854,7 +884,9 @@ static const at_cmd_table_t g_custom_utils_cmd[] = { {(char *)"AT^GETIMEI", custom_get_imei, (char *)" "}, {(char *)"AT^GETCHIPINFO", custom_get_cywee_chip_info, (char *)" "}, {(char *)"AT^GETCYWEEACTIVE", custom_get_cywee_active_state, (char *)" "}, - +#ifdef SUPPORT_A5133_SERVICE + {(char *)"AT^A5133SENDDATA", custom_a5133_send_msg, (char *)" "}, +#endif }; diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-native-js-lt22/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-native-js-lt22/libgfx_rm.a new file mode 100644 index 000000000..b75933c34 Binary files /dev/null and b/code/sdk/middleware/services/gpu/api/rm/brandy-native-js-lt22/libgfx_rm.a differ diff --git a/code/sdk/middleware/services/gui/hal/display/brandy-native-js-lt22/libdisplay_gfx.a b/code/sdk/middleware/services/gui/hal/display/brandy-native-js-lt22/libdisplay_gfx.a new file mode 100644 index 000000000..821e28a4a Binary files /dev/null and b/code/sdk/middleware/services/gui/hal/display/brandy-native-js-lt22/libdisplay_gfx.a differ diff --git a/code/sdk/middleware/services/gui/uikit/brandy-native-js-lt22/libuikit_ext.a b/code/sdk/middleware/services/gui/uikit/brandy-native-js-lt22/libuikit_ext.a new file mode 100644 index 000000000..213b424c9 Binary files /dev/null and b/code/sdk/middleware/services/gui/uikit/brandy-native-js-lt22/libuikit_ext.a differ diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-native-js-lt22/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-native-js-lt22/libx_vfs_private.a new file mode 100644 index 000000000..805841e57 Binary files /dev/null and b/code/sdk/middleware/utils/fs/vfs/brandy-native-js-lt22/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js-lt22/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js-lt22/libfs_yaffs2.a new file mode 100644 index 000000000..5732c59e4 Binary files /dev/null and b/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js-lt22/libfs_yaffs2.a differ diff --git a/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-native-js-lt22/libams.a b/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-native-js-lt22/libams.a new file mode 100644 index 000000000..31894302a Binary files /dev/null and b/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-native-js-lt22/libams.a differ diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-native-js-lt22/libace.a b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-native-js-lt22/libace.a new file mode 100644 index 000000000..fff3f6fbc Binary files /dev/null and b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-native-js-lt22/libace.a differ diff --git a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-native-js-lt22/libbms.a b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-native-js-lt22/libbms.a new file mode 100644 index 000000000..d39cac67c Binary files /dev/null and b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-native-js-lt22/libbms.a differ diff --git a/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-native-js-lt22/libjerryscript.a b/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-native-js-lt22/libjerryscript.a new file mode 100644 index 000000000..9d650b590 Binary files /dev/null and b/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-native-js-lt22/libjerryscript.a differ