[elektro] STM32F3 HardFault

Bali Zoltan eltexto at freemail.hu
Mon Nov 16 11:04:50 CET 2015


Áááá, de jó hogy írogatok! Átnéztem a struktúrát is,
ott a hiba. a struktúra  __packed  és két uint_8 után jön a
float tömb. Az alignálás nem jó. De ha nincs tömb, csak
változó, akkor miért jó?

Üdv.  Zoli


2015.11.16. 10:56 keltezéssel, Bali Zoltan írta:
> Ja, nem írtam az idx static és 0x00000000 a kérdéses esetben.
>
> 2015.11.16. 10:46 keltezéssel, Bali Zoltan írta:
>> Hali!
>>
>> Az a alábbi 1. kódrészlet FPU-val fordítva
>> HardFault-ra fut a VSTR utasításnál.
>>
>> float     temp;
>> uint32_t  idx;
>> a cél tömb is float.
>>
>> Ha kikapcsolom az FPU-t a 2.-t fordítja és
>> nincs fault.
>>
>> A 3. tömb és FPU nélkül, nincs hiba.
>>
>> A 4. tömb nélkül FPU-val, nincs hiba.
>> Az utána levő sor, hasonló mint az 1.
>> annál már behal újra.
>>
>> Mi a fene baja lehet? Eddig azt vettem ki,
>> az extension regiszterekkel dolgozik, ha van FPU.
>> DE minek ez egy értékadáshoz? Optimalizáció
>> kikapcsolva, struktúra volatile, a kód IT ben van.
>>
>> Köszi
>>
>> Üdv.  Zoli
>>
>>
>> 1. //  142     MeasPacket.SpeedMeasVal[idx] = temp;
>>            LDR.N    R0,??DataTable2_19
>>            LDR.N    R1,??DataTable2_20
>>            LDR      R1,[R1, #+0]
>>            ADDS     R0,R0,R1, LSL #+2
>>            ADDS     R0,R0,#+2
>>            VSTR     S16,[R0, #0]
>>
>> 2. //  142     MeasPacket.SpeedMeasVal[idx] = temp;
>>            LDR.N    R0,??DataTable2_19
>>            LDR.N    R1,??DataTable2_20
>>            LDR      R1,[R1, #+0]
>>            ADDS     R0,R0,R1, LSL #+2
>>            STR      R4,[R0, #+2]
>>
>> 3 .//  142     MeasPacket.SpeedMeasVal = temp;
>>            LDR.N    R0,??DataTable2_19
>>            STR      R4,[R0, #+2]
>>
>> 4. //  142     MeasPacket.SpeedMeasVal = temp;
>>            VMOV     R0,S16
>>            LDR.N    R1,??DataTable2_19
>>            STR      R0,[R1, #+2]
>>
>> -----------------------------------------
>>             elektro[-flame|-etc]
>>
>>
> -----------------------------------------
>            elektro[-flame|-etc]
>
>



More information about the Elektro mailing list