Fórum témák
» Több friss téma |
Na
![]() Nekem is akkor szokott ilyesmi előfordulni, ha a stack kicsi, de én ilyenkor 0x800-ra szoktam felnyomni és akkor nincs macera.
Még 1 példa Eclipse IDE lépésről lépésre:
Bővebben: Setting up Eclipse and Code Sourcery lite for STM32 Disco...opment
Sziasztok !
STM32F4 Discovery. FPU bekapcsolva. GCC -vel forditottam az alabbi (lasd link) arm fir peldat. Ugy tunik hogy az snr szamolasnal hardFault -ot ad. Kozvetlen a szures utan meg tudok ledet bekapcsolni, utanna mar nem. A GDB szerint is hardfault van. Valakinek van otlete mi lehet a problema? Bővebben: Link A hozzászólás módosítva: Feb 10, 2013
Sziasztok !
A linker flags-hez hozzaadva az alabbi sort mostmar nem dob hard faultot, de az snr feltetel ezen agaba fut be:
Csak két tipp, nem biztos, de hátha segít én is többször futottam hard faultra igaz én keil-t használok fordítónak... Hiába állítom be a fordítóba, hogy használja az fpu-t, csak az alábbi kis kód amit mellékelek kapcsolta be azt. ( A program elején meg kell hívni a függvényt)
A másik tippem, hogy esetleg növeld stack, illetve a heap méretét, ahogy lentebb tárgyalták is a kollegák, ez is marha becsapós, sokszor segített amikor téptem a hajamat, hogy miért nem működik egy tökéletes kód.....
Szia !
Koszi. Beforditottam, meghivtam, de nincs valtozas. A stack merete a .ld fileban a _Min_Stack_Size lenne ? Ez nalam 0x400. Az optimalizalasi szint -O2. A hozzászólás módosítva: Feb 10, 2013
Sajna GCC-ben nincs tapasztalatom
Nálam a legkomplikáltabb programomnál (320*240 lcd, st grafikus lib+ov7670 kamera) a stack mérete 0x2000 .... (illetve igazándiból a startup_stm32f4xxx.s fájl szerint 0x00002000) De én is full kezdő vagyok úgyhogy lehet túlzás, vagy ki tudja de működik... Folyamatosan növelnem kellett, ahogy növekedett a program, és annak a memória igénye. Csak reméltem, hogy tudok segíteni...
Melyik GCC verzióval fordítottad?
Szia ! arm-linaro-eabi-4.6 csomag es ezen belul arm-none-eabi-gcc-4.6.2.
Esetleg itt találsz némi segítséget:
Bővebben: Getting Started with the STM32F4 and GCC
Nem tudom egyaltalan mukodik az emlitett peldaprogram (arm_fir_example) ? Valaki nem probalna ki, akinek van keznel mukodo gcc es discovery ?
Nekem ez van:
DM-STF4BB Base Board Bővebben: DM-STF4BB Base Board De Win. alatt Atolicot használok! Itt szerencsére van Debugolásra lehetőség. Neked is kellene valami PC - soros illesztőt barkácsolni. Debugoláshoz szükséges, 1 LED ehhez kevés.
Ennek az egyszeru programnak a debugolasahoz boven eleg egy led, es van belole 4 is. Amugy fent van az openocd es a gdb is. Nem ez a gond.
Eszemben sincs vitatkozni veled!
Biztos látod, hól akad el a programod. De, hogy miért esélytelen megtalálnod.
Innen <<>> leforditottam a Mandelbrot-ot, es ugy tunik hogy a sqrtf -re a 20 ciklusido is rendben van. A FIR szuros pelda meg nem sajat, lehet benne akar hiba is. Arra lennek kivancsi hogy a pelda nem jo vagy a compiler rontja el.
Nálam is kiakad!
Itt a két sor között ugrál: snr = arm_snr_f32(&refOutput[0], &testOutput[0], TEST_LENGTH_SAMPLES); 2 * snr = 0 3.ra snr = 0x400000 if (snr < SNR_THRESHOLD_F32) És itt a vég! Nem értem? Ezeknek elvileg csak 1* kellene lefutni? Lehet Stack méret probléma?>
Koszi szepen hogy megnezted ! Tehat akkor nalad el sem jut idaig ?
A hozzászólás módosítva: Feb 11, 2013
Vissza állítottam az –Os, -O0 –ra
És kilépés eredménye: status = ARM_MATH_SUCCESS; Ez így jónak tűnik! Bár a kapott eredményt nem látom.
Nem jó –O2 –vel!
Csak: -O0 Valamit ki optimalizál ebből?: snr = arm_snr_f32(&refOutput[0], &testOutput[0], TEST_LENGTH_SAMPLES);
Koszi megegyszer !
Csupa vicc az egesz,..Az Atollic milyen compilert hasznal ? Nos nalam a FIR szuros library le van forditva sztatikus konyvtarnak. Kiprobaltam, ujraforditottam az osszes optimalizacios szinttel a libraryt es a projektet is. Egyiknel sem lett jo az SNR. Ez lenne a legkevesebb, ha tudnam hogy jol fut a FIR, de ez csak akkor derul ki ha kiteszem DAC-ra es kimerem. Udv. Szabi
Én átnézném helyedben ezt debugban: math_helper.c
Hól ugrik ki 0-ával?
Egész pontosan:
-mthumb -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=softfp -std=gnu90 -DUSE_STM32F4_DISCOVERY -DHSE_VALUE=8000000 -DSTM32F4XX -DUSE_STDPERIPH_DRIVER -I../src -I..\Libraries\CMSIS\Include -I..\Libraries\Device\STM32F4xx\Include -I..\Libraries\STM32F4xx_StdPeriph_Driver\inc -I..\Utilities\STM32F4-Discovery -O0 -ffunction-sections -fdata-sections -g -Wall A hozzászólás módosítva: Feb 11, 2013
A könyvtárat is ezekkel fordítod? Vagy azt binárisban használod, ahogy kijött a gyárból?
Ill. a másik kérdés, hogy dob-e warningokat a -Wall miatt. A hozzászólás módosítva: Feb 11, 2013
Nem használok előre fordított lib -eket!
Mert úgy nem tudok Debugolni. Warning van Bőven. De csak azért mert gyorsan beledobtam az arm_fir_example_f32.c -t egy épen futó GLCD projectba.
Itt megtalálod az egész forrás kódot:
Bővebben: STM32F4DISCOVERY board firmware package STM32F4-Discovery_FW_V1.1.0\Libraries\CMSIS\DSP_Lib\Examples\arm_fir_example\ A hozzászólás módosítva: Feb 11, 2013
Sziasztok !
Az alabbi formaban mukodik a dolog, -O0 optimalizacio eseten kizarolag. Viszont ugy tunik hogy az elso szamitasa ebben az esetben sem lesz jo, csak az n.
Nálam elsőre hibátlan!
Viszont felesleges: #include "fpu.h" és "fpu.c" Mert nem hívod meg sehol!
Persze, tudom hogy folosleges, de ezen most ne akadjunk el !
|
Bejelentkezés
Hirdetés |





Nálam a legkomplikáltabb programomnál (320*240 lcd, st grafikus lib+




