diff --git a/.gitmodules b/.gitmodules index 389e23ce..513c5690 100644 --- a/.gitmodules +++ b/.gitmodules @@ -22,3 +22,6 @@ [submodule "Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/xidatong-riscv64/kendryte-sdk/kendryte-sdk-source"] path = Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/xidatong-riscv64/kendryte-sdk/kendryte-sdk-source url = https://code.gitlink.org.cn/chunyexixiaoyu/kendryte-sdk-source.git +[submodule "Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/k210_edu/kendryte-sdk/kendryte-sdk-source"] + path = Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/k210_edu/kendryte-sdk/kendryte-sdk-source + url = https://code.gitlink.org.cn/chunyexixiaoyu/kendryte-sdk-source.git diff --git a/APP_Framework/Applications/lv_app/SConscript b/APP_Framework/Applications/lv_app/SConscript new file mode 100644 index 00000000..e9ad8b1b --- /dev/null +++ b/APP_Framework/Applications/lv_app/SConscript @@ -0,0 +1,11 @@ +import os +from building import * +Import('RTT_ROOT') +Import('rtconfig') +cwd = GetCurrentDir() +DEPENDS = ["LIB_LV"] +SOURCES = [] +SOURCES = ['lv_init.c'] + ['lv_demo.c']+['lv_demo_calendar.c'] +path = [cwd] +objs = DefineGroup('sensor_app', src = SOURCES, depend = DEPENDS,CPPPATH = path) +Return("objs") \ No newline at end of file diff --git a/APP_Framework/Applications/lv_app/lv_demo_calendar.c b/APP_Framework/Applications/lv_app/lv_demo_calendar.c index 0bad80f8..f77d2723 100644 --- a/APP_Framework/Applications/lv_app/lv_demo_calendar.c +++ b/APP_Framework/Applications/lv_app/lv_demo_calendar.c @@ -39,7 +39,7 @@ static void event_handler(lv_event_t * e) void lv_demo_calendar(void) { lv_obj_t * calendar = lv_calendar_create(lv_scr_act()); - lv_obj_set_size(calendar, 320, 320);//lv_obj_set_size(calendar, 800, 480); + lv_obj_set_size(calendar, MY_DISP_HOR_RES, MY_DISP_VER_RES);//lv_obj_set_size(calendar, 800, 480); lv_obj_align(calendar, LV_ALIGN_CENTER, 0, 0); lv_obj_add_event_cb(calendar, event_handler, LV_EVENT_ALL, NULL); diff --git a/APP_Framework/Applications/sensor_app/SConscript b/APP_Framework/Applications/sensor_app/SConscript index d526a7b3..d2daa368 100644 --- a/APP_Framework/Applications/sensor_app/SConscript +++ b/APP_Framework/Applications/sensor_app/SConscript @@ -7,8 +7,14 @@ DEPENDS = ["SUPPORT_SENSOR_FRAMEWORK"] SOURCES = [] if GetDepend(['APPLICATION_SENSOR_CO2_ZG09']): SOURCES = ['co2_zg09.c'] + SOURCES +if GetDepend(['APPLICATION_SENSOR_CO2_G8S']): + SOURCES = ['co2_g8s.c'] + SOURCES if GetDepend(['APPLICATION_SENSOR_PM1_0_PS5308']): - SOURCES = ['pm1_0_ps5308.c.c'] + SOURCES + SOURCES = ['pm1_0_ps5308.c'] + SOURCES +if GetDepend(['APPLICATION_SENSOR_PM2_5_PS5308']): + SOURCES = ['pm2_5_ps5308.c'] + SOURCES +if GetDepend(['APPLICATION_SENSOR_PM10_PS5308']): + SOURCES = ['pm10_0_ps5308.c'] + SOURCES if GetDepend(['APPLICATION_SENSOR_VOICE_D124']): SOURCES = ['voice_d124.c'] + SOURCES if GetDepend(['APPLICATION_SENSOR_HUMIDITY_HS300X']): @@ -19,6 +25,16 @@ if GetDepend(['APPLICATION_SENSOR_CH4_AS830']): SOURCES = ['ch4_as830.c'] + SOURCES if GetDepend(['APPLICATION_SENSOR_HCHO']): SOURCES = ['hcho_tb600b_wq_hcho1os.c'] + SOURCES +if GetDepend(['APPLICATION_SENSOR_ALTITUDE_BMP180']): + SOURCES = ['altitude_bmp180.c'] + SOURCES +if GetDepend(['APPLICATION_SENSOR_TVOC_TB600B_TVOC10']): + SOURCES = ['tvoc_tb600b_tvoc10.c'] + SOURCES +if GetDepend(['APPLICATION_SENSOR_IAQ_TB600B_IAQ10']): + SOURCES = ['iaq_tb600b_iaq10.c'] + SOURCES +if GetDepend(['APPLICATION_SENSOR_WINDDIRECTION_QS_FX']): + SOURCES = ['winddirection_qs_fx.c'] + SOURCES +if GetDepend(['APPLICATION_SENSOR_WINDSPEED_QS_FS']): + SOURCES = ['windspeed_qs_fs.c'] + SOURCES path = [cwd] objs = DefineGroup('sensor_app', src = SOURCES, depend = DEPENDS,CPPPATH = path) Return("objs") \ No newline at end of file diff --git a/APP_Framework/Applications/sensor_app/co2_zg09.c b/APP_Framework/Applications/sensor_app/co2_zg09.c index ca3cffcb..6cd3ea55 100644 --- a/APP_Framework/Applications/sensor_app/co2_zg09.c +++ b/APP_Framework/Applications/sensor_app/co2_zg09.c @@ -28,6 +28,9 @@ void Co2Zg09(void) { struct SensorQuantity *co2 = SensorQuantityFind(SENSOR_QUANTITY_ZG09_CO2, SENSOR_QUANTITY_CO2); SensorQuantityOpen(co2); - printf("CO2 : %d ppm\n", SensorQuantityReadValue(co2)); + for (int i = 0; i < 5; i ++) { + PrivTaskDelay(2000); + printf("CO2 : %d ppm\n", SensorQuantityReadValue(co2)); + } SensorQuantityClose(co2); } \ No newline at end of file diff --git a/APP_Framework/Applications/sensor_app/hcho_tb600b_wq_hcho1os.c b/APP_Framework/Applications/sensor_app/hcho_tb600b_wq_hcho1os.c index 01069679..781ffe12 100644 --- a/APP_Framework/Applications/sensor_app/hcho_tb600b_wq_hcho1os.c +++ b/APP_Framework/Applications/sensor_app/hcho_tb600b_wq_hcho1os.c @@ -29,9 +29,10 @@ void HchoTb600bHcho1os(void) struct SensorQuantity *hcho = SensorQuantityFind(SENSOR_QUANTITY_TB600B_HCHO, SENSOR_QUANTITY_HCHO); SensorQuantityOpen(hcho); int32_t result = 0; - - result = SensorQuantityReadValue(hcho); - - printf("tvoc concentration is : %dppb\n", result); + for (int i = 0; i < 5; i ++) { + PrivTaskDelay(1000); + result = SensorQuantityReadValue(hcho); + printf("tvoc concentration is : %dppb\n", result); + } SensorQuantityClose(hcho); } \ No newline at end of file diff --git a/APP_Framework/Applications/sensor_app/humidity_hs300x.c b/APP_Framework/Applications/sensor_app/humidity_hs300x.c index 2cfeb4c8..4691b224 100644 --- a/APP_Framework/Applications/sensor_app/humidity_hs300x.c +++ b/APP_Framework/Applications/sensor_app/humidity_hs300x.c @@ -30,7 +30,7 @@ void HumiHs300x(void) int32_t humidity; struct SensorQuantity *humi = SensorQuantityFind(SENSOR_QUANTITY_HS300X_HUMIDITY, SENSOR_QUANTITY_HUMI); SensorQuantityOpen(humi); - for (i = 0; i < 10; i ++) { + for (i = 0; i < 5; i ++) { humidity = SensorQuantityReadValue(humi); printf("Humidity : %d.%d %%RH\n", humidity/10, humidity%10); PrivTaskDelay(500); diff --git a/APP_Framework/Applications/sensor_app/iaq_tb600b_iaq10.c b/APP_Framework/Applications/sensor_app/iaq_tb600b_iaq10.c index 12c82d6e..5e8d0e9a 100644 --- a/APP_Framework/Applications/sensor_app/iaq_tb600b_iaq10.c +++ b/APP_Framework/Applications/sensor_app/iaq_tb600b_iaq10.c @@ -29,9 +29,10 @@ void IaqTb600bIaq10(void) struct SensorQuantity *iaq = SensorQuantityFind(SENSOR_QUANTITY_TB600B_IAQ, SENSOR_QUANTITY_IAQ); SensorQuantityOpen(iaq); int32_t result = 0; - - result = SensorQuantityReadValue(iaq); - - printf("Gas concentration is : %dppb\n", result); + for (int i = 0; i < 5; i ++) { + PrivTaskDelay(1000); + result = SensorQuantityReadValue(iaq); + printf("Gas concentration is : %dppb\n", result); + } SensorQuantityClose(iaq); } \ No newline at end of file diff --git a/APP_Framework/Applications/sensor_app/pm10_0_ps5308.c b/APP_Framework/Applications/sensor_app/pm10_0_ps5308.c index 8d47c6ae..6bfa0274 100644 --- a/APP_Framework/Applications/sensor_app/pm10_0_ps5308.c +++ b/APP_Framework/Applications/sensor_app/pm10_0_ps5308.c @@ -29,6 +29,9 @@ void Pm100Ps5308(void) struct SensorQuantity *pm10_0 = SensorQuantityFind(SENSOR_QUANTITY_PS5308_PM10, SENSOR_QUANTITY_PM); SensorQuantityOpen(pm10_0); PrivTaskDelay(2000); - printf("PM10 : %d ug/m³\n", SensorQuantityReadValue(pm10_0)); + for (int i = 0; i < 10; i ++) { + PrivTaskDelay(1000); + printf("PM10 : %d ug/m³\n", SensorQuantityReadValue(pm10_0)); + } SensorQuantityClose(pm10_0); } \ No newline at end of file diff --git a/APP_Framework/Applications/sensor_app/pm1_0_ps5308.c b/APP_Framework/Applications/sensor_app/pm1_0_ps5308.c index 58515620..92d0e636 100644 --- a/APP_Framework/Applications/sensor_app/pm1_0_ps5308.c +++ b/APP_Framework/Applications/sensor_app/pm1_0_ps5308.c @@ -29,6 +29,9 @@ void Pm10Ps5308(void) struct SensorQuantity *pm1_0 = SensorQuantityFind(SENSOR_QUANTITY_PS5308_PM1_0, SENSOR_QUANTITY_PM); SensorQuantityOpen(pm1_0); PrivTaskDelay(2000); - printf("PM1.0 : %d ug/m³\n", SensorQuantityReadValue(pm1_0)); + for (int i = 0; i < 10; i ++) { + PrivTaskDelay(1000); + printf("PM1.0 : %d ug/m³\n", SensorQuantityReadValue(pm1_0)); + } SensorQuantityClose(pm1_0); } \ No newline at end of file diff --git a/APP_Framework/Applications/sensor_app/pm2_5_ps5308.c b/APP_Framework/Applications/sensor_app/pm2_5_ps5308.c index cee35b76..472f8657 100644 --- a/APP_Framework/Applications/sensor_app/pm2_5_ps5308.c +++ b/APP_Framework/Applications/sensor_app/pm2_5_ps5308.c @@ -29,6 +29,9 @@ void Pm25Ps5308(void) struct SensorQuantity *pm2_5 = SensorQuantityFind(SENSOR_QUANTITY_PS5308_PM2_5, SENSOR_QUANTITY_PM); SensorQuantityOpen(pm2_5); PrivTaskDelay(2000); - printf("PM2.5 : %d ug/m³\n", SensorQuantityReadValue(pm2_5)); + for (int i = 0; i < 10; i ++) { + PrivTaskDelay(1000); + printf("PM2.5 : %d ug/m³\n", SensorQuantityReadValue(pm2_5)); + } SensorQuantityClose(pm2_5); } \ No newline at end of file diff --git a/APP_Framework/Applications/sensor_app/temperature_hs300x.c b/APP_Framework/Applications/sensor_app/temperature_hs300x.c index 98f6d928..d4f2ba2b 100644 --- a/APP_Framework/Applications/sensor_app/temperature_hs300x.c +++ b/APP_Framework/Applications/sensor_app/temperature_hs300x.c @@ -30,12 +30,12 @@ void TempHs300x(void) int32_t temperature; struct SensorQuantity *temp = SensorQuantityFind(SENSOR_QUANTITY_HS300X_TEMPERATURE, SENSOR_QUANTITY_TEMP); SensorQuantityOpen(temp); - for (i = 0; i < 10; i ++) { + for (i = 0; i < 5; i ++) { temperature = SensorQuantityReadValue(temp); if (temperature > 0) - printf("Temperature : %d.%d ℃\n", temperature/10, temperature%10); + printf("Temperature : %d.%d ℃ \n", temperature/10, temperature%10); else - printf("Temperature : %d.%d ℃\n", temperature/10, -temperature%10); + printf("Temperature : %d.%d ℃ \n", temperature/10, -temperature%10); PrivTaskDelay(500); } diff --git a/APP_Framework/Applications/sensor_app/tvoc_tb600b_tvoc10.c b/APP_Framework/Applications/sensor_app/tvoc_tb600b_tvoc10.c index 4ffb4956..56059d31 100644 --- a/APP_Framework/Applications/sensor_app/tvoc_tb600b_tvoc10.c +++ b/APP_Framework/Applications/sensor_app/tvoc_tb600b_tvoc10.c @@ -29,9 +29,11 @@ void TvocTb600bTvoc10(void) struct SensorQuantity *tvoc = SensorQuantityFind(SENSOR_QUANTITY_TB600B_TVOC, SENSOR_QUANTITY_TVOC); SensorQuantityOpen(tvoc); int32_t result = 0; - - result = SensorQuantityReadValue(tvoc); - - printf("tvoc concentration is : %dppb\n", result); + PrivTaskDelay(1000); + for (int i = 0; i < 3; i ++) { + PrivTaskDelay(1000); + result = SensorQuantityReadValue(tvoc); + printf("tvoc concentration is : %dppb\n", result); + } SensorQuantityClose(tvoc); } \ No newline at end of file diff --git a/APP_Framework/Applications/sensor_app/voice_d124.c b/APP_Framework/Applications/sensor_app/voice_d124.c index 8b7e9a35..3e9631d9 100644 --- a/APP_Framework/Applications/sensor_app/voice_d124.c +++ b/APP_Framework/Applications/sensor_app/voice_d124.c @@ -29,7 +29,10 @@ void VoiceD124(void) struct SensorQuantity *voice = SensorQuantityFind(SENSOR_QUANTITY_D124_VOICE, SENSOR_QUANTITY_VOICE); SensorQuantityOpen(voice); PrivTaskDelay(2000); - uint16_t result = SensorQuantityReadValue(voice); - printf("voice : %d.%d dB\n", result/(10*voice->value.decimal_places), result%(10*voice->value.decimal_places)); + for (int i = 0; i < 10; i ++) { + uint16_t result = SensorQuantityReadValue(voice); + printf("voice : %d.%d dB\n", result/(10*voice->value.decimal_places), result%(10*voice->value.decimal_places)); + PrivTaskDelay(1000); + } SensorQuantityClose(voice); } \ No newline at end of file diff --git a/APP_Framework/Applications/sensor_app/winddirection_qs_fx.c b/APP_Framework/Applications/sensor_app/winddirection_qs_fx.c index 70c78f06..a5b99450 100644 --- a/APP_Framework/Applications/sensor_app/winddirection_qs_fx.c +++ b/APP_Framework/Applications/sensor_app/winddirection_qs_fx.c @@ -29,14 +29,10 @@ void WindDirectionQsFx(void) struct SensorQuantity *wind_direction = SensorQuantityFind(SENSOR_QUANTITY_QS_FX_WINDDIRECTION, SENSOR_QUANTITY_WINDDIRECTION); SensorQuantityOpen(wind_direction); PrivTaskDelay(2000); - int result = 0; - for(int i=0;i<2000;i++) - { - result = 0; - PrivTaskDelay(1000); - result = SensorQuantityReadValue(wind_direction); - if(result > 0) - printf("wind direction : %d degree\n", result); + for (int i = 0; i < 10; i ++) { + uint16_t result = SensorQuantityReadValue(wind_direction); + printf("wind direction : %d degree\n", result); + PrivTaskDelay(2000); } SensorQuantityClose(wind_direction); } diff --git a/APP_Framework/Applications/sensor_app/windspeed_qs_fs.c b/APP_Framework/Applications/sensor_app/windspeed_qs_fs.c index b55f4e3e..1f444b13 100644 --- a/APP_Framework/Applications/sensor_app/windspeed_qs_fs.c +++ b/APP_Framework/Applications/sensor_app/windspeed_qs_fs.c @@ -29,14 +29,10 @@ void WindSpeedQsFs(void) struct SensorQuantity *wind_speed = SensorQuantityFind(SENSOR_QUANTITY_QS_FS_WINDSPEED, SENSOR_QUANTITY_WINDSPEED); SensorQuantityOpen(wind_speed); PrivTaskDelay(2000); - int result = 0; - for(int i=0;i<2000;i++) - { - result = 0; - PrivTaskDelay(1000); - result = SensorQuantityReadValue(wind_speed); - if(result > 0) - printf("wind speed : %d.%d m/s\n", result/10, result%10); + for (int i = 0; i < 10; i ++) { + uint16_t result = SensorQuantityReadValue(wind_speed); + printf("wind speed : %d.%d m/s\n", result/10, result%10); + PrivTaskDelay(2000); } SensorQuantityClose(wind_speed); } diff --git a/APP_Framework/Framework/connection/bluetooth/hc08/Kconfig b/APP_Framework/Framework/connection/bluetooth/hc08/Kconfig index 042cf75a..21701224 100644 --- a/APP_Framework/Framework/connection/bluetooth/hc08/Kconfig +++ b/APP_Framework/Framework/connection/bluetooth/hc08/Kconfig @@ -69,17 +69,17 @@ if ADD_RTTHREAD_FETURES config ADAPTER_HC08_DRIVER_EXTUART bool "Using extra uart to support bluetooth" - default n + default y config ADAPTER_HC08_DRIVER string "HC08 device uart driver path" - default "/dev/dev2" + default "/dev/extuart_dev2" depends on !ADAPTER_HC08_DRIVER_EXTUART if ADAPTER_HC08_DRIVER_EXTUART config ADAPTER_HC08_DRIVER string "HC08 device extra uart driver path" - default "/dev/dev2" + default "/dev/extuart_dev2" config ADAPTER_HC08_DRIVER_EXT_PORT int "if HC08 device using extuart, choose port" diff --git a/APP_Framework/Framework/connection/wifi/adapter_wifi.c b/APP_Framework/Framework/connection/wifi/adapter_wifi.c index 6c40f741..20219bba 100644 --- a/APP_Framework/Framework/connection/wifi/adapter_wifi.c +++ b/APP_Framework/Framework/connection/wifi/adapter_wifi.c @@ -424,3 +424,130 @@ int AdapterWifiTestWithParam(int argc, char *argv[]) #endif +#ifdef ADD_RTTHREAD_FETURES + +enum +{ + APT_WIFI_PARAM_IP, + APT_WIFI_PARAM_PORT, + APT_WIFI_PARAM_SSID, + APT_WIFI_PARAM_PWD, + APT_WIFI_PARAM_GW, + APT_WIFI_PARAM_SERVER, + APT_WIFI_PARAM_MASK, + APT_WIFI_PARAM_PING, + APT_WIFI_PARAM_NUM +}; + +#define APT_WIFI_PARAM_LEN 128 + +char wifi_param[APT_WIFI_PARAM_NUM][APT_WIFI_PARAM_LEN] = {0}; + +#define CHECK_RET(__func) \ +ret = __func; \ +if(ret != 0){ \ + printf("%s %d failed\n", __func__, __LINE__); \ + AdapterDeviceClose(adapter); \ + free(adapter->adapter_param); \ + return ret; \ +}; + +void AdapterWifiGetParam(int argc, char *argv[]) +{ + int i, j; + char *param_str[] = {"ip", "port", "ssid", "pwd", "gw", "server", "mask", "ping"}; + char *default_str[] = + { + "192.168.141.34", + "12345", + "test", + "tttttttt", + "192.168.141.119", + "192.168.141.119", + "255.255.255.0", + "220.181.38.251" + }; + + for(i = 0; i < APT_WIFI_PARAM_NUM; i ++) + { + memset(wifi_param[i], 0, APT_WIFI_PARAM_LEN); + strcpy(wifi_param[i], default_str[i]); + } + + for(i = 0; i < argc; i ++) + { + for(j = 0; j < APT_WIFI_PARAM_NUM; j ++) + { + if(strncmp(argv[i], param_str[j], strlen(param_str[j])) == 0) + { + printf("wifi %d: %s\n", j, argv[i] + strlen(param_str[j]) + 1); + strcpy(wifi_param[j], argv[i] + strlen(param_str[j]) + 1); + } + } + } + + printf("--- wifi parameter ---\n"); + for(i = 0; i < APT_WIFI_PARAM_NUM; i ++) + { + printf("%7.7s = %s\n", param_str[i], wifi_param[i]); + } + printf("----------------------\n"); +} + + +int AdapterWifiTestWithParam(int argc, char *argv[]) +{ + int i, ret; + + struct Adapter* adapter = AdapterDeviceFindByName(ADAPTER_WIFI_NAME); + AdapterWifiGetParam(argc, argv); + + enum NetRoleType net_role = CLIENT; + enum IpType ip_type = IPV4; + + adapter->adapter_param = malloc(sizeof(struct WifiParam)); + memset(adapter->adapter_param, 0, sizeof(struct WifiParam)); + struct WifiParam *apt_param = (struct WifiParam *)adapter->adapter_param; + strcpy(apt_param->wifi_ssid, wifi_param[APT_WIFI_PARAM_SSID]); + strcpy(apt_param->wifi_pwd, wifi_param[APT_WIFI_PARAM_PWD]); + + printf("apt %p ssid %p %s\n", apt_param, apt_param->wifi_ssid); + + CHECK_RET(AdapterDeviceOpen(adapter)); + CHECK_RET(AdapterDeviceSetUp(adapter)); + + CHECK_RET(AdapterDeviceSetAddr(adapter, wifi_param[APT_WIFI_PARAM_IP], wifi_param[APT_WIFI_PARAM_GW], + wifi_param[APT_WIFI_PARAM_MASK])); + + CHECK_RET(AdapterDeviceNetstat(adapter)); + + adapter->socket.protocal = SOCKET_PROTOCOL_TCP; + CHECK_RET(AdapterDeviceConnect(adapter, net_role, wifi_param[APT_WIFI_PARAM_SERVER], + wifi_param[APT_WIFI_PARAM_PORT], ip_type)); + + const char *wifi_msg = "Wifi Test"; + for(i = 0; i < 10; i++) + { + AdapterDeviceSend(adapter, wifi_msg, strlen(wifi_msg)); + PrivTaskDelay(4000); + } + + char wifi_recv_msg[APT_WIFI_PARAM_LEN]; + memset(wifi_recv_msg, 0, APT_WIFI_PARAM_LEN); + for(i = 0; i < APT_WIFI_PARAM_NUM; i ++) + { + AdapterDeviceRecv(adapter, wifi_recv_msg, 128); + PrivTaskDelay(1000); + } + +// printf("ping %s\n", wifi_param[APT_WIFI_PARAM_PING]); +// +// CHECK_RET(AdapterDevicePing(adapter, wifi_param[APT_WIFI_PARAM_PING])); +// AdapterDeviceDisconnect(adapter, NULL); + ret = AdapterDeviceClose(adapter); + free(adapter->adapter_param); + return ret; +} +PRIV_SHELL_CMD_FUNCTION(AdapterWifiTestWithParam, a WiFi test sample, PRIV_SHELL_CMD_MAIN_ATTR); +#endif + diff --git a/APP_Framework/Framework/connection/wifi/esp8285_wifi/Kconfig b/APP_Framework/Framework/connection/wifi/esp8285_wifi/Kconfig index 6fea4cc6..ad6a1d15 100644 --- a/APP_Framework/Framework/connection/wifi/esp8285_wifi/Kconfig +++ b/APP_Framework/Framework/connection/wifi/esp8285_wifi/Kconfig @@ -8,6 +8,11 @@ if ADD_NUTTX_FETURES default "/dev/ttyS1" endif +if ADD_RTTHREAD_FETURES + config ADAPTER_ESP8285_DRIVER + string "ESP8285 device uart driver path" + default "/dev/uart1" +endif if ADD_XIZI_FETURES config ADAPTER_ESP8285_DRIVER string "ESP8285 device uart driver path" diff --git a/APP_Framework/Framework/connection/wifi/esp8285_wifi/SConscript b/APP_Framework/Framework/connection/wifi/esp8285_wifi/SConscript new file mode 100644 index 00000000..c4544874 --- /dev/null +++ b/APP_Framework/Framework/connection/wifi/esp8285_wifi/SConscript @@ -0,0 +1,12 @@ +from building import * +import os + +cwd = GetCurrentDir() +src = [] +if GetDepend(['ADAPTER_ESP8285_WIFI']): + src += ['esp8285_wifi.c'] + +group = DefineGroup('connection wifi esp8285', src, depend = [], CPPPATH = [cwd]) + + +Return('group') \ No newline at end of file diff --git a/APP_Framework/Framework/connection/zigbee/SConscript b/APP_Framework/Framework/connection/zigbee/SConscript new file mode 100644 index 00000000..56af4707 --- /dev/null +++ b/APP_Framework/Framework/connection/zigbee/SConscript @@ -0,0 +1,19 @@ +import os +Import('RTT_ROOT') +from building import * +SOURCES = [] +if GetDepend(['CONNECTION_ADAPTER_ZIGBEE']): + SOURCES = ['adapter_zigbee.c'] + SOURCES +objs = [] +cwd = GetCurrentDir() +path = [cwd] +group = DefineGroup('zigbee', SOURCES, depend = [], CPPPATH = [cwd]) +objs = objs + group +list = os.listdir(cwd) + +for d in list: + path = os.path.join(cwd, d) + if os.path.isfile(os.path.join(path, 'SConscript')): + objs = objs + SConscript(os.path.join(path, 'SConscript')) + +Return('objs') \ No newline at end of file diff --git a/APP_Framework/Framework/connection/zigbee/adapter_zigbee.c b/APP_Framework/Framework/connection/zigbee/adapter_zigbee.c index 8089ed60..ce7d278a 100644 --- a/APP_Framework/Framework/connection/zigbee/adapter_zigbee.c +++ b/APP_Framework/Framework/connection/zigbee/adapter_zigbee.c @@ -124,10 +124,8 @@ int SendZigbee(int argc, char *argv[]) { const char *send_msg = argv[1]; int ret = 0; - struct Adapter* adapter = AdapterDeviceFindByName(ADAPTER_ZIGBEE_NAME); - printf("send argv1 %s\n",argv[1]); ret = AdapterDeviceSend(adapter, send_msg, strlen(send_msg)); if(ret < 0) { printf(" adapter send failed\n"); @@ -141,13 +139,14 @@ PRIV_SHELL_CMD_FUNCTION(SendZigbee, a ZigBee send sample, PRIV_SHELL_CMD_MAIN_AT int RecvZigbee(void) { - char recv_msg[128]; + char recv_msg[128]={0}; struct Adapter* adapter = AdapterDeviceFindByName(ADAPTER_ZIGBEE_NAME); - memset(recv_msg,0,128); - AdapterDeviceRecv(adapter, recv_msg, 128); - PrivTaskDelay(2000); - printf("zigbee recv msg %s\n", recv_msg); - + while(1) { + AdapterDeviceRecv(adapter, recv_msg, 128); + printf("zigbee recv msg : %s\n", recv_msg); + PrivTaskDelay(2000); + memset(recv_msg,0,128); + } return 0; } PRIV_SHELL_CMD_FUNCTION(RecvZigbee, a ZigBee receive sample, PRIV_SHELL_CMD_MAIN_ATTR); diff --git a/APP_Framework/Framework/connection/zigbee/e18/Kconfig b/APP_Framework/Framework/connection/zigbee/e18/Kconfig index 0551d4cb..029d758a 100644 --- a/APP_Framework/Framework/connection/zigbee/e18/Kconfig +++ b/APP_Framework/Framework/connection/zigbee/e18/Kconfig @@ -85,5 +85,30 @@ endif endif if ADD_RTTHREAD_FETURES + config ADAPTER_E18_MODEPIN + int "E18 MODE pin number" + default "46" + config ADAPTER_E18_PIN_DRIVER + string "E18 device pin driver path" + default "/dev/pin" + + config ADAPTER_E18_DRIVER_EXTUART + bool "Using extra uart to support zigbee" + default y + + config ADAPTER_E18_DRIVER + string "E18 device uart driver path" + default "/dev/extuart_dev1" + depends on !ADAPTER_E18_DRIVER_EXTUART + + if ADAPTER_E18_DRIVER_EXTUART + config ADAPTER_E18_DRIVER + string "E18 device extra uart driver path" + default "/dev/extuart_dev1" + + config ADAPTER_E18_DRIVER_EXT_PORT + int "if E18 device using extuart, choose port" + default "1" + endif endif diff --git a/APP_Framework/Framework/connection/zigbee/e18/SConscript b/APP_Framework/Framework/connection/zigbee/e18/SConscript new file mode 100644 index 00000000..f1a9ddb1 --- /dev/null +++ b/APP_Framework/Framework/connection/zigbee/e18/SConscript @@ -0,0 +1,10 @@ +from building import * +import os + +cwd = GetCurrentDir() +src = [] +if GetDepend(['ADAPTER_E18']): + src += ['e18.c'] +group = DefineGroup('connection zigbee e18', src, depend = [], CPPPATH = [cwd]) + +Return('group') \ No newline at end of file diff --git a/APP_Framework/Framework/connection/zigbee/e18/e18.c b/APP_Framework/Framework/connection/zigbee/e18/e18.c index b07a4c3e..18864a6e 100644 --- a/APP_Framework/Framework/connection/zigbee/e18/e18.c +++ b/APP_Framework/Framework/connection/zigbee/e18/e18.c @@ -69,6 +69,8 @@ static int E18HardwareModeGet() #else return E18_AS_HEX_MODE; #endif +#elif defined(ADD_RTTHREAD_FETURES) + return E18_AS_HEX_MODE; #else int ret = 0; int pin_fd; @@ -229,6 +231,8 @@ static int E18NetworkModeConfig(struct Adapter *adapter) out: #ifdef ADD_NUTTX_FETURES if(E18_AS_HEX_MODE == mode) +#elif defined(ADD_RTTHREAD_FETURES) + if(E18_AS_HEX_MODE == mode) #else if(E18_AS_AT_MODE == mode) #endif @@ -304,6 +308,8 @@ static int E18NetRoleConfig(struct Adapter *adapter) out: #ifdef ADD_NUTTX_FETURES if(E18_AS_HEX_MODE == mode) +#elif defined(ADD_RTTHREAD_FETURES) + if(E18_AS_HEX_MODE == mode) #else if(E18_AS_AT_MODE == mode) #endif @@ -451,6 +457,8 @@ static int E18Join(struct Adapter *adapter, unsigned char *priv_net_group) if(!ret){ #ifdef ADD_NUTTX_FETURES if(E18_AS_HEX_MODE == mode) +#elif defined(ADD_RTTHREAD_FETURES) + if(E18_AS_HEX_MODE == mode) #else if(E18_AS_AT_MODE == mode) #endif diff --git a/APP_Framework/Framework/framework_init.c b/APP_Framework/Framework/framework_init.c index 20d56ab2..5fbba708 100644 --- a/APP_Framework/Framework/framework_init.c +++ b/APP_Framework/Framework/framework_init.c @@ -40,6 +40,7 @@ extern int Tb600bTvoc10TvocInit(void); extern int Tb600bWqHcho1osInit(void); extern int QsFxWindDirectionInit(void); extern int QsFsWindSpeedInit(void); +extern int Bmp180AltitudeInit(void); extern int lv_port_init(void); @@ -140,6 +141,9 @@ static struct InitDesc sensor_desc[] = { "tvoc_tb600b_wq_hcho1os", Tb600bWqHcho1osInit }, #endif +#ifdef SENSOR_DEVICE_BMP180 + { "bmp180_altitude_1", Bmp180AltitudeInit }, +#endif { "NULL", NULL }, }; diff --git a/APP_Framework/Framework/sensor/altitude/Kconfig b/APP_Framework/Framework/sensor/altitude/Kconfig index afbbef1f..82642f73 100644 --- a/APP_Framework/Framework/sensor/altitude/Kconfig +++ b/APP_Framework/Framework/sensor/altitude/Kconfig @@ -27,6 +27,12 @@ config SENSOR_BMP180 endif if ADD_RTTHREAD_FETURES - + config SENSOR_DEVICE_BMP180_DEV + string "BMP180 device name" + default "/dev/i2c1_dev0" + + config SENSOR_DEVICE_BMP180_I2C_ADDR + hex "BMP180 device i2c address" + default 0x77 endif endif diff --git a/APP_Framework/Framework/sensor/altitude/bmp180/bmp180.c b/APP_Framework/Framework/sensor/altitude/bmp180/bmp180.c index a5c9da07..4ce295cc 100644 --- a/APP_Framework/Framework/sensor/altitude/bmp180/bmp180.c +++ b/APP_Framework/Framework/sensor/altitude/bmp180/bmp180.c @@ -24,10 +24,10 @@ static struct SensorDevice bmp180; typedef struct { - int8_t ac_data[3]; - uint8_t unsigned_ac_data[3]; - int8_t b_data[2]; - int8_t m_data[3]; + int16 ac_data[3]; + uint16 unsigned_ac_data[3]; + int16 b_data[2]; + int16 m_data[3]; }Bmp180RegData; static Bmp180RegData bmp180_reg_data; @@ -35,6 +35,10 @@ static Bmp180RegData bmp180_reg_data; const static unsigned char OSS = 0; // Oversampling Setting static long CalTemp_data = 0; +// I2c configuration +uint16_t i2c_dev_addr = SENSOR_DEVICE_BMP180_I2C_ADDR; +struct PrivIoctlCfg ioctl_cfg; + static struct SensorProductInfo info = { (SENSOR_ABILITY_ALTITUDE), @@ -50,7 +54,6 @@ static struct SensorProductInfo info = static int SensorDeviceOpen(struct SensorDevice *sdev) { int result; - uint16_t i2c_dev_addr = SENSOR_DEVICE_BMP180_I2C_ADDR; sdev->fd = PrivOpen(SENSOR_DEVICE_BMP180_DEV, O_RDWR); if (sdev->fd < 0) { @@ -58,7 +61,6 @@ static int SensorDeviceOpen(struct SensorDevice *sdev) return -1; } - struct PrivIoctlCfg ioctl_cfg; ioctl_cfg.ioctl_driver_type = I2C_TYPE; ioctl_cfg.args = &i2c_dev_addr; result = PrivIoctl(sdev->fd, OPE_INT, &ioctl_cfg); @@ -74,6 +76,11 @@ static int SensorDeviceOpen(struct SensorDevice *sdev) */ static int SensorDeviceWrite(struct SensorDevice *sdev, const void *buf, size_t len) { +#ifdef ADD_RTTHREAD_FETURES + ioctl_cfg.ioctl_driver_type = I2C_TYPE; + ioctl_cfg.args = &i2c_dev_addr; + PrivIoctl(sdev->fd, OPE_INT, &ioctl_cfg); +#endif if (PrivWrite(sdev->fd, buf, len) < 0) return -1; @@ -88,6 +95,11 @@ static int SensorDeviceWrite(struct SensorDevice *sdev, const void *buf, size_t */ static int SensorDeviceRead(struct SensorDevice *sdev, size_t len) { +#ifdef ADD_RTTHREAD_FETURES + ioctl_cfg.ioctl_driver_type = I2C_TYPE; + ioctl_cfg.args = &i2c_dev_addr; + PrivIoctl(sdev->fd, OPE_INT, &ioctl_cfg); +#endif //Read i2c device data from i2c device address if (PrivRead(sdev->fd, sdev->buffer, len) < 0) return -1; @@ -158,7 +170,7 @@ static uint16_t SensorDeviceBmp180ReadUT(struct SensorDevice *sdev) printf("SensorDeviceBmp180ReadUT write reg 0xF4 error. return 0x0\n"); return 0; } - + PrivTaskDelay(5); return SensorDeviceBmp180ReadRegs(sdev, 0xF6); } @@ -176,7 +188,7 @@ static uint16_t SensorDeviceBmp180ReadUP(struct SensorDevice *sdev) printf("SensorDeviceBmp180ReadUP write reg 0xF4 error. return 0x0\n"); return 0; } - + PrivTaskDelay(5); return SensorDeviceBmp180ReadRegs(sdev, 0xF6); } @@ -281,6 +293,9 @@ static int32_t ReadAltitude(struct SensorQuantity *quant) bmp180_temperature = SensorDeviceBmp180CalTemp(quant->sdev, ut, &bmp180_reg_data); bmp180_pressure = SensorDeviceBmp180CalPressure(quant->sdev, up, &bmp180_reg_data); bmp180_aititude = SensorDeviceBmp180CalAltitude(bmp180_pressure); + printf("Bmp180 temperature is : %.2f ℃ \n",bmp180_temperature); + printf("Bmp180 pressure = %.2f Pa\n",bmp180_pressure); + printf("Bmp180 aititude = %.2f m\n",bmp180_aititude); return (int32_t)bmp180_pressure; } @@ -317,6 +332,3 @@ int Bmp180AltitudeInit(void) return 0; } - - - diff --git a/APP_Framework/Framework/sensor/co2/Kconfig b/APP_Framework/Framework/sensor/co2/Kconfig index 78a965e8..e2a0ef14 100644 --- a/APP_Framework/Framework/sensor/co2/Kconfig +++ b/APP_Framework/Framework/sensor/co2/Kconfig @@ -108,6 +108,24 @@ config SENSOR_G8S endif if ADD_RTTHREAD_FETURES + config SENSOR_G8S_DRIVER_EXTUART + bool "Using extra uart to support g8-s" + default n + + config SENSOR_DEVICE_G8S_DEV + string "g8-s device uart path" + default "/dev/uart2_dev2" + depends on !SENSOR_G8S_DRIVER_EXTUART + + if SENSOR_G8S_DRIVER_EXTUART + config SENSOR_DEVICE_G8S_DEV + string "g8-s device extra uart path" + default "/dev/extuart_dev5" + + config SENSOR_DEVICE_G8S_DEV_EXT_PORT + int "if g8-s device using extuart, choose port" + default "5" + endif endif endif diff --git a/APP_Framework/Framework/sensor/hcho/tb600b_wq_hcho1os/tb600b_wq_hcho1os.c b/APP_Framework/Framework/sensor/hcho/tb600b_wq_hcho1os/tb600b_wq_hcho1os.c index d1b0d3d2..b1179fd4 100644 --- a/APP_Framework/Framework/sensor/hcho/tb600b_wq_hcho1os/tb600b_wq_hcho1os.c +++ b/APP_Framework/Framework/sensor/hcho/tb600b_wq_hcho1os/tb600b_wq_hcho1os.c @@ -142,7 +142,7 @@ static uint8_t getCheckSum(uint8_t *packet) { uint8_t i; uint8_t checksum = 0; - for( i = 1; i < 12; i++) + for( i = 1; i < 8; i++) { checksum += packet[i]; } diff --git a/APP_Framework/Framework/sensor/iaq/Kconfig b/APP_Framework/Framework/sensor/iaq/Kconfig index 6b52c1db..cde2a37e 100644 --- a/APP_Framework/Framework/sensor/iaq/Kconfig +++ b/APP_Framework/Framework/sensor/iaq/Kconfig @@ -43,6 +43,23 @@ config SENSOR_TB600B_IAQ10 endif if ADD_RTTHREAD_FETURES + config SENSOR_TB600B_IAQ10_DRIVER_EXTUART + bool "Using extra uart to support tb600b iaq10" + default y + config SENSOR_DEVICE_TB600B_IAQ10_DEV + string "tb600b iaq10 device uart path" + default "/dev/uart2_dev2" + depends on !SENSOR_TB600B_IAQ10_DRIVER_EXTUART + + if SENSOR_TB600B_IAQ10_DRIVER_EXTUART + config SENSOR_DEVICE_TB600B_IAQ10_DEV + string "tb600b iaq10 device extra uart path" + default "/dev/extuart_dev6" + + config SENSOR_DEVICE_TB600B_IAQ10_DEV_EXT_PORT + int "if TB600B_IAQ10 device using extuart, choose port" + default "6" + endif endif endif diff --git a/APP_Framework/Framework/sensor/iaq/SConscript b/APP_Framework/Framework/sensor/iaq/SConscript new file mode 100644 index 00000000..f307e3f7 --- /dev/null +++ b/APP_Framework/Framework/sensor/iaq/SConscript @@ -0,0 +1,14 @@ +import os +Import('RTT_ROOT') +from building import * + +cwd = GetCurrentDir() +objs = [] +list = os.listdir(cwd) + +for d in list: + path = os.path.join(cwd, d) + if os.path.isfile(os.path.join(path, 'SConscript')): + objs = objs + SConscript(os.path.join(path, 'SConscript')) + +Return('objs') diff --git a/APP_Framework/Framework/sensor/iaq/tb600b_iaq10/SConscript b/APP_Framework/Framework/sensor/iaq/tb600b_iaq10/SConscript new file mode 100644 index 00000000..2625c61b --- /dev/null +++ b/APP_Framework/Framework/sensor/iaq/tb600b_iaq10/SConscript @@ -0,0 +1,10 @@ +from building import * +import os + +cwd = GetCurrentDir() +src = [] +if GetDepend(['SENSOR_TB600B_IAQ10']): + src += ['tb600b_iaq10.c'] +group = DefineGroup('sensor IAQ10 TB600B', src, depend = [], CPPPATH = [cwd]) + +Return('group') \ No newline at end of file diff --git a/APP_Framework/Framework/sensor/iaq/tb600b_iaq10/tb600b_iaq10.c b/APP_Framework/Framework/sensor/iaq/tb600b_iaq10/tb600b_iaq10.c index 4d0a99ed..17761fe0 100644 --- a/APP_Framework/Framework/sensor/iaq/tb600b_iaq10/tb600b_iaq10.c +++ b/APP_Framework/Framework/sensor/iaq/tb600b_iaq10/tb600b_iaq10.c @@ -192,7 +192,7 @@ static int32_t QuantityRead(struct SensorQuantity *quant) result.TL = ((int)((quant->sdev->buffer[8] << 8)|quant->sdev->buffer[9]))%100; result.RhH = ((unsigned int)((quant->sdev->buffer[10] << 8)|quant->sdev->buffer[11]))/100; result.RhL = ((unsigned int)((quant->sdev->buffer[10] << 8)|quant->sdev->buffer[11]))%100; - printf("Gas concentration is : %dppb\nThe temperature is : %d.%d℃\nThe humidity is : %d.%drh%%\n", result.gas, result.TH, result.TL, result.RhH, result.RhL); + printf("Gas concentration is : %dppb\nThe temperature is : %d.%d℃ \nThe humidity is : %d.%drh%%\n", result.gas, result.TH, result.TL, result.RhH, result.RhL); return result.gas; } else diff --git a/APP_Framework/Framework/sensor/pm/Kconfig b/APP_Framework/Framework/sensor/pm/Kconfig index 5c9d7069..f087009a 100644 --- a/APP_Framework/Framework/sensor/pm/Kconfig +++ b/APP_Framework/Framework/sensor/pm/Kconfig @@ -69,6 +69,23 @@ config SENSOR_PS5308 endif if ADD_RTTHREAD_FETURES + config SENSOR_PS5308_DRIVER_EXTUART + bool "Using extra uart to support PS5308" + default y + config SENSOR_DEVICE_PS5308_DEV + string "PS5308 device name" + default "/dev/uart2_dev2" + depends on !SENSOR_PS5308_DRIVER_EXTUART + + if SENSOR_PS5308_DRIVER_EXTUART + config SENSOR_DEVICE_PS5308_DEV + string "PS5308 device extra uart path" + default "/dev/extuart_dev6" + + config SENSOR_DEVICE_PS5308_DEV_EXT_PORT + int "if PS5308 device using extuart, choose port" + default "6" + endif endif endif diff --git a/APP_Framework/Framework/sensor/pm/SConscript b/APP_Framework/Framework/sensor/pm/SConscript new file mode 100644 index 00000000..f307e3f7 --- /dev/null +++ b/APP_Framework/Framework/sensor/pm/SConscript @@ -0,0 +1,14 @@ +import os +Import('RTT_ROOT') +from building import * + +cwd = GetCurrentDir() +objs = [] +list = os.listdir(cwd) + +for d in list: + path = os.path.join(cwd, d) + if os.path.isfile(os.path.join(path, 'SConscript')): + objs = objs + SConscript(os.path.join(path, 'SConscript')) + +Return('objs') diff --git a/APP_Framework/Framework/sensor/pm/ps5308/SConscript b/APP_Framework/Framework/sensor/pm/ps5308/SConscript new file mode 100644 index 00000000..9ac76ec9 --- /dev/null +++ b/APP_Framework/Framework/sensor/pm/ps5308/SConscript @@ -0,0 +1,10 @@ +from building import * +import os + +cwd = GetCurrentDir() +src = [] +if GetDepend(['SENSOR_DEVICE_PS5308']): + src += ['ps5308.c'] +group = DefineGroup('sensor PS5308 DEVICE', src, depend = [], CPPPATH = [cwd]) + +Return('group') \ No newline at end of file diff --git a/APP_Framework/Framework/sensor/pm/ps5308/ps5308.c b/APP_Framework/Framework/sensor/pm/ps5308/ps5308.c index 615fc398..90252010 100644 --- a/APP_Framework/Framework/sensor/pm/ps5308/ps5308.c +++ b/APP_Framework/Framework/sensor/pm/ps5308/ps5308.c @@ -78,12 +78,18 @@ static int SensorDeviceOpen(struct SensorDevice *sdev) cfg.port_configure = PORT_CFG_INIT; #endif - result = PrivIoctl(sdev->fd, OPE_INT, &cfg); + struct PrivIoctlCfg ioctl_cfg; + ioctl_cfg.ioctl_driver_type = SERIAL_TYPE; + ioctl_cfg.args = &cfg; + result = PrivIoctl(sdev->fd, OPE_INT, &ioctl_cfg); +#ifdef ADD_RTTHREAD_FETURES + return result; +#else PrivTaskCreate(&active_task_id, NULL, &ReadTask, sdev); PrivTaskStartup(&active_task_id); - return result; +#endif } /** @@ -93,8 +99,12 @@ static int SensorDeviceOpen(struct SensorDevice *sdev) */ static int SensorDeviceClose(struct SensorDevice *sdev) { +#ifdef ADD_RTTHREAD_FETURES + PrivMutexDelete(&buff_lock); +#else PrivTaskDelete(active_task_id, 0); PrivMutexDelete(&buff_lock); +#endif return 0; } @@ -172,6 +182,16 @@ static int32_t ReadPm1_0(struct SensorQuantity *quant) uint32_t result; if (quant->sdev->done->read != NULL) { + #ifdef ADD_RTTHREAD_FETURES + uint32_t len = 0; + PrivMutexObtain(&buff_lock); + len = quant->sdev->done->read(quant->sdev, 32); + if (len == 0) { + printf("error read data length = 0.\n"); + return -1; + } + PrivMutexAbandon(&buff_lock); + #endif uint16_t checksum = 0; PrivMutexObtain(&buff_lock); @@ -239,10 +259,20 @@ static int32_t ReadPm2_5(struct SensorQuantity *quant) uint32_t result; if (quant->sdev->done->read != NULL) { + #ifdef ADD_RTTHREAD_FETURES + uint32_t len = 0; + PrivMutexObtain(&buff_lock); + len = quant->sdev->done->read(quant->sdev, 32); + if (len == 0) { + printf("error read data length = 0.\n"); + return -1; + } + PrivMutexAbandon(&buff_lock); + #endif uint16_t checksum = 0; PrivMutexObtain(&buff_lock); - for (uint i = 0; i < 30; i++) + for (uint8_t i = 0; i < 30; i++) checksum += quant->sdev->buffer[i]; if (checksum == (((uint16_t)quant->sdev->buffer[30] << 8) + ((uint16_t)quant->sdev->buffer[31]))) { @@ -306,10 +336,20 @@ static int32_t ReadPm10(struct SensorQuantity *quant) uint32_t result; if (quant->sdev->done->read != NULL) { + #ifdef ADD_RTTHREAD_FETURES + uint32_t len = 0; + PrivMutexObtain(&buff_lock); + len = quant->sdev->done->read(quant->sdev, 32); + if (len == 0) { + printf("error read data length = 0.\n"); + return -1; + } + PrivMutexAbandon(&buff_lock); + #endif uint16_t checksum = 0; PrivMutexObtain(&buff_lock); - for (uint i = 0; i < 30; i++) + for (uint8_t i = 0; i < 30; i++) checksum += quant->sdev->buffer[i]; if (checksum == (((uint16_t)quant->sdev->buffer[30] << 8) + ((uint16_t)quant->sdev->buffer[31]))) { diff --git a/APP_Framework/Framework/sensor/tvoc/Kconfig b/APP_Framework/Framework/sensor/tvoc/Kconfig index b667e480..dd112bde 100644 --- a/APP_Framework/Framework/sensor/tvoc/Kconfig +++ b/APP_Framework/Framework/sensor/tvoc/Kconfig @@ -43,6 +43,23 @@ config SENSOR_TB600B_TVOC10 endif if ADD_RTTHREAD_FETURES + config SENSOR_TB600B_TVOC10_DRIVER_EXTUART + bool "Using extra uart to support tb600b tvoc10" + default y + config SENSOR_DEVICE_TB600B_TVOC10_DEV + string "tb600b tvoc10 device uart path" + default "/dev/uart2_dev2" + depends on !SENSOR_TB600B_TVOC10_DRIVER_EXTUART + + if SENSOR_TB600B_TVOC10_DRIVER_EXTUART + config SENSOR_DEVICE_TB600B_TVOC10_DEV + string "tb600b tvoc10 device extra uart path" + default "/dev/extuart_dev6" + + config SENSOR_DEVICE_TB600B_TVOC10_DEV_EXT_PORT + int "if TB600B_TVOC10 device using extuart, choose port" + default "6" + endif endif endif diff --git a/APP_Framework/Framework/sensor/tvoc/SConscript b/APP_Framework/Framework/sensor/tvoc/SConscript new file mode 100644 index 00000000..f307e3f7 --- /dev/null +++ b/APP_Framework/Framework/sensor/tvoc/SConscript @@ -0,0 +1,14 @@ +import os +Import('RTT_ROOT') +from building import * + +cwd = GetCurrentDir() +objs = [] +list = os.listdir(cwd) + +for d in list: + path = os.path.join(cwd, d) + if os.path.isfile(os.path.join(path, 'SConscript')): + objs = objs + SConscript(os.path.join(path, 'SConscript')) + +Return('objs') diff --git a/APP_Framework/Framework/sensor/tvoc/tb600b_tvoc10/SConscript b/APP_Framework/Framework/sensor/tvoc/tb600b_tvoc10/SConscript new file mode 100644 index 00000000..f9e97188 --- /dev/null +++ b/APP_Framework/Framework/sensor/tvoc/tb600b_tvoc10/SConscript @@ -0,0 +1,10 @@ +from building import * +import os + +cwd = GetCurrentDir() +src = [] +if GetDepend(['SENSOR_TB600B_TVOC10']): + src += ['tb600b_tvoc10.c'] +group = DefineGroup('sensor TVOC10 TB600B', src, depend = [], CPPPATH = [cwd]) + +Return('group') \ No newline at end of file diff --git a/APP_Framework/Framework/sensor/tvoc/tb600b_tvoc10/tb600b_tvoc10.c b/APP_Framework/Framework/sensor/tvoc/tb600b_tvoc10/tb600b_tvoc10.c index 13659712..234fa2fb 100644 --- a/APP_Framework/Framework/sensor/tvoc/tb600b_tvoc10/tb600b_tvoc10.c +++ b/APP_Framework/Framework/sensor/tvoc/tb600b_tvoc10/tb600b_tvoc10.c @@ -184,7 +184,7 @@ static int32_t QuantityRead(struct SensorQuantity *quant) RhH = ((unsigned int)((quant->sdev->buffer[10] << 8)|quant->sdev->buffer[11]))/100; RhL = ((unsigned int)((quant->sdev->buffer[10] << 8)|quant->sdev->buffer[11]))%100; - printf("tvoc concentration is : %dug/m³(%dppb)\nThe temperature is : %d.%d℃\nThe humidity is : %d.%drh%%\n", ugm3, ppb, TH, TL, RhH, RhL); + printf("tvoc concentration is : %dug/m³(%dppb)\nThe temperature is : %d.%d℃ \nThe humidity is : %d.%drh%% \n", ugm3, ppb, TH, TL, RhH, RhL); return ppb; } else diff --git a/APP_Framework/Framework/sensor/winddirection/Kconfig b/APP_Framework/Framework/sensor/winddirection/Kconfig index 7fdbd7bd..a33194be 100644 --- a/APP_Framework/Framework/sensor/winddirection/Kconfig +++ b/APP_Framework/Framework/sensor/winddirection/Kconfig @@ -51,6 +51,23 @@ config SENSOR_QS_FX endif if ADD_RTTHREAD_FETURES + config SENSOR_QS_FX_DRIVER_EXTUART + bool "Using extra uart to support qs-fx" + default y + config SENSOR_DEVICE_QS_FX_DEV + string "qs-fx device name" + default "/dev/uart2_dev2" + depends on !SENSOR_QS_FX_DRIVER_EXTUART + + if SENSOR_QS_FX_DRIVER_EXTUART + config SENSOR_DEVICE_QS_FX_DEV + string "qs-fx device extra uart path" + default "/dev/extuart_dev2" + + config SENSOR_DEVICE_QS_FX_DEV_EXT_PORT + int "if qs-fx device using extuart, choose port" + default "2" + endif endif endif diff --git a/APP_Framework/Framework/sensor/winddirection/qs-fx/qs-fx.c b/APP_Framework/Framework/sensor/winddirection/qs-fx/qs-fx.c index 72cb4da0..d1b76b50 100644 --- a/APP_Framework/Framework/sensor/winddirection/qs-fx/qs-fx.c +++ b/APP_Framework/Framework/sensor/winddirection/qs-fx/qs-fx.c @@ -166,7 +166,7 @@ static int32_t ReadWindDirection(struct SensorQuantity *quant) if (quant->sdev->done->read != NULL) { if (quant->sdev->status == SENSOR_DEVICE_PASSIVE) { quant->sdev->done->read(quant->sdev, 7); - if(Crc16(quant->sdev->buffer,7)!=0x00){ + if(Crc16(quant->sdev->buffer,7)!=0x00) { return -1; } result = (quant->sdev->buffer[3] << 8) | quant->sdev->buffer[4]; diff --git a/APP_Framework/Framework/sensor/windspeed/Kconfig b/APP_Framework/Framework/sensor/windspeed/Kconfig index 96dfabf2..63462039 100644 --- a/APP_Framework/Framework/sensor/windspeed/Kconfig +++ b/APP_Framework/Framework/sensor/windspeed/Kconfig @@ -51,6 +51,23 @@ config SENSOR_QS_FS endif if ADD_RTTHREAD_FETURES + config SENSOR_QS_FS_DRIVER_EXTUART + bool "Using extra uart to support qs-fx" + default y + config SENSOR_DEVICE_QS_FS_DEV + string "qs-fx device name" + default "/dev/uart2_dev2" + depends on !SENSOR_QS_FS_DRIVER_EXTUART + + if SENSOR_QS_FS_DRIVER_EXTUART + config SENSOR_DEVICE_QS_FS_DEV + string "qs-fx device extra uart path" + default "/dev/extuart_dev7" + + config SENSOR_DEVICE_QS_FS_DEV_EXT_PORT + int "if qs-fx device using extuart, choose port" + default "7" + endif endif endif diff --git a/APP_Framework/Framework/sensor/windspeed/qs-fs/qs-fs.c b/APP_Framework/Framework/sensor/windspeed/qs-fs/qs-fs.c index 025dc5d8..f30ecdfb 100644 --- a/APP_Framework/Framework/sensor/windspeed/qs-fs/qs-fs.c +++ b/APP_Framework/Framework/sensor/windspeed/qs-fs/qs-fs.c @@ -21,7 +21,7 @@ #include static struct SensorDevice qs_fs; -static const unsigned char instructions[] = {0x02,0x03,0x00,0x00,0x00,0x01,0x84,0x39}; +static const unsigned char instructions[] = {0x02, 0x03, 0x00, 0x00, 0x00, 0x01, 0x84, 0x39}; static struct SensorProductInfo info = { diff --git a/APP_Framework/Framework/transform_layer/rtthread/transform.c b/APP_Framework/Framework/transform_layer/rtthread/transform.c index 42872041..110d96c9 100644 --- a/APP_Framework/Framework/transform_layer/rtthread/transform.c +++ b/APP_Framework/Framework/transform_layer/rtthread/transform.c @@ -187,6 +187,16 @@ static int PrivPinIoctl(int fd, int cmd, void *args) return ioctl(fd, cmd, pin_cfg); } +static int PrivI2cIoctl(int fd, int cmd, void *args) +{ + struct dfs_fd *rt_fd; + int ret = 0; + rt_fd = fd_get(fd); + rt_fd->pos = *(off_t *)args; + // ret = rt_fd->fops->ioctl(rt_fd, RT_I2C_DEV_CTRL_ADDR, args); + return ret; +} + int PrivIoctl(int fd, int cmd, void *args) { int ret; @@ -200,6 +210,9 @@ int PrivIoctl(int fd, int cmd, void *args) case PIN_TYPE: ret = PrivPinIoctl(fd, cmd, ioctl_cfg->args); break; + case I2C_TYPE: + ret = PrivI2cIoctl(fd, cmd, ioctl_cfg->args); + break; default: break; } diff --git a/APP_Framework/Framework/transform_layer/rtthread/transform.h b/APP_Framework/Framework/transform_layer/rtthread/transform.h index e24bf055..05dea886 100644 --- a/APP_Framework/Framework/transform_layer/rtthread/transform.h +++ b/APP_Framework/Framework/transform_layer/rtthread/transform.h @@ -65,7 +65,7 @@ extern "C" { #endif #ifndef _STDBOOL_H -typedef signed char bool; +//typedef signed char bool; #endif typedef signed char int8; typedef signed short int16; @@ -73,6 +73,8 @@ typedef signed int int32; typedef unsigned char uint8; typedef unsigned short uint16; typedef unsigned int uint32; +#define EOK 0 +#define x_err_t int #ifdef ARCH_CPU_64BIT typedef signed long int64; @@ -144,6 +146,7 @@ struct SerialDataCfg uint8_t serial_bit_order; uint8_t serial_invert_mode; uint16_t serial_buffer_size; + int32 serial_timeout; uint8_t is_ext_uart; uint8_t ext_uart_no; @@ -165,6 +168,61 @@ struct PrivIoctlCfg void *args; }; +typedef struct +{ + uint16 x_pos; + uint16 y_pos; + uint16 width; + uint16 height; + uint8 font_size; + uint8 *addr; + uint16 font_color; + uint16 back_color; +}LcdStringParam; + +typedef struct +{ + uint16 x_startpos; + uint16 x_endpos; + uint16 y_startpos; + uint16 y_endpos; + void* pixel_color; +}LcdPixelParam; + +typedef struct +{ + char type; // 0:write string;1:write dot + LcdPixelParam pixel_info; + LcdStringParam string_info; +}LcdWriteParam; + +typedef struct +{ + uint16_t x; + uint16_t y; + uint16_t press; +}TouchDataParam; + +struct TouchDataStandard +{ + uint16_t x; + uint16_t y; +}; +#define PRIV_SYSTICK_GET (rt_tick_get()) +#define PRIV_LCD_DEV "/dev/lcd" +#define MY_DISP_HOR_RES LCD_WIDTH +#define MY_DISP_VER_RES LCD_HEIGHT + +#define PRIV_TOUCH_DEV "/dev/touch" +#define MY_INDEV_X LCD_WIDTH +#define MY_INDEV_Y LCD_HEIGHT + + + + + + + /*********************shell***********************/ //for int func(int argc, char *agrv[]) #define PRIV_SHELL_CMD_MAIN_ATTR diff --git a/APP_Framework/lib/lvgl/rt-thread/SConscript b/APP_Framework/lib/lvgl/rt-thread/SConscript index 01fbe1cf..4c605ab8 100644 --- a/APP_Framework/lib/lvgl/rt-thread/SConscript +++ b/APP_Framework/lib/lvgl/rt-thread/SConscript @@ -8,7 +8,9 @@ cwd = GetCurrentDir() src = [] inc = [] - +src += ['../porting/lv_port_disp_template.c'] +src += ['../porting/lv_port_fs_template.c'] +src += ['../porting/lv_port_indev_template.c'] lvgl_cwd = cwd + '/../' lvgl_src_cwd = lvgl_cwd + 'src/' @@ -19,6 +21,7 @@ for root, dirs, files in os.walk(lvgl_src_cwd): src = src + Glob(os.path.join(root,dir,'*.c')) inc = inc + [os.path.join(root,dir)] +inc = inc + [lvgl_cwd] LOCAL_CCFLAGS = '' if rtconfig.PLATFORM == 'gcc': # GCC LOCAL_CCFLAGS += ' -std=c99' @@ -27,39 +30,15 @@ elif rtconfig.PLATFORM == 'armcc': # Keil AC5 elif rtconfig.PLATFORM == 'armclang': # Keil AC6 LOCAL_CCFLAGS += ' -std=c99 -g -w' -group = DefineGroup('LVGL', src, depend = ['PKG_USING_LVGL'], CPPPATH = inc, LOCAL_CCFLAGS = LOCAL_CCFLAGS) +group = DefineGroup('LVGL', src, depend = ['LIB_LV'], CPPPATH = inc, LOCAL_CCFLAGS = LOCAL_CCFLAGS) port_src = Glob('*.c') -port_inc = [cwd] -group = group + DefineGroup('LVGL-port', port_src, depend = ['PKG_USING_LVGL'], CPPPATH = port_inc) +port_inc = [cwd]+['../porting/'] +group = group + DefineGroup('LVGL-port', port_src, depend = ['LIB_LV'], CPPPATH = port_inc) list = os.listdir(cwd) for d in list: path = os.path.join(cwd, d) if os.path.isfile(os.path.join(path, 'SConscript')): group = group + SConscript(os.path.join(d, 'SConscript')) - -# -# try: -# shutil.rmtree(os.path.join(lvgl_cwd, '.github')) -# shutil.rmtree(os.path.join(lvgl_cwd, 'docs')) -# shutil.rmtree(os.path.join(lvgl_cwd, 'scripts')) -# shutil.rmtree(os.path.join(lvgl_cwd, 'tests')) -# shutil.rmtree(os.path.join(lvgl_cwd, 'zephyr')) -# os.remove(os.path.join(lvgl_cwd, '.codecov.yml')) -# os.remove(os.path.join(lvgl_cwd, '.editorconfig')) -# os.remove(os.path.join(lvgl_cwd, '.gitignore')) -# os.remove(os.path.join(lvgl_cwd, '.gitmodules')) -# os.remove(os.path.join(lvgl_cwd, 'CMakeLists.txt')) -# os.remove(os.path.join(lvgl_cwd, 'component.mk')) -# os.remove(os.path.join(lvgl_cwd, 'idf_component.yml')) -# os.remove(os.path.join(lvgl_cwd, 'Kconfig')) -# os.remove(os.path.join(lvgl_cwd, 'library.json')) -# os.remove(os.path.join(lvgl_cwd, 'library.properties')) -# os.remove(os.path.join(lvgl_cwd, 'lv_conf_template.h')) -# os.remove(os.path.join(lvgl_cwd, 'lvgl.mk')) -# except: -# pass -# - Return('group') diff --git a/APP_Framework/lib/lvgl/rt-thread/lv_rt_thread_conf.h b/APP_Framework/lib/lvgl/rt-thread/lv_rt_thread_conf.h index 50758e61..5550e4f7 100644 --- a/APP_Framework/lib/lvgl/rt-thread/lv_rt_thread_conf.h +++ b/APP_Framework/lib/lvgl/rt-thread/lv_rt_thread_conf.h @@ -16,69 +16,12 @@ #define LV_RTTHREAD_INCLUDE #include LV_RTTHREAD_INCLUDE -/*========================= - MEMORY SETTINGS - *=========================*/ - -#ifdef RT_USING_HEAP -# define LV_MEM_CUSTOM 1 -# define LV_MEM_CUSTOM_INCLUDE LV_RTTHREAD_INCLUDE -# define LV_MEM_CUSTOM_ALLOC rt_malloc -# define LV_MEM_CUSTOM_FREE rt_free -# define LV_MEM_CUSTOM_REALLOC rt_realloc -#endif - -/*==================== - HAL SETTINGS - *====================*/ - -#define LV_TICK_CUSTOM 1 -#define LV_TICK_CUSTOM_INCLUDE LV_RTTHREAD_INCLUDE -#define LV_TICK_CUSTOM_SYS_TIME_EXPR (rt_tick_get_millisecond()) /*Expression evaluating to current system time in ms*/ - -/*======================= - * FEATURE CONFIGURATION - *=======================*/ - -/*------------- - * Logging - *-----------*/ - -#ifdef PKG_LVGL_ENABLE_LOG -# define LV_USE_LOG 1 -# define LV_LOG_PRINTF 0 -#else -# define LV_USE_LOG 0 -#endif - -/*------------- - * Asserts - *-----------*/ - -#define LV_ASSERT_HANDLER_INCLUDE LV_RTTHREAD_INCLUDE -#define LV_ASSERT_HANDLER RT_ASSERT(0); - -/*------------- - * Others - *-----------*/ - -#define LV_SPRINTF_CUSTOM 1 -#define LV_SPRINTF_INCLUDE LV_RTTHREAD_INCLUDE +#ifdef __ARMCC_VERSION #define lv_snprintf rt_snprintf #define lv_vsnprintf rt_vsnprintf -#define LV_SPRINTF_USE_FLOAT 0 - -/*===================== - * COMPILER SETTINGS - *====================*/ - -#ifdef RT_USING_BIG_ENDIAN -# define LV_BIG_ENDIAN_SYSTEM 1 -#else -# define LV_BIG_ENDIAN_SYSTEM 0 #endif -#define LV_ATTRIBUTE_MEM_ALIGN ALIGN(4) + /*--END OF LV_RT_THREAD_CONF_H--*/ diff --git a/APP_Framework/lib/lvgl/rt-thread/lv_rt_thread_port.c b/APP_Framework/lib/lvgl/rt-thread/lv_rt_thread_port.c deleted file mode 100644 index dfce9ea6..00000000 --- a/APP_Framework/lib/lvgl/rt-thread/lv_rt_thread_port.c +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2006-2021, RT-Thread Development Team - * - * SPDX-License-Identifier: MIT - * - * Change Logs: - * Date Author Notes - * 2021-10-18 Meco Man The first version - */ - -#ifdef __RTTHREAD__ - -#include -#include -#define DBG_TAG "LVGL" -#define DBG_LVL DBG_INFO -#include - -#ifndef PKG_USING_LVGL_DISP_DEVICE -# include -#endif -#ifndef PKG_USING_LVGL_INDEV_DEVICE -# include -#endif - -#if LV_USE_LOG && LV_LOG_PRINTF -static void lv_rt_log(const char *buf) -{ - LOG_I(buf); -} -#endif - -static int lv_port_init(void) -{ -#if LV_USE_LOG && LV_LOG_PRINTF - lv_log_register_print_cb(lv_rt_log); -#endif - - lv_init(); - -#ifndef PKG_USING_LVGL_DISP_DEVICE - lv_port_disp_init(); -#endif -#ifndef PKG_USING_LVGL_INDEV_DEVICE - lv_port_indev_init(); -#endif - - return 0; -} -INIT_COMPONENT_EXPORT(lv_port_init); - -#endif /*__RTTHREAD__*/ diff --git a/APP_Framework/lib/lvgl/src/misc/lv_printf.c b/APP_Framework/lib/lvgl/src/misc/lv_printf.c index ebe8a55c..b3d5d7b0 100644 --- a/APP_Framework/lib/lvgl/src/misc/lv_printf.c +++ b/APP_Framework/lib/lvgl/src/misc/lv_printf.c @@ -547,6 +547,7 @@ static size_t _etoa(out_fct_type out, char * buffer, size_t idx, size_t maxlen, #endif // PRINTF_SUPPORT_FLOAT // internal vsnprintf +#ifndef __ARMCC_VERSION static int _vsnprintf(out_fct_type out, char * buffer, const size_t maxlen, const char * format, va_list va) { unsigned int flags, width, precision, n; @@ -859,9 +860,9 @@ static int _vsnprintf(out_fct_type out, char * buffer, const size_t maxlen, cons // return written chars without terminating \0 return (int)idx; } - +#endif /////////////////////////////////////////////////////////////////////////////// - +#ifndef __ARMCC_VERSION int lv_snprintf(char * buffer, size_t count, const char * format, ...) { va_list va; @@ -875,5 +876,5 @@ int lv_vsnprintf(char * buffer, size_t count, const char * format, va_list va) { return _vsnprintf(_out_buffer, buffer, count, format, va); } - +#endif #endif /*LV_SPRINTF_CUSTOM*/ diff --git a/APP_Framework/lib/lvgl/src/misc/lv_printf.h b/APP_Framework/lib/lvgl/src/misc/lv_printf.h index 304c5b9c..b8bb9aea 100644 --- a/APP_Framework/lib/lvgl/src/misc/lv_printf.h +++ b/APP_Framework/lib/lvgl/src/misc/lv_printf.h @@ -78,8 +78,9 @@ typedef struct { * null character. A value equal or larger than count indicates truncation. Only when the returned value * is non-negative and less than count, the string has been completely written. */ -int lv_snprintf(char * buffer, size_t count, const char * format, ...) LV_FORMAT_ATTRIBUTE(3, 4); -int lv_vsnprintf(char * buffer, size_t count, const char * format, va_list va) LV_FORMAT_ATTRIBUTE(3, 0); + +//int lv_snprintf(char * buffer, size_t count, const char * format, ...) LV_FORMAT_ATTRIBUTE(3, 4); +//int lv_vsnprintf(char * buffer, size_t count, const char * format, va_list va) LV_FORMAT_ATTRIBUTE(3, 0); #else #include LV_SPRINTF_INCLUDE diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/.config b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/.config index aa01305c..a909f9fe 100644 --- a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/.config +++ b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/.config @@ -10,7 +10,7 @@ CONFIG_RTT_DIR="../../rt-thread" # # RT-Thread Kernel # -CONFIG_RT_NAME_MAX=8 +CONFIG_RT_NAME_MAX=12 # CONFIG_RT_USING_BIG_ENDIAN is not set # CONFIG_RT_USING_ARCH_DATA_TYPE is not set # CONFIG_RT_USING_SMP is not set @@ -167,7 +167,7 @@ CONFIG_RT_USING_SERIAL=y CONFIG_RT_USING_SERIAL_V1=y # CONFIG_RT_USING_SERIAL_V2 is not set # CONFIG_RT_SERIAL_USING_DMA is not set -CONFIG_RT_SERIAL_RB_BUFSZ=64 +CONFIG_RT_SERIAL_RB_BUFSZ=256 CONFIG_RT_USING_CAN=y # CONFIG_RT_CAN_USING_HDR is not set # CONFIG_RT_USING_HWTIMER is not set @@ -239,7 +239,15 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8 # # Network interface device # -# CONFIG_RT_USING_NETDEV is not set +CONFIG_RT_USING_NETDEV=y +CONFIG_NETDEV_USING_IFCONFIG=y +CONFIG_NETDEV_USING_PING=y +CONFIG_NETDEV_USING_NETSTAT=y +CONFIG_NETDEV_USING_AUTO_DEFAULT=y +# CONFIG_NETDEV_USING_IPV6 is not set +CONFIG_NETDEV_IPV4=1 +CONFIG_NETDEV_IPV6=0 +# CONFIG_NETDEV_IPV6_SCOPES is not set # # light weight TCP/IP stack @@ -283,7 +291,7 @@ CONFIG_BSP_USING_UART1=y CONFIG_BSP_USING_UART2=y CONFIG_BSP_USING_UART3=y # CONFIG_BSP_USING_UART4 is not set -# CONFIG_BSP_USING_I2C1 is not set +CONFIG_BSP_USING_I2C1=y # CONFIG_BSP_USING_SPI is not set # CONFIG_BSP_USING_CH438 is not set CONFIG_BSP_USING_USB=y @@ -304,6 +312,9 @@ CONFIG_USB_DEVICE_NAME="usb_dev" # # CONFIG_PKG_USING_RW007 is not set # CONFIG_DRV_USING_OV2640 is not set +# CONFIG_DRV_USING_HS300X is not set +# CONFIG_DRV_USING_SX1278 is not set +# CONFIG_PKG_USING_WIZNET is not set # # APP_Framework @@ -316,23 +327,20 @@ CONFIG_TRANSFORM_LAYER_ATTRIUBUTE=y # CONFIG_ADD_XIZI_FETURES is not set # CONFIG_ADD_NUTTX_FETURES is not set CONFIG_ADD_RTTHREAD_FETURES=y -# CONFIG_SUPPORT_SENSOR_FRAMEWORK is not set -CONFIG_SUPPORT_CONNECTION_FRAMEWORK=y -CONFIG_CONNECTION_FRAMEWORK_DEBUG=y -# CONFIG_CONNECTION_INDUSTRIAL_ETHERNET is not set -# CONFIG_CONNECTION_INDUSTRIAL_FIELDBUS is not set -# CONFIG_CONNECTION_INDUSTRIAL_WLAN is not set -# CONFIG_CONNECTION_ADAPTER_LORA is not set -# CONFIG_CONNECTION_ADAPTER_4G is not set -# CONFIG_CONNECTION_ADAPTER_NB is not set -# CONFIG_CONNECTION_ADAPTER_WIFI is not set -CONFIG_ADAPTER_HFA21_DRIVER="/dev/uart3" -CONFIG_CONNECTION_ADAPTER_ETHERNET=y -CONFIG_ADAPTER_HFA21_ETHERNET=y -CONFIG_ADAPTER_ETHERNET_HFA21="hfa21_ethernet" -# CONFIG_CONNECTION_ADAPTER_BLUETOOTH is not set -# CONFIG_CONNECTION_ADAPTER_ZIGBEE is not set -# CONFIG_CONNECTION_ADAPTER_5G is not set +CONFIG_SUPPORT_SENSOR_FRAMEWORK=y +# CONFIG_SENSOR_HCHO is not set +# CONFIG_SENSOR_TVOC is not set +# CONFIG_SENSOR_IAQ is not set +# CONFIG_SENSOR_CH4 is not set +# CONFIG_SENSOR_CO2 is not set +# CONFIG_SENSOR_PM is not set +# CONFIG_SENSOR_VOICE is not set +# CONFIG_SENSOR_TEMPERATURE is not set +# CONFIG_SENSOR_HUMIDITY is not set +# CONFIG_SENSOR_WINDSPEED is not set +# CONFIG_SENSOR_WINDDIRECTION is not set +# CONFIG_SENSOR_ALTITUDE is not set +# CONFIG_SUPPORT_CONNECTION_FRAMEWORK is not set # CONFIG_SUPPORT_KNOWING_FRAMEWORK is not set # CONFIG_SUPPORT_CONTROL_FRAMEWORK is not set @@ -340,6 +348,7 @@ CONFIG_ADAPTER_ETHERNET_HFA21="hfa21_ethernet" # Security # # CONFIG_CRYPTO is not set +# CONFIG_MBEDTLS is not set # # Applications @@ -377,7 +386,21 @@ CONFIG_MAIN_KTASK_STACK_SIZE=1024 # # sensor app # -# CONFIG_APPLICATION_SENSOR is not set +CONFIG_APPLICATION_SENSOR=y +# CONFIG_APPLICATION_SENSOR_HCHO is not set +# CONFIG_APPLICATION_SENSOR_TVOC is not set +# CONFIG_APPLICATION_SENSOR_IAQ is not set +# CONFIG_APPLICATION_SENSOR_CH4 is not set +# CONFIG_APPLICATION_SENSOR_CO2 is not set +# CONFIG_APPLICATION_SENSOR_PM1_0 is not set +# CONFIG_APPLICATION_SENSOR_PM2_5 is not set +# CONFIG_APPLICATION_SENSOR_PM10 is not set +# CONFIG_APPLICATION_SENSOR_VOICE is not set +# CONFIG_APPLICATION_SENSOR_TEMPERATURE is not set +# CONFIG_APPLICATION_SENSOR_HUMIDITY is not set +# CONFIG_APPLICATION_SENSOR_WINDDIRECTION is not set +# CONFIG_APPLICATION_SENSOR_WINDSPEED is not set +# CONFIG_APPLICATION_SENSOR_ALTITUDE is not set # CONFIG_USING_EMBEDDED_DATABASE_APP is not set # CONFIG_APP_USING_WEBNET is not set @@ -389,4 +412,9 @@ CONFIG_APP_SELECT_NEWLIB=y # CONFIG_LIB_USING_CJSON is not set # CONFIG_LIB_USING_QUEUE is not set # CONFIG_LIB_LV is not set + +# +# LVGL configuration +# +# CONFIG_LV_CONF_MINIMAL is not set # CONFIG_USING_EMBEDDED_DATABASE is not set diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/applications/main.c b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/applications/main.c index 865256fe..8d722edb 100644 --- a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/applications/main.c +++ b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/applications/main.c @@ -33,14 +33,98 @@ #endif #define LED0_PIN GET_PIN(G, 15) -extern int FrameworkInit(); +extern int FrameworkInit(void); int main(void) { int count = 1; rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT); rt_thread_mdelay(100); FrameworkInit(); - printf("XIUOS stm32f4 build %s %s\n",__DATE__,__TIME__); + printf("XIUOS stm32f4 build %s %s\n",__DATE__,__TIME__); + + #ifdef APPLICATION_SENSOR_ALTITUDE_BMP180 + extern int AltitudeBmp180(); + AltitudeBmp180(); + #endif + + #ifdef APPLICATION_SENSOR_CH4_AS830 + extern void Ch4As830(); + Ch4As830(); + #endif + + #ifdef APPLICATION_SENSOR_TVOC_TB600B_TVOC10 + extern void TvocTb600bTvoc10(); + TvocTb600bTvoc10(); + #endif + + #ifdef APPLICATION_SENSOR_CO2_G8S + extern void Co2G8s(); + printf("Waiting for Co2G8s to start...\n"); + rt_thread_mdelay(9000); + Co2G8s(); + #endif + + #ifdef APPLICATION_SENSOR_CO2_ZG09 + extern void Co2Zg09(); + printf("Waiting for Co2ZG09 to start...\n"); + rt_thread_mdelay(8000); + Co2Zg09(); + #endif + + #ifdef APPLICATION_SENSOR_PM1_0_PS5308 + extern void Pm10Ps5308(); + Pm10Ps5308(); + #endif + + #ifdef APPLICATION_SENSOR_PM2_5_PS5308 + extern void Pm25Ps5308(); + Pm25Ps5308(); + #endif + + #ifdef APPLICATION_SENSOR_PM10_PS5308 + extern void Pm100Ps5308(); + Pm100Ps5308(); + #endif + + #ifdef APPLICATION_SENSOR_TEMPERATURE_HS300X + extern void TempHs300x(); + TempHs300x(); + #endif + + #ifdef APPLICATION_SENSOR_HUMIDITY_HS300X + extern void HumiHs300x(); + HumiHs300x(); + #endif + + #ifdef APPLICATION_SENSOR_HCHO_TB600B_WQ_HCHO1OS + extern void HchoTb600bHcho1os(); + printf("Waiting for HchoTb600bHcho1os to start...\n"); + rt_thread_mdelay(10000); + HchoTb600bHcho1os(); + #endif + + #ifdef APPLICATION_SENSOR_IAQ_TB600B_IAQ10 + extern void IaqTb600bIaq10(); + printf("Waiting for IaqTb600bIaq10 to start...\n"); + rt_thread_mdelay(9000); + IaqTb600bIaq10(); + #endif + + #ifdef APPLICATION_SENSOR_VOICE_D124 + extern void VoiceD124(); + VoiceD124(); + #endif + + #ifdef APPLICATION_SENSOR_WINDDIRECTION_QS_FX + extern void WindDirectionQsFx(); + WindDirectionQsFx(); + #endif + + #ifdef APPLICATION_SENSOR_WINDSPEED_QS_FS + extern void WindSpeedQsFs(); + WindSpeedQsFs(); + #endif + while (count++) { rt_pin_write(LED0_PIN, PIN_HIGH); diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/board/SConscript b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/board/SConscript index 4812888d..306e3b41 100644 --- a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/board/SConscript +++ b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/board/SConscript @@ -9,6 +9,7 @@ cwd = GetCurrentDir() # add general drivers src = Split(''' board.c +ch438.c CubeMX_Config/Src/stm32f4xx_hal_msp.c ''') diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/board/board.h b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/board/board.h index 70a4c0ed..5c05ee39 100644 --- a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/board/board.h +++ b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/board/board.h @@ -40,6 +40,9 @@ extern int __bss_end; #define HEAP_END STM32_SRAM_END +#define BSP_I2C1_SCL_PIN GET_PIN(B,6) +#define BSP_I2C1_SDA_PIN GET_PIN(B,7) + void SystemClock_Config(void); #ifdef __cplusplus diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/board/ch438.c b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/board/ch438.c new file mode 100644 index 00000000..9132c018 --- /dev/null +++ b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/board/ch438.c @@ -0,0 +1,614 @@ +#include +#include +#include "ch438.h" +#include + +/* Offset address of serial port number */ +static rt_uint8_t offsetadd[] = {0x00,0x10,0x20,0x30,0x08,0x18,0x28,0x38,}; +struct rt_serial_device *extuart_serial_parm[8]; + +static void CH438_udelay(rt_uint64_t us) +{ + rt_uint64_t ticks; + rt_uint64_t told, tnow, tcnt = 0; + rt_uint64_t reload = SysTick->LOAD; + + ticks = us * reload / (1000000 / RT_TICK_PER_SECOND); + told = SysTick->VAL; + while (1) { + tnow = SysTick->VAL; + if (tnow != told) { + if (tnow < told) { + tcnt += told - tnow; + } + else { + tcnt += reload - tnow + told; + } + told = tnow; + if (tcnt >= ticks) { + break; + } + } + } +} + +void CH438_INIT(void) +{ + CH438_set_output(); + rt_pin_mode(CH438_NWR_PIN, PIN_MODE_OUTPUT); + rt_pin_mode(CH438_NRD_PIN, PIN_MODE_OUTPUT); + rt_pin_mode(CH438_NCS_PIN, PIN_MODE_OUTPUT); + rt_pin_mode(CH438_ALE_PIN, PIN_MODE_OUTPUT); + rt_pin_mode(DIR_485CH1_PIN, PIN_MODE_OUTPUT); + rt_pin_mode(DIR_485CH2_PIN, PIN_MODE_OUTPUT); + rt_pin_mode(DIR_485CH3_PIN, PIN_MODE_OUTPUT); + rt_pin_mode(CH438_INT_PIN, PIN_MODE_INPUT_PULLUP); + + rt_pin_write(CH438_NWR_PIN, PIN_HIGH); + rt_pin_write(CH438_NRD_PIN, PIN_HIGH); + rt_pin_write(CH438_NCS_PIN, PIN_HIGH); + rt_pin_write(CH438_ALE_PIN, PIN_HIGH); +} + +void CH438_PORT_INIT( rt_uint8_t ext_uart_no,rt_uint32_t BaudRate ) +{ + rt_uint32_t div; + rt_uint8_t DLL,DLM,dlab; + rt_uint8_t REG_LCR_ADDR; + rt_uint8_t REG_DLL_ADDR; + rt_uint8_t REG_DLM_ADDR; + rt_uint8_t REG_IER_ADDR; + rt_uint8_t REG_MCR_ADDR; + rt_uint8_t REG_FCR_ADDR; + + REG_LCR_ADDR = offsetadd[ext_uart_no] | REG_LCR0_ADDR; + REG_DLL_ADDR = offsetadd[ext_uart_no] | REG_DLL0_ADDR; + REG_DLM_ADDR = offsetadd[ext_uart_no] | REG_DLM0_ADDR; + REG_IER_ADDR = offsetadd[ext_uart_no] | REG_IER0_ADDR; + REG_MCR_ADDR = offsetadd[ext_uart_no] | REG_MCR0_ADDR; + REG_FCR_ADDR = offsetadd[ext_uart_no] | REG_FCR0_ADDR; + + /* Reset the serial port */ + WriteCH438Data( REG_IER_ADDR, BIT_IER_RESET ); + rt_thread_mdelay(50); + + dlab = ReadCH438Data(REG_IER_ADDR); + dlab &= 0xDF; + WriteCH438Data(REG_IER_ADDR, dlab); + + /* set LCR register DLAB bit 1 */ + dlab = ReadCH438Data(REG_LCR_ADDR); + dlab |= 0x80; + WriteCH438Data(REG_LCR_ADDR, dlab); + + div = ( Fpclk >> 4 ) / BaudRate; + DLM = div >> 8; + DLL = div & 0xff; + + /* Set baud rate */ + WriteCH438Data( REG_DLL_ADDR, DLL ); + WriteCH438Data( REG_DLM_ADDR, DLM ); + + /* set FIFO mode, 112 bytes */ + WriteCH438Data( REG_FCR_ADDR, BIT_FCR_RECVTG1 | BIT_FCR_RECVTG0 | BIT_FCR_FIFOEN ); + + /* 8 bit word size, 1 bit stop bit, no crc */ + WriteCH438Data( REG_LCR_ADDR, BIT_LCR_WORDSZ1 | BIT_LCR_WORDSZ0 ); + + /* enable interrupt */ + WriteCH438Data( REG_IER_ADDR, BIT_IER_IERECV ); + + /* allow interrupt output, DTR and RTS is 1 */ + WriteCH438Data( REG_MCR_ADDR, BIT_MCR_OUT2 ); + + /* release the data in FIFO */ + WriteCH438Data( REG_FCR_ADDR,ReadCH438Data(REG_FCR_ADDR)| BIT_FCR_TFIFORST ); +} + +static void CH438_set_output(void) +{ + rt_pin_mode(CH438_D0_PIN, PIN_MODE_OUTPUT); + rt_pin_mode(CH438_D1_PIN, PIN_MODE_OUTPUT); + rt_pin_mode(CH438_D2_PIN, PIN_MODE_OUTPUT); + rt_pin_mode(CH438_D3_PIN, PIN_MODE_OUTPUT); + rt_pin_mode(CH438_D4_PIN, PIN_MODE_OUTPUT); + rt_pin_mode(CH438_D5_PIN, PIN_MODE_OUTPUT); + rt_pin_mode(CH438_D6_PIN, PIN_MODE_OUTPUT); + rt_pin_mode(CH438_D7_PIN, PIN_MODE_OUTPUT); +} + +static void CH438_set_input(void) +{ + rt_pin_mode(CH438_D0_PIN, PIN_MODE_INPUT_PULLUP); + rt_pin_mode(CH438_D1_PIN, PIN_MODE_INPUT_PULLUP); + rt_pin_mode(CH438_D2_PIN, PIN_MODE_INPUT_PULLUP); + rt_pin_mode(CH438_D3_PIN, PIN_MODE_INPUT_PULLUP); + rt_pin_mode(CH438_D4_PIN, PIN_MODE_INPUT_PULLUP); + rt_pin_mode(CH438_D5_PIN, PIN_MODE_INPUT_PULLUP); + rt_pin_mode(CH438_D6_PIN, PIN_MODE_INPUT_PULLUP); + rt_pin_mode(CH438_D7_PIN, PIN_MODE_INPUT_PULLUP); +} + +void set_485_input(rt_uint8_t ch_no) +{ + if(ch_no == 1) { + rt_pin_write(DIR_485CH1_PIN, PIN_LOW); + } + + if(ch_no == 2) { + rt_pin_write(DIR_485CH2_PIN, PIN_LOW); + } + + if(ch_no == 3) { + rt_pin_write(DIR_485CH3_PIN, PIN_LOW); + } +} + +void set_485_output(rt_uint8_t ch_no) +{ + if(ch_no == 1) { + rt_pin_write(DIR_485CH1_PIN, PIN_HIGH); + } + + if(ch_no == 2) { + rt_pin_write(DIR_485CH2_PIN, PIN_HIGH); + } + + if(ch_no == 3) { + rt_pin_write(DIR_485CH3_PIN, PIN_HIGH); + } +} + +rt_uint8_t ReadCH438Data( rt_uint8_t addr ) +{ + rt_uint8_t dat = 0; + rt_pin_write(CH438_NWR_PIN, PIN_HIGH); + rt_pin_write(CH438_NRD_PIN, PIN_HIGH); + rt_pin_write(CH438_ALE_PIN, PIN_HIGH); + rt_pin_write(CH438_NCS_PIN, PIN_HIGH); + + CH438_set_output(); + CH438_udelay(1); + + if(addr &0x80) rt_pin_write(CH438_D7_PIN,PIN_HIGH); else rt_pin_write(CH438_D7_PIN,PIN_LOW); + if(addr &0x40) rt_pin_write(CH438_D6_PIN,PIN_HIGH); else rt_pin_write(CH438_D6_PIN,PIN_LOW); + if(addr &0x20) rt_pin_write(CH438_D5_PIN,PIN_HIGH); else rt_pin_write(CH438_D5_PIN,PIN_LOW); + if(addr &0x10) rt_pin_write(CH438_D4_PIN,PIN_HIGH); else rt_pin_write(CH438_D4_PIN,PIN_LOW); + if(addr &0x08) rt_pin_write(CH438_D3_PIN,PIN_HIGH); else rt_pin_write(CH438_D3_PIN,PIN_LOW); + if(addr &0x04) rt_pin_write(CH438_D2_PIN,PIN_HIGH); else rt_pin_write(CH438_D2_PIN,PIN_LOW); + if(addr &0x02) rt_pin_write(CH438_D1_PIN,PIN_HIGH); else rt_pin_write(CH438_D1_PIN,PIN_LOW); + if(addr &0x01) rt_pin_write(CH438_D0_PIN,PIN_HIGH); else rt_pin_write(CH438_D0_PIN,PIN_LOW); + + CH438_udelay(1); + + rt_pin_write(CH438_ALE_PIN,PIN_LOW); + CH438_udelay(1); + rt_pin_write(CH438_NCS_PIN, PIN_LOW); + CH438_udelay(1); + + CH438_set_input(); + CH438_udelay(1); + + rt_pin_write(CH438_NRD_PIN,PIN_LOW); + CH438_udelay(1); + + if (rt_pin_read(CH438_D7_PIN)) dat |= 0x80; + if (rt_pin_read(CH438_D6_PIN)) dat |= 0x40; + if (rt_pin_read(CH438_D5_PIN)) dat |= 0x20; + if (rt_pin_read(CH438_D4_PIN)) dat |= 0x10; + if (rt_pin_read(CH438_D3_PIN)) dat |= 0x08; + if (rt_pin_read(CH438_D2_PIN)) dat |= 0x04; + if (rt_pin_read(CH438_D1_PIN)) dat |= 0x02; + if (rt_pin_read(CH438_D0_PIN)) dat |= 0x01; + + rt_pin_write(CH438_NRD_PIN,PIN_HIGH); + rt_pin_write(CH438_ALE_PIN,PIN_HIGH); + rt_pin_write(CH438_NCS_PIN,PIN_HIGH); + CH438_udelay(1); + + return dat; +} + +static void WriteCH438Data( rt_uint8_t addr, char dat ) +{ + rt_pin_write(CH438_ALE_PIN, PIN_HIGH); + rt_pin_write(CH438_NWR_PIN, PIN_HIGH); + rt_pin_write(CH438_NRD_PIN, PIN_HIGH); + rt_pin_write(CH438_NCS_PIN, PIN_HIGH); + + CH438_set_output(); + CH438_udelay(1); + + if(addr &0x80) rt_pin_write(CH438_D7_PIN,PIN_HIGH); else rt_pin_write(CH438_D7_PIN,PIN_LOW); + if(addr &0x40) rt_pin_write(CH438_D6_PIN,PIN_HIGH); else rt_pin_write(CH438_D6_PIN,PIN_LOW); + if(addr &0x20) rt_pin_write(CH438_D5_PIN,PIN_HIGH); else rt_pin_write(CH438_D5_PIN,PIN_LOW); + if(addr &0x10) rt_pin_write(CH438_D4_PIN,PIN_HIGH); else rt_pin_write(CH438_D4_PIN,PIN_LOW); + if(addr &0x08) rt_pin_write(CH438_D3_PIN,PIN_HIGH); else rt_pin_write(CH438_D3_PIN,PIN_LOW); + if(addr &0x04) rt_pin_write(CH438_D2_PIN,PIN_HIGH); else rt_pin_write(CH438_D2_PIN,PIN_LOW); + if(addr &0x02) rt_pin_write(CH438_D1_PIN,PIN_HIGH); else rt_pin_write(CH438_D1_PIN,PIN_LOW); + if(addr &0x01) rt_pin_write(CH438_D0_PIN,PIN_HIGH); else rt_pin_write(CH438_D0_PIN,PIN_LOW); + + CH438_udelay(1); + + rt_pin_write(CH438_ALE_PIN,PIN_LOW); + CH438_udelay(1); + rt_pin_write(CH438_NCS_PIN, PIN_LOW); + CH438_udelay(1); + + if(dat &0x80) rt_pin_write(CH438_D7_PIN,PIN_HIGH); else rt_pin_write(CH438_D7_PIN,PIN_LOW); + if(dat &0x40) rt_pin_write(CH438_D6_PIN,PIN_HIGH); else rt_pin_write(CH438_D6_PIN,PIN_LOW); + if(dat &0x20) rt_pin_write(CH438_D5_PIN,PIN_HIGH); else rt_pin_write(CH438_D5_PIN,PIN_LOW); + if(dat &0x10) rt_pin_write(CH438_D4_PIN,PIN_HIGH); else rt_pin_write(CH438_D4_PIN,PIN_LOW); + if(dat &0x08) rt_pin_write(CH438_D3_PIN,PIN_HIGH); else rt_pin_write(CH438_D3_PIN,PIN_LOW); + if(dat &0x04) rt_pin_write(CH438_D2_PIN,PIN_HIGH); else rt_pin_write(CH438_D2_PIN,PIN_LOW); + if(dat &0x02) rt_pin_write(CH438_D1_PIN,PIN_HIGH); else rt_pin_write(CH438_D1_PIN,PIN_LOW); + if(dat &0x01) rt_pin_write(CH438_D0_PIN,PIN_HIGH); else rt_pin_write(CH438_D0_PIN,PIN_LOW); + + CH438_udelay(1); + + rt_pin_write(CH438_NWR_PIN,PIN_LOW); + CH438_udelay(1); + + rt_pin_write(CH438_NWR_PIN,PIN_HIGH); + rt_pin_write(CH438_ALE_PIN,PIN_HIGH); + rt_pin_write(CH438_NCS_PIN,PIN_HIGH); + CH438_udelay(1); + + CH438_set_input(); + + return; +} + +static void WriteCH438Block( rt_uint8_t mAddr, rt_uint8_t mLen, char *mBuf ) +{ + while ( mLen -- ) { + WriteCH438Data( mAddr, *mBuf++ ); + } +} + +static void CH438Irq(void *parameter) +{ + rt_uint8_t gInterruptStatus; + rt_uint8_t port = 0; + /* multi irq may happen*/ + gInterruptStatus = ReadCH438Data(REG_SSR_ADDR); + port = log(gInterruptStatus & 0xFF)/log(2); + + rt_hw_serial_isr(extuart_serial_parm[port], RT_SERIAL_EVENT_RX_IND); +} + +static rt_err_t rt_extuart_configure(struct rt_serial_device *serial, struct serial_configure *cfg) +{ + rt_uint32_t baud_rate = cfg->baud_rate; + rt_uint16_t port = cfg->reserved; + + CH438_PORT_INIT(port, baud_rate); + return RT_EOK; +} + +static rt_err_t extuart_control(struct rt_serial_device *serial, int cmd, void *arg) +{ + static rt_uint16_t register_flag = 0; + + switch (cmd) + { + case RT_DEVICE_CTRL_CLR_INT: + if(1 == register_flag) + { + rt_pin_irq_enable(CH438_INT_PIN, PIN_IRQ_DISABLE); + register_flag = 0; + } + break; + case RT_DEVICE_CTRL_SET_INT: + if(0 == register_flag) + { + rt_pin_mode(CH438_INT_PIN, PIN_MODE_INPUT_PULLUP); + rt_pin_attach_irq(CH438_INT_PIN, PIN_IRQ_MODE_FALLING, CH438Irq, (void *)serial); + rt_pin_irq_enable(CH438_INT_PIN, PIN_IRQ_ENABLE); + register_flag = 1; + } + break; + } + return (RT_EOK); +} + +static int drv_extuart_putc(struct rt_serial_device *serial, char c) +{ + rt_uint16_t ext_uart_no = serial->config.reserved; + rt_uint8_t REG_LSR_ADDR,REG_THR_ADDR; + + REG_LSR_ADDR = offsetadd[ext_uart_no] | REG_LSR0_ADDR; + REG_THR_ADDR = offsetadd[ext_uart_no] | REG_THR0_ADDR; + + if (2 == ext_uart_no) { + set_485_output(2); + CH438_udelay(950); + } else if (3 == ext_uart_no) { + set_485_output(1); + CH438_udelay(950); + } else if (7 == ext_uart_no) { + set_485_output(3); + CH438_udelay(950); + } + #if defined APPLICATION_SENSOR_WINDSPEED_QS_FS || defined APPLICATION_SENSOR_WINDDIRECTION_QS_FX + #else + rt_thread_mdelay(2); + #endif + if((ReadCH438Data( REG_LSR_ADDR ) & BIT_LSR_TEMT) != 0) + { + WriteCH438Block( REG_THR_ADDR, 1, &c ); + if (2 == ext_uart_no) { + CH438_udelay(950); + set_485_input(2); + } else if (3 == ext_uart_no) { + CH438_udelay(950); + set_485_input(1); + } else if (7 == ext_uart_no) { + CH438_udelay(950); + set_485_input(3); + } + return 1; + } else { + return 0; + } +} + +static int drv_extuart_getc(struct rt_serial_device *serial) +{ + rt_uint8_t dat = 0; + rt_uint8_t REG_LSR_ADDR,REG_RBR_ADDR; + rt_uint16_t ext_uart_no = serial->config.reserved;///< get extern uart port + + REG_LSR_ADDR = offsetadd[ext_uart_no] | REG_LSR0_ADDR; + REG_RBR_ADDR = offsetadd[ext_uart_no] | REG_RBR0_ADDR; + + rt_thread_mdelay(2); + if((ReadCH438Data(REG_LSR_ADDR) & BIT_LSR_DATARDY) == 0x01) + { + dat = ReadCH438Data( REG_RBR_ADDR ); + if(dat >= 0) return dat; + else return -1; + } else { + return -1; + } +} + +const struct rt_uart_ops extuart_ops = +{ + rt_extuart_configure, + extuart_control, + drv_extuart_putc, + drv_extuart_getc, + RT_NULL +}; + +int rt_hw_ch438_init(void) +{ + struct rt_serial_device *extserial; + struct device_uart *extuart; + struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT; + rt_err_t ret; + {// extserial0 + static struct rt_serial_device extserial0; + + extserial = &extserial0; + extserial->ops = &extuart_ops; + extserial->config = config; + extserial->config.baud_rate = 115200; + extserial->config.reserved = 0; ///< extern uart port + extuart_serial_parm[0] = &extserial0; + + ret = rt_hw_serial_register(extserial, + "extuart_dev0", + RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX, + extuart); + if(ret < 0){ + rt_kprintf("extuart_dev0 register failed.\n"); + } + } + {// extserial1 + static struct rt_serial_device extserial1; + + extserial = &extserial1; + extserial->ops = &extuart_ops; + extserial->config = config; + extserial->config.baud_rate = 115200; + extserial->config.reserved = 1; ///< extern uart port + extuart_serial_parm[1] = &extserial1; + + ret = rt_hw_serial_register(extserial, + "extuart_dev1", + RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX, + extuart); + if(ret < 0){ + rt_kprintf("extuart_dev1 register failed.\n"); + } + } + {// extserial2 + static struct rt_serial_device extserial2; + + extserial = &extserial2; + extserial->ops = &extuart_ops; + extserial->config = config; + extserial->config.baud_rate = 9600; + extserial->config.reserved = 2; ///< extern uart port + extuart_serial_parm[2] = &extserial2; + + ret = rt_hw_serial_register(extserial, + "extuart_dev2", + RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX, + extuart); + if(ret < 0){ + rt_kprintf("extuart_dev2 register failed.\n"); + } + } + {// extserial3 + static struct rt_serial_device extserial3; + + extserial = &extserial3; + extserial->ops = &extuart_ops; + extserial->config = config; + extserial->config.baud_rate = 9600; + extserial->config.reserved = 3; ///< extern uart port + extuart_serial_parm[3] = &extserial3; + + ret = rt_hw_serial_register(extserial, + "extuart_dev3", + RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX, + extuart); + if(ret < 0){ + rt_kprintf("extuart_dev3 register failed.\n"); + } + } + {// extserial4 + static struct rt_serial_device extserial4; + + extserial = &extserial4; + extserial->ops = &extuart_ops; + extserial->config = config; + extserial->config.baud_rate = 115200; + extserial->config.reserved = 4; ///< extern uart port + extuart_serial_parm[4] = &extserial4; + + ret = rt_hw_serial_register(extserial, + "extuart_dev4", + RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX, + extuart); + if(ret < 0){ + rt_kprintf("extuart_dev4 register failed.\n"); + } + } + {// extserial5 + static struct rt_serial_device extserial5; + + extserial = &extserial5; + extserial->ops = &extuart_ops; + extserial->config = config; + extserial->config.baud_rate = 115200; + extserial->config.reserved = 5; ///< extern uart port + extuart_serial_parm[5] = &extserial5; + + ret = rt_hw_serial_register(extserial, + "extuart_dev5", + RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX, + extuart); + if(ret < 0){ + rt_kprintf("extuart_dev5 register failed.\n"); + } + } + {// extserial6 + static struct rt_serial_device extserial6; + + extserial = &extserial6; + extserial->ops = &extuart_ops; + extserial->config = config; + extserial->config.baud_rate = 115200; + extserial->config.reserved = 6; ///< extern uart port + extuart_serial_parm[6] = &extserial6; + + ret = rt_hw_serial_register(extserial, + "extuart_dev6", + RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX, + extuart); + if(ret < 0){ + rt_kprintf("extuart_dev6 register failed.\n"); + } + } + {// extserial7 + static struct rt_serial_device extserial7; + + extserial = &extserial7; + extserial->ops = &extuart_ops; + extserial->config = config; + extserial->config.baud_rate = 9600; + extserial->config.reserved = 7; ///< extern uart port + extuart_serial_parm[7] = &extserial7; + + ret = rt_hw_serial_register(extserial, + "extuart_dev7", + RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX, + extuart); + if(ret < 0){ + rt_kprintf("extuart_dev7 register failed.\n"); + } + } + CH438_INIT(); + + return 0; +} +INIT_DEVICE_EXPORT(rt_hw_ch438_init); + + +/* Test CH438 register */ +void CH438_RegTEST(rt_uint8_t num) +{ + rt_uint8_t dat; + + rt_kprintf("current test serilnum: %02x \r\n",offsetadd[num]); + rt_kprintf("IER: %02x\r\n",ReadCH438Data(offsetadd[num] | REG_IER0_ADDR));//?IER + rt_kprintf("IIR: %02x\r\n",ReadCH438Data(offsetadd[num] | REG_IIR0_ADDR));//?IIR + rt_kprintf("LCR: %02x\r\n",ReadCH438Data(offsetadd[num] | REG_LCR0_ADDR));//?LCR + rt_kprintf("MCR: %02x\r\n",ReadCH438Data(offsetadd[num] | REG_MCR0_ADDR));//?MCR + rt_kprintf("LSR: %02x\r\n",ReadCH438Data(offsetadd[num] | REG_LSR0_ADDR));//?LSR + rt_kprintf("MSR: %02x\r\n",ReadCH438Data(offsetadd[num] | REG_MSR0_ADDR));//?MSR + rt_kprintf("FCR: %02x\r\n",ReadCH438Data(offsetadd[num] | REG_FCR0_ADDR));//?FCR + rt_kprintf("SSR: %02x\r\n",ReadCH438Data(offsetadd[num] | REG_SSR_ADDR ));//?SSR + + rt_kprintf("SCR0: %02x\r\n",(rt_uint8_t)ReadCH438Data(offsetadd[num] | REG_SCR0_ADDR));//?SCR + dat = 0x55; + WriteCH438Data(offsetadd[num] | REG_SCR0_ADDR, dat); + rt_kprintf("SCR55: %02x\r\n",(rt_uint8_t)ReadCH438Data(offsetadd[num] | REG_SCR0_ADDR));//?SCR + dat = 0xAA; + WriteCH438Data(offsetadd[num] | REG_SCR0_ADDR, dat); + rt_kprintf("SCRAA: %02x\r\n",(rt_uint8_t)ReadCH438Data(offsetadd[num] | REG_SCR0_ADDR));//?SCR +} + +void CH438_RegsTEST(rt_uint8_t num) +{ + CH438_RegTEST(0); + CH438_RegTEST(1); + CH438_RegTEST(2); + CH438_RegTEST(3); + CH438_RegTEST(4); + CH438_RegTEST(5); + CH438_RegTEST(6); + CH438_RegTEST(7); +} +MSH_CMD_EXPORT(CH438_RegsTEST, CH438_RegsTEST all); + + +/* Test CH438 extended uart */ +#define CH438_DEVICE_NAME "ch438" +static rt_device_t serial6; + +int CH438_TEST_UART6(void) { + rt_uint8_t buff[64]={0}; + rt_uint8_t str[]="rt device write successfully!123+###\r\n"; + rt_size_t size,i; + rt_err_t res = RT_EOK; + + serial6=rt_device_find("extuart_dev6"); + if (!serial6) { + rt_kprintf("find %s failed!\n", CH438_DEVICE_NAME); + return RT_ERROR; + } + + res=rt_device_open(serial6, RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX); + if (res != RT_EOK) { + rt_kprintf("open %s failed!\n", CH438_DEVICE_NAME); + return res; + } + + /* Test Sending and Receiving Data */ + while(1) { + rt_device_write(serial6, 0 , str, sizeof(str)); + size=rt_device_read(serial6, 0, buff, (sizeof(buff))); + rt_kprintf("receving size = %d\n",size); + for(i=0; i + +#define CH438_BUFFSIZE 255 + +/******************************************************************************************/ + +/* chip definition */ +/* CH438serial port0 register address */ + +#define REG_RBR0_ADDR 0x00 /* serial port0receive buffer register address */ +#define REG_THR0_ADDR 0x00 /* serial port0send hold register address */ +#define REG_IER0_ADDR 0x01 /* serial port0interrupt enable register address */ +#define REG_IIR0_ADDR 0x02 /* serial port0interrupt identifies register address */ +#define REG_FCR0_ADDR 0x02 /* serial port0FIFO controls register address */ +#define REG_LCR0_ADDR 0x03 /* serial port0circuit control register address */ +#define REG_MCR0_ADDR 0x04 /* serial port0MODEM controls register address */ +#define REG_LSR0_ADDR 0x05 /* serial port0line status register address */ +#define REG_MSR0_ADDR 0x06 /* serial port0address of MODEM status register */ +#define REG_SCR0_ADDR 0x07 /* serial port0the user can define the register address */ +#define REG_DLL0_ADDR 0x00 /* Baud rate divisor latch low 8-bit byte address */ +#define REG_DLM0_ADDR 0x01 /* Baud rate divisor latch high 8-bit byte address */ + +/* CH438serial port1 register address */ + +#define REG_RBR1_ADDR 0x10 /* serial port1receive buffer register address */ +#define REG_THR1_ADDR 0x10 /* serial port1send hold register address */ +#define REG_IER1_ADDR 0x11 /* serial port1interrupt enable register address */ +#define REG_IIR1_ADDR 0x12 /* serial port1interrupt identifies register address */ +#define REG_FCR1_ADDR 0x12 /* serial port1FIFO controls register address */ +#define REG_LCR1_ADDR 0x13 /* serial port1circuit control register address */ +#define REG_MCR1_ADDR 0x14 /* serial port1MODEM controls register address */ +#define REG_LSR1_ADDR 0x15 /* serial port1line status register address */ +#define REG_MSR1_ADDR 0x16 /* serial port1address of MODEM status register */ +#define REG_SCR1_ADDR 0x17 /* serial port1the user can define the register address */ +#define REG_DLL1_ADDR 0x10 /* Baud rate divisor latch low 8-bit byte address */ +#define REG_DLM1_ADDR 0x11 /* Baud rate divisor latch high 8-bit byte address */ + + +/* CH438serial port2 register address */ + +#define REG_RBR2_ADDR 0x20 /* serial port2receive buffer register address */ +#define REG_THR2_ADDR 0x20 /* serial port2send hold register address */ +#define REG_IER2_ADDR 0x21 /* serial port2interrupt enable register address */ +#define REG_IIR2_ADDR 0x22 /* serial port2interrupt identifies register address */ +#define REG_FCR2_ADDR 0x22 /* serial port2FIFO controls register address */ +#define REG_LCR2_ADDR 0x23 /* serial port2circuit control register address */ +#define REG_MCR2_ADDR 0x24 /* serial port2MODEM controls register address */ +#define REG_LSR2_ADDR 0x25 /* serial port2line status register address */ +#define REG_MSR2_ADDR 0x26 /* serial port2address of MODEM status register */ +#define REG_SCR2_ADDR 0x27 /* serial port2the user can define the register address */ +#define REG_DLL2_ADDR 0x20 /* Baud rate divisor latch low 8-bit byte address */ +#define REG_DLM2_ADDR 0x21 /* Baud rate divisor latch high 8-bit byte address */ + + + +/* CH438serial port3 register address */ + +#define REG_RBR3_ADDR 0x30 /* serial port3receive buffer register address */ +#define REG_THR3_ADDR 0x30 /* serial port3send hold register address */ +#define REG_IER3_ADDR 0x31 /* serial port3interrupt enable register address */ +#define REG_IIR3_ADDR 0x32 /* serial port3interrupt identifies register address */ +#define REG_FCR3_ADDR 0x32 /* serial port3FIFO controls register address */ +#define REG_LCR3_ADDR 0x33 /* serial port3circuit control register address */ +#define REG_MCR3_ADDR 0x34 /* serial port3MODEM controls register address */ +#define REG_LSR3_ADDR 0x35 /* serial port3line status register address */ +#define REG_MSR3_ADDR 0x36 /* serial port3address of MODEM status register */ +#define REG_SCR3_ADDR 0x37 /* serial port3the user can define the register address */ +#define REG_DLL3_ADDR 0x30 /* Baud rate divisor latch low 8-bit byte address */ +#define REG_DLM3_ADDR 0x31 /* Baud rate divisor latch high 8-bit byte address */ + + +/* CH438serial port4 register address */ + +#define REG_RBR4_ADDR 0x08 /* serial port4receive buffer register address */ +#define REG_THR4_ADDR 0x08 /* serial port4send hold register address */ +#define REG_IER4_ADDR 0x09 /* serial port4interrupt enable register address */ +#define REG_IIR4_ADDR 0x0A /* serial port4interrupt identifies register address */ +#define REG_FCR4_ADDR 0x0A /* serial port4FIFO controls register address */ +#define REG_LCR4_ADDR 0x0B /* serial port4circuit control register address */ +#define REG_MCR4_ADDR 0x0C /* serial port4MODEM controls register address */ +#define REG_LSR4_ADDR 0x0D /* serial port4line status register address */ +#define REG_MSR4_ADDR 0x0E /* serial port4address of MODEM status register */ +#define REG_SCR4_ADDR 0x0F /* serial port4the user can define the register address */ +#define REG_DLL4_ADDR 0x08 /* Baud rate divisor latch low 8-bit byte address */ +#define REG_DLM4_ADDR 0x09 /* Baud rate divisor latch high 8-bit byte address */ + + + +/* CH438serial port5 register address */ + +#define REG_RBR5_ADDR 0x18 /* serial port5receive buffer register address */ +#define REG_THR5_ADDR 0x18 /* serial port5send hold register address */ +#define REG_IER5_ADDR 0x19 /* serial port5interrupt enable register address */ +#define REG_IIR5_ADDR 0x1A /* serial port5interrupt identifies register address */ +#define REG_FCR5_ADDR 0x1A /* serial port5FIFO controls register address */ +#define REG_LCR5_ADDR 0x1B /* serial port5circuit control register address */ +#define REG_MCR5_ADDR 0x1C /* serial port5MODEM controls register address */ +#define REG_LSR5_ADDR 0x1D /* serial port5line status register address */ +#define REG_MSR5_ADDR 0x1E /* serial port5address of MODEM status register */ +#define REG_SCR5_ADDR 0x1F /* serial port5the user can define the register address */ +#define REG_DLL5_ADDR 0x18 /* Baud rate divisor latch low 8-bit byte address */ +#define REG_DLM5_ADDR 0x19 /* Baud rate divisor latch high 8-bit byte address */ + + +/* CH438serial port6 register address */ + +#define REG_RBR6_ADDR 0x28 /* serial port6receive buffer register address */ +#define REG_THR6_ADDR 0x28 /* serial port6send hold register address */ +#define REG_IER6_ADDR 0x29 /* serial port6interrupt enable register address */ +#define REG_IIR6_ADDR 0x2A /* serial port6interrupt identifies register address */ +#define REG_FCR6_ADDR 0x2A /* serial port6FIFO controls register address */ +#define REG_LCR6_ADDR 0x2B /* serial port6circuit control register address */ +#define REG_MCR6_ADDR 0x2C /* serial port6MODEM controls register address */ +#define REG_LSR6_ADDR 0x2D /* serial port6line status register address */ +#define REG_MSR6_ADDR 0x2E /* serial port6address of MODEM status register */ +#define REG_SCR6_ADDR 0x2F /* serial port6the user can define the register address */ +#define REG_DLL6_ADDR 0x28 /* Baud rate divisor latch low 8-bit byte address */ +#define REG_DLM6_ADDR 0x29 /* Baud rate divisor latch high 8-bit byte address */ + + +/* CH438serial port7 register address */ + +#define REG_RBR7_ADDR 0x38 /* serial port7receive buffer register address */ +#define REG_THR7_ADDR 0x38 /* serial port7send hold register address */ +#define REG_IER7_ADDR 0x39 /* serial port7interrupt enable register address */ +#define REG_IIR7_ADDR 0x3A /* serial port7interrupt identifies register address */ +#define REG_FCR7_ADDR 0x3A /* serial port7FIFO controls register address */ +#define REG_LCR7_ADDR 0x3B /* serial port7circuit control register address */ +#define REG_MCR7_ADDR 0x3C /* serial port7MODEM controls register address */ +#define REG_LSR7_ADDR 0x3D /* serial port7line status register address */ +#define REG_MSR7_ADDR 0x3E /* serial port7address of MODEM status register */ +#define REG_SCR7_ADDR 0x3F /* serial port7the user can define the register address */ +#define REG_DLL7_ADDR 0x38 /* Baud rate divisor latch low 8-bit byte address */ +#define REG_DLM7_ADDR 0x39 /* Baud rate divisor latch high 8-bit byte address */ + + +#define REG_SSR_ADDR 0x4F /* pecial status register address */ + + +/* IER register bit */ + +#define BIT_IER_RESET 0x80 /* The bit is 1 soft reset serial port */ +#define BIT_IER_LOWPOWER 0x40 /* The bit is 1 close serial port internal reference clock */ +#define BIT_IER_SLP 0x20 /* serial port0 is SLP, 1 close clock vibrator */ +#define BIT_IER1_CK2X 0x20 /* serial port1 is CK2X, 1 force the external clock signal after 2 times as internal reference clock */ +#define BIT_IER_IEMODEM 0x08 /* The bit is 1 allows MODEM input status to interrupt */ +#define BIT_IER_IELINES 0x04 /* The bit is 1 allow receiving line status to be interrupted */ +#define BIT_IER_IETHRE 0x02 /* The bit is 1 allows the send hold register to break in mid-air */ +#define BIT_IER_IERECV 0x01 /* The bit is 1 allows receiving data interrupts */ + +/* IIR register bit */ + +#define BIT_IIR_FIFOENS1 0x80 +#define BIT_IIR_FIFOENS0 0x40 /* The two is 1 said use FIFO */ + +/* Interrupt type: 0001 has no interrupt, 0110 receiving line status is interrupted, 0100 receiving data can be interrupted, +1100 received data timeout interrupt, 0010THR register air interrupt, 0000MODEM input change interrupt */ +#define BIT_IIR_IID3 0x08 +#define BIT_IIR_IID2 0x04 +#define BIT_IIR_IID1 0x02 +#define BIT_IIR_NOINT 0x01 + +/* FCR register bit */ + +/* Trigger point: 00 corresponds to 1 byte, 01 corresponds to 16 bytes, 10 corresponds to 64 bytes, 11 corresponds to 112 bytes */ +#define BIT_FCR_RECVTG1 0x80 /* Set the trigger point for FIFO interruption and automatic hardware flow control */ +#define BIT_FCR_RECVTG0 0x40 /* Set the trigger point for FIFO interruption and automatic hardware flow control */ + +#define BIT_FCR_TFIFORST 0x04 /* The bit is 1 empty the data sent in FIFO */ +#define BIT_FCR_RFIFORST 0x02 /* The bit is 1 empty the data sent in FIFO */ +#define BIT_FCR_FIFOEN 0x01 /* The bit is 1 use FIFO, 0 disable FIFO */ + +/* LCR register bit */ + +#define BIT_LCR_DLAB 0x80 /* To access DLL, DLM, 0 to access RBR/THR/IER */ +#define BIT_LCR_BREAKEN 0x40 /* 1 forces a BREAK line interval*/ + +/* Set the check format: when PAREN is 1, 00 odd check, 01 even check, 10 MARK (set 1), 11 blank (SPACE, clear 0) */ +#define BIT_LCR_PARMODE1 0x20 /* Sets the parity bit format */ +#define BIT_LCR_PARMODE0 0x10 /* Sets the parity bit format */ + +#define BIT_LCR_PAREN 0x08 /* A value of 1 allows you to generate and receive parity bits when sending */ +#define BIT_LCR_STOPBIT 0x04 /* If is 1, then two stop bits, is 0, a stop bit */ + +/* Set word length: 00 for 5 data bits, 01 for 6 data bits, 10 for 7 data bits and 11 for 8 data bits */ +#define BIT_LCR_WORDSZ1 0x02 /* Set the word length length */ +#define BIT_LCR_WORDSZ0 0x01 + +/* MCR register bit */ + +#define BIT_MCR_AFE 0x20 /* For 1 allows automatic flow control of CTS and RTS hardware */ +#define BIT_MCR_LOOP 0x10 /* Is the test mode of 1 enabling internal loop */ +#define BIT_MCR_OUT2 0x08 /* 1 Allows an interrupt request for the serial port output */ +#define BIT_MCR_OUT1 0x04 /* The MODEM control bit defined for the user */ +#define BIT_MCR_RTS 0x02 /* The bit is 1 RTS pin output effective */ +#define BIT_MCR_DTR 0x01 /* The bit is 1 DTR pin output effective */ + +/* LSR register bit */ + +#define BIT_LSR_RFIFOERR 0x80 /* 1 said There is at least one error in receiving FIFO */ +#define BIT_LSR_TEMT 0x40 /* 1 said THR and TSR are empty */ +#define BIT_LSR_THRE 0x20 /* 1 said THR is empty*/ +#define BIT_LSR_BREAKINT 0x10 /* The bit is 1 said the BREAK line interval was detected*/ +#define BIT_LSR_FRAMEERR 0x08 /* The bit is 1 said error reading data frame */ +#define BIT_LSR_PARERR 0x04 /* The bit is 1 said parity error */ +#define BIT_LSR_OVERR 0x02 /* 1 said receive FIFO buffer overflow */ +#define BIT_LSR_DATARDY 0x01 /* The bit is 1 said receive data received in FIFO */ + +/* MSR register bit */ + +#define BIT_MSR_DCD 0x80 /* The bit is 1 said DCD pin effective */ +#define BIT_MSR_RI 0x40 /* The bit is 1 said RI pin effective */ +#define BIT_MSR_DSR 0x20 /* The bit is 1 said DSR pin effective */ +#define BIT_MSR_CTS 0x10 /* The bit is 1 said CTS pin effective */ +#define BIT_MSR_DDCD 0x08 /* The bit is 1 said DCD pin The input state has changed */ +#define BIT_MSR_TERI 0x04 /* The bit is 1 said RI pin The input state has changed */ +#define BIT_MSR_DDSR 0x02 /* The bit is 1 said DSR pin The input state has changed */ +#define BIT_MSR_DCTS 0x01 /* The bit is 1 said CTS pin The input state has changed */ + +/* Interrupt status code */ + +#define INT_NOINT 0x01 /* There is no interruption */ +#define INT_THR_EMPTY 0x02 /* THR empty interruption */ +#define INT_RCV_OVERTIME 0x0C /* Receive timeout interrupt */ +#define INT_RCV_SUCCESS 0x04 /* Interrupts are available to receive data */ +#define INT_RCV_LINES 0x06 /* Receiving line status interrupted */ +#define INT_MODEM_CHANGE 0x00 /* MODEM input changes interrupt */ + +#define CH438_IIR_FIFOS_ENABLED 0xC0 /* use FIFO */ + +#define Fpclk 1843200 /* Define the internal clock frequency */ + +#define CH438_D0_PIN GET_PIN(E, 2) +#define CH438_D1_PIN GET_PIN(E, 3) +#define CH438_D2_PIN GET_PIN(E, 4) +#define CH438_D3_PIN GET_PIN(E, 5) +#define CH438_D4_PIN GET_PIN(E, 6) +#define CH438_D5_PIN GET_PIN(F, 6) +#define CH438_D6_PIN GET_PIN(F, 7) +#define CH438_D7_PIN GET_PIN(F, 8) +#define CH438_NWR_PIN GET_PIN(C, 4) +#define CH438_NRD_PIN GET_PIN(C, 5) +#define CH438_NCS_PIN GET_PIN(B, 1) +#define CH438_ALE_PIN GET_PIN(B, 2) +#define CH438_INT_PIN GET_PIN(C, 13) +#define DIR_485CH1_PIN GET_PIN(F, 10) //485ch1 = ext_uart3 +#define DIR_485CH2_PIN GET_PIN(F, 9) //485ch2 = ext_uart2 +#define DIR_485CH3_PIN GET_PIN(D, 7) //485ch3 = ext_uart7 + +void CH438_INIT(void); +void CH438_PORT_INIT( rt_uint8_t ext_uart_no, rt_uint32_t BaudRate ); +void set_485_input(rt_uint8_t ch_no); +void set_485_output(rt_uint8_t ch_no); +rt_uint8_t ReadCH438Data( rt_uint8_t addr ); +void CH438UARTSend( rt_uint8_t ext_uart_no,rt_uint8_t *Data, rt_uint8_t Num ); +rt_uint8_t CH438UARTRcv( rt_uint8_t ext_uart_no, rt_uint8_t* buf ); + +static void CH438_set_output(void); +static void CH438_set_input(void); +static void WriteCH438Data( rt_uint8_t addr, char dat); +static void WriteCH438Block( rt_uint8_t mAddr, rt_uint8_t mLen, char *mBuf ); + +int rt_hw_ch438_init(void); +void CH438_RegTEST(rt_uint8_t num); + +#endif diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/board/linker_scripts/link.icf b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/board/linker_scripts/link.icf new file mode 100644 index 00000000..269874c2 --- /dev/null +++ b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/board/linker_scripts/link.icf @@ -0,0 +1,30 @@ +/*###ICF### Section handled by ICF editor, don't touch! ****/ +/*-Editor annotation file-*/ +/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ +/*-Specials-*/ +define symbol __ICFEDIT_intvec_start__ = 0x08000000; +/*-Memory Regions-*/ +define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; +define symbol __ICFEDIT_region_ROM_end__ = 0x080FFFFF; +define symbol __ICFEDIT_region_RAM1_start__ = 0x20000000; +define symbol __ICFEDIT_region_RAM1_end__ = 0x2001FFFF; +define symbol __ICFEDIT_region_RAM2_start__ = 0x10000000; +define symbol __ICFEDIT_region_RAM2_end__ = 0x1000FFFF; +/*-Sizes-*/ +define symbol __ICFEDIT_size_cstack__ = 0x0400; +define symbol __ICFEDIT_size_heap__ = 0x000; +/**** End of ICF editor section. ###ICF###*/ + +define memory mem with size = 4G; +define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; +define region RAM1_region = mem:[from __ICFEDIT_region_RAM1_start__ to __ICFEDIT_region_RAM1_end__]; + +define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; + +initialize by copy { readwrite }; +do not initialize { section .noinit }; + +place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; + +place in ROM_region { readonly }; +place in RAM1_region { readwrite, last block CSTACK }; diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/board/linker_scripts/link.sct b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/board/linker_scripts/link.sct new file mode 100644 index 00000000..ab9efbae --- /dev/null +++ b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/board/linker_scripts/link.sct @@ -0,0 +1,15 @@ +; ************************************************************* +; *** Scatter-Loading Description File generated by uVision *** +; ************************************************************* + +LR_IROM1 0x08000000 0x00100000 { ; load region size_region + ER_IROM1 0x08000000 0x00100000 { ; load address = execution address + *.o (RESET, +First) + *(InRoot$$Sections) + .ANY (+RO) + } + RW_IRAM1 0x20000000 0x00020000 { ; RW data + .ANY (+RW +ZI) + } +} + diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/board/ports/I2c/Kconfig b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/board/ports/I2c/Kconfig index 168ee276..f2d8a291 100644 --- a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/board/ports/I2c/Kconfig +++ b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/board/ports/I2c/Kconfig @@ -1,13 +1,3 @@ config BSP_USING_I2C1 bool "Enable I2C1 BUS (software simulation)" default y - if BSP_USING_I2C1 - config BSP_I2C1_SCL_PIN - int "I2C scl pin number" - range 0 143 - default 24 - config BSP_I2C1_SDA_PIN - int "I2C sda pin number" - range 0 143 - default 25 - endif diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/project.uvoptx b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/project.uvoptx new file mode 100644 index 00000000..7c1b0467 --- /dev/null +++ b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/project.uvoptx @@ -0,0 +1,1692 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc; *.md + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + rt-thread + 0x4 + ARM-ADS + + 168000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\build\keil\List\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 18 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 6 + + + + + + + + + + + STLink\ST-LINKIII-KEIL_SWO.dll + + + + 0 + JL2CM3 + -U30000299 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(4) -TO18 -TC10000000 -TP21 -TDS8001 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM) + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F407ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM)) + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + 1 + 0 + 0 + 2 + 10000000 + + + + + + app_test + 0 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + ..\..\..\..\APP_Framework\Applications\app_test\test_shell.c + test_shell.c + 0 + 0 + + + + + Applications + 0 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + applications\main.c + main.c + 0 + 0 + + + + + CPU + 0 + 0 + 0 + 0 + + 3 + 3 + 1 + 0 + 0 + 0 + ..\..\rt-thread\libcpu\arm\common\showmem.c + showmem.c + 0 + 0 + + + 3 + 4 + 1 + 0 + 0 + 0 + ..\..\rt-thread\libcpu\arm\common\backtrace.c + backtrace.c + 0 + 0 + + + 3 + 5 + 1 + 0 + 0 + 0 + ..\..\rt-thread\libcpu\arm\common\div0.c + div0.c + 0 + 0 + + + 3 + 6 + 2 + 0 + 0 + 0 + ..\..\rt-thread\libcpu\arm\cortex-m4\context_rvds.S + context_rvds.S + 0 + 0 + + + 3 + 7 + 1 + 0 + 0 + 0 + ..\..\rt-thread\libcpu\arm\cortex-m4\cpuport.c + cpuport.c + 0 + 0 + + + + + DeviceDrivers + 0 + 0 + 0 + 0 + + 4 + 8 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\drivers\can\can.c + can.c + 0 + 0 + + + 4 + 9 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\drivers\i2c\i2c_core.c + i2c_core.c + 0 + 0 + + + 4 + 10 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\drivers\i2c\i2c_dev.c + i2c_dev.c + 0 + 0 + + + 4 + 11 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\drivers\i2c\i2c-bit-ops.c + i2c-bit-ops.c + 0 + 0 + + + 4 + 12 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\drivers\misc\pin.c + pin.c + 0 + 0 + + + 4 + 13 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\drivers\serial\serial.c + serial.c + 0 + 0 + + + 4 + 14 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\drivers\spi\sfud\src\sfud.c + sfud.c + 0 + 0 + + + 4 + 15 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\drivers\spi\spi_msd.c + spi_msd.c + 0 + 0 + + + 4 + 16 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\drivers\spi\spi_core.c + spi_core.c + 0 + 0 + + + 4 + 17 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\drivers\spi\sfud\src\sfud_sfdp.c + sfud_sfdp.c + 0 + 0 + + + 4 + 18 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\drivers\spi\spi_dev.c + spi_dev.c + 0 + 0 + + + 4 + 19 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\drivers\spi\spi_flash_sfud.c + spi_flash_sfud.c + 0 + 0 + + + 4 + 20 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\drivers\src\ringbuffer.c + ringbuffer.c + 0 + 0 + + + 4 + 21 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\drivers\src\waitqueue.c + waitqueue.c + 0 + 0 + + + 4 + 22 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\drivers\src\dataqueue.c + dataqueue.c + 0 + 0 + + + 4 + 23 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\drivers\src\workqueue.c + workqueue.c + 0 + 0 + + + 4 + 24 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\drivers\src\completion.c + completion.c + 0 + 0 + + + 4 + 25 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\drivers\src\ringblk_buf.c + ringblk_buf.c + 0 + 0 + + + 4 + 26 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\drivers\src\pipe.c + pipe.c + 0 + 0 + + + + + Drivers + 0 + 0 + 0 + 0 + + 5 + 27 + 1 + 0 + 0 + 0 + board\CubeMX_Config\Src\stm32f4xx_hal_msp.c + stm32f4xx_hal_msp.c + 0 + 0 + + + 5 + 28 + 1 + 0 + 0 + 0 + board\ch438.c + ch438.c + 0 + 0 + + + 5 + 29 + 2 + 0 + 0 + 0 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f407xx.s + startup_stm32f407xx.s + 0 + 0 + + + 5 + 30 + 1 + 0 + 0 + 0 + board\board.c + board.c + 0 + 0 + + + 5 + 31 + 1 + 0 + 0 + 0 + ..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drv_gpio.c + drv_gpio.c + 0 + 0 + + + 5 + 32 + 1 + 0 + 0 + 0 + ..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drv_can.c + drv_can.c + 0 + 0 + + + 5 + 33 + 1 + 0 + 0 + 0 + ..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drv_spi.c + drv_spi.c + 0 + 0 + + + 5 + 34 + 1 + 0 + 0 + 0 + ..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drv_soft_i2c.c + drv_soft_i2c.c + 0 + 0 + + + 5 + 35 + 1 + 0 + 0 + 0 + ..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drv_usart.c + drv_usart.c + 0 + 0 + + + 5 + 36 + 1 + 0 + 0 + 0 + ..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drv_common.c + drv_common.c + 0 + 0 + + + + + Filesystem + 0 + 0 + 0 + 0 + + 6 + 37 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\dfs\src\dfs_posix.c + dfs_posix.c + 0 + 0 + + + 6 + 38 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\dfs\src\dfs_poll.c + dfs_poll.c + 0 + 0 + + + 6 + 39 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\dfs\src\dfs_file.c + dfs_file.c + 0 + 0 + + + 6 + 40 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\dfs\src\dfs.c + dfs.c + 0 + 0 + + + 6 + 41 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\dfs\src\dfs_fs.c + dfs_fs.c + 0 + 0 + + + 6 + 42 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\dfs\src\dfs_select.c + dfs_select.c + 0 + 0 + + + 6 + 43 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\dfs\filesystems\devfs\devfs.c + devfs.c + 0 + 0 + + + 6 + 44 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\dfs\filesystems\elmfat\dfs_elm.c + dfs_elm.c + 0 + 0 + + + 6 + 45 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\dfs\filesystems\elmfat\ff.c + ff.c + 0 + 0 + + + 6 + 46 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\dfs\filesystems\elmfat\ffunicode.c + ffunicode.c + 0 + 0 + + + 6 + 47 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\dfs\filesystems\romfs\romfs.c + romfs.c + 0 + 0 + + + 6 + 48 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\dfs\filesystems\romfs\dfs_romfs.c + dfs_romfs.c + 0 + 0 + + + + + Finsh + 0 + 0 + 0 + 0 + + 7 + 49 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\finsh\shell.c + shell.c + 0 + 0 + + + 7 + 50 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\finsh\msh.c + msh.c + 0 + 0 + + + 7 + 51 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\finsh\msh_file.c + msh_file.c + 0 + 0 + + + 7 + 52 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\finsh\cmd.c + cmd.c + 0 + 0 + + + + + Kernel + 0 + 0 + 0 + 0 + + 8 + 53 + 1 + 0 + 0 + 0 + ..\..\rt-thread\src\kservice.c + kservice.c + 0 + 0 + + + 8 + 54 + 1 + 0 + 0 + 0 + ..\..\rt-thread\src\memheap.c + memheap.c + 0 + 0 + + + 8 + 55 + 1 + 0 + 0 + 0 + ..\..\rt-thread\src\ipc.c + ipc.c + 0 + 0 + + + 8 + 56 + 1 + 0 + 0 + 0 + ..\..\rt-thread\src\clock.c + clock.c + 0 + 0 + + + 8 + 57 + 1 + 0 + 0 + 0 + ..\..\rt-thread\src\irq.c + irq.c + 0 + 0 + + + 8 + 58 + 1 + 0 + 0 + 0 + ..\..\rt-thread\src\mempool.c + mempool.c + 0 + 0 + + + 8 + 59 + 1 + 0 + 0 + 0 + ..\..\rt-thread\src\device.c + device.c + 0 + 0 + + + 8 + 60 + 1 + 0 + 0 + 0 + ..\..\rt-thread\src\thread.c + thread.c + 0 + 0 + + + 8 + 61 + 1 + 0 + 0 + 0 + ..\..\rt-thread\src\object.c + object.c + 0 + 0 + + + 8 + 62 + 1 + 0 + 0 + 0 + ..\..\rt-thread\src\idle.c + idle.c + 0 + 0 + + + 8 + 63 + 1 + 0 + 0 + 0 + ..\..\rt-thread\src\timer.c + timer.c + 0 + 0 + + + 8 + 64 + 1 + 0 + 0 + 0 + ..\..\rt-thread\src\scheduler.c + scheduler.c + 0 + 0 + + + 8 + 65 + 1 + 0 + 0 + 0 + ..\..\rt-thread\src\components.c + components.c + 0 + 0 + + + + + libc + 0 + 0 + 0 + 0 + + 9 + 66 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\libc\compilers\armlibc\stdio.c + stdio.c + 0 + 0 + + + 9 + 67 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\libc\compilers\armlibc\syscalls.c + syscalls.c + 0 + 0 + + + 9 + 68 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\libc\compilers\armlibc\mem_std.c + mem_std.c + 0 + 0 + + + 9 + 69 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\libc\compilers\armlibc\libc.c + libc.c + 0 + 0 + + + 9 + 70 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\libc\compilers\common\stdlib.c + stdlib.c + 0 + 0 + + + 9 + 71 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\libc\compilers\common\delay.c + delay.c + 0 + 0 + + + 9 + 72 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\libc\compilers\common\unistd.c + unistd.c + 0 + 0 + + + 9 + 73 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\libc\compilers\common\time.c + time.c + 0 + 0 + + + 9 + 74 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\libc\posix\pthreads\pthread.c + pthread.c + 0 + 0 + + + 9 + 75 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\libc\posix\pthreads\pthread_spin.c + pthread_spin.c + 0 + 0 + + + 9 + 76 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\libc\posix\pthreads\pthread_tls.c + pthread_tls.c + 0 + 0 + + + 9 + 77 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\libc\posix\pthreads\sched.c + sched.c + 0 + 0 + + + 9 + 78 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\libc\posix\pthreads\mqueue.c + mqueue.c + 0 + 0 + + + 9 + 79 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\libc\posix\pthreads\pthread_attr.c + pthread_attr.c + 0 + 0 + + + 9 + 80 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\libc\posix\pthreads\pthread_barrier.c + pthread_barrier.c + 0 + 0 + + + 9 + 81 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\libc\posix\pthreads\pthread_mutex.c + pthread_mutex.c + 0 + 0 + + + 9 + 82 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\libc\posix\pthreads\pthread_cond.c + pthread_cond.c + 0 + 0 + + + 9 + 83 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\libc\posix\pthreads\pthread_rwlock.c + pthread_rwlock.c + 0 + 0 + + + 9 + 84 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\libc\posix\pthreads\semaphore.c + semaphore.c + 0 + 0 + + + + + Libraries + 0 + 0 + 0 + 0 + + 10 + 85 + 1 + 0 + 0 + 0 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_qspi.c + stm32f4xx_hal_qspi.c + 0 + 0 + + + 10 + 86 + 1 + 0 + 0 + 0 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c + stm32f4xx_hal_uart.c + 0 + 0 + + + 10 + 87 + 1 + 0 + 0 + 0 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c + stm32f4xx_hal_rcc_ex.c + 0 + 0 + + + 10 + 88 + 1 + 0 + 0 + 0 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c + stm32f4xx_hal_spi.c + 0 + 0 + + + 10 + 89 + 1 + 0 + 0 + 0 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp_ex.c + stm32f4xx_hal_cryp_ex.c + 0 + 0 + + + 10 + 90 + 1 + 0 + 0 + 0 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c + stm32f4xx_hal_pwr_ex.c + 0 + 0 + + + 10 + 91 + 1 + 0 + 0 + 0 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c + stm32f4xx_hal_dma.c + 0 + 0 + + + 10 + 92 + 1 + 0 + 0 + 0 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_usart.c + stm32f4xx_hal_usart.c + 0 + 0 + + + 10 + 93 + 1 + 0 + 0 + 0 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_crc.c + stm32f4xx_hal_crc.c + 0 + 0 + + + 10 + 94 + 1 + 0 + 0 + 0 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_i2c_ex.c + stm32f4xx_hal_i2c_ex.c + 0 + 0 + + + 10 + 95 + 1 + 0 + 0 + 0 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c + stm32f4xx_hal_rcc.c + 0 + 0 + + + 10 + 96 + 1 + 0 + 0 + 0 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c + stm32f4xx_hal_dma_ex.c + 0 + 0 + + + 10 + 97 + 1 + 0 + 0 + 0 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c + stm32f4xx_hal_pwr.c + 0 + 0 + + + 10 + 98 + 1 + 0 + 0 + 0 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rng.c + stm32f4xx_hal_rng.c + 0 + 0 + + + 10 + 99 + 1 + 0 + 0 + 0 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c + stm32f4xx_hal_cortex.c + 0 + 0 + + + 10 + 100 + 1 + 0 + 0 + 0 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_can.c + stm32f4xx_hal_can.c + 0 + 0 + + + 10 + 101 + 1 + 0 + 0 + 0 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp.c + stm32f4xx_hal_cryp.c + 0 + 0 + + + 10 + 102 + 1 + 0 + 0 + 0 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c + stm32f4xx_hal.c + 0 + 0 + + + 10 + 103 + 1 + 0 + 0 + 0 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_i2c.c + stm32f4xx_hal_i2c.c + 0 + 0 + + + 10 + 104 + 1 + 0 + 0 + 0 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cec.c + stm32f4xx_hal_cec.c + 0 + 0 + + + 10 + 105 + 1 + 0 + 0 + 0 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c + system_stm32f4xx.c + 0 + 0 + + + 10 + 106 + 1 + 0 + 0 + 0 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c + stm32f4xx_hal_gpio.c + 0 + 0 + + + + + list + 0 + 0 + 0 + 0 + + 11 + 107 + 1 + 0 + 0 + 0 + ..\..\..\..\APP_Framework\Applications\general_functions\list\double_list.c + double_list.c + 0 + 0 + + + 11 + 108 + 1 + 0 + 0 + 0 + ..\..\..\..\APP_Framework\Applications\general_functions\list\single_list.c + single_list.c + 0 + 0 + + + + + SAL + 0 + 0 + 0 + 0 + + 12 + 109 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\net\netdev\src\netdev.c + netdev.c + 0 + 0 + + + 12 + 110 + 1 + 0 + 0 + 0 + ..\..\rt-thread\components\net\netdev\src\netdev_ipaddr.c + netdev_ipaddr.c + 0 + 0 + + + + + sensor + 0 + 0 + 0 + 0 + + 13 + 111 + 1 + 0 + 0 + 0 + ..\..\..\..\APP_Framework\Framework\sensor\sensor.c + sensor.c + 0 + 0 + + + 13 + 112 + 1 + 0 + 0 + 0 + ..\..\..\..\APP_Framework\Applications\framework_init.c + framework_init.c + 0 + 0 + + + + + sensor wind direction qs-fx + 0 + 0 + 0 + 0 + + 14 + 113 + 1 + 0 + 0 + 0 + ..\..\..\..\APP_Framework\Framework\sensor\winddirection\qs-fx\qs-fx.c + qs-fx.c + 0 + 0 + + + + + sensor_app + 0 + 0 + 0 + 0 + + 15 + 114 + 1 + 0 + 0 + 0 + ..\..\..\..\APP_Framework\Applications\sensor_app\winddirection_qs_fx.c + winddirection_qs_fx.c + 0 + 0 + + + + + transform + 0 + 0 + 0 + 0 + + 16 + 115 + 1 + 0 + 0 + 0 + ..\..\..\..\APP_Framework\Framework\transform_layer\rtthread\transform.c + transform.c + 0 + 0 + + + +
diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/project.uvprojx b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/project.uvprojx new file mode 100644 index 00000000..2c76273f --- /dev/null +++ b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/project.uvprojx @@ -0,0 +1,1117 @@ + + + + 2.1 + +
### uVision Project, (C) Keil Software
+ + + + rt-thread + 0x4 + ARM-ADS + 5060960::V5.06 update 7 (build 960)::.\ARMCC + 0 + + + STM32F407ZGTx + STMicroelectronics + Keil.STM32F4xx_DFP.2.16.0 + http://www.keil.com/pack/ + IRAM(0x20000000,0x20000) IRAM2(0x10000000,0x10000) IROM(0x08000000,0x100000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F407ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM)) + 0 + $$Device:STM32F407ZGTx$Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f4xx.h + + + + + + + + + + $$Device:STM32F407ZGTx$CMSIS\SVD\STM32F40x.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\build\keil\Obj\ + rt-thread + 1 + 0 + 0 + 1 + 0 + .\build\keil\List\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + fromelf --bin !L --output rtthread.bin + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -REMAP -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + "" () + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 1 + 0 + 8 + 0 + 0 + 0 + 0 + 3 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 1 + 0x8000000 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 0 + 0x10000000 + 0x10000 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + + + USE_HAL_DRIVER, STM32F407xx, RT_USING_ARM_LIBC, __RTTHREAD__, __CLK_TCK=RT_TICK_PER_SECOND + + ..\..\..\..\APP_Framework\Applications\app_test;applications;..\..\..\..\APP_Framework\Framework\connection;..\..\rt-thread\libcpu\arm\common;..\..\rt-thread\libcpu\arm\cortex-m4;..\..\rt-thread\components\drivers\include;..\..\rt-thread\components\drivers\include;..\..\rt-thread\components\drivers\include;..\..\rt-thread\components\drivers\include;..\..\rt-thread\components\drivers\spi;..\..\rt-thread\components\drivers\include;..\..\rt-thread\components\drivers\spi\sfud\inc;..\..\rt-thread\components\drivers\include;board;board\CubeMX_Config\Inc;board\ports;..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers;..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\config;..\..\rt-thread\components\dfs\include;..\..\rt-thread\components\dfs\filesystems\devfs;..\..\rt-thread\components\dfs\filesystems\elmfat;..\..\rt-thread\components\dfs\filesystems\romfs;..\..\rt-thread\components\finsh;.;..\..\rt-thread\include;..\..\rt-thread\components\libc\compilers\armlibc;..\..\rt-thread\components\libc\compilers\common;..\..\rt-thread\components\libc\compilers\common\nogcc;..\..\rt-thread\components\libc\posix\pthreads;..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Inc;..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Include;..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\CMSIS\Include;..\..\..\..\APP_Framework\Applications\general_functions\list;..\..\..\..\APP_Framework\Framework\knowing\ota;..\..\rt-thread\components\net\netdev\include;..\..\..\..\APP_Framework\Framework\sensor;..\..\..\..\APP_Framework\Applications;..\..\..\..\APP_Framework\Framework\sensor\altitude\bmp180;..\..\..\..\APP_Framework\Framework\sensor\ch4\as830;..\..\..\..\APP_Framework\Framework\sensor\co2\g8s;..\..\..\..\APP_Framework\Framework\sensor\co2\zg09;..\..\..\..\APP_Framework\Framework\sensor\hcho\tb600b_wq_hcho1os;..\..\..\..\APP_Framework\Framework\sensor\humidity\hs300x_humi;..\..\..\..\APP_Framework\Framework\sensor\iaq\tb600b_iaq10;..\..\..\..\APP_Framework\Framework\sensor\pm\ps5308;..\..\..\..\APP_Framework\Framework\sensor\temperature\hs300x_temp;..\..\..\..\APP_Framework\Framework\sensor\tvoc\tb600b_tvoc10;..\..\..\..\APP_Framework\Framework\sensor\voice\d124;..\..\..\..\APP_Framework\Framework\sensor\winddirection\qs-fx;..\..\..\..\APP_Framework\Framework\sensor\windspeed\qs-fs;..\..\..\..\APP_Framework\Applications\sensor_app;..\..\..\..\APP_Framework\Framework\transform_layer\rtthread;..\..\rt-thread\examples\utest\testcases\kernel + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + .\board\linker_scripts\link.sct + + + + + + + + + + + app_test + + + test_shell.c + 1 + ..\..\..\..\APP_Framework\Applications\app_test\test_shell.c + + + + + Applications + + + main.c + 1 + applications\main.c + + + + + CPU + + + showmem.c + 1 + ..\..\rt-thread\libcpu\arm\common\showmem.c + + + backtrace.c + 1 + ..\..\rt-thread\libcpu\arm\common\backtrace.c + + + div0.c + 1 + ..\..\rt-thread\libcpu\arm\common\div0.c + + + context_rvds.S + 2 + ..\..\rt-thread\libcpu\arm\cortex-m4\context_rvds.S + + + cpuport.c + 1 + ..\..\rt-thread\libcpu\arm\cortex-m4\cpuport.c + + + + + DeviceDrivers + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 0 + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + + --c99 + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + + + + + + + + + + + + can.c + 1 + ..\..\rt-thread\components\drivers\can\can.c + + + i2c_core.c + 1 + ..\..\rt-thread\components\drivers\i2c\i2c_core.c + + + i2c_dev.c + 1 + ..\..\rt-thread\components\drivers\i2c\i2c_dev.c + + + i2c-bit-ops.c + 1 + ..\..\rt-thread\components\drivers\i2c\i2c-bit-ops.c + + + pin.c + 1 + ..\..\rt-thread\components\drivers\misc\pin.c + + + serial.c + 1 + ..\..\rt-thread\components\drivers\serial\serial.c + + + sfud.c + 1 + ..\..\rt-thread\components\drivers\spi\sfud\src\sfud.c + + + spi_msd.c + 1 + ..\..\rt-thread\components\drivers\spi\spi_msd.c + + + spi_core.c + 1 + ..\..\rt-thread\components\drivers\spi\spi_core.c + + + sfud_sfdp.c + 1 + ..\..\rt-thread\components\drivers\spi\sfud\src\sfud_sfdp.c + + + spi_dev.c + 1 + ..\..\rt-thread\components\drivers\spi\spi_dev.c + + + spi_flash_sfud.c + 1 + ..\..\rt-thread\components\drivers\spi\spi_flash_sfud.c + + + ringbuffer.c + 1 + ..\..\rt-thread\components\drivers\src\ringbuffer.c + + + waitqueue.c + 1 + ..\..\rt-thread\components\drivers\src\waitqueue.c + + + dataqueue.c + 1 + ..\..\rt-thread\components\drivers\src\dataqueue.c + + + workqueue.c + 1 + ..\..\rt-thread\components\drivers\src\workqueue.c + + + completion.c + 1 + ..\..\rt-thread\components\drivers\src\completion.c + + + ringblk_buf.c + 1 + ..\..\rt-thread\components\drivers\src\ringblk_buf.c + + + pipe.c + 1 + ..\..\rt-thread\components\drivers\src\pipe.c + + + + + Drivers + + + stm32f4xx_hal_msp.c + 1 + board\CubeMX_Config\Src\stm32f4xx_hal_msp.c + + + ch438.c + 1 + board\ch438.c + + + startup_stm32f407xx.s + 2 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f407xx.s + + + board.c + 1 + board\board.c + + + drv_gpio.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drv_gpio.c + + + drv_can.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drv_can.c + + + drv_spi.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drv_spi.c + + + drv_soft_i2c.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drv_soft_i2c.c + + + drv_usart.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drv_usart.c + + + drv_common.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drv_common.c + + + + + Filesystem + + + dfs_posix.c + 1 + ..\..\rt-thread\components\dfs\src\dfs_posix.c + + + dfs_poll.c + 1 + ..\..\rt-thread\components\dfs\src\dfs_poll.c + + + dfs_file.c + 1 + ..\..\rt-thread\components\dfs\src\dfs_file.c + + + dfs.c + 1 + ..\..\rt-thread\components\dfs\src\dfs.c + + + dfs_fs.c + 1 + ..\..\rt-thread\components\dfs\src\dfs_fs.c + + + dfs_select.c + 1 + ..\..\rt-thread\components\dfs\src\dfs_select.c + + + devfs.c + 1 + ..\..\rt-thread\components\dfs\filesystems\devfs\devfs.c + + + dfs_elm.c + 1 + ..\..\rt-thread\components\dfs\filesystems\elmfat\dfs_elm.c + + + ff.c + 1 + ..\..\rt-thread\components\dfs\filesystems\elmfat\ff.c + + + ffunicode.c + 1 + ..\..\rt-thread\components\dfs\filesystems\elmfat\ffunicode.c + + + romfs.c + 1 + ..\..\rt-thread\components\dfs\filesystems\romfs\romfs.c + + + dfs_romfs.c + 1 + ..\..\rt-thread\components\dfs\filesystems\romfs\dfs_romfs.c + + + + + Finsh + + + shell.c + 1 + ..\..\rt-thread\components\finsh\shell.c + + + msh.c + 1 + ..\..\rt-thread\components\finsh\msh.c + + + msh_file.c + 1 + ..\..\rt-thread\components\finsh\msh_file.c + + + cmd.c + 1 + ..\..\rt-thread\components\finsh\cmd.c + + + + + Kernel + + + kservice.c + 1 + ..\..\rt-thread\src\kservice.c + + + memheap.c + 1 + ..\..\rt-thread\src\memheap.c + + + ipc.c + 1 + ..\..\rt-thread\src\ipc.c + + + clock.c + 1 + ..\..\rt-thread\src\clock.c + + + irq.c + 1 + ..\..\rt-thread\src\irq.c + + + mempool.c + 1 + ..\..\rt-thread\src\mempool.c + + + device.c + 1 + ..\..\rt-thread\src\device.c + + + thread.c + 1 + ..\..\rt-thread\src\thread.c + + + object.c + 1 + ..\..\rt-thread\src\object.c + + + idle.c + 1 + ..\..\rt-thread\src\idle.c + + + timer.c + 1 + ..\..\rt-thread\src\timer.c + + + scheduler.c + 1 + ..\..\rt-thread\src\scheduler.c + + + components.c + 1 + ..\..\rt-thread\src\components.c + + + + + libc + + + stdio.c + 1 + ..\..\rt-thread\components\libc\compilers\armlibc\stdio.c + + + syscalls.c + 1 + ..\..\rt-thread\components\libc\compilers\armlibc\syscalls.c + + + mem_std.c + 1 + ..\..\rt-thread\components\libc\compilers\armlibc\mem_std.c + + + libc.c + 1 + ..\..\rt-thread\components\libc\compilers\armlibc\libc.c + + + stdlib.c + 1 + ..\..\rt-thread\components\libc\compilers\common\stdlib.c + + + delay.c + 1 + ..\..\rt-thread\components\libc\compilers\common\delay.c + + + unistd.c + 1 + ..\..\rt-thread\components\libc\compilers\common\unistd.c + + + time.c + 1 + ..\..\rt-thread\components\libc\compilers\common\time.c + + + pthread.c + 1 + ..\..\rt-thread\components\libc\posix\pthreads\pthread.c + + + pthread_spin.c + 1 + ..\..\rt-thread\components\libc\posix\pthreads\pthread_spin.c + + + pthread_tls.c + 1 + ..\..\rt-thread\components\libc\posix\pthreads\pthread_tls.c + + + sched.c + 1 + ..\..\rt-thread\components\libc\posix\pthreads\sched.c + + + mqueue.c + 1 + ..\..\rt-thread\components\libc\posix\pthreads\mqueue.c + + + pthread_attr.c + 1 + ..\..\rt-thread\components\libc\posix\pthreads\pthread_attr.c + + + pthread_barrier.c + 1 + ..\..\rt-thread\components\libc\posix\pthreads\pthread_barrier.c + + + pthread_mutex.c + 1 + ..\..\rt-thread\components\libc\posix\pthreads\pthread_mutex.c + + + pthread_cond.c + 1 + ..\..\rt-thread\components\libc\posix\pthreads\pthread_cond.c + + + pthread_rwlock.c + 1 + ..\..\rt-thread\components\libc\posix\pthreads\pthread_rwlock.c + + + semaphore.c + 1 + ..\..\rt-thread\components\libc\posix\pthreads\semaphore.c + + + + + Libraries + + + stm32f4xx_hal_qspi.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_qspi.c + + + stm32f4xx_hal_uart.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c + + + stm32f4xx_hal_rcc_ex.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c + + + stm32f4xx_hal_spi.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c + + + stm32f4xx_hal_cryp_ex.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp_ex.c + + + stm32f4xx_hal_pwr_ex.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c + + + stm32f4xx_hal_dma.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c + + + stm32f4xx_hal_usart.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_usart.c + + + stm32f4xx_hal_crc.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_crc.c + + + stm32f4xx_hal_i2c_ex.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_i2c_ex.c + + + stm32f4xx_hal_rcc.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c + + + stm32f4xx_hal_dma_ex.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c + + + stm32f4xx_hal_pwr.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c + + + stm32f4xx_hal_rng.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rng.c + + + stm32f4xx_hal_cortex.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c + + + stm32f4xx_hal_can.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_can.c + + + stm32f4xx_hal_cryp.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp.c + + + stm32f4xx_hal.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c + + + stm32f4xx_hal_i2c.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_i2c.c + + + stm32f4xx_hal_cec.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cec.c + + + system_stm32f4xx.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c + + + stm32f4xx_hal_gpio.c + 1 + ..\..\rt-thread\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c + + + + + list + + + double_list.c + 1 + ..\..\..\..\APP_Framework\Applications\general_functions\list\double_list.c + + + single_list.c + 1 + ..\..\..\..\APP_Framework\Applications\general_functions\list\single_list.c + + + + + SAL + + + netdev.c + 1 + ..\..\rt-thread\components\net\netdev\src\netdev.c + + + netdev_ipaddr.c + 1 + ..\..\rt-thread\components\net\netdev\src\netdev_ipaddr.c + + + + + sensor + + + sensor.c + 1 + ..\..\..\..\APP_Framework\Framework\sensor\sensor.c + + + framework_init.c + 1 + ..\..\..\..\APP_Framework\Applications\framework_init.c + + + + + sensor wind direction qs-fx + + + qs-fx.c + 1 + ..\..\..\..\APP_Framework\Framework\sensor\winddirection\qs-fx\qs-fx.c + + + + + sensor_app + + + winddirection_qs_fx.c + 1 + ..\..\..\..\APP_Framework\Applications\sensor_app\winddirection_qs_fx.c + + + + + transform + + + transform.c + 1 + ..\..\..\..\APP_Framework\Framework\transform_layer\rtthread\transform.c + + + + + + + + + + + + + +
diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/rtconfig.h b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/rtconfig.h index e71dc182..c7331c4d 100644 --- a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/rtconfig.h +++ b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/rtconfig.h @@ -11,7 +11,7 @@ /* RT-Thread Kernel */ -#define RT_NAME_MAX 8 +#define RT_NAME_MAX 12 #define RT_ALIGN_SIZE 4 #define RT_THREAD_PRIORITY_32 #define RT_THREAD_PRIORITY_MAX 32 @@ -116,7 +116,7 @@ #define RT_SYSTEM_WORKQUEUE_PRIORITY 23 #define RT_USING_SERIAL #define RT_USING_SERIAL_V1 -#define RT_SERIAL_RB_BUFSZ 64 +#define RT_SERIAL_RB_BUFSZ 256 #define RT_USING_CAN #define RT_USING_I2C #define RT_USING_I2C_BITOPS @@ -147,6 +147,13 @@ /* Network interface device */ +#define RT_USING_NETDEV +#define NETDEV_USING_IFCONFIG +#define NETDEV_USING_PING +#define NETDEV_USING_NETSTAT +#define NETDEV_USING_AUTO_DEFAULT +#define NETDEV_IPV4 1 +#define NETDEV_IPV6 0 /* light weight TCP/IP stack */ @@ -173,6 +180,7 @@ #define BSP_USING_UART1 #define BSP_USING_UART2 #define BSP_USING_UART3 +#define BSP_USING_I2C1 #define BSP_USING_USB #define BSP_USING_STM32_USBH #define USB_BUS_NAME "usb" @@ -191,12 +199,7 @@ #define TRANSFORM_LAYER_ATTRIUBUTE #define ADD_RTTHREAD_FETURES -#define SUPPORT_CONNECTION_FRAMEWORK -#define CONNECTION_FRAMEWORK_DEBUG -#define ADAPTER_HFA21_DRIVER "/dev/uart3" -#define CONNECTION_ADAPTER_ETHERNET -#define ADAPTER_HFA21_ETHERNET -#define ADAPTER_ETHERNET_HFA21 "hfa21_ethernet" +#define SUPPORT_SENSOR_FRAMEWORK /* Security */ @@ -223,9 +226,13 @@ /* sensor app */ +#define APPLICATION_SENSOR /* lib */ #define APP_SELECT_NEWLIB +/* LVGL configuration */ + + #endif diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/template.uvoptx b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/template.uvoptx new file mode 100644 index 00000000..25b54416 --- /dev/null +++ b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/template.uvoptx @@ -0,0 +1,192 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc; *.md + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + rt-thread + 0x4 + ARM-ADS + + 168000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\build\keil\List\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 18 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 4 + + + + + + + + + + + Segger\JL2CM3.dll + + + + 0 + JL2CM3 + -U30000299 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(4) -TO18 -TC10000000 -TP21 -TDS8001 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM) + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F407ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM)) + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + 1 + 0 + 0 + 2 + 10000000 + + + + + + Source Group 1 + 0 + 0 + 0 + 0 + + +
diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/template.uvprojx b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/template.uvprojx new file mode 100644 index 00000000..9892b5f9 --- /dev/null +++ b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/template.uvprojx @@ -0,0 +1,396 @@ + + + + 2.1 + +
### uVision Project, (C) Keil Software
+ + + + rt-thread + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + 0 + + + STM32F407ZGTx + STMicroelectronics + Keil.STM32F4xx_DFP.2.16.0 + http://www.keil.com/pack/ + IRAM(0x20000000,0x20000) IRAM2(0x10000000,0x10000) IROM(0x08000000,0x100000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F407ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM)) + 0 + $$Device:STM32F407ZGTx$Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f4xx.h + + + + + + + + + + $$Device:STM32F407ZGTx$CMSIS\SVD\STM32F40x.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\build\keil\Obj\ + rt-thread + 1 + 0 + 0 + 1 + 0 + .\build\keil\List\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + fromelf --bin !L --output rtthread.bin + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -REMAP -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + "" () + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 1 + 0 + 8 + 0 + 0 + 0 + 0 + 3 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 1 + 0x8000000 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 0 + 0x10000000 + 0x10000 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + + + + + + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + .\board\linker_scripts\link.sct + + + + + + + + + + + Source Group 1 + + + + + + + + + + + +
diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/AS830-CH4 .png b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/AS830-CH4 .png new file mode 100644 index 00000000..873f37e9 Binary files /dev/null and b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/AS830-CH4 .png differ diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/Bmp180_test.png b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/Bmp180_test.png new file mode 100644 index 00000000..44c40fdc Binary files /dev/null and b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/Bmp180_test.png differ diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/Co2G8s_test.png b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/Co2G8s_test.png new file mode 100644 index 00000000..6e4f15aa Binary files /dev/null and b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/Co2G8s_test.png differ diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/Co2Zg09_test.png b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/Co2Zg09_test.png new file mode 100644 index 00000000..161ba9c2 Binary files /dev/null and b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/Co2Zg09_test.png differ diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/PS5308_pm1.0_test.png b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/PS5308_pm1.0_test.png new file mode 100644 index 00000000..8a224a45 Binary files /dev/null and b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/PS5308_pm1.0_test.png differ diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/Ps5308_pm10.0_test.png b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/Ps5308_pm10.0_test.png new file mode 100644 index 00000000..7e957c45 Binary files /dev/null and b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/Ps5308_pm10.0_test.png differ diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/Ps5308_pm2.5_test.png b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/Ps5308_pm2.5_test.png new file mode 100644 index 00000000..b2c9765e Binary files /dev/null and b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/Ps5308_pm2.5_test.png differ diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/Tb600bHcho1os_test.png b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/Tb600bHcho1os_test.png new file mode 100644 index 00000000..bf7c9b70 Binary files /dev/null and b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/Tb600bHcho1os_test.png differ diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/Tb600bIaq10_test.png b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/Tb600bIaq10_test.png new file mode 100644 index 00000000..485ef437 Binary files /dev/null and b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/Tb600bIaq10_test.png differ diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/Tb600bTvoc10_test.png b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/Tb600bTvoc10_test.png new file mode 100644 index 00000000..784c7488 Binary files /dev/null and b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/Tb600bTvoc10_test.png differ diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/VoiceD124_test.png b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/VoiceD124_test.png new file mode 100644 index 00000000..7dc14bdc Binary files /dev/null and b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/VoiceD124_test.png differ diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/WindDirection_test.png b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/WindDirection_test.png new file mode 100644 index 00000000..a17833b7 Binary files /dev/null and b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/WindDirection_test.png differ diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/WindSpeed_test.png b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/WindSpeed_test.png new file mode 100644 index 00000000..bf3400fe Binary files /dev/null and b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/test/WindSpeed_test.png differ diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/k210_edu/.config b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/k210_edu/.config new file mode 100644 index 00000000..645dbc99 --- /dev/null +++ b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/k210_edu/.config @@ -0,0 +1,495 @@ +# +# Automatically generated file; DO NOT EDIT. +# XIUOS Rt-thread Configuration +# +CONFIG_ROOT_DIR="../../../.." +CONFIG_BSP_DIR="." +CONFIG_RT_Thread_DIR="../.." +CONFIG_RTT_DIR="../../rt-thread" +CONFIG_BOARD_K210_EVB=y + +# +# RT-Thread Kernel +# +CONFIG_RT_NAME_MAX=8 +# CONFIG_RT_USING_BIG_ENDIAN is not set +# CONFIG_RT_USING_ARCH_DATA_TYPE is not set +CONFIG_RT_USING_SMP=y +CONFIG_RT_CPUS_NR=2 +CONFIG_RT_ALIGN_SIZE=8 +# CONFIG_RT_THREAD_PRIORITY_8 is not set +CONFIG_RT_THREAD_PRIORITY_32=y +# CONFIG_RT_THREAD_PRIORITY_256 is not set +CONFIG_RT_THREAD_PRIORITY_MAX=32 +CONFIG_RT_TICK_PER_SECOND=1000 +CONFIG_RT_USING_OVERFLOW_CHECK=y +CONFIG_RT_USING_HOOK=y +CONFIG_RT_USING_IDLE_HOOK=y +CONFIG_RT_IDLE_HOOK_LIST_SIZE=4 +CONFIG_IDLE_THREAD_STACK_SIZE=4096 +CONFIG_SYSTEM_THREAD_STACK_SIZE=4096 +CONFIG_RT_USING_TIMER_SOFT=y +CONFIG_RT_TIMER_THREAD_PRIO=4 +CONFIG_RT_TIMER_THREAD_STACK_SIZE=2048 + +# +# kservice optimization +# +# CONFIG_RT_KSERVICE_USING_STDLIB is not set +# CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set +# CONFIG_RT_USING_ASM_MEMCPY is not set +CONFIG_RT_DEBUG=y +CONFIG_RT_DEBUG_COLOR=y +CONFIG_RT_DEBUG_INIT_CONFIG=y +CONFIG_RT_DEBUG_INIT=1 +# CONFIG_RT_DEBUG_THREAD_CONFIG is not set +# CONFIG_RT_DEBUG_SCHEDULER_CONFIG is not set +# CONFIG_RT_DEBUG_IPC_CONFIG is not set +# CONFIG_RT_DEBUG_TIMER_CONFIG is not set +# CONFIG_RT_DEBUG_IRQ_CONFIG is not set +# CONFIG_RT_DEBUG_MEM_CONFIG is not set +# CONFIG_RT_DEBUG_SLAB_CONFIG is not set +# CONFIG_RT_DEBUG_MEMHEAP_CONFIG is not set +# CONFIG_RT_DEBUG_MODULE_CONFIG is not set + +# +# Inter-Thread communication +# +CONFIG_RT_USING_SEMAPHORE=y +CONFIG_RT_USING_MUTEX=y +CONFIG_RT_USING_EVENT=y +CONFIG_RT_USING_MAILBOX=y +CONFIG_RT_USING_MESSAGEQUEUE=y +CONFIG_RT_USING_SIGNALS=y + +# +# Memory Management +# +CONFIG_RT_USING_MEMPOOL=y +CONFIG_RT_USING_MEMHEAP=y +# CONFIG_RT_USING_NOHEAP is not set +# CONFIG_RT_USING_SMALL_MEM is not set +CONFIG_RT_USING_SLAB=y +# CONFIG_RT_USING_MEMHEAP_AS_HEAP is not set +# CONFIG_RT_USING_USERHEAP is not set +# CONFIG_RT_USING_MEMTRACE is not set +CONFIG_RT_USING_HEAP=y + +# +# Kernel Device Object +# +CONFIG_RT_USING_DEVICE=y +# CONFIG_RT_USING_DEVICE_OPS is not set +# CONFIG_RT_USING_INTERRUPT_INFO is not set +CONFIG_RT_USING_CONSOLE=y +CONFIG_RT_CONSOLEBUF_SIZE=128 +CONFIG_RT_CONSOLE_DEVICE_NAME="uarths" +# CONFIG_RT_PRINTF_LONGLONG is not set +CONFIG_RT_VER_NUM=0x40004 +CONFIG_ARCH_CPU_64BIT=y +# CONFIG_RT_USING_CPU_FFS is not set +CONFIG_ARCH_RISCV=y +CONFIG_ARCH_RISCV_FPU=y +CONFIG_ARCH_RISCV_FPU_S=y +CONFIG_ARCH_RISCV64=y +# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set + +# +# RT-Thread Components +# +CONFIG_RT_USING_COMPONENTS_INIT=y +CONFIG_RT_USING_USER_MAIN=y +CONFIG_RT_MAIN_THREAD_STACK_SIZE=10240 +CONFIG_RT_MAIN_THREAD_PRIORITY=10 + +# +# C++ features +# +CONFIG_RT_USING_CPLUSPLUS=y +# CONFIG_RT_USING_CPLUSPLUS11 is not set + +# +# Command shell +# +CONFIG_RT_USING_FINSH=y +CONFIG_RT_USING_MSH=y +CONFIG_FINSH_USING_MSH=y +CONFIG_FINSH_THREAD_NAME="tshell" +CONFIG_FINSH_THREAD_PRIORITY=20 +CONFIG_FINSH_THREAD_STACK_SIZE=20480 +CONFIG_FINSH_USING_HISTORY=y +CONFIG_FINSH_HISTORY_LINES=5 +CONFIG_FINSH_USING_SYMTAB=y +CONFIG_FINSH_CMD_SIZE=80 +CONFIG_MSH_USING_BUILT_IN_COMMANDS=y +CONFIG_FINSH_USING_DESCRIPTION=y +# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set +# CONFIG_FINSH_USING_AUTH is not set +CONFIG_FINSH_ARG_MAX=10 + +# +# Device virtual file system +# +CONFIG_RT_USING_DFS=y +CONFIG_DFS_USING_WORKDIR=y +CONFIG_DFS_FILESYSTEMS_MAX=16 +CONFIG_DFS_FILESYSTEM_TYPES_MAX=16 +CONFIG_DFS_FD_MAX=64 +# CONFIG_RT_USING_DFS_MNTTABLE is not set +CONFIG_RT_USING_DFS_ELMFAT=y + +# +# elm-chan's FatFs, Generic FAT Filesystem Module +# +CONFIG_RT_DFS_ELM_CODE_PAGE=437 +CONFIG_RT_DFS_ELM_WORD_ACCESS=y +# CONFIG_RT_DFS_ELM_USE_LFN_0 is not set +# CONFIG_RT_DFS_ELM_USE_LFN_1 is not set +# CONFIG_RT_DFS_ELM_USE_LFN_2 is not set +CONFIG_RT_DFS_ELM_USE_LFN_3=y +CONFIG_RT_DFS_ELM_USE_LFN=3 +CONFIG_RT_DFS_ELM_LFN_UNICODE_0=y +# CONFIG_RT_DFS_ELM_LFN_UNICODE_1 is not set +# CONFIG_RT_DFS_ELM_LFN_UNICODE_2 is not set +# CONFIG_RT_DFS_ELM_LFN_UNICODE_3 is not set +CONFIG_RT_DFS_ELM_LFN_UNICODE=0 +CONFIG_RT_DFS_ELM_MAX_LFN=255 +CONFIG_RT_DFS_ELM_DRIVES=2 +CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=4096 +# CONFIG_RT_DFS_ELM_USE_ERASE is not set +CONFIG_RT_DFS_ELM_REENTRANT=y +CONFIG_RT_DFS_ELM_MUTEX_TIMEOUT=3000 +CONFIG_RT_USING_DFS_DEVFS=y +# CONFIG_RT_USING_DFS_ROMFS is not set +# CONFIG_RT_USING_DFS_RAMFS is not set + +# +# Device Drivers +# +CONFIG_RT_USING_DEVICE_IPC=y +CONFIG_RT_PIPE_BUFSZ=512 +CONFIG_RT_USING_SYSTEM_WORKQUEUE=y +CONFIG_RT_SYSTEM_WORKQUEUE_STACKSIZE=4096 +CONFIG_RT_SYSTEM_WORKQUEUE_PRIORITY=23 +CONFIG_RT_USING_SERIAL=y +CONFIG_RT_USING_SERIAL_V1=y +# CONFIG_RT_USING_SERIAL_V2 is not set +CONFIG_RT_SERIAL_USING_DMA=y +CONFIG_RT_SERIAL_RB_BUFSZ=64 +# CONFIG_RT_USING_CAN is not set +# CONFIG_RT_USING_HWTIMER is not set +# CONFIG_RT_USING_CPUTIME is not set +# CONFIG_RT_USING_I2C is not set +# CONFIG_RT_USING_PHY is not set +CONFIG_RT_USING_PIN=y +# CONFIG_RT_USING_ADC is not set +# CONFIG_RT_USING_DAC is not set +# CONFIG_RT_USING_PWM is not set +# CONFIG_RT_USING_MTD_NOR is not set +# CONFIG_RT_USING_MTD_NAND is not set +# CONFIG_RT_USING_PM is not set +# CONFIG_RT_USING_RTC is not set +# CONFIG_RT_USING_SDIO is not set +CONFIG_RT_USING_SPI=y +# CONFIG_RT_USING_QSPI is not set +CONFIG_RT_USING_SPI_MSD=y +# CONFIG_RT_USING_SFUD is not set +# CONFIG_RT_USING_ENC28J60 is not set +# CONFIG_RT_USING_SPI_WIFI is not set +# CONFIG_RT_USING_WDT is not set +# CONFIG_RT_USING_AUDIO is not set +# CONFIG_RT_USING_SENSOR is not set +# CONFIG_RT_USING_TOUCH is not set +# CONFIG_RT_USING_HWCRYPTO is not set +# CONFIG_RT_USING_PULSE_ENCODER is not set +# CONFIG_RT_USING_INPUT_CAPTURE is not set +# CONFIG_RT_USING_WIFI is not set + +# +# Using USB +# +# CONFIG_RT_USING_USB_HOST is not set +# CONFIG_RT_USING_USB_DEVICE is not set + +# +# POSIX layer and C standard library +# +CONFIG_RT_USING_LIBC=y +CONFIG_RT_USING_PTHREADS=y +CONFIG_PTHREAD_NUM_MAX=8 +CONFIG_RT_USING_POSIX=y +# CONFIG_RT_USING_POSIX_MMAP is not set +# CONFIG_RT_USING_POSIX_TERMIOS is not set +# CONFIG_RT_USING_POSIX_GETLINE is not set +# CONFIG_RT_USING_POSIX_AIO is not set +CONFIG_RT_LIBC_USING_TIME=y +# CONFIG_RT_USING_MODULE is not set +CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8 + +# +# Network +# + +# +# Socket abstraction layer +# +CONFIG_RT_USING_SAL=y +CONFIG_SAL_INTERNET_CHECK=y +# CONFIG_SAL_USING_POSIX is not set +CONFIG_SAL_SOCKETS_NUM=16 + +# +# Network interface device +# +CONFIG_RT_USING_NETDEV=y +CONFIG_NETDEV_USING_IFCONFIG=y +CONFIG_NETDEV_USING_PING=y +CONFIG_NETDEV_USING_NETSTAT=y +CONFIG_NETDEV_USING_AUTO_DEFAULT=y +# CONFIG_NETDEV_USING_IPV6 is not set +CONFIG_NETDEV_IPV4=1 +CONFIG_NETDEV_IPV6=0 +# CONFIG_NETDEV_IPV6_SCOPES is not set + +# +# light weight TCP/IP stack +# +# CONFIG_RT_USING_LWIP is not set + +# +# AT commands +# +# CONFIG_RT_USING_AT is not set + +# +# VBUS(Virtual Software BUS) +# +# CONFIG_RT_USING_VBUS is not set + +# +# Utilities +# +# CONFIG_RT_USING_RYM is not set +# CONFIG_RT_USING_ULOG is not set +# CONFIG_RT_USING_UTEST is not set +# CONFIG_RT_USING_VAR_EXPORT is not set +# CONFIG_RT_USING_RT_LINK is not set + +# +# RT-Thread Utestcases +# +# CONFIG_RT_USING_UTESTCASES is not set + +# +# Board Drivers Config +# + +# +# On-chip Peripheral Drivers +# +CONFIG___STACKSIZE__=4096 +CONFIG_BSP_USING_UART_HS=y +# CONFIG_BSP_USING_UART1 is not set +# CONFIG_BSP_USING_UART2 is not set +# CONFIG_BSP_USING_UART3 is not set +# CONFIG_BSP_USING_I2C1 is not set +CONFIG_BSP_USING_SPI1=y +CONFIG_BSP_SPI1_CLK_PIN=9 +CONFIG_BSP_SPI1_D0_PIN=11 +CONFIG_BSP_SPI1_D1_PIN=10 +CONFIG_BSP_SPI1_USING_SS0=y +CONFIG_BSP_SPI1_SS0_PIN=12 +# CONFIG_BSP_SPI1_USING_SS1 is not set +# CONFIG_BSP_SPI1_USING_SS2 is not set +# CONFIG_BSP_SPI1_USING_SS3 is not set +CONFIG_BSP_USING_SOFT_SPI=y +CONFIG_BSP_SOFT_SPI_CLK_PIN=26 +CONFIG_BSP_SOFT_SPI_MOSI_PIN=27 +CONFIG_BSP_SOFT_SPI_MISO_PIN=25 +CONFIG_RT_USING_SOFT_SPI_CS0=y +CONFIG_RT_USING_SOFT_SPI_CS0_PIN=28 + +# +# Onboard Peripheral Drivers +# +CONFIG_BSP_USING_LCD=y +CONFIG_BSP_LCD_CS_PIN=37 +CONFIG_BSP_LCD_WR_PIN=38 +CONFIG_BSP_LCD_DC_PIN=39 +CONFIG_BSP_LCD_RST_PIN=36 +CONFIG_BSP_LCD_BACKLIGHT_PIN=-1 +CONFIG_BSP_LCD_BACKLIGHT_ACTIVE_LOW=y +# CONFIG_BSP_LCD_BACKLIGHT_ACTIVE_HIGH is not set +CONFIG_BSP_LCD_CLK_FREQ=15000000 +CONFIG_BSP_BOARD_KD233=y +# CONFIG_BSP_BOARD_K210_OPENMV_TEST is not set +# CONFIG_BSP_BOARD_USER is not set +CONFIG_BSP_LCD_X_MAX=320 +CONFIG_BSP_LCD_Y_MAX=320 +CONFIG_BSP_USING_DVP=y + +# +# The default pin assignment is based on the Maix Duino K210 development board +# +CONFIG_BSP_DVP_SCCB_SDA_PIN=47 +CONFIG_BSP_DVP_SCCB_SCLK_PIN=46 +CONFIG_BSP_DVP_CMOS_RST_PIN=40 +CONFIG_BSP_DVP_CMOS_VSYNC_PIN=45 +CONFIG_BSP_DVP_CMOS_PWDN_PIN=41 +CONFIG_BSP_DVP_CMOS_XCLK_PIN=42 +CONFIG_BSP_DVP_CMOS_PCLK_PIN=43 +CONFIG_BSP_DVP_CMOS_HREF_PIN=44 +CONFIG_BSP_USING_SDCARD=y + +# +# Kendryte SDK Config +# +CONFIG_PKG_KENDRYTE_SDK_VERNUM=0x0055 + +# +# MicroPython +# +# CONFIG_PKG_USING_MICROPYTHON is not set + +# +# More Drivers +# +# CONFIG_PKG_USING_RW007 is not set +CONFIG_DRV_USING_OV2640=y +CONFIG_OV2640_JPEG_MODE=y +# CONFIG_OV2640_RGB565_MODE is not set +CONFIG_OV2640_X_RESOLUTION_IMAGE_OUTSIZE=240 +CONFIG_OV2640_Y_RESOLUTION_IMAGE_OUTSIZE=240 +CONFIG_OV2640_X_IMAGE_WINDOWS_SIZE=400 + +# +# the value must be greater than OV2640_X_RESOLUTION_IMAGE_OUTSIZE +# +CONFIG_OV2640_Y_IMAGE_WINDOWS_SIZE=400 + +# +# the value must be greater than OV2640_Y_RESOLUTION_IMAGE_OUTSIZE +# +# CONFIG_DRV_USING_HS300X is not set +# CONFIG_DRV_USING_SX1278 is not set +CONFIG_PKG_USING_WIZNET=y +CONFIG_PKG_WIZNET_PATH="/packages/iot/wiznet" +CONFIG_WIZ_USING_W5500=y +# CONFIG_WIZNET_DEVICE_EXTERN_CONFIG is not set + +# +# WIZnet device configure +# +CONFIG_WIZ_SPI_DEVICE="spi10" +CONFIG_WIZ_RST_PIN=13 +CONFIG_WIZ_IRQ_PIN=14 +CONFIG_WIZ_USING_DHCP=y +CONFIG_WIZ_USING_PING=y +# CONFIG_WIZ_DEBUG is not set +# CONFIG_PKG_USING_WIZNET_V200 is not set +CONFIG_PKG_USING_WIZNET_LATEST_VERSION=y +CONFIG_PKG_WIZNET_VER="latest" + +# +# APP_Framework +# + +# +# Framework +# +CONFIG_TRANSFORM_LAYER_ATTRIUBUTE=y +# CONFIG_ADD_XIZI_FETURES is not set +# CONFIG_ADD_NUTTX_FETURES is not set +CONFIG_ADD_RTTHREAD_FETURES=y +# CONFIG_SUPPORT_SENSOR_FRAMEWORK is not set +# CONFIG_SUPPORT_CONNECTION_FRAMEWORK is not set +CONFIG_SUPPORT_KNOWING_FRAMEWORK=y +# CONFIG_USING_TENSORFLOWLITEMICRO is not set +# CONFIG_USING_KNOWING_FILTER is not set +# CONFIG_USING_OTA_MODEL is not set +# CONFIG_USING_IMAGE_PROCESSING is not set +# CONFIG_USING_CMSIS_5 is not set +CONFIG_USING_KPU_PROCESSING=y +CONFIG_USING_YOLOV2=y +CONFIG_USING_YOLOV2_JSONPARSER=y +CONFIG_USING_K210_YOLOV2_DETECT=y +# CONFIG_USING_NNOM is not set +# CONFIG_SUPPORT_CONTROL_FRAMEWORK is not set + +# +# Security +# +# CONFIG_CRYPTO is not set + +# +# Applications +# + +# +# config stack size and priority of main task +# +CONFIG_MAIN_KTASK_STACK_SIZE=1024 + +# +# ota app +# +# CONFIG_APPLICATION_OTA is not set + +# +# test app +# +# CONFIG_USER_TEST is not set + +# +# connection app +# +# CONFIG_APPLICATION_CONNECTION is not set + +# +# control app +# + +# +# knowing app +# +CONFIG_APPLICATION_KNOWING=y +CONFIG_K210_DETECT_ENTRY=y +# CONFIG_IRIS_ML_DEMO is not set +# CONFIG_K210_FFT_TEST is not set +# CONFIG_USING_IMAGE_PROCESSING_APP is not set + +# +# sensor app +# +CONFIG_APPLICATION_SENSOR=y +# CONFIG_APPLICATION_SENSOR_HCHO is not set +# CONFIG_APPLICATION_SENSOR_TVOC is not set +# CONFIG_APPLICATION_SENSOR_IAQ is not set +# CONFIG_APPLICATION_SENSOR_CH4 is not set +# CONFIG_APPLICATION_SENSOR_CO2 is not set +# CONFIG_APPLICATION_SENSOR_PM1_0 is not set +# CONFIG_APPLICATION_SENSOR_PM2_5 is not set +# CONFIG_APPLICATION_SENSOR_PM10 is not set +# CONFIG_APPLICATION_SENSOR_VOICE is not set +# CONFIG_APPLICATION_SENSOR_TEMPERATURE is not set +# CONFIG_APPLICATION_SENSOR_HUMIDITY is not set +# CONFIG_APPLICATION_SENSOR_WINDDIRECTION is not set +# CONFIG_APPLICATION_SENSOR_WINDSPEED is not set +# CONFIG_APPLICATION_SENSOR_ALTITUDE is not set +# CONFIG_USING_EMBEDDED_DATABASE_APP is not set +# CONFIG_APP_USING_WEBNET is not set + +# +# lib +# +CONFIG_APP_SELECT_NEWLIB=y +# CONFIG_APP_SELECT_OTHER_LIB is not set +CONFIG_LIB_USING_CJSON=y +# CONFIG_LIB_USING_QUEUE is not set +# CONFIG_LIB_LV is not set + +# +# LVGL configuration +# +# CONFIG_LV_CONF_MINIMAL is not set +# CONFIG_USING_EMBEDDED_DATABASE is not set diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/k210_edu/.gitignore b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/k210_edu/.gitignore new file mode 100644 index 00000000..14e2fd4e --- /dev/null +++ b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/k210_edu/.gitignore @@ -0,0 +1,228 @@ +# this +*.old +*.dblite +cconfig.h +*.bin +*.map +# rtconfig.h +# .config + +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# Prerequisites +*.d + +# Object files +*.o +*.ko +*.obj +*.elf + +# Linker output +*.ilk +*.map +*.exp + +# Precompiled Headers +*.gch +*.pch + +# Libraries +*.lib +*.a +*.la +*.lo + +# Shared objects (inc. Windows DLLs) +*.dll +*.so +*.so.* +*.dylib + +# Executables +*.exe +*.out +*.app +*.i*86 +*.x86_64 +*.hex + +# Debug files +*.dSYM/ +*.su +*.idb +*.pdb + +# Kernel Module Compile Results +*.mod* +*.cmd +.tmp_versions/ +modules.order +Module.symvers +Mkfile.old +dkms.con \ No newline at end of file diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/k210_edu/Kconfig b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/k210_edu/Kconfig new file mode 100644 index 00000000..e48e9683 --- /dev/null +++ b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/k210_edu/Kconfig @@ -0,0 +1,37 @@ +mainmenu "XIUOS Rt-thread Configuration" + +config ROOT_DIR + string + default "../../../.." + +config BSP_DIR + string + default "." + +config RT_Thread_DIR + string + default "../.." + +config RTT_DIR + string + default "../../rt-thread" + +config BOARD_K210_EVB + bool + select ARCH_RISCV64 + select ARCH_RISCV_FPU_S + select RT_USING_COMPONENTS_INIT + select RT_USING_USER_MAIN + default y + +config APP_DIR + string + default "../../../../APP_Framework" + +source "$RTT_DIR/Kconfig" +source "base-drivers/Kconfig" +source "kendryte-sdk/Kconfig" +source "$RT_Thread_DIR/micropython/Kconfig" +source "$RT_Thread_DIR/app_match_rt-thread/Kconfig" +source "$ROOT_DIR/APP_Framework/Kconfig" + diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/k210_edu/README.md b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/k210_edu/README.md new file mode 100644 index 00000000..c719dfdc --- /dev/null +++ b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/k210_edu/README.md @@ -0,0 +1,64 @@ +# 教育开发板k210_edu说明 + +## 板载资源 + +该教育开发板板载摄像头dvp接口,可外接(ov2640、ov5640等),同时还外接屏幕lcd(320*320),以及W5500网卡。 + +| 功能 | **引脚序号**
(并非原理图连接线序号) | 引脚定义 | +| :---------------: | :----------------------------------------: | :------------: | +| 高速串口作为shell | 5 | ISP_RX | +| | 6 | ISP_TX | +| W5500 | 9 | SPI1_ENET_SCLK | +| | 10 | SPI1_ENET_MISO | +| | 11 | SPI1_ENET_MOSI | +| | 12 | SPI1_ENET_nCS | +| | 13 | SPI1_ENET_nRST | +| | 14 | ENET_nINT | +| ov2640接口 | 47 | SCCB_SDA | +| | 46 | SCCB_SCLK | +| | 40 | CMOS_RST | +| | 45 | CMOS_VSYNC | +| | 41 | CMOS_PWDN | +| | 42 | CMOS_XCLK | +| | 43 | CMOS_PCLK | +| | 44 | CMOS_HREF | +| LCD接口 | 37 | LCD_CS | +| | 38 | LCD_WR | +| | 39 | LCD_DC | +| | 36 | LCD_RST | +| SD卡 | 26 | SPI_CLK | +| | 27 | SPI_MOSI | +| | 25 | SPI_MISO | +| | 28 | SOFT_SPI_CS0 | +| | | | +| | | | +| | | | + + + + + + + +## 编译说明 + +先下载源码,进入xiuos根目录: + + git submodule init + git submodule update Ubiquitous/RT-Thread_Fusion_XiUOS/rt-thread + git submodule update Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/k210_edu/kendryte-sdk/kendryte-sdk-source +下载好相应的源码以及勘智官方K210 sdk到指定目录 + +下载risc-v的工具链,[下载地址](https://github.com/xpack-dev-tools/riscv-none-embed-gcc-xpack/releases) + +在`rtconfig.py`中将risc-v工具链的本地路径加入文档。 + +然后执行scons编译: + scons + +也可以利用env工具编译,指定工具链路径 + + set RTT_EXEC_PATH=D:\xpack-riscv-none-embed-gcc-8.2.0-3.1-win32-x64\xPack\RISC-V Embedded GCC\8.2.0-3.1\bin + + scons + diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/k210_edu/SConscript b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/k210_edu/SConscript new file mode 100644 index 00000000..3d15055d --- /dev/null +++ b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/k210_edu/SConscript @@ -0,0 +1,13 @@ +import os +from building import * + +cwd = GetCurrentDir() +objs = [] +list = os.listdir(cwd) + +for d in list: + path = os.path.join(cwd, d) + if os.path.isfile(os.path.join(path, 'SConscript')): + objs = objs + SConscript(os.path.join(d, 'SConscript')) + +Return('objs') diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/k210_edu/SConstruct b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/k210_edu/SConstruct new file mode 100644 index 00000000..c3fa5fe1 --- /dev/null +++ b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/k210_edu/SConstruct @@ -0,0 +1,69 @@ +import os +import sys +import rtconfig + +if os.getenv('RTT_ROOT'): + RTT_ROOT = os.getenv('RTT_ROOT') +else: + RTT_ROOT = os.path.normpath(os.getcwd() + '/../../rt-thread') + +sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')] +from building import * + +TARGET = 'rtthread.' + rtconfig.TARGET_EXT + +DefaultEnvironment(tools=[]) +env = Environment(tools = ['mingw'], + AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS, + CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS, + CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS, + AR = rtconfig.AR, ARFLAGS = '-rc', + LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS) +env.PrependENVPath('PATH', rtconfig.EXEC_PATH) +# use ASPPCOM to replace ASCOM, ASPPCOM will use CFLAGS/CPPFLAGS with AS +env['ASCOM'] = env['ASPPCOM'] + +AddOption('--compiledb', + dest = 'compiledb', + action = 'store_true', + default = False, + help = 'generate compile_commands.json') + +if GetOption('compiledb'): + if int(SCons.__version__.split('.')[0]) >= 4: + env['COMPILATIONDB_USE_ABSPATH'] = True + env.Tool('compilation_db') + env.CompilationDatabase('compile_commands.json') + else: + print('Warning: --compiledb only support on SCons 4.0+') + +Export('RTT_ROOT') +Export('rtconfig') + +# prepare building environment +objs = PrepareBuilding(env, RTT_ROOT, has_libcpu = False) + +stack_size = 4096 + +stack_lds = open('link_stacksize.lds', 'w') +if GetDepend('__STACKSIZE__'): stack_size = GetDepend('__STACKSIZE__') +stack_lds.write('__STACKSIZE__ = %d;' % stack_size) +stack_lds.close() + +# include more drivers +objs.extend(SConscript(os.getcwd() + '/../../app_match_rt-thread/SConscript')) + +# include APP_Framework/Framework +objs.extend(SConscript(os.getcwd() + '/../../../../APP_Framework/Framework/SConscript')) + +# include APP_Framework/Applications +objs.extend(SConscript(os.getcwd() + '/../../../../APP_Framework/Applications/SConscript')) + +# include APP_Framework/lib +objs.extend(SConscript(os.getcwd() + '/../../../../APP_Framework/lib/SConscript')) + +# include Ubiquitous/RT-Thread/micropython +objs.extend(SConscript(os.getcwd() + '/../../micropython/SConscript')) + +# make a building +DoBuilding(TARGET, objs) diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/k210_edu/applications/SConscript b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/k210_edu/applications/SConscript new file mode 100644 index 00000000..ecbf1586 --- /dev/null +++ b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/k210_edu/applications/SConscript @@ -0,0 +1,26 @@ +from building import * + +cwd = GetCurrentDir() +src = [ + 'main.c' +] +CPPPATH = [cwd] + +## 设置 lcd_test.c 的依赖宏 +if GetDepend('DRV_USING_OV2640'): + src += ['ov2640_test.c'] +if GetDepend('BSP_USING_LCD'): + src += ['lcd_test.c'] +## 设置 tcp_client.c 和 tcp_server.c 的依赖宏 +if GetDepend('PKG_USING_WIZNET'): + src += ['tcp_client.c'] + src += ['tcp_server.c'] + src += ['iperf.c'] +if GetDepend('BSP_USING_SDCARD'): + src += ['sdcard_wr_test.c'] +group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH) + +Return('group') + + + diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/k210_edu/applications/iperf.c b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/k210_edu/applications/iperf.c new file mode 100644 index 00000000..e19c81ea --- /dev/null +++ b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/k210_edu/applications/iperf.c @@ -0,0 +1,522 @@ +/** +* iperf-liked network performance tool +* +*/ + +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#define DBG_SECTION_NAME "iperf" +#define DBG_LEVEL DBG_INFO +#include + +#define IPERF_PORT 5001 +#define IPERF_BUFSZ (4 * 1024) + +#define IPERF_MODE_STOP 0 +#define IPERF_MODE_SERVER 1 +#define IPERF_MODE_CLIENT 2 + +typedef struct +{ + int mode; + char *host; + int port; +} IPERF_PARAM; +static IPERF_PARAM param = {IPERF_MODE_STOP, NULL, IPERF_PORT}; + +static void iperf_udp_client(void *thread_param) +{ + int sock; + rt_uint32_t *buffer; + struct sockaddr_in server; + rt_uint32_t packet_count = 0; + rt_uint32_t tick; + int send_size; + + send_size = IPERF_BUFSZ > 1470 ? 1470 : IPERF_BUFSZ; + buffer = rt_malloc(IPERF_BUFSZ); + if (buffer == NULL) + { + return; + } + memset(buffer, 0x00, IPERF_BUFSZ); + sock = socket(PF_INET, SOCK_DGRAM, 0); + if(sock < 0) + { + LOG_E("can't create socket! exit!"); + return; + } + server.sin_family = PF_INET; + server.sin_port = htons(param.port); + server.sin_addr.s_addr = inet_addr(param.host); + LOG_I("iperf udp mode run..."); + while (param.mode != IPERF_MODE_STOP) + { + packet_count++; + tick = rt_tick_get(); + buffer[0] = htonl(packet_count); + buffer[1] = htonl(tick / RT_TICK_PER_SECOND); + buffer[2] = htonl((tick % RT_TICK_PER_SECOND) * 1000); + sendto(sock, buffer, send_size, 0, (struct sockaddr *)&server, sizeof(struct sockaddr_in)); + } + closesocket(sock); + rt_free(buffer); +} + +static void iperf_udp_server(void *thread_param) +{ + int sock; + rt_uint32_t *buffer; + struct sockaddr_in server; + struct sockaddr_in sender; + int sender_len, r_size; + rt_uint64_t sentlen; + rt_uint32_t pcount = 0, last_pcount = 0; + rt_uint32_t lost, total; + rt_tick_t tick1, tick2; + struct timeval timeout; + + buffer = rt_malloc(IPERF_BUFSZ); + if (buffer == NULL) + { + return; + } + sock = socket(PF_INET, SOCK_DGRAM, 0); + if(sock < 0) + { + LOG_E("can't create socket! exit!"); + return; + } + server.sin_family = PF_INET; + server.sin_port = htons(param.port); + server.sin_addr.s_addr = inet_addr("0.0.0.0"); + + timeout.tv_sec = 2; + timeout.tv_usec = 0; + if (setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout)) == -1) + { + LOG_E("setsockopt failed!"); + closesocket(sock); + rt_free(buffer); + return; + } + if (bind(sock, (struct sockaddr *)&server, sizeof(struct sockaddr_in)) < 0) + { + LOG_E("iperf server bind failed! exit!"); + closesocket(sock); + rt_free(buffer); + return; + } + while (param.mode != IPERF_MODE_STOP) + { + tick1 = rt_tick_get(); + tick2 = tick1; + lost = 0; + total = 0; + sentlen = 0; + while ((tick2 - tick1) < (RT_TICK_PER_SECOND * 5)) + { + r_size = recvfrom(sock, buffer, IPERF_BUFSZ, 0, (struct sockaddr *)&sender, (socklen_t*)&sender_len); + if (r_size > 12) + { + pcount = ntohl(buffer[0]); + if (last_pcount < pcount) + { + lost += pcount - last_pcount - 1; + total += pcount - last_pcount; + } + else + { + last_pcount = pcount; + } + last_pcount = pcount; + sentlen += r_size; + } + tick2 = rt_tick_get(); + } + if (sentlen > 0) + { + long data; + int integer, decimal; + rt_thread_t tid; + + tid = rt_thread_self(); + data = sentlen * RT_TICK_PER_SECOND / 125 / (tick2 - tick1); + integer = data/1000; + decimal = data%1000; + LOG_I("%s: %d.%03d0 Mbps! lost:%d total:%d\n", tid->name, integer, decimal, lost, total); + } + } + rt_free(buffer); + closesocket(sock); +} + +static void iperf_client(void *thread_param) +{ + int i; + int sock; + int ret; + int tips = 1; + uint8_t *send_buf; + rt_uint64_t sentlen; + rt_tick_t tick1, tick2; + struct sockaddr_in addr; + + send_buf = (uint8_t *) rt_malloc(IPERF_BUFSZ); + if (!send_buf) return ; + + for (i = 0; i < IPERF_BUFSZ; i ++) + send_buf[i] = i & 0xff; + + while (param.mode != IPERF_MODE_STOP) + { + sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if (sock < 0) + { + LOG_E("create socket failed!"); + rt_thread_delay(RT_TICK_PER_SECOND); + continue; + } + + addr.sin_family = PF_INET; + addr.sin_port = htons(param.port); + addr.sin_addr.s_addr = inet_addr((char *)param.host); + + ret = connect(sock, (const struct sockaddr *)&addr, sizeof(addr)); + if (ret == -1) + { + if (tips) + { + LOG_E("Connect to iperf server faile, Waiting for the server to open!"); + tips = 0; + } + closesocket(sock); + rt_thread_delay(RT_TICK_PER_SECOND); + continue; + } + + LOG_I("Connect to iperf server successful!"); + + { + int flag = 1; + + setsockopt(sock, + IPPROTO_TCP, /* set option at TCP level */ + TCP_NODELAY, /* name of option */ + (void *) &flag, /* the cast is historical cruft */ + sizeof(int)); /* length of option value */ + } + + sentlen = 0; + + tick1 = rt_tick_get(); + while (param.mode != IPERF_MODE_STOP) + { + tick2 = rt_tick_get(); + if (tick2 - tick1 >= RT_TICK_PER_SECOND * 5) + { + long data; + int integer, decimal; + rt_thread_t tid; + + tid = rt_thread_self(); + data = sentlen * RT_TICK_PER_SECOND / 125 / (tick2 - tick1); + integer = data/1000; + decimal = data%1000; + LOG_I("%s: %d.%03d0 Mbps!", tid->name, integer, decimal); + tick1 = tick2; + sentlen = 0; + } + + ret = send(sock, send_buf, IPERF_BUFSZ, 0); + if (ret > 0) + { + sentlen += ret; + } + + if (ret < 0) break; + } + + closesocket(sock); + + rt_thread_delay(RT_TICK_PER_SECOND * 2); + LOG_W("Disconnected, iperf server shut down!"); + tips = 1; + } + rt_free(send_buf); +} + +void iperf_server(void *thread_param) +{ + uint8_t *recv_data; + socklen_t sin_size; + rt_tick_t tick1, tick2; + int sock = -1, connected, bytes_received; + rt_uint64_t recvlen; + struct sockaddr_in server_addr, client_addr; + fd_set readset; + struct timeval timeout; + + recv_data = (uint8_t *)rt_malloc(IPERF_BUFSZ); + if (recv_data == RT_NULL) + { + LOG_E("No memory!"); + goto __exit; + } + + sock = socket(AF_INET, SOCK_STREAM, 0); + if (sock < 0) + { + LOG_E("Socket error!"); + goto __exit; + } + + server_addr.sin_family = AF_INET; + server_addr.sin_port = htons(param.port); + server_addr.sin_addr.s_addr = INADDR_ANY; + memset(&(server_addr.sin_zero), 0x0, sizeof(server_addr.sin_zero)); + + if (bind(sock, (struct sockaddr *)&server_addr, sizeof(struct sockaddr)) == -1) + { + LOG_E("Unable to bind!"); + goto __exit; + } + + if (listen(sock, 5) == -1) + { + LOG_E("Listen error!"); + goto __exit; + } + + timeout.tv_sec = 3; + timeout.tv_usec = 0; + + while (param.mode != IPERF_MODE_STOP) + { + FD_ZERO(&readset); + FD_SET(sock, &readset); + + if (select(sock + 1, &readset, RT_NULL, RT_NULL, &timeout) == 0) + continue; + + sin_size = sizeof(struct sockaddr_in); + + connected = accept(sock, (struct sockaddr *)&client_addr, &sin_size); + + LOG_I("new client connected from (%s, %d)", + inet_ntoa(client_addr.sin_addr), ntohs(client_addr.sin_port)); + + { + int flag = 1; + + setsockopt(connected, + IPPROTO_TCP, /* set option at TCP level */ + TCP_NODELAY, /* name of option */ + (void *) &flag, /* the cast is historical cruft */ + sizeof(int)); /* length of option value */ + } + + recvlen = 0; + tick1 = rt_tick_get(); + while (param.mode != IPERF_MODE_STOP) + { + bytes_received = recv(connected, recv_data, IPERF_BUFSZ, 0); + if (bytes_received <= 0) break; + + recvlen += bytes_received; + + tick2 = rt_tick_get(); + if (tick2 - tick1 >= RT_TICK_PER_SECOND * 5) + { + long data; + int integer, decimal; + rt_thread_t tid; + + tid = rt_thread_self(); + data = recvlen * RT_TICK_PER_SECOND / 125 / (tick2 - tick1); + integer = data/1000; + decimal = data%1000; + LOG_I("%s: %d.%03d0 Mbps!", tid->name, integer, decimal); + tick1 = tick2; + recvlen = 0; + } + } + LOG_W("client disconnected (%s, %d)", + inet_ntoa(client_addr.sin_addr), ntohs(client_addr.sin_port)); + if (connected >= 0) closesocket(connected); + connected = -1; + } + +__exit: + if (sock >= 0) closesocket(sock); + if (recv_data) rt_free(recv_data); +} + +void iperf_usage(void) +{ + rt_kprintf("Usage: iperf [-s|-c host] [options] [multi-threaded]\n"); + rt_kprintf(" iperf [-h|--stop]\n"); + rt_kprintf("\n"); + rt_kprintf("Client/Server:\n"); + rt_kprintf(" -p # server port to listen on/connect to\n"); + rt_kprintf("\n"); + rt_kprintf("Server specific:\n"); + rt_kprintf(" -s run in server mode\n"); + rt_kprintf("\n"); + rt_kprintf("Client specific:\n"); + rt_kprintf(" -c run in client mode, connecting to \n"); + rt_kprintf("\n"); + rt_kprintf("Miscellaneous:\n"); + rt_kprintf(" -h print this message and quit\n"); + rt_kprintf(" --stop stop iperf program\n"); + rt_kprintf(" -u testing UDP protocol\n"); + rt_kprintf(" -m