Nasıl?Fonksiyonların başına mı?Gribim, dünden bugüne biraz uykusuzum, kafamda deli sorular.Anlamadım kusura bakma abi.Gösterebilir misin?
Bir de debug ve realese projesi olarak iki ayrı proje keilde nasıl oluşturacağım?Sanırım debug için kod boyutu daha büyük oluyor.
Abi çok sağol.Diğer bütün header larım o şekilde idi. Bu dosyanın farklı olduğunu fark edemedim.
Şimdi başka birkaç soru sormak istiyorum.Bu map dosyasını nasıl okumak, yorumlamak gerekiyor?
Ben karıştırdım biraz ve debug modda daha fazla bellek kullanıldığını gördüm.Neden olabilir?
Keil üzerinde debug ve release şeklinde aynı projede nasıl ayar yapabilirim?
Aynı kütüphaneleri farklı projelerde program boyutu birinde 8kb derleme sonucu oluyor birinde 10kb birinde 13kb.Neden böyle farklar oluşabilir?
Program içinde herhangi bir yerde tanımlanmış kullanılmayan değişkenler vs gibi durumları denetleyen toollar var mı?
Yazılan programın performansını vs denetleyebilecek program var mı (Performanstan kastım, çalışır haldeki değil.Düzgün kodlanmış mı, gereksiz değişken var mı, hataya mahal verebilecek yerler var mı vs)?
Abi o çok önemli değil.Silinecek zaten.Örnek programdan almıştım.Uyarı için teşekkürler.Peki diğer sorular için cevaplarınız var mı?Özellikle debug ile ilgili olan ve map dosyası ile ilgili olana?
@gerbayAbi teşekkürler.Hafıza sorunu yaşıyorum yine.1. seviye optimizasyon açınca spi vs olması gerektiği gibi çalışmıyor ve iletişim kurmaya çalıştığım modül ile haberleşemiyorum.Spi data registere falan veriler farklı sırayla giriyor.Debugda öyle görüyorum en azından.Neleri optimize ettiğini nasıl bilebiliriz derleyicinin ve neden donanım registerlerine kadar müdahale eder ki optimizasyon?
Hafızada yer açabilmek adına diyorum ki, map dosyasından hangi değişken, fonksiyon ne kadar yer kaplıyor göreyim, ona göre müdahele edeyim.Nasıl yapacağımı bilemiyorum ama.Map dosyasını okumayı tam olarak bilmiyorum. Aşağıda projenin map dosyası mevcut.Yol gösterebilir misiniz?
NOT: 1. seviye optimize edilmiş hali bu.
[code]
Component: ARM Compiler 5.06 update 1 (build 61) Tool: armlink [4d35a8]
==============================================================================
Image Symbol Table
Local Symbols
Symbol Name Value Ov Type Size Object(Section)
../../../edgfe/lib_src/arm_exceptions.c 0x00000000 Number 0 arm_exceptions_support.o ABSOLUTE
../../../edgfe/lib_src/arm_exceptions.c 0x00000000 Number 0 arm_exceptions_mem.o ABSOLUTE
../../../edgfe/lib_src/arm_exceptions.c 0x00000000 Number 0 arm_exceptions_callterm.o ABSOLUTE
../../../edgfe/lib_src/arm_exceptions.c 0x00000000 Number 0 arm_exceptions_globs.o ABSOLUTE
../../../edgfe/lib_src/arm_exceptions.c 0x00000000 Number 0 arm_exceptions_terminate.o ABSOLUTE
../../../edgfe/lib_src/arm_noexceptions.c 0x00000000 Number 0 arm_begincatch_noexceptions.o ABSOLUTE
../../../edgfe/lib_src/pure_virt.c 0x00000000 Number 0 pure_virt.o ABSOLUTE
../../../edgfe/lib_src/typeinfo.c 0x00000000 Number 0 lib_rtti_impl.o ABSOLUTE
../../../edgfe/lib_src/typeinfo.c 0x00000000 Number 0 type_info_dtor.o ABSOLUTE
../clib/../cmprslib/zerorunl2.c 0x00000000 Number 0 __dczerorl2.o ABSOLUTE
../clib/angel/boardlib.s 0x00000000 Number 0 boardinit1.o ABSOLUTE
../clib/angel/boardlib.s 0x00000000 Number 0 boardinit3.o ABSOLUTE
../clib/angel/boardlib.s 0x00000000 Number 0 boardshut.o ABSOLUTE
../clib/angel/boardlib.s 0x00000000 Number 0 boardinit2.o ABSOLUTE
../clib/angel/handlers.s 0x00000000 Number 0 __scatter_zi.o ABSOLUTE
../clib/angel/kernel.s 0x00000000 Number 0 __rtentry.o ABSOLUTE
../clib/angel/kernel.s 0x00000000 Number 0 rtexit.o ABSOLUTE
../clib/angel/kernel.s 0x00000000 Number 0 rtexit2.o ABSOLUTE
../clib/angel/kernel.s 0x00000000 Number 0 __rtentry2.o ABSOLUTE
../clib/angel/kernel.s 0x00000000 Number 0 __rtentry4.o ABSOLUTE
../clib/angel/rt.s 0x00000000 Number 0 rt_heap_descriptor_intlibspace.o ABSOLUTE
../clib/angel/rt.s 0x00000000 Number 0 rt_eh_globals_addr.o ABSOLUTE
../clib/angel/rt.s 0x00000000 Number 0 rt_div0.o ABSOLUTE
../clib/angel/rt.s 0x00000000 Number 0 rt_raise.o ABSOLUTE
../clib/angel/rt.s 0x00000000 Number 0 aeabi_idiv0.o ABSOLUTE
../clib/angel/rt.s 0x00000000 Number 0 aeabi_idiv0_sigfpe.o ABSOLUTE
../clib/angel/rt.s 0x00000000 Number 0 rt_eh_globals_addr_intlibspace.o ABSOLUTE
../clib/angel/rt.s 0x00000000 Number 0 rt_heap_descriptor.o ABSOLUTE
../clib/angel/scatterp.s 0x00000000 Number 0 __scatter.o ABSOLUTE
../clib/angel/startup.s 0x00000000 Number 0 __main.o ABSOLUTE
../clib/angel/sys.s 0x00000000 Number 0 tempstk.o ABSOLUTE
../clib/angel/sys.s 0x00000000 Number 0 libspace.o ABSOLUTE
../clib/angel/sys.s 0x00000000 Number 0 use_no_semi.o ABSOLUTE
../clib/angel/sys.s 0x00000000 Number 0 mutex_dummy.o ABSOLUTE
../clib/angel/sys.s 0x00000000 Number 0 indicate_semi.o ABSOLUTE
../clib/angel/sys.s 0x00000000 Number 0 sys_stackheap_outer.o ABSOLUTE
../clib/angel/sysapp.c 0x00000000 Number 0 sys_wrch.o ABSOLUTE
../clib/angel/sysapp.c 0x00000000 Number 0 sys_command.o ABSOLUTE
../clib/angel/sysapp.c 0x00000000 Number 0 sys_exit.o ABSOLUTE
../clib/arm_runtime.c 0x00000000 Number 0 init_aeabi.o ABSOLUTE
../clib/arm_runtime.c 0x00000000 Number 0 init_aeabi.o ABSOLUTE
../clib/armsys.c 0x00000000 Number 0 no_argv.o ABSOLUTE
../clib/armsys.c 0x00000000 Number 0 _get_argv_nomalloc.o ABSOLUTE
../clib/armsys.c 0x00000000 Number 0 _get_argv.o ABSOLUTE
../clib/armsys.c 0x00000000 Number 0 argv_veneer.o ABSOLUTE
../clib/division.s 0x00000000 Number 0 aeabi_sdiv_div0.o ABSOLUTE
../clib/division.s 0x00000000 Number 0 aeabi_sdiv.o ABSOLUTE
../clib/heap1.c 0x00000000 Number 0 h1_extend_mt.o ABSOLUTE
../clib/heap1.c 0x00000000 Number 0 h1_extend.o ABSOLUTE
../clib/heap1.c 0x00000000 Number 0 h1_alloc.o ABSOLUTE
../clib/heap1.c 0x00000000 Number 0 h1_free_mt.o ABSOLUTE
../clib/heap1.c 0x00000000 Number 0 h1_init_mt.o ABSOLUTE
../clib/heap1.c 0x00000000 Number 0 h1_free.o ABSOLUTE
../clib/heap1.c 0x00000000 Number 0 h1_init.o ABSOLUTE
../clib/heap1.c 0x00000000 Number 0 h1_final.o ABSOLUTE
../clib/heap1.c 0x00000000 Number 0 h1_final_mt.o ABSOLUTE
../clib/heap1.c 0x00000000 Number 0 h1_alloc_mt.o ABSOLUTE
../clib/heap2.c 0x00000000 Number 0 fdtree.o ABSOLUTE
../clib/heap2.c 0x00000000 Number 0 heap2mt.o ABSOLUTE
../clib/heap2.c 0x00000000 Number 0 heap2.o ABSOLUTE
../clib/heapalloc.c 0x00000000 Number 0 term_alloc.o ABSOLUTE
../clib/heapalloc.c 0x00000000 Number 0 init_alloc.o ABSOLUTE
../clib/heapalloc.c 0x00000000 Number 0 maybetermalloc2.o ABSOLUTE
../clib/heapalloc.c 0x00000000 Number 0 maybetermalloc2.o ABSOLUTE
../clib/heapalloc.c 0x00000000 Number 0 maybetermalloc1.o ABSOLUTE
../clib/heapalloc.c 0x00000000 Number 0 maybetermalloc1.o ABSOLUTE
../clib/heapalloc.c 0x00000000 Number 0 heapstubs.o ABSOLUTE
../clib/heapalloc.c 0x00000000 Number 0 free.o ABSOLUTE
../clib/heapalloc.c 0x00000000 Number 0 hrguard.o ABSOLUTE
../clib/heapalloc.c 0x00000000 Number 0 malloc.o ABSOLUTE
../clib/heapalloc.c 0x00000000 Number 0 hguard.o ABSOLUTE
../clib/heapaux.c 0x00000000 Number 0 heapauxa.o ABSOLUTE
../clib/heapaux.c 0x00000000 Number 0 heapauxi.o ABSOLUTE
../clib/libinit.s 0x00000000 Number 0 libshutdown.o ABSOLUTE
../clib/libinit.s 0x00000000 Number 0 libinit.o ABSOLUTE
../clib/libinit.s 0x00000000 Number 0 libinit2.o ABSOLUTE
../clib/libinit.s 0x00000000 Number 0 libshutdown2.o ABSOLUTE
../clib/memcpset.c 0x00000000 Number 0 rt_memcpy.o ABSOLUTE
../clib/memcpset.c 0x00000000 Number 0 rt_memcpy.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_rtmem_inner.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_rtred_inner.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_abrt_inner.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_exit.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 __raise.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_stak_inner.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_segv_inner.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_other.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_general.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_abrt_outer.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_abrt_formal.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_fpe_formal.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_fpe_outer.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_rtmem_formal.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_rtmem_outer.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_fpe_inner.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_cppl_inner.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_pvfn_formal.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_pvfn_outer.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_pvfn_inner.o ABSOLUTE
../clib/signal.s 0x00000000 Number 0 defsig.o ABSOLUTE
../clib/stdlib.c 0x00000000 Number 0 exit.o ABSOLUTE
../clib/stdlib.c 0x00000000 Number 0 rand.o ABSOLUTE
../clib/stdlib.c 0x00000000 Number 0 rand.o ABSOLUTE
../clib/stdlib.c 0x00000000 Number 0 abort.o ABSOLUTE
../fplib/cfplib/d2f.c 0x00000000 Number 0 d2f.o ABSOLUTE
../fplib/cfplib/ddiv.c 0x00000000 Number 0 ddiv.o ABSOLUTE
../fplib/cfplib/dmul.c 0x00000000 Number 0 dmul.o ABSOLUTE
../fplib/cfplib/f2d.c 0x00000000 Number 0 f2d.o ABSOLUTE
../fplib/cfplib/ffix.c 0x00000000 Number 0 dfixui.o ABSOLUTE
../fplib/cfplib/ffix.c 0x00000000 Number 0 ffixui.o ABSOLUTE
../fplib/cfplib/fpinit.c 0x00000000 Number 0 fpinit.o ABSOLUTE
../fplib/cfplib/scalbn.c 0x00000000 Number 0 fscalbn.o ABSOLUTE
../fplib/faddsub6m.s 0x00000000 Number 0 faddsub.o ABSOLUTE
../fplib/fmul6m.s 0x00000000 Number 0 fmul.o ABSOLUTE
../fplib/usenofp.s 0x00000000 Number 0 usenofp.o ABSOLUTE
../mathlib/floorf.c 0x00000000 Number 0 floorf.o ABSOLUTE
..\Libraries\CMSIS\ST\STM32F0xx\Source\Templates\arm\startup_stm32f0xx.s 0x00000000 Number 0 startup_stm32f0xx.o ABSOLUTE
..\Libraries\STM32F0xx_StdPeriph_Driver\src\stm32f0xx_exti.c 0x00000000 Number 0 stm32f0xx_exti.o ABSOLUTE
..\Libraries\STM32F0xx_StdPeriph_Driver\src\stm32f0xx_gpio.c 0x00000000 Number 0 stm32f0xx_gpio.o ABSOLUTE
..\Libraries\STM32F0xx_StdPeriph_Driver\src\stm32f0xx_misc.c 0x00000000 Number 0 stm32f0xx_misc.o ABSOLUTE
..\Libraries\STM32F0xx_StdPeriph_Driver\src\stm32f0xx_rcc.c 0x00000000 Number 0 stm32f0xx_rcc.o ABSOLUTE
..\Libraries\STM32F0xx_StdPeriph_Driver\src\stm32f0xx_spi.c 0x00000000 Number 0 stm32f0xx_spi.o ABSOLUTE
..\Libraries\STM32F0xx_StdPeriph_Driver\src\stm32f0xx_syscfg.c 0x00000000 Number 0 stm32f0xx_syscfg.o ABSOLUTE
..\Libraries\STM32F0xx_StdPeriph_Driver\src\stm32f0xx_tim.c 0x00000000 Number 0 stm32f0xx_tim.o ABSOLUTE
..\Libraries\STM32F0xx_StdPeriph_Driver\src\stm32f0xx_usart.c 0x00000000 Number 0 stm32f0xx_usart.o ABSOLUTE
..\User\src\Delay.c 0x00000000 Number 0 delay.o ABSOLUTE
..\User\src\RadioHead\RHDatagram.cpp 0x00000000 Number 0 rhdatagram.o ABSOLUTE
..\User\src\RadioHead\RHGenericDriver.cpp 0x00000000 Number 0 rhgenericdriver.o ABSOLUTE
..\User\src\RadioHead\RHGenericSPI.cpp 0x00000000 Number 0 rhgenericspi.o ABSOLUTE
..\User\src\RadioHead\RHHardwareSPI.cpp 0x00000000 Number 0 rhhardwarespi.o ABSOLUTE
..\User\src\RadioHead\RHMesh.cpp 0x00000000 Number 0 rhmesh.o ABSOLUTE
..\User\src\RadioHead\RHReliableDatagram.cpp 0x00000000 Number 0 rhreliabledatagram.o ABSOLUTE
..\User\src\RadioHead\RHRouter.cpp 0x00000000 Number 0 rhrouter.o ABSOLUTE
..\User\src\RadioHead\RHSPIDriver.cpp 0x00000000 Number 0 rhspidriver.o ABSOLUTE
..\User\src\RadioHead\RH_RF22.cpp 0x00000000 Number 0 rh_rf22.o ABSOLUTE
..\User\src\RadioHead\STM32ArduinoCompat\HardwareSPI.cpp 0x00000000 Number 0 hardwarespi.o ABSOLUTE
..\User\src\RadioHead\STM32ArduinoCompat\wirish.cpp 0x00000000 Number 0 wirish.o ABSOLUTE
..\User\src\SensorNetwork.c 0x00000000 Number 0 sensornetwork.o ABSOLUTE
..\User\src\Uart.c 0x00000000 Number 0 uart.o ABSOLUTE
..\User\src\main.cpp 0x00000000 Number 0 main.o ABSOLUTE
..\User\src\stm32f0xx_it.c 0x00000000 Number 0 stm32f0xx_it.o ABSOLUTE
..\User\src\system_stm32f0xx.c 0x00000000 Number 0 system_stm32f0xx.o ABSOLUTE
..\\Libraries\\STM32F0xx_StdPeriph_Driver\\src\\stm32f0xx_exti.c 0x00000000 Number 0 stm32f0xx_exti.o ABSOLUTE
..\\Libraries\\STM32F0xx_StdPeriph_Driver\\src\\stm32f0xx_gpio.c 0x00000000 Number 0 stm32f0xx_gpio.o ABSOLUTE
..\\Libraries\\STM32F0xx_StdPeriph_Driver\\src\\stm32f0xx_misc.c 0x00000000 Number 0 stm32f0xx_misc.o ABSOLUTE
..\\Libraries\\STM32F0xx_StdPeriph_Driver\\src\\stm32f0xx_rcc.c 0x00000000 Number 0 stm32f0xx_rcc.o ABSOLUTE
..\\Libraries\\STM32F0xx_StdPeriph_Driver\\src\\stm32f0xx_spi.c 0x00000000 Number 0 stm32f0xx_spi.o ABSOLUTE
..\\Libraries\\STM32F0xx_StdPeriph_Driver\\src\\stm32f0xx_syscfg.c 0x00000000 Number 0 stm32f0xx_syscfg.o ABSOLUTE
..\\Libraries\\STM32F0xx_StdPeriph_Driver\\src\\stm32f0xx_tim.c 0x00000000 Number 0 stm32f0xx_tim.o ABSOLUTE
..\\Libraries\\STM32F0xx_StdPeriph_Driver\\src\\stm32f0xx_usart.c 0x00000000 Number 0 stm32f0xx_usart.o ABSOLUTE
..\\User\\src\\Delay.c 0x00000000 Number 0 delay.o ABSOLUTE
..\\User\\src\\RadioHead\\RHDatagram.cpp 0x00000000 Number 0 rhdatagram.o ABSOLUTE
..\\User\\src\\RadioHead\\RHGenericDriver.cpp 0x00000000 Number 0 rhgenericdriver.o ABSOLUTE
..\\User\\src\\RadioHead\\RHGenericSPI.cpp 0x00000000 Number 0 rhgenericspi.o ABSOLUTE
..\\User\\src\\RadioHead\\RHHardwareSPI.cpp 0x00000000 Number 0 rhhardwarespi.o ABSOLUTE
..\\User\\src\\RadioHead\\RHMesh.cpp 0x00000000 Number 0 rhmesh.o ABSOLUTE
..\\User\\src\\RadioHead\\RHReliableDatagram.cpp 0x00000000 Number 0 rhreliabledatagram.o ABSOLUTE
..\\User\\src\\RadioHead\\RHRouter.cpp 0x00000000 Number 0 rhrouter.o ABSOLUTE
..\\User\\src\\RadioHead\\RHSPIDriver.cpp 0x00000000 Number 0 rhspidriver.o ABSOLUTE
..\\User\\src\\RadioHead\\RH_RF22.cpp 0x00000000 Number 0 rh_rf22.o ABSOLUTE
..\\User\\src\\RadioHead\\STM32ArduinoCompat\\HardwareSPI.cpp 0x00000000 Number 0 hardwarespi.o ABSOLUTE
..\\User\\src\\RadioHead\\STM32ArduinoCompat\\wirish.cpp 0x00000000 Number 0 wirish.o ABSOLUTE
..\\User\\src\\SensorNetwork.c 0x00000000 Number 0 sensornetwork.o ABSOLUTE
..\\User\\src\\Uart.c 0x00000000 Number 0 uart.o ABSOLUTE
..\\User\\src\\main.cpp 0x00000000 Number 0 main.o ABSOLUTE
..\\User\\src\\stm32f0xx_it.c 0x00000000 Number 0 stm32f0xx_it.o ABSOLUTE
..\\User\\src\\system_stm32f0xx.c 0x00000000 Number 0 system_stm32f0xx.o ABSOLUTE
dc.s 0x00000000 Number 0 dc.o ABSOLUTE
RESET 0x08000000 Section 192 startup_stm32f0xx.o(RESET)
!!!main 0x080000c0 Section 8 __main.o(!!!main)
!!!scatter 0x080000c8 Section 60 __scatter.o(!!!scatter)
!!handler_zi 0x08000104 Section 28 __scatter_zi.o(!!handler_zi)
.ARM.Collect$$libinit$$00000000 0x08000120 Section 2 libinit.o(.ARM.Collect$$libinit$$00000000)
.ARM.Collect$$libinit$$00000002 0x08000122 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000002)
.ARM.Collect$$libinit$$00000004 0x08000122 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000004)
.ARM.Collect$$libinit$$0000000A 0x08000122 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000000A)
.ARM.Collect$$libinit$$0000000C 0x08000122 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000000C)
.ARM.Collect$$libinit$$0000000D 0x08000122 Section 4 libinit2.o(.ARM.Collect$$libinit$$0000000D)
.ARM.Collect$$libinit$$0000000E 0x08000126 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000000E)
.ARM.Collect$$libinit$$00000011 0x08000126 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000011)
.ARM.Collect$$libinit$$00000013 0x08000126 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000013)
.ARM.Collect$$libinit$$00000015 0x08000126 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000015)
.ARM.Collect$$libinit$$00000017 0x08000126 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000017)
.ARM.Collect$$libinit$$00000019 0x08000126 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000019)
.ARM.Collect$$libinit$$0000001B 0x08000126 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000001B)
.ARM.Collect$$libinit$$0000001D 0x08000126 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000001D)
.ARM.Collect$$libinit$$0000001F 0x08000126 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000001F)
.ARM.Collect$$libinit$$00000021 0x08000126 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000021)
.ARM.Collect$$libinit$$00000023 0x08000126 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000023)
.ARM.Collect$$libinit$$00000025 0x08000126 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000025)
.ARM.Collect$$libinit$$0000002C 0x08000126 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000002C)
.ARM.Collect$$libinit$$0000002E 0x08000126 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000002E)
.ARM.Collect$$libinit$$00000030 0x08000126 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000030)
.ARM.Collect$$libinit$$00000031 0x08000126 Section 4 libinit2.o(.ARM.Collect$$libinit$$00000031)
.ARM.Collect$$libinit$$00000032 0x0800012a Section 0 libinit2.o(.ARM.Collect$$libinit$$00000032)
.ARM.Collect$$libinit$$00000033 0x0800012a Section 2 libinit2.o(.ARM.Collect$$libinit$$00000033)
.ARM.Collect$$libshutdown$$00000000 0x0800012c Section 2 libshutdown.o(.ARM.Collect$$libshutdown$$00000000)
.ARM.Collect$$libshutdown$$00000002 0x0800012e Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000002)
.ARM.Collect$$libshutdown$$00000004 0x0800012e Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000004)
.ARM.Collect$$libshutdown$$00000007 0x0800012e Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000007)
.ARM.Collect$$libshutdown$$0000000A 0x0800012e Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$0000000A)
.ARM.Collect$$libshutdown$$0000000C 0x0800012e Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C)
.ARM.Collect$$libshutdown$$0000000F 0x0800012e Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$0000000F)
.ARM.Collect$$libshutdown$$00000010 0x0800012e Section 2 libshutdown2.o(.ARM.Collect$$libshutdown$$00000010)
.ARM.Collect$$rtentry$$00000000 0x08000130 Section 0 __rtentry.o(.ARM.Collect$$rtentry$$00000000)
.ARM.Collect$$rtentry$$00000002 0x08000130 Section 0 __rtentry2.o(.ARM.Collect$$rtentry$$00000002)
.ARM.Collect$$rtentry$$00000004 0x08000130 Section 6 __rtentry4.o(.ARM.Collect$$rtentry$$00000004)
.ARM.Collect$$rtentry$$00000009 0x08000136 Section 0 __rtentry2.o(.ARM.Collect$$rtentry$$00000009)
.ARM.Collect$$rtentry$$0000000A 0x08000136 Section 4 __rtentry2.o(.ARM.Collect$$rtentry$$0000000A)
.ARM.Collect$$rtentry$$0000000C 0x0800013a Section 0 __rtentry2.o(.ARM.Collect$$rtentry$$0000000C)
.ARM.Collect$$rtentry$$0000000D 0x0800013a Section 8 __rtentry2.o(.ARM.Collect$$rtentry$$0000000D)
.ARM.Collect$$rtexit$$00000000 0x08000142 Section 2 rtexit.o(.ARM.Collect$$rtexit$$00000000)
.ARM.Collect$$rtexit$$00000002 0x08000144 Section 0 rtexit2.o(.ARM.Collect$$rtexit$$00000002)
.ARM.Collect$$rtexit$$00000003 0x08000144 Section 4 rtexit2.o(.ARM.Collect$$rtexit$$00000003)
.ARM.Collect$$rtexit$$00000004 0x08000148 Section 6 rtexit2.o(.ARM.Collect$$rtexit$$00000004)
.emb_text 0x08000150 Section 56 rand.o(.emb_text)
.emb_text 0x08000188 Section 56 rt_memcpy.o(.emb_text)
.text 0x080001c0 Section 56 startup_stm32f0xx.o(.text)
.text 0x080001f8 Section 0 rand.o(.text)
.text 0x08000234 Section 0 rt_memcpy.o(.text)
.text 0x080002b6 Section 346 aeabi_sdiv.o(.text)
.text 0x08000410 Section 0 heapauxi.o(.text)
.text 0x08000418 Section 0 init_aeabi.o(.text)
.text 0x0800043c Section 0 d2f.o(.text)
.text 0x080004b8 Section 0 ddiv.o(.text)
.text 0x08000900 Section 0 dfixui.o(.text)
.text 0x08000948 Section 0 dmul.o(.text)
.text 0x08000b90 Section 0 f2d.o(.text)
.text 0x08000be4 Section 0 ffixui.o(.text)
.text 0x08000c14 Section 0 fscalbn.o(.text)
.text 0x08000c58 Section 0 defsig_pvfn_outer.o(.text)
.text 0x08000c64 Section 0 defsig_exit.o(.text)
.text 0x08000c70 Section 0 defsig_pvfn_inner.o(.text)
.text 0x08000ca0 Section 0 sys_exit.o(.text)
.text 0x08000cac Section 62 sys_stackheap_outer.o(.text)
.text 0x08000cea Section 0 exit.o(.text)
.text 0x08000cfa Section 0 defsig_general.o(.text)
.text 0x08000d2e Section 0 sys_wrch.o(.text)
.text 0x08000d3c Section 8 libspace.o(.text)
.text 0x08000d44 Section 2 use_no_semi.o(.text)
.text 0x08000d46 Section 0 indicate_semi.o(.text)
.text 0x08000d46 Section 0 __dczerorl2.o(.text)
i.Delay 0x08000d9c Section 0 delay.o(i.Delay)
i.EXTI0_1_IRQHandler 0x08000db0 Section 0 stm32f0xx_it.o(i.EXTI0_1_IRQHandler)
i.EXTI4_15_IRQHandler 0x08000dc4 Section 0 stm32f0xx_it.o(i.EXTI4_15_IRQHandler)
i.EXTI_ClearITPendingBit 0x08000df0 Section 0 stm32f0xx_exti.o(i.EXTI_ClearITPendingBit)
i.EXTI_GetITStatus 0x08000dfc Section 0 stm32f0xx_exti.o(i.EXTI_GetITStatus)
i.EXTI_Init 0x08000e18 Section 0 stm32f0xx_exti.o(i.EXTI_Init)
i.GPIO_Init 0x08000e84 Section 0 stm32f0xx_gpio.o(i.GPIO_Init)
i.GPIO_PinAFConfig 0x08000ef4 Section 0 stm32f0xx_gpio.o(i.GPIO_PinAFConfig)
i.GPIO_ResetBits 0x08000f14 Section 0 stm32f0xx_gpio.o(i.GPIO_ResetBits)
i.GPIO_SetBits 0x08000f18 Section 0 stm32f0xx_gpio.o(i.GPIO_SetBits)
i.GPIO_StructInit 0x08000f1c Section 0 stm32f0xx_gpio.o(i.GPIO_StructInit)
i.GPIO_WriteBit 0x08000f34 Section 0 stm32f0xx_gpio.o(i.GPIO_WriteBit)
i.HardFault_Handler 0x08000f40 Section 0 stm32f0xx_it.o(i.HardFault_Handler)
i.NMI_Handler 0x08000f42 Section 0 stm32f0xx_it.o(i.NMI_Handler)
i.NVIC_Init 0x08000f44 Section 0 stm32f0xx_misc.o(i.NVIC_Init)
i.PendSV_Handler 0x08000f94 Section 0 stm32f0xx_it.o(i.PendSV_Handler)
i.RCC_AHBPeriphClockCmd 0x08000f98 Section 0 stm32f0xx_rcc.o(i.RCC_AHBPeriphClockCmd)
i.RCC_APB1PeriphResetCmd 0x08000fb4 Section 0 stm32f0xx_rcc.o(i.RCC_APB1PeriphResetCmd)
i.RCC_APB2PeriphClockCmd 0x08000fd0 Section 0 stm32f0xx_rcc.o(i.RCC_APB2PeriphClockCmd)
i.RCC_APB2PeriphResetCmd 0x08000fec Section 0 stm32f0xx_rcc.o(i.RCC_APB2PeriphResetCmd)
i.RCC_GetClocksFreq 0x08001008 Section 0 stm32f0xx_rcc.o(i.RCC_GetClocksFreq)
i.SPI_Cmd 0x08001108 Section 0 stm32f0xx_spi.o(i.SPI_Cmd)
i.SPI_I2S_DeInit 0x08001120 Section 0 stm32f0xx_spi.o(i.SPI_I2S_DeInit)
i.SPI_I2S_GetFlagStatus 0x08001160 Section 0 stm32f0xx_spi.o(i.SPI_I2S_GetFlagStatus)
i.SPI_Init 0x08001170 Section 0 stm32f0xx_spi.o(i.SPI_Init)
i.SPI_ReceiveData8 0x080011c4 Section 0 stm32f0xx_spi.o(i.SPI_ReceiveData8)
i.SPI_SendData8 0x080011c8 Section 0 stm32f0xx_spi.o(i.SPI_SendData8)
i.SVC_Handler 0x080011cc Section 0 stm32f0xx_it.o(i.SVC_Handler)
i.SYSCFG_EXTILineConfig 0x080011d0 Section 0 stm32f0xx_syscfg.o(i.SYSCFG_EXTILineConfig)
i.SetSysClock 0x080011f8 Section 0 system_stm32f0xx.o(i.SetSysClock)
SetSysClock 0x080011f9 Thumb Code 18 system_stm32f0xx.o(i.SetSysClock)
i.SetUp_GPIO 0x08001214 Section 0 sensornetwork.o(i.SetUp_GPIO)
i.SetUp_UART 0x080012a4 Section 0 sensornetwork.o(i.SetUp_UART)
i.SysTick_Handler 0x08001318 Section 0 stm32f0xx_it.o(i.SysTick_Handler)
i.SystemCoreClockUpdate 0x08001328 Section 0 system_stm32f0xx.o(i.SystemCoreClockUpdate)
i.SystemInit 0x080013a4 Section 0 system_stm32f0xx.o(i.SystemInit)
i.TIM3_IRQHandler 0x08001404 Section 0 stm32f0xx_it.o(i.TIM3_IRQHandler)
i.TIM_ClearITPendingBit 0x08001420 Section 0 stm32f0xx_tim.o(i.TIM_ClearITPendingBit)
i.TIM_GetFlagStatus 0x08001426 Section 0 stm32f0xx_tim.o(i.TIM_GetFlagStatus)
i.UART_SendChar 0x08001434 Section 0 uart.o(i.UART_SendChar)
i.UART_SendHex32 0x08001460 Section 0 uart.o(i.UART_SendHex32)
i.UART_SendStr 0x080014a0 Section 0 uart.o(i.UART_SendStr)
i.USART_Cmd 0x080014b4 Section 0 stm32f0xx_usart.o(i.USART_Cmd)
i.USART_GetFlagStatus 0x080014cc Section 0 stm32f0xx_usart.o(i.USART_GetFlagStatus)
i.USART_Init 0x080014dc Section 0 stm32f0xx_usart.o(i.USART_Init)
i.USART_SendData 0x0800159c Section 0 stm32f0xx_usart.o(i.USART_SendData)
i._Z12digitalWritehh 0x080015a4 Section 0 wirish.o(i._Z12digitalWritehh)
i._Z15attachInterrupthPFvvEi 0x080015d0 Section 0 wirish.o(i._Z15attachInterrupthPFvvEi)
i._Z5delayj 0x08001650 Section 0 wirish.o(i._Z5delayj)
i._Z6millisv 0x08001668 Section 0 wirish.o(i._Z6millisv)
i._Z7pinModeh13WiringPinMode 0x08001674 Section 0 wirish.o(i._Z7pinModeh13WiringPinMode)
i._ZN10RHDatagram10headerFromEv 0x080016c0 Section 0 rhdatagram.o(i._ZN10RHDatagram10headerFromEv)
i._ZN10RHDatagram11headerFlagsEv 0x080016c8 Section 0 rhdatagram.o(i._ZN10RHDatagram11headerFlagsEv)
i._ZN10RHDatagram11setHeaderIdEh 0x080016d0 Section 0 rhdatagram.o(i._ZN10RHDatagram11setHeaderIdEh)
i._ZN10RHDatagram11setHeaderToEh 0x080016d8 Section 0 rhdatagram.o(i._ZN10RHDatagram11setHeaderToEh)
i._ZN10RHDatagram13setHeaderFromEh 0x080016e0 Section 0 rhdatagram.o(i._ZN10RHDatagram13setHeaderFromEh)
i._ZN10RHDatagram14setHeaderFlagsEhh 0x080016e8 Section 0 rhdatagram.o(i._ZN10RHDatagram14setHeaderFlagsEhh)
i._ZN10RHDatagram14setThisAddressEh 0x080016f0 Section 0 rhdatagram.o(i._ZN10RHDatagram14setThisAddressEh)
i._ZN10RHDatagram14waitPacketSentEv 0x0800170c Section 0 rhdatagram.o(i._ZN10RHDatagram14waitPacketSentEv)
i._ZN10RHDatagram20waitAvailableTimeoutEt 0x08001714 Section 0 rhdatagram.o(i._ZN10RHDatagram20waitAvailableTimeoutEt)
i._ZN10RHDatagram4initEv 0x0800171c Section 0 rhdatagram.o(i._ZN10RHDatagram4initEv)
i._ZN10RHDatagram6sendtoEPhhh 0x0800173a Section 0 rhdatagram.o(i._ZN10RHDatagram6sendtoEPhhh)
i._ZN10RHDatagram8headerIdEv 0x08001758 Section 0 rhdatagram.o(i._ZN10RHDatagram8headerIdEv)
i._ZN10RHDatagram8headerToEv 0x08001760 Section 0 rhdatagram.o(i._ZN10RHDatagram8headerToEv)
i._ZN10RHDatagram8recvfromEPhS0_S0_S0_S0_S0_ 0x08001768 Section 0 rhdatagram.o(i._ZN10RHDatagram8recvfromEPhS0_S0_S0_S0_S0_)
i._ZN10RHDatagram9availableEv 0x080017ba Section 0 rhdatagram.o(i._ZN10RHDatagram9availableEv)
i._ZN10RHDatagramC1ER15RHGenericDriverh 0x080017c2 Section 0 rhdatagram.o(i._ZN10RHDatagramC1ER15RHGenericDriverh)
i._ZN11HardwareSPI5beginE12SPIFrequencyjj 0x080017c8 Section 0 hardwarespi.o(i._ZN11HardwareSPI5beginE12SPIFrequencyjj)
i._ZN11HardwareSPI8transferEh 0x08001904 Section 0 hardwarespi.o(i._ZN11HardwareSPI8transferEh)
i._ZN11HardwareSPIC1Ej 0x08001938 Section 0 hardwarespi.o(i._ZN11HardwareSPIC1Ej)
i._ZN11RHSPIDriver12spiBurstReadEhPhh 0x0800193c Section 0 rhspidriver.o(i._ZN11RHSPIDriver12spiBurstReadEhPhh)
i._ZN11RHSPIDriver13spiBurstWriteEhPKhh 0x08001982 Section 0 rhspidriver.o(i._ZN11RHSPIDriver13spiBurstWriteEhPKhh)
i._ZN11RHSPIDriver4initEv 0x080019c8 Section 0 rhspidriver.o(i._ZN11RHSPIDriver4initEv)
i._ZN11RHSPIDriver7spiReadEh 0x080019f6 Section 0 rhspidriver.o(i._ZN11RHSPIDriver7spiReadEh)
i._ZN11RHSPIDriver8spiWriteEhh 0x08001a28 Section 0 rhspidriver.o(i._ZN11RHSPIDriver8spiWriteEhh)
i._ZN11RHSPIDriverC2EhR12RHGenericSPI 0x08001a60 Section 0 rhspidriver.o(i._ZN11RHSPIDriverC2EhR12RHGenericSPI)
i._ZN12RHGenericSPIC2ENS_9FrequencyENS_8BitOrderENS_8DataModeE 0x08001a78 Section 0 rhgenericspi.o(i._ZN12RHGenericSPIC2ENS_9FrequencyENS_8BitOrderENS_8DataModeE)
i._ZN13RHHardwareSPI5beginEv 0x08001a8c Section 0 rhhardwarespi.o(i._ZN13RHHardwareSPI5beginEv)
i._ZN13RHHardwareSPI8transferEh 0x08001af0 Section 0 rhhardwarespi.o(i._ZN13RHHardwareSPI8transferEh)
i._ZN13RHHardwareSPIC1EN12RHGenericSPI9FrequencyENS0_8BitOrderENS0_8DataModeE 0x08001b00 Section 0 rhhardwarespi.o(i._ZN13RHHardwareSPIC1EN12RHGenericSPI9FrequencyENS0_8BitOrderENS0_8DataModeE)
i._ZN14SerialUSBClass7printlnEPKc 0x08001b10 Section 0 main.o(i._ZN14SerialUSBClass7printlnEPKc)
i._ZN15RHGenericDriver10headerFromEv 0x08001b22 Section 0 rhgenericdriver.o(i._ZN15RHGenericDriver10headerFromEv)
i._ZN15RHGenericDriver11headerFlagsEv 0x08001b26 Section 0 rhgenericdriver.o(i._ZN15RHGenericDriver11headerFlagsEv)
i._ZN15RHGenericDriver11setHeaderIdEh 0x08001b2a Section 0 rhgenericdriver.o(i._ZN15RHGenericDriver11setHeaderIdEh)
i._ZN15RHGenericDriver11setHeaderToEh 0x08001b2e Section 0 rhgenericdriver.o(i._ZN15RHGenericDriver11setHeaderToEh)
i._ZN15RHGenericDriver13setHeaderFromEh 0x08001b32 Section 0 rhgenericdriver.o(i._ZN15RHGenericDriver13setHeaderFromEh
Error: L6218E: Undefined symbol UART_SendBuf(char*, unsigned short) (referred from main.o).
UART_SendBuf fonksiyonunun çağrılmasını engelle. Çağıran satırın başına // at.
Bir daha derle ne oluyor görelim.
Çipin tam adı ne?
Ramı ve romu çok az ise C de çok usta olman gerekir.
Ben bu mcu ile daha evvel basit bir iş yapmıştım.Normalde bu proje için 128k model kullanıyorum.Ama pcbde sorun çıkınca acilen bu çözüme yöneldim.Acil bi sunum için hazırlık yapıyorum.
Bu arada uart1 rx irq kullanmak istiyorum.Ancak düzgün sonuç alamıyorum.
void SetUp_UART(void){
GPIO_InitTypeDef GPIO_InitStruct;
NVIC_InitTypeDef NVIC_InitStructure;
USART_InitTypeDef USART_InitStruct;//usart structure
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_1);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource3, GPIO_AF_1);
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStruct);
USART_InitStruct.USART_BaudRate = 115200;
USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStruct.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_InitStruct.USART_Parity = USART_Parity_No;
USART_InitStruct.USART_StopBits = USART_StopBits_1;
USART_InitStruct.USART_WordLength = USART_WordLength_8b;
USART_Init(USART1, &USART_InitStruct);
USART_Cmd(USART1,ENABLE);
/* Enable the USART Interrupt */
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_InitStructure.NVIC_IRQChannelPriority = 1;
NVIC_Init(&NVIC_InitStructure);
}
Başka bir fonksiyon içinde de
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
şeklinde irq açıyorum.
Ancak bir kez irq oluşuyor.İrq içinde
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
{
}
içine bir türlü girmiyor.Bakıyorum rxirq flagı set olmuş.Ama getstatus fonksiyonuna gidip gelene kadar reset oluyor.Nasıl iş anlamadım.