]> granicus.if.org Git - esp-idf/commitdiff
spi_master, ulp: fix aliasing errors in unit tests
authorIvan Grokhotkov <ivan@espressif.com>
Tue, 26 Jun 2018 06:37:36 +0000 (14:37 +0800)
committerbot <bot@espressif.com>
Wed, 1 Aug 2018 08:59:02 +0000 (08:59 +0000)
components/driver/test/test_spi_master.c
components/ulp/test/test_ulp.c

index 8814088f6df7493e03614a2e1c8adfb0f4d7ea14..5a7b49010936363c34698c1a8283573ff33ecbca 100644 (file)
@@ -759,7 +759,7 @@ static void task_slave(void* arg)
         do {
             TEST_ESP_OK( spi_slave_transmit( context->spi, &t, portMAX_DELAY ) );
         } while ( t.trans_len == 0 );
-        *(uint32_t*)recvbuf = t.trans_len;
+        memcpy(recvbuf, &t.trans_len, sizeof(uint32_t));
         *(uint8_t**)(recvbuf+4) = txdata.start;
         ESP_LOGI( SLAVE_TAG, "received: %d", t.trans_len );
         xRingbufferSend( ringbuf, recvbuf, 8+(t.trans_len+7)/8, portMAX_DELAY );
index 197a12b61bc49b59e6207248f4a3d327ecef0f20..766a71742eb4ece9470e2556015d3e618361b474 100644 (file)
@@ -271,7 +271,7 @@ TEST_CASE("ulp power consumption in deep sleep", "[ulp][ignore]")
 {
     assert(CONFIG_ULP_COPROC_RESERVE_MEM >= 4 && "this test needs ULP_COPROC_RESERVE_MEM option set in menuconfig");
     ulp_insn_t insn = I_HALT();
-    RTC_SLOW_MEM[0] = *(uint32_t*) &insn;
+    memcpy(&RTC_SLOW_MEM[0], &insn, sizeof(insn));
 
     REG_WRITE(SENS_ULP_CP_SLEEP_CYC0_REG, 0x8000);