Changeset 459
- Timestamp:
- Sep 25, 2020, 7:28:35 PM (3 years ago)
- Location:
- azure_iot_hub_riscv/trunk
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
azure_iot_hub_riscv/trunk/app_iothub_client/Debug/Makefile
r453 r459 183 183 APPL_ASMOBJS := 184 184 ifdef USE_CXX 185 APPL_CXXOBJS := $(APPL_CXXOBJS) main.o186 APPL_COBJS := $(APPL_COBJS) client.o code.o envcmd.o command.o esp_at_socket.o kpu_main.o region_layer.o kpu.o185 APPL_CXXOBJS := $(APPL_CXXOBJS) 186 APPL_COBJS := $(APPL_COBJS) main.o client.o code.o envcmd.o command.o esp_at_socket.o kpu_main.o region_layer.o kpu.o 187 187 else 188 188 APPL_COBJS := $(APPL_COBJS) main.o client.o code.o envcmd.o command.o esp_at_socket.o kpu_main.o region_layer.o kpu.o 189 189 endif 190 190 APPL_COBJS := $(APPL_COBJS) log_output.o vasyslog.o t_perror.o strerror.o stub.o yolo.o 191 APPL_CFLAGS := $(APPL_CFLAGS) -D___src_yolo_kmodel=model_data -D___src_yolo_kmodel_len=model_size191 APPL_CFLAGS := $(APPL_CFLAGS) 192 192 APPL_LIBS = 193 193 ifdef APPLDIR -
azure_iot_hub_riscv/trunk/app_iothub_client/src/client.c
r453 r459 23 23 #include "serializer_devicetwin.h" 24 24 #include "client.h" 25 #include "kpu_main.h" 25 26 26 27 #ifdef _MSC_VER … … 41 42 bool g_use_proxy; 42 43 HTTP_PROXY_OPTIONS g_proxy_options; 43 int ledOn;44 44 45 45 static int callbackCounter; … … 133 133 134 134 // Define the Model 135 BEGIN_NAMESPACE(WeatherStation); 136 137 DECLARE_MODEL(ContosoAnemometer, 138 WITH_DATA(double, windSpeed), 139 WITH_DATA(double, temperature), 140 WITH_DATA(double, humidity), 135 BEGIN_NAMESPACE(SecurityStation); 136 137 DECLARE_MODEL(ContosoSecurityCamera, 138 WITH_DATA(int, is_person), 139 WITH_DATA(int, is_car), 141 140 WITH_METHOD(quit), 142 141 WITH_METHOD(turnLedOn), … … 153 152 ); 154 153 155 DECLARE_DEVICETWIN_MODEL( AnemometerState,154 DECLARE_DEVICETWIN_MODEL(SecurityCameraState, 156 155 WITH_REPORTED_PROPERTY(ThresholdR, threshold) 157 156 ); 158 157 159 DECLARE_DEVICETWIN_MODEL( AnemometerSettings,158 DECLARE_DEVICETWIN_MODEL(SecurityCameraSettings, 160 159 WITH_DESIRED_PROPERTY(ThresholdD, threshold, onDesiredThreshold) 161 160 ); 162 161 163 END_NAMESPACE( WeatherStation);162 END_NAMESPACE(SecurityStation); 164 163 165 164 void anemometerReportedStateCallback(int status_code, void* userContextCallback) 166 165 { 167 AnemometerState *anemometer = (AnemometerState *)userContextCallback;166 SecurityCameraState *anemometer = (SecurityCameraState *)userContextCallback; 168 167 169 168 printf("received states \033[43m%d\033[49m, reported threshold = %.1f\n", status_code, anemometer->threshold.value); … … 174 173 // Note: The argument is NOT a pointer to threshold, but instead a pointer to the MODEL 175 174 // that contains threshold as one of its arguments. In this case, it 176 // is AnemometerSettings*.177 178 AnemometerSettings *anemometer = (AnemometerSettings *)argument;175 // is SecurityCameraSettings*. 176 177 SecurityCameraSettings *anemometer = (SecurityCameraSettings *)argument; 179 178 printf("received a new desired.threshold = \033[42m%.1f\033[49m\n", anemometer->threshold.value); 180 179 … … 182 181 } 183 182 184 METHODRETURN_HANDLE quit(Contoso Anemometer* device)183 METHODRETURN_HANDLE quit(ContosoSecurityCamera* device) 185 184 { 186 185 (void)device; … … 193 192 } 194 193 195 METHODRETURN_HANDLE turnLedOn(Contoso Anemometer* device)194 METHODRETURN_HANDLE turnLedOn(ContosoSecurityCamera* device) 196 195 { 197 196 (void)device; 198 197 (void)printf("\033[41mTurning LED on with Method.\033[49m\r\n"); 199 198 200 ledOn = 1; 199 digitalWrite(LED_G_PIN, LOW); 200 digitalWrite(LED_R_PIN, LOW); 201 digitalWrite(LED_B_PIN, LOW); 201 202 202 203 METHODRETURN_HANDLE result = MethodReturn_Create(1, "{\"Message\":\"Turning fan on with Method\"}"); … … 204 205 } 205 206 206 METHODRETURN_HANDLE turnLedOff(Contoso Anemometer* device)207 METHODRETURN_HANDLE turnLedOff(ContosoSecurityCamera* device) 207 208 { 208 209 (void)device; 209 210 (void)printf("\033[44mTurning LED off with Method.\033[49m\r\n"); 210 211 211 ledOn = 0; 212 digitalWrite(LED_G_PIN, HIGH); 213 digitalWrite(LED_R_PIN, HIGH); 214 digitalWrite(LED_B_PIN, HIGH); 212 215 213 216 METHODRETURN_HANDLE result = MethodReturn_Create(0, "{\"Message\":\"Turning fan off with Method\"}"); … … 295 298 EVENT_INSTANCE messages[MESSAGE_COUNT]; 296 299 int msg_id = 0; 297 double avgWindSpeed = 10.0;298 double minTemperature = 20.0;299 double minHumidity = 60.0;300 300 int receiveContext = 0; 301 301 … … 315 315 (void)printf("Failed in serializer_init."); 316 316 } 317 else if (SERIALIZER_REGISTER_NAMESPACE( WeatherStation) == NULL)317 else if (SERIALIZER_REGISTER_NAMESPACE(SecurityStation) == NULL) 318 318 { 319 319 LogError("unable to SERIALIZER_REGISTER_NAMESPACE"); … … 389 389 } 390 390 #endif // SET_TRUSTED_CERT_IN_SAMPLES 391 AnemometerState *anemometerState = IoTHubDeviceTwin_LL_CreateAnemometerState(iotHubClientHandle);391 SecurityCameraState *anemometerState = IoTHubDeviceTwin_LL_CreateSecurityCameraState(iotHubClientHandle); 392 392 if (anemometerState == NULL) 393 393 { 394 printf("Failure in IoTHubDeviceTwin_LL_Create AnemometerState");394 printf("Failure in IoTHubDeviceTwin_LL_CreateSecurityCameraState"); 395 395 } 396 396 else 397 397 { 398 (void)printf("IoTHubDeviceTwin_LL_Create AnemometerState...successful.\r\n");399 } 400 AnemometerSettings *anemometerSettings = IoTHubDeviceTwin_LL_CreateAnemometerSettings(iotHubClientHandle);398 (void)printf("IoTHubDeviceTwin_LL_CreateSecurityCameraState...successful.\r\n"); 399 } 400 SecurityCameraSettings *anemometerSettings = IoTHubDeviceTwin_LL_CreateSecurityCameraSettings(iotHubClientHandle); 401 401 if (anemometerSettings == NULL) 402 402 { 403 printf("Failure in IoTHubDeviceTwin_LL_Create AnemometerSettings");403 printf("Failure in IoTHubDeviceTwin_LL_CreateSecurityCameraSettings"); 404 404 } 405 405 else 406 406 { 407 (void)printf("IoTHubDeviceTwin_LL_Create AnemometerSettings...successful.\r\n");408 } 409 Contoso Anemometer* myWeather = CREATE_MODEL_INSTANCE(WeatherStation, ContosoAnemometer);407 (void)printf("IoTHubDeviceTwin_LL_CreateSecurityCameraSettings...successful.\r\n"); 408 } 409 ContosoSecurityCamera* myWeather = CREATE_MODEL_INSTANCE(SecurityStation, ContosoSecurityCamera); 410 410 if (myWeather == NULL) 411 411 { … … 440 440 unsigned char *msgText; 441 441 size_t msgSize; 442 myWeather-> windSpeed = avgWindSpeed + (rand() % 4 + 2);443 myWeather-> temperature = minTemperature + (rand() % 10);444 myWeather->humidity = minHumidity + (rand() % 20);445 if (SERIALIZE(&msgText, &msgSize, myWeather-> windSpeed, myWeather->temperature, myWeather->humidity) != CODEFIRST_OK)442 myWeather->is_person = yolo_result.person; 443 myWeather->is_car = yolo_result.car; 444 yolo_result.reset = 1; 445 if (SERIALIZE(&msgText, &msgSize, myWeather->is_person, myWeather->is_car) != CODEFIRST_OK) 446 446 { 447 447 (void)printf("Failed to serialize\r\n"); … … 459 459 460 460 propMap = IoTHubMessage_Properties(messages[msgPos].messageHandle); 461 (void)sprintf_s(propText, sizeof(propText), myWeather->temperature > anemometerSettings->threshold.value? "true" : "false");462 if (Map_AddOrUpdate(propMap, " temperatureAlert", propText) != MAP_OK)461 (void)sprintf_s(propText, sizeof(propText), (yolo_result.person > 0) ? "true" : "false"); 462 if (Map_AddOrUpdate(propMap, "personAlert", propText) != MAP_OK) 463 463 { 464 464 (void)printf("ERROR: Map_AddOrUpdate Failed!\r\n"); … … 487 487 anemometerState->threshold.value = anemometerSettings->threshold.value; 488 488 anemometerState->threshold.status = "success"; 489 IoTHubDeviceTwin_LL_SendReportedState AnemometerState(anemometerState, anemometerReportedStateCallback, anemometerState);489 IoTHubDeviceTwin_LL_SendReportedStateSecurityCameraState(anemometerState, anemometerReportedStateCallback, anemometerState); 490 490 } 491 491 iterator++; … … 504 504 505 505 if (anemometerSettings != NULL) 506 IoTHubDeviceTwin_LL_Destroy AnemometerSettings(anemometerSettings);506 IoTHubDeviceTwin_LL_DestroySecurityCameraSettings(anemometerSettings); 507 507 if (anemometerState != NULL) 508 IoTHubDeviceTwin_LL_Destroy AnemometerState(anemometerState);508 IoTHubDeviceTwin_LL_DestroySecurityCameraState(anemometerState); 509 509 if (myWeather != NULL) 510 510 DESTROY_MODEL_INSTANCE(myWeather); -
azure_iot_hub_riscv/trunk/app_iothub_client/src/command.c
r458 r459 9 9 #include "monitor.h" 10 10 #include "device.h" 11 #include "kpu_main.h" 11 12 12 13 /* … … 55 56 " WIFI set ssid pwd \n"; 56 57 57 #define LED_PIN 3 /* D13 */ 58 static const uint16_t led_pattern[1] = { 59 LED_PIN 58 static const uint16_t led_pattern[] = { 59 LED_G_PIN, 60 LED_R_PIN, 61 LED_B_PIN, 60 62 }; 61 63 … … 88 90 89 91 /* 90 * ダイレクトデジタルピン出力91 */92 void93 digitalWrite(uint8_t Pin, int dwVal){94 int8_t gpio_pin = gpio_get_gpiohno(Pin, false);95 96 if( gpio_pin >= 0){97 gpio_set_pin(TADR_GPIOHS_BASE, (uint8_t)gpio_pin, dwVal);98 }99 }100 101 /*102 92 * LED設定コマンド関数 103 93 */ … … 110 100 arg1 = a2i(argv[1]); 111 101 arg2 = a2i(argv[2]); 112 if(arg1 >= 1 && arg1 <= 4){ 113 if(arg2 != 0) 114 digitalWrite(led_pattern[arg1-1], 1); 115 else 116 digitalWrite(led_pattern[arg1-1], 0); 102 if(arg1 >= 1 && arg1 <= sizeof(led_pattern) / sizeof(led_pattern[0])){ 103 if(arg2 != 0) { 104 digitalWrite(led_pattern[arg1-1], LOW); 105 syslog(LOG_NOTICE, "digitalWrite(%d,LOW)", arg1); 106 } 107 else { 108 digitalWrite(led_pattern[arg1-1], HIGH); 109 syslog(LOG_NOTICE, "digitalWrite(%d,HIGH)", arg1); 110 } 111 } 112 else{ 113 syslog(LOG_NOTICE, "LED %d is not arival.", arg1); 117 114 } 118 115 return 0; -
azure_iot_hub_riscv/trunk/app_iothub_client/src/esp_at_socket.c
r458 r459 61 61 #include "azure_c_shared_utility/optimize_size.h" 62 62 63 #ifdef _MSC_VER 64 extern int sprintf_s(char* dst, size_t dstSizeInBytes, const char* format, ...); 65 #endif // _MSC_VER 66 63 67 //#define AT_DEBUG 64 68 time_t MINIMUM_YEAR; … … 306 310 { 307 311 struct tm tm = { 308 309 310 311 312 313 312 0, /* tm_sec */ 313 0, /* tm_min */ 314 0, /* tm_hour */ 315 1, /* tm_mday */ 316 0, /* tm_mon */ 317 2020 - 1900, /* tm_year */ 314 318 }; 315 319 MINIMUM_YEAR = mktime(&tm); … … 426 430 return false; 427 431 } 432 #ifdef AT_DEBUG 433 else{ 434 append_char(esp_state, '\0'); 435 printf("\"%s\"\r\n", esp_state->string); 436 } 437 #endif 428 438 } 429 439 else if (isalpha(c) || isdigit(c) || c == ' ') { … … 432 442 return false; 433 443 } 444 #ifdef AT_DEBUG 445 else{ 446 append_char(esp_state, '\0'); 447 printf("\"%s\"\r\n", esp_state->string); 448 } 449 #endif 434 450 break; 435 451 case at_link_id: … … 634 650 #ifdef AT_DEBUG 635 651 if (esp_state->parse_state != at_none) 636 printf("\033[35mparse error. state:%d \033[0m\r\n", esp_state->parse_state);652 printf("\033[35mparse error. state:%d, char:%d\033[0m\r\n", esp_state->parse_state, c); 637 653 #endif 638 654 esp_state->parse_state = at_none; … … 1487 1503 } 1488 1504 1489 sprintf (temp, "AT+CWJAP=\"%s\",\"%s\"\r\n", esp_state->ssid, esp_state->pwd);1505 sprintf_s(temp, sizeof(temp), "AT+CWJAP=\"%s\",\"%s\"\r\n", esp_state->ssid, esp_state->pwd); 1490 1506 ret = esp_serial_write(esp_state, temp, &res_kind, 20000); 1491 1507 if ((ret != E_OK) || (res_kind != at_response_kind_ok)) { … … 1495 1511 esp_state->esp_state = esp_state_update_time; 1496 1512 case esp_state_update_time: 1497 sprintf (temp, "AT+CIPSNTPCFG=%d,%d,\"%s\"\r\n", 1, 9, "ntp.nict.jp");1513 sprintf_s(temp, sizeof(temp), "AT+CIPSNTPCFG=%d,%d,\"%s\"\r\n", 1, 9, "ntp.nict.jp"); 1498 1514 ret = esp_serial_write(esp_state, temp, &res_kind, 10000); 1499 1515 if ((ret != E_OK) || (res_kind != at_response_kind_ok)) { … … 1591 1607 1592 1608 ER ret; 1593 char temp[ 64];1594 sprintf (temp, "AT+CIPSTART=%d,\"%s\",\"%s\",%d\r\n", connection->link_id, connection->ssl, host, port);1609 char temp[128]; 1610 sprintf_s(temp, sizeof(temp), "AT+CIPSTART=%d,\"%s\",\"%s\",%d\r\n", connection->link_id, connection->ssl, host, port); 1595 1611 ret = esp_serial_write(connection->esp_state, temp, &res_kind, 10000); 1596 1612 if ((ret != E_OK) || (res_kind != at_response_kind_connect)) { … … 1630 1646 ER ret; 1631 1647 char temp[64]; 1632 sprintf (temp, "AT+CIPCLOSE=%d\r\n", connection->link_id);1648 sprintf_s(temp, sizeof(temp), "AT+CIPCLOSE=%d\r\n", connection->link_id); 1633 1649 ret = esp_serial_write(connection->esp_state, temp, &res_kind, 10000); 1634 1650 if (ret == E_OK) { … … 1656 1672 ER ret; 1657 1673 char temp[64]; 1658 sprintf (temp, "AT+CIPSEND=%d,%d\r\n", connection->link_id, length);1674 sprintf_s(temp, sizeof(temp), "AT+CIPSEND=%d,%d\r\n", connection->link_id, length); 1659 1675 ret = esp_serial_write(connection->esp_state, temp, &res_kind, 10000); 1660 1676 if ((ret != E_OK) || (res_kind != at_response_kind_ok)) { -
azure_iot_hub_riscv/trunk/app_iothub_client/src/kpu_main.c
r458 r459 148 148 } 149 149 150 void digitalWrite(uint8_t Pin, int dwVal); 150 /* 151 * ダイレクトデジタルピン出力 152 */ 153 void 154 digitalWrite(uint8_t Pin, int dwVal){ 155 int8_t gpio_pin = gpio_get_gpiohno(Pin, false); 156 157 if( gpio_pin >= 0){ 158 gpio_set_pin(TADR_GPIOHS_BASE, (uint8_t)gpio_pin, dwVal); 159 } 160 } 151 161 152 162 #if (CLASS_NUMBER > 1) … … 188 198 kpu_model_context_t g_task; 189 199 static region_layer_t detect_rl; 200 yolo_result_t yolo_result; 201 yolo_result_t yolo_result_frame; 190 202 191 203 volatile uint8_t g_ai_done_flag; … … 220 232 lcd_drawRect(&DrawProp, x1, y1, x2, y2, 2, ST7789_RED); 221 233 #endif 234 if (strcmp(class_lable[class].str, "person") == 0) 235 yolo_result_frame.person++; 236 if (strcmp(class_lable[class].str, "car") == 0) 237 yolo_result_frame.car++; 222 238 } 223 239 … … 247 263 syslog(LOG_NOTICE, "Sample program starts (exinf = %d).", (int_t) exinf); 248 264 249 pinMode(LED_PIN, OUTPUT); 265 pinMode(LED_G_PIN, OUTPUT); 266 digitalWrite(LED_G_PIN, HIGH); 267 pinMode(LED_R_PIN, OUTPUT); 268 digitalWrite(LED_R_PIN, HIGH); 269 pinMode(LED_B_PIN, OUTPUT); 270 digitalWrite(LED_B_PIN, HIGH); 250 271 251 272 select_spi0_dvp_mode(1); … … 523 544 lcd_drawPicture(hlcd, 0, 0, hcmr->_width, hcmr->_height, (uint16_t *)hcmr->_dataBuffer); 524 545 546 yolo_result_frame.person = 0; 547 yolo_result_frame.car = 0; 548 525 549 /* draw boxs */ 526 550 region_layer_draw_boxes(&detect_rl, drawboxes); 551 552 if (yolo_result.reset) { 553 yolo_result.reset = 0; 554 yolo_result.person = 0; 555 yolo_result.car = 0; 556 } 557 if (yolo_result.person < yolo_result_frame.person) 558 yolo_result.person = yolo_result_frame.person; 559 if (yolo_result.car < yolo_result_frame.car) 560 yolo_result.car = yolo_result_frame.car; 527 561 } 528 562 ov2640_activate(hcmr, false); -
azure_iot_hub_riscv/trunk/app_iothub_client/src/kpu_main.h
r458 r459 86 86 #define SPI_MOSI_PIN 28 87 87 #define SPI_SS_PIN 29 88 #define LED_PIN 3 /* D13 */ 88 #define LED_G_PIN 12 89 #define LED_R_PIN 13 90 #define LED_B_PIN 14 89 91 90 92 #define SPI_PORTID SPI1_PORTID … … 133 135 #ifndef TOPPERS_MACRO_ONLY 134 136 137 typedef struct yolo_result_t { 138 int reset; 139 int person; 140 int car; 141 } yolo_result_t; 142 143 extern yolo_result_t yolo_result; 144 135 145 /* 136 146 * ヒープ領域の設定 … … 145 155 extern void heap_init(intptr_t exinf); 146 156 extern void ai_done_isr(intptr_t exinf); 157 extern void pinMode(uint8_t Pin, uint8_t dwMode); 158 extern void digitalWrite(uint8_t Pin, int dwVal); 147 159 148 160 #endif /* TOPPERS_MACRO_ONLY */ -
azure_iot_hub_riscv/trunk/asp_baseplatform/OBJ/K210_GCC/DEMO/demo.h
r453 r459 87 87 #define SPI_MOSI_PIN 28 88 88 #define SPI_SS_PIN 29 89 #define LED_PIN 3 /* D13 */89 #define LED_PIN 13 90 90 91 91 #define SPI_PORTID SPI1_PORTID -
azure_iot_hub_riscv/trunk/asp_baseplatform/arch/riscv_gcc/prc_config.c
r453 r459 73 73 unsigned long mstatus = *(((uintptr_t*)p_excinf) + P_EXCINF_OFFSET_MSTATUS); 74 74 uintptr_t pc = *(((uintptr_t*)p_excinf) + P_EXCINF_OFFSET_PC); 75 uintptr_t sp0 = *(((uintptr_t*)p_excinf) + P_EXCONF_OFFSET_SP); 76 uintptr_t sp1 = *(((uintptr_t*)p_excinf) + P_EXCONF_OFFSET_SP + 1); 75 77 unsigned long excno = mcause & MCAUSE_CAUSE; 78 static int count = 0; 79 80 if (count == 0) { 81 count++; 76 82 77 83 if((long)mcause < 0) 78 84 excno += TMAX_MACHNE_INTNO / 2; 79 85 80 switch (excno) { 81 case EXC_INSTRUCTION_ADDRESS_MISALIGNED: 82 syslog(LOG_EMERG, "\nUnregistered instruction address misaligned occurs."); 83 break; 84 case EXC_INSTRUCTION_ADDRESS_FAULT: 85 syslog(LOG_EMERG, "\nUnregistered instruction address fault occurs."); 86 break; 87 case EXC_ILLEGAL_INSTRUCTION: 88 syslog(LOG_EMERG, "\nUnregistered illegal instruction occurs."); 89 break; 90 case EXC_BREAKPOINT: 91 syslog(LOG_EMERG, "\nUnregistered breakpoint occurs."); 92 break; 93 case EXC_LOAD_ADDRESS_MISALIGNED: 94 syslog(LOG_EMERG, "\nUnregistered load address misaligned occurs."); 95 break; 96 case EXC_LOAD_ADDRESS_FAULT: 97 syslog(LOG_EMERG, "\nUnregistered load address fault occurs."); 98 break; 99 case EXC_STORE_AMO_ADDRESS_MISALIGNED: 100 syslog(LOG_EMERG, "\nUnregistered store AMO address misaligned occurs."); 101 break; 102 case EXC_STORE_AMO_ACCESS_FAUT: 103 syslog(LOG_EMERG, "\nUnregistered store AMO access faut occurs."); 104 break; 105 case EXC_ENVIRONMENT_CALL_FROM_MMODE: 106 syslog(LOG_EMERG, "\nUnregistered environment call from MMODE occurs."); 107 break; 108 default: 109 syslog(LOG_EMERG, "\nUnregistered Interrupt occurs."); 110 break; 111 } 112 113 syslog(LOG_EMERG, "Excno = 0x%02X, PC = 0x%X, mstatus = 0x%X, p_excinf = 0x%X", 114 excno, pc, mstatus, p_excinf); 86 switch (excno) { 87 case EXC_INSTRUCTION_ADDRESS_MISALIGNED: 88 syslog_0(LOG_EMERG, "\nUnregistered instruction address misaligned occurs."); 89 break; 90 case EXC_INSTRUCTION_ADDRESS_FAULT: 91 syslog_0(LOG_EMERG, "\nUnregistered instruction address fault occurs."); 92 break; 93 case EXC_ILLEGAL_INSTRUCTION: 94 syslog_0(LOG_EMERG, "\nUnregistered illegal instruction occurs."); 95 break; 96 case EXC_BREAKPOINT: 97 syslog_0(LOG_EMERG, "\nUnregistered breakpoint occurs."); 98 break; 99 case EXC_LOAD_ADDRESS_MISALIGNED: 100 syslog_0(LOG_EMERG, "\nUnregistered load address misaligned occurs."); 101 break; 102 case EXC_LOAD_ADDRESS_FAULT: 103 syslog_0(LOG_EMERG, "\nUnregistered load address fault occurs."); 104 break; 105 case EXC_STORE_AMO_ADDRESS_MISALIGNED: 106 syslog_0(LOG_EMERG, "\nUnregistered store AMO address misaligned occurs."); 107 break; 108 case EXC_STORE_AMO_ACCESS_FAUT: 109 syslog_0(LOG_EMERG, "\nUnregistered store AMO access faut occurs."); 110 break; 111 case EXC_ENVIRONMENT_CALL_FROM_MMODE: 112 syslog_0(LOG_EMERG, "\nUnregistered environment call from MMODE occurs."); 113 break; 114 default: 115 syslog_0(LOG_EMERG, "\nUnregistered Interrupt occurs."); 116 break; 117 } 118 119 syslog_4(LOG_EMERG, "Excno = 0x%02X, PC = 0x%X, mstatus = 0x%X, p_excinf = 0x%X", 120 excno, pc, mstatus, p_excinf); 121 122 syslog_3(LOG_EMERG, "SP0 = 0x%X, SP1 = 0x%X, runtsk = 0x%X", sp0, sp1, p_runtsk->p_tinib->task); 123 124 unsigned int *addr = (((unsigned int *)p_excinf) + P_EXCONF_OFFSET_SP + 3); 125 syslog_5(LOG_EMERG, "a0%x:%08X%08X %08X%08X", 0, addr[0], addr[1], addr[2], addr[3]); addr+=4; 126 syslog_5(LOG_EMERG, "a0%x:%08X%08X %08X%08X", 2, addr[0], addr[1], addr[2], addr[3]); addr+=4; 127 syslog_5(LOG_EMERG, "a0%x:%08X%08X %08X%08X", 4, addr[0], addr[1], addr[2], addr[3]); addr+=4; 128 syslog_5(LOG_EMERG, "a0%x:%08X%08X %08X%08X", 6, addr[0], addr[1], addr[2], addr[3]); addr+=4; 129 syslog_5(LOG_EMERG, "a0%x:%08X%08X %08X%08X", 8, addr[0], addr[1], addr[2], addr[3]); addr+=4; 130 syslog_5(LOG_EMERG, "a1%x:%08X%08X %08X%08X", 0, addr[0], addr[1], addr[2], addr[3]); addr+=4; 131 syslog_5(LOG_EMERG, "a1%x:%08X%08X %08X%08X", 2, addr[0], addr[1], addr[2], addr[3]); addr+=4; 132 syslog_5(LOG_EMERG, "a1%x:%08X%08X %08X%08X", 4, addr[0], addr[1], addr[2], addr[3]); addr+=4; 133 syslog_5(LOG_EMERG, "a1%x:%08X%08X %08X%08X", 6, addr[0], addr[1], addr[2], addr[3]); addr+=4; 134 syslog_5(LOG_EMERG, "a1%x:%08X%08X %08X%08X", 8, addr[0], addr[1], addr[2], addr[3]); addr+=4; 135 syslog_5(LOG_EMERG, "a1%x:%08X%08X %08X%08X",10, addr[0], addr[1], addr[2], addr[3]); addr+=4; 136 syslog_5(LOG_EMERG, "a2%x:%08X%08X %08X%08X", 0, addr[0], addr[1], addr[2], addr[3]); addr+=4; 137 syslog_5(LOG_EMERG, "a2%x:%08X%08X %08X%08X", 2, addr[0], addr[1], addr[2], addr[3]); addr+=4; 138 syslog_5(LOG_EMERG, "a2%x:%08X%08X %08X%08X", 4, addr[0], addr[1], addr[2], addr[3]); addr+=4; 139 syslog_5(LOG_EMERG, "a2%x:%08X%08X %08X%08X", 6, addr[0], addr[1], addr[2], addr[3]); addr+=4; 140 syslog_5(LOG_EMERG, "a2%x:%08X%08X %08X%08X", 8, addr[0], addr[1], addr[2], addr[3]); addr+=4; 141 syslog_5(LOG_EMERG, "a2%x:%08X%08X %08X%08X",10, addr[0], addr[1], addr[2], addr[3]); addr+=4; 142 143 addr = (unsigned int *)((sp0 + 15) / 16); 144 syslog_5(LOG_EMERG, "%08X:%08X %08X %08X %08X", (unsigned int)&addr[-4], addr[-4], addr[-3], addr[-2], addr[-1]); 145 syslog_5(LOG_EMERG, "%08X:%08X %08X %08X %08X", (unsigned int)&addr[ 0], addr[ 0], addr[ 1], addr[ 2], addr[ 3]); 146 syslog_5(LOG_EMERG, "%08X:%08X %08X %08X %08X", (unsigned int)&addr[ 4], addr[ 4], addr[ 5], addr[ 6], addr[ 7]); 147 syslog_5(LOG_EMERG, "%08X:%08X %08X %08X %08X", (unsigned int)&addr[ 8], addr[ 8], addr[ 9], addr[10], addr[11]); 148 syslog_5(LOG_EMERG, "%08X:%08X %08X %08X %08X", (unsigned int)&addr[12], addr[12], addr[13], addr[14], addr[15]); 149 150 addr = (unsigned int *)((sp1 + 15) / 16); 151 syslog_5(LOG_EMERG, "%08X:%08X %08X %08X %08X", (unsigned int)&addr[-4], addr[-4], addr[-3], addr[-2], addr[-1]); 152 syslog_5(LOG_EMERG, "%08X:%08X %08X %08X %08X", (unsigned int)&addr[ 0], addr[ 0], addr[ 1], addr[ 2], addr[ 3]); 153 syslog_5(LOG_EMERG, "%08X:%08X %08X %08X %08X", (unsigned int)&addr[ 4], addr[ 4], addr[ 5], addr[ 6], addr[ 7]); 154 syslog_5(LOG_EMERG, "%08X:%08X %08X %08X %08X", (unsigned int)&addr[ 8], addr[ 8], addr[ 9], addr[10], addr[11]); 155 syslog_5(LOG_EMERG, "%08X:%08X %08X %08X %08X", (unsigned int)&addr[12], addr[12], addr[13], addr[14], addr[15]); 156 } 115 157 116 158 target_exit(); -
azure_iot_hub_riscv/trunk/azure_iot_sdk/serializer/src/jsondecoder.c
r453 r459 598 598 result = JSON_DECODER_MULTITREE_FAILED; 599 599 } 600 else if (strcmp(json, "null") == 0) { 601 result = JSON_DECODER_OK; 602 } 600 603 else 601 604 {
Note:
See TracChangeset
for help on using the changeset viewer.