<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=46&amp;t=17254&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-01-06T18:51:51+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=46&amp;t=17254&amp;mode</id>
<entry>
<author><name><![CDATA[Elektro_maniak]]></name></author>
<updated>2017-01-06T18:51:51+01:00</updated>
<published>2017-01-06T18:51:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17254&amp;p=179243#p179243</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17254&amp;p=179243#p179243"/>
<title type="html"><![CDATA[Re: STM32F103 UART przerwanie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17254&amp;p=179243#p179243"><![CDATA[
U mnie struktura katalogów wygląda tak: (korzystam z STM32F103RBT6)<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">LinkerScript.ld<br />inc<br />   cmsis_gcc.h<br />   core_cm3.h<br />   stm32f103xb.h<br />src<br />   main.c<br />startup<br />   startup_stm32.s<br />   sysmem.c<br />+foldery z moimi bibliotekami</div><br /><br />z tym, że w pliku core_cm3.h mam:<br /><br />[syntax=c]//#include &quot;core_cmInstr.h&quot;                /* Core Instruction Access */<br />//#include &quot;core_cmFunc.h&quot;                 /* Core Function Access */<br />#include &quot;cmsis_gcc.h&quot;[/syntax]<br /><br />ponadto w ustawieniach w C/C++ Build -&gt;Settings  w zakładce Dialect dodaję -std=gnu11, gdyż inaczej np. pętla<br />[syntax=c]for (uint8_t i=0; i&lt;10; i++)[/syntax]<br />nie kompiluję się, gdyż wymagana jest taka składnia:<br />[syntax=c]uint8_t i;<br />for (i=0; i&lt;10; i++)[/syntax]<br /><br />i dodaję projekt w zakładce Run Configurations...<br /><br />To jest już taki mój rytuał tworzenia nowego projektu <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />A co do generowania wektorów przerwań w SPL to z tego co kojarzę, to mi bezproblemowo wszystko wygenerował do pliku o nazwie startup_stm32f10x_md.S, ale robiłem to dość dawno więc mogło coś już ulec zmianie albo mi się już coś myli.<br /><br />Co do konfiguracji zegara, to mam własną funkcję, dlatego wywaliłem SystemInit.<br /><br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2202">Elektro_maniak</a> — 6 sty 2017, o 18:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mrmiikeee]]></name></author>
<updated>2017-01-06T17:57:16+01:00</updated>
<published>2017-01-06T17:57:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17254&amp;p=179237#p179237</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17254&amp;p=179237#p179237"/>
<title type="html"><![CDATA[Re: STM32F103 UART przerwanie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17254&amp;p=179237#p179237"><![CDATA[
Dokładne, STM32 Workbench, Ale Powiem Ci, że również tworzyłem nowe projekty a z wykorzystaniem SPL i startup byl taki sam.<br /><br />W zasadzie, to postepuje tak,że tworze dwa projekty jeden z bibliotekami SPL a drugi bez.<br />I do tego drugiego projektu na którym zamierzam pracować kopiuje sobie pliki:<br />stm32f0x.h<br />core_cm3.c<br />core_cm3.h<br />Nie wiem czy to jest dobre podejście ale wszystko to jakoś smiga, dodatkowo dorzucam sobie jeszcze pliki system_stm32f10x.h oraz system_stm32f10x.h w , których ustawiam sobie w prosty sposób czestotliwośc procesora z jaką chcę pracować.<br />Ale jeśli właśnie chodzi o plik startup to czy tworzę projekt z SPL czy pusty to mi on generuje się on tak samo biedny.<br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12486">mrmiikeee</a> — 6 sty 2017, o 17:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Elektro_maniak]]></name></author>
<updated>2017-01-06T14:10:07+01:00</updated>
<published>2017-01-06T14:10:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17254&amp;p=179226#p179226</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17254&amp;p=179226#p179226"/>
<title type="html"><![CDATA[Re: STM32F103 UART przerwanie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17254&amp;p=179226#p179226"><![CDATA[
Nie ma za co <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Swego czasu jak zaczynałem swoją naukę STM-ów (też korzystając z tego samego poradnika) miałem ten sam problem. Zakładam, że kolega również używa System Workbench for STM32 ac6 tools? Co ciekawe, gdy wygenerujemy nowy projekt ale korzystając z bibliotek SPL to wektory przerwań wygenerują się poprawnie. Jest to właśnie oryginalny plik z projektu z wykorzystaniem SPL. Przy programowaniu na samych rejestrach, niestety mamy same 0.<br /><br />Jedyna moja modyfikacja to zakomentowanie linii <br />[syntax=c]//    bl  SystemInit[/syntax]<br /> z tego co pamiętam, to ta funkcja zawiera konfigurację zegara. Zamieniłem ją na swój własny odpowiednik, w którym rozpędzam zegar do moich własnych potrzeb i wywoływana jest jako pierwsza w funkcji main.<br /><br />Obydwa pliki różnią się jeszcze kilkoma innymi rzeczami oprócz wektorów przerwań, niestety specjalistą nie jestem i nie powiem jakie one mają wpływ na całokształt. <br /><br />Pozdrawiam <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2202">Elektro_maniak</a> — 6 sty 2017, o 14:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mrmiikeee]]></name></author>
<updated>2017-01-06T13:49:38+01:00</updated>
<published>2017-01-06T13:49:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17254&amp;p=179225#p179225</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17254&amp;p=179225#p179225"/>
<title type="html"><![CDATA[Re: STM32F103 UART przerwanie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17254&amp;p=179225#p179225"><![CDATA[
No i wszystko  śmiga, dziękuje Ci bardzo,<br />Nie rozumiem czemu tylko kompilator nie wygenerował, moim zdaniem tak podstawowych wektorów przerwań jak to Uarta.<br />Ale jeszcze wiele przede mną do zrozumienia, dziękuje jeszcze raz<br />Pozrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12486">mrmiikeee</a> — 6 sty 2017, o 13:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Elektro_maniak]]></name></author>
<updated>2017-01-06T13:08:03+01:00</updated>
<published>2017-01-06T13:08:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17254&amp;p=179221#p179221</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17254&amp;p=179221#p179221"/>
<title type="html"><![CDATA[Re: STM32F103 UART przerwanie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17254&amp;p=179221#p179221"><![CDATA[
Niech kolega spróbuje zamienić zawartość na taką:<br /><br />[syntax=c]/**<br />  ******************************************************************************<br />  * @file      startup_stm32f10x_md.s<br />  * @author    MCD Application Team<br />  * @version   V3.6.3<br />  * @date      10-April-2014<br />  * @brief     STM32F10x Medium Density Devices vector table for System Workbench for STM32.<br />  *            This module performs:<br />  *                - Set the initial SP<br />  *                - Set the initial PC == Reset_Handler,<br />  *                - Set the vector table entries with the exceptions ISR address<br />  *                - Configure the clock system<br />  *                - Branches to main in the C library (which eventually<br />  *                  calls main()).<br />  *            After Reset the Cortex-M3 processor is in Thread mode,<br />  *            priority is Privileged, and the Stack is set to Main.<br />  ******************************************************************************<br />  * @attention<br />  *<br />  * &lt;h2&gt;&lt;center&gt;&amp;copy; COPYRIGHT 2014 STMicroelectronics&lt;/center&gt;&lt;/h2&gt;<br />  *<br />  * Licensed under MCD-ST Liberty SW License Agreement V2, (the &quot;License&quot;);<br />  * You may not use this file except in compliance with the License.<br />  * You may obtain a copy of the License at:<br />  *<br />  *        http://www.st.com/software_license_agreement_liberty_v2<br />  *<br />  * Unless required by applicable law or agreed to in writing, software <br />  * distributed under the License is distributed on an &quot;AS IS&quot; BASIS, <br />  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<br />  * See the License for the specific language governing permissions and<br />  * limitations under the License.<br />  *<br />  ******************************************************************************<br />  */<br /><br />  .syntax unified<br />.cpu cortex-m3<br />.fpu softvfp<br />.thumb<br /><br />.globalg_pfnVectors<br />.globalDefault_Handler<br /><br />/* start address for the initialization values of the .data section.<br />defined in linker script */<br />.word_sidata<br />/* start address for the .data section. defined in linker script */<br />.word_sdata<br />/* end address for the .data section. defined in linker script */<br />.word_edata<br />/* start address for the .bss section. defined in linker script */<br />.word_sbss<br />/* end address for the .bss section. defined in linker script */<br />.word_ebss<br /><br />.equ  BootRAM, 0xF108F85F<br />/**<br /> * @brief  This is the code that gets called when the processor first<br /> *          starts execution following a reset event. Only the absolutely<br /> *          necessary set is performed, after which the application<br /> *          supplied main() routine is called.<br /> * @param  None<br /> * @retval : None<br />*/<br /><br />    .section.text.Reset_Handler<br />.weakReset_Handler<br />.typeReset_Handler, %function<br />Reset_Handler:<br /><br />/* Copy the data segment initializers from flash to SRAM */<br />  movsr1, #0<br />  bLoopCopyDataInit<br /><br />CopyDataInit:<br />ldrr3, =_sidata<br />ldrr3, &#91;r3, r1&#93;<br />strr3, &#91;r0, r1&#93;<br />addsr1, r1, #4<br /><br />LoopCopyDataInit:<br />ldrr0, =_sdata<br />ldrr3, =_edata<br />addsr2, r0, r1<br />cmpr2, r3<br />bccCopyDataInit<br />ldrr2, =_sbss<br />bLoopFillZerobss<br />/* Zero fill the bss segment. */<br />FillZerobss:<br />movsr3, #0<br />strr3, &#91;r2&#93;, #4<br /><br />LoopFillZerobss:<br />ldrr3, = _ebss<br />cmpr2, r3<br />bccFillZerobss<br /><br />/* Call the clock system intitialization function.*/<br />//    bl  SystemInit<br />/* Call static constructors */<br />    bl __libc_init_array<br />/* Call the application's entry point.*/<br />blmain<br />bxlr<br />.sizeReset_Handler, .-Reset_Handler<br /><br />/**<br /> * @brief  This is the code that gets called when the processor receives an<br /> *         unexpected interrupt.  This simply enters an infinite loop, preserving<br /> *         the system state for examination by a debugger.<br /> *<br /> * @param  None<br /> * @retval : None<br />*/<br />    .section.text.Default_Handler,&quot;ax&quot;,%progbits<br />Default_Handler:<br />Infinite_Loop:<br />bInfinite_Loop<br />.sizeDefault_Handler, .-Default_Handler<br />/******************************************************************************<br />*<br />* The minimal vector table for a Cortex M3.  Note that the proper constructs<br />* must be placed on this to ensure that it ends up at physical address<br />* 0x0000.0000.<br />*<br />******************************************************************************/<br /> .section.isr_vector,&quot;a&quot;,%progbits<br />.typeg_pfnVectors, %object<br />.sizeg_pfnVectors, .-g_pfnVectors<br /><br /><br />g_pfnVectors:<br />.word_estack<br />.wordReset_Handler<br />.wordNMI_Handler<br />.wordHardFault_Handler<br />.wordMemManage_Handler<br />.wordBusFault_Handler<br />.wordUsageFault_Handler<br />.word0<br />.word0<br />.word0<br />.word0<br />.wordSVC_Handler<br />.wordDebugMon_Handler<br />.word0<br />.wordPendSV_Handler<br />.wordSysTick_Handler<br />.wordWWDG_IRQHandler<br />.wordPVD_IRQHandler<br />.wordTAMPER_IRQHandler<br />.wordRTC_IRQHandler<br />.wordFLASH_IRQHandler<br />.wordRCC_IRQHandler<br />.wordEXTI0_IRQHandler<br />.wordEXTI1_IRQHandler<br />.wordEXTI2_IRQHandler<br />.wordEXTI3_IRQHandler<br />.wordEXTI4_IRQHandler<br />.wordDMA1_Channel1_IRQHandler<br />.wordDMA1_Channel2_IRQHandler<br />.wordDMA1_Channel3_IRQHandler<br />.wordDMA1_Channel4_IRQHandler<br />.wordDMA1_Channel5_IRQHandler<br />.wordDMA1_Channel6_IRQHandler<br />.wordDMA1_Channel7_IRQHandler<br />.wordADC1_2_IRQHandler<br />.wordUSB_HP_CAN1_TX_IRQHandler<br />.wordUSB_LP_CAN1_RX0_IRQHandler<br />.wordCAN1_RX1_IRQHandler<br />.wordCAN1_SCE_IRQHandler<br />.wordEXTI9_5_IRQHandler<br />.wordTIM1_BRK_IRQHandler<br />.wordTIM1_UP_IRQHandler<br />.wordTIM1_TRG_COM_IRQHandler<br />.wordTIM1_CC_IRQHandler<br />.wordTIM2_IRQHandler<br />.wordTIM3_IRQHandler<br />.wordTIM4_IRQHandler<br />.wordI2C1_EV_IRQHandler<br />.wordI2C1_ER_IRQHandler<br />.wordI2C2_EV_IRQHandler<br />.wordI2C2_ER_IRQHandler<br />.wordSPI1_IRQHandler<br />.wordSPI2_IRQHandler<br />.wordUSART1_IRQHandler<br />.wordUSART2_IRQHandler<br />.wordUSART3_IRQHandler<br />.wordEXTI15_10_IRQHandler<br />.wordRTCAlarm_IRQHandler<br />.wordUSBWakeUp_IRQHandler<br />  .word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.wordBootRAM          /* @0x108. This is for boot in RAM mode for<br />                            STM32F10x Medium Density devices. */<br /><br />/*******************************************************************************<br />*<br />* Provide weak aliases for each Exception handler to the Default_Handler.<br />* As they are weak aliases, any function with the same name will override<br />* this definition.<br />*<br />*******************************************************************************/<br /><br />  .weakNMI_Handler<br />.thumb_set NMI_Handler,Default_Handler<br /><br />  .weakHardFault_Handler<br />.thumb_set HardFault_Handler,Default_Handler<br /><br />  .weakMemManage_Handler<br />.thumb_set MemManage_Handler,Default_Handler<br /><br />  .weakBusFault_Handler<br />.thumb_set BusFault_Handler,Default_Handler<br /><br />.weakUsageFault_Handler<br />.thumb_set UsageFault_Handler,Default_Handler<br /><br />.weakSVC_Handler<br />.thumb_set SVC_Handler,Default_Handler<br /><br />.weakDebugMon_Handler<br />.thumb_set DebugMon_Handler,Default_Handler<br /><br />.weakPendSV_Handler<br />.thumb_set PendSV_Handler,Default_Handler<br /><br />.weakSysTick_Handler<br />.thumb_set SysTick_Handler,Default_Handler<br /><br />.weakWWDG_IRQHandler<br />.thumb_set WWDG_IRQHandler,Default_Handler<br /><br />.weakPVD_IRQHandler<br />.thumb_set PVD_IRQHandler,Default_Handler<br /><br />.weakTAMPER_IRQHandler<br />.thumb_set TAMPER_IRQHandler,Default_Handler<br /><br />.weakRTC_IRQHandler<br />.thumb_set RTC_IRQHandler,Default_Handler<br /><br />.weakFLASH_IRQHandler<br />.thumb_set FLASH_IRQHandler,Default_Handler<br /><br />.weakRCC_IRQHandler<br />.thumb_set RCC_IRQHandler,Default_Handler<br /><br />.weakEXTI0_IRQHandler<br />.thumb_set EXTI0_IRQHandler,Default_Handler<br /><br />.weakEXTI1_IRQHandler<br />.thumb_set EXTI1_IRQHandler,Default_Handler<br /><br />.weakEXTI2_IRQHandler<br />.thumb_set EXTI2_IRQHandler,Default_Handler<br /><br />.weakEXTI3_IRQHandler<br />.thumb_set EXTI3_IRQHandler,Default_Handler<br /><br />.weakEXTI4_IRQHandler<br />.thumb_set EXTI4_IRQHandler,Default_Handler<br /><br />.weakDMA1_Channel1_IRQHandler<br />.thumb_set DMA1_Channel1_IRQHandler,Default_Handler<br /><br />.weakDMA1_Channel2_IRQHandler<br />.thumb_set DMA1_Channel2_IRQHandler,Default_Handler<br /><br />.weakDMA1_Channel3_IRQHandler<br />.thumb_set DMA1_Channel3_IRQHandler,Default_Handler<br /><br />.weakDMA1_Channel4_IRQHandler<br />.thumb_set DMA1_Channel4_IRQHandler,Default_Handler<br /><br />.weakDMA1_Channel5_IRQHandler<br />.thumb_set DMA1_Channel5_IRQHandler,Default_Handler<br /><br />.weakDMA1_Channel6_IRQHandler<br />.thumb_set DMA1_Channel6_IRQHandler,Default_Handler<br /><br />.weakDMA1_Channel7_IRQHandler<br />.thumb_set DMA1_Channel7_IRQHandler,Default_Handler<br /><br />.weakADC1_2_IRQHandler<br />.thumb_set ADC1_2_IRQHandler,Default_Handler<br /><br />.weakUSB_HP_CAN1_TX_IRQHandler<br />.thumb_set USB_HP_CAN1_TX_IRQHandler,Default_Handler<br /><br />.weakUSB_LP_CAN1_RX0_IRQHandler<br />.thumb_set USB_LP_CAN1_RX0_IRQHandler,Default_Handler<br /><br />.weakCAN1_RX1_IRQHandler<br />.thumb_set CAN1_RX1_IRQHandler,Default_Handler<br /><br />.weakCAN1_SCE_IRQHandler<br />.thumb_set CAN1_SCE_IRQHandler,Default_Handler<br /><br />.weakEXTI9_5_IRQHandler<br />.thumb_set EXTI9_5_IRQHandler,Default_Handler<br /><br />.weakTIM1_BRK_IRQHandler<br />.thumb_set TIM1_BRK_IRQHandler,Default_Handler<br /><br />.weakTIM1_UP_IRQHandler<br />.thumb_set TIM1_UP_IRQHandler,Default_Handler<br /><br />.weakTIM1_TRG_COM_IRQHandler<br />.thumb_set TIM1_TRG_COM_IRQHandler,Default_Handler<br /><br />.weakTIM1_CC_IRQHandler<br />.thumb_set TIM1_CC_IRQHandler,Default_Handler<br /><br />.weakTIM2_IRQHandler<br />.thumb_set TIM2_IRQHandler,Default_Handler<br /><br />.weakTIM3_IRQHandler<br />.thumb_set TIM3_IRQHandler,Default_Handler<br /><br />.weakTIM4_IRQHandler<br />.thumb_set TIM4_IRQHandler,Default_Handler<br /><br />.weakI2C1_EV_IRQHandler<br />.thumb_set I2C1_EV_IRQHandler,Default_Handler<br /><br />.weakI2C1_ER_IRQHandler<br />.thumb_set I2C1_ER_IRQHandler,Default_Handler<br /><br />.weakI2C2_EV_IRQHandler<br />.thumb_set I2C2_EV_IRQHandler,Default_Handler<br /><br />.weakI2C2_ER_IRQHandler<br />.thumb_set I2C2_ER_IRQHandler,Default_Handler<br /><br />.weakSPI1_IRQHandler<br />.thumb_set SPI1_IRQHandler,Default_Handler<br /><br />.weakSPI2_IRQHandler<br />.thumb_set SPI2_IRQHandler,Default_Handler<br /><br />.weakUSART1_IRQHandler<br />.thumb_set USART1_IRQHandler,Default_Handler<br /><br />.weakUSART2_IRQHandler<br />.thumb_set USART2_IRQHandler,Default_Handler<br /><br />.weakUSART3_IRQHandler<br />.thumb_set USART3_IRQHandler,Default_Handler<br /><br />.weakEXTI15_10_IRQHandler<br />.thumb_set EXTI15_10_IRQHandler,Default_Handler<br /><br />.weakRTCAlarm_IRQHandler<br />.thumb_set RTCAlarm_IRQHandler,Default_Handler<br /><br />.weakUSBWakeUp_IRQHandler<br />.thumb_set USBWakeUp_IRQHandler,Default_Handler<br /><br />/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2202">Elektro_maniak</a> — 6 sty 2017, o 13:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mrmiikeee]]></name></author>
<updated>2017-01-06T12:44:28+01:00</updated>
<published>2017-01-06T12:44:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17254&amp;p=179220#p179220</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17254&amp;p=179220#p179220"/>
<title type="html"><![CDATA[Re: STM32F103 UART przerwanie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17254&amp;p=179220#p179220"><![CDATA[
Proszę:<br /><br />[syntax=c]/**<br />  ******************************************************************************<br />  * @file      startup_stm32.s<br />  * @author    Ac6<br />  * @version   V1.0.0<br />  * @date      12-June-2014<br />  ******************************************************************************<br />  */<br /><br />  .syntax unified<br />  .cpu cortex-m3<br />  .thumb<br /><br />.globalg_pfnVectors<br />.globalDefault_Handler<br /><br />/* start address for the initialization values of the .data section.<br />defined in linker script */<br />.word_sidata<br />/* start address for the .data section. defined in linker script */<br />.word_sdata<br />/* end address for the .data section. defined in linker script */<br />.word_edata<br />/* start address for the .bss section. defined in linker script */<br />.word_sbss<br />/* end address for the .bss section. defined in linker script */<br />.word_ebss<br /><br />.equ  BootRAM,        0xF1E0F85F<br />/**<br /> * @brief  This is the code that gets called when the processor first<br /> *          starts execution following a reset event. Only the absolutely<br /> *          necessary set is performed, after which the application<br /> *          supplied main() routine is called.<br /> * @param  None<br /> * @retval : None<br />*/<br /><br />    .section.text.Reset_Handler<br />.weakReset_Handler<br />.typeReset_Handler, %function<br />Reset_Handler:<br /><br />/* Copy the data segment initializers from flash to SRAM */<br />  movsr1, #0<br />  bLoopCopyDataInit<br /><br />CopyDataInit:<br />ldrr3, =_sidata<br />ldrr3, &#91;r3, r1&#93;<br />strr3, &#91;r0, r1&#93;<br />addsr1, r1, #4<br /><br />LoopCopyDataInit:<br />ldrr0, =_sdata<br />ldrr3, =_edata<br />addsr2, r0, r1<br />cmpr2, r3<br />bccCopyDataInit<br />ldrr2, =_sbss<br />bLoopFillZerobss<br />/* Zero fill the bss segment. */<br />FillZerobss:<br />movs r3, #0<br /> str  r3, &#91;r2&#93;<br />adds r2, r2, #4<br /><br />LoopFillZerobss:<br />ldrr3, = _ebss<br />cmpr2, r3<br />bccFillZerobss<br /><br />/* Call the clock system intitialization function.*/<br />    bl  SystemInit<br />/* Call static constructors */<br />    bl __libc_init_array<br />/* Call the application's entry point.*/<br />blmain<br /><br />LoopForever:<br />    b LoopForever<br /><br />.sizeReset_Handler, .-Reset_Handler<br /><br />/**<br /> * @brief  This is the code that gets called when the processor receives an<br /> *         unexpected interrupt.  This simply enters an infinite loop, preserving<br /> *         the system state for examination by a debugger.<br /> *<br /> * @param  None<br /> * @retval : None<br />*/<br />    .section.text.Default_Handler,&quot;ax&quot;,%progbits<br />Default_Handler:<br />Infinite_Loop:<br />bInfinite_Loop<br />.sizeDefault_Handler, .-Default_Handler<br />/******************************************************************************<br />*<br />* The minimal vector table for a Cortex-M.  Note that the proper constructs<br />* must be placed on this to ensure that it ends up at physical address<br />* 0x0000.0000.<br />*<br />******************************************************************************/<br /> .section.isr_vector,&quot;a&quot;,%progbits<br />.typeg_pfnVectors, %object<br />.sizeg_pfnVectors, .-g_pfnVectors<br /><br />g_pfnVectors:<br />.word_estack<br />.wordReset_Handler<br />.wordNMI_Handler<br />.wordHardFault_Handler<br />.wordMemManage_Handler<br />.wordBusFault_Handler<br />.wordUsageFault_Handler<br />.word0<br />.word0<br />.word0<br />.word0<br />.wordSVC_Handler<br />.wordDebugMon_Handler<br />.word0<br />.wordPendSV_Handler<br />.wordSysTick_Handler<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br />.word0<br /><br />/*******************************************************************************<br />*<br />* Provide weak aliases for each Exception handler to the Default_Handler.<br />* As they are weak aliases, any function with the same name will override<br />* this definition.<br />*<br />*******************************************************************************/<br /><br />  .weakNMI_Handler<br />.thumb_set NMI_Handler,Default_Handler<br /><br />  .weakHardFault_Handler<br />.thumb_set HardFault_Handler,Default_Handler<br /><br />  .weakMemManage_Handler<br />.thumb_set MemManage_Handler,Default_Handler<br /><br />  .weakBusFault_Handler<br />.thumb_set BusFault_Handler,Default_Handler<br /><br />.weakUsageFault_Handler<br />.thumb_set UsageFault_Handler,Default_Handler<br /><br />.weakSVC_Handler<br />.thumb_set SVC_Handler,Default_Handler<br /><br />.weakDebugMon_Handler<br />.thumb_set DebugMon_Handler,Default_Handler<br /><br />.weakPendSV_Handler<br />.thumb_set PendSV_Handler,Default_Handler<br /><br />.weakSysTick_Handler<br />.thumb_set SysTick_Handler,Default_Handler<br /><br />.weakSystemInit<br /><br />/************************ (C) COPYRIGHT Ac6 *****END OF FILE****/[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12486">mrmiikeee</a> — 6 sty 2017, o 12:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Elektro_maniak]]></name></author>
<updated>2017-01-05T19:03:36+01:00</updated>
<published>2017-01-05T19:03:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17254&amp;p=179180#p179180</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17254&amp;p=179180#p179180"/>
<title type="html"><![CDATA[Re: STM32F103 UART przerwanie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17254&amp;p=179180#p179180"><![CDATA[
pokaż kolego zawartość pliku startup_stm32.s z folderu startup. Bardzo prawdopodobne, że nie masz zdefiniowanych wektorów przerwań.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2202">Elektro_maniak</a> — 5 sty 2017, o 19:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mrmiikeee]]></name></author>
<updated>2017-01-05T18:51:09+01:00</updated>
<published>2017-01-05T18:51:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17254&amp;p=179178#p179178</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17254&amp;p=179178#p179178"/>
<title type="html"><![CDATA[STM32F103 UART przerwanie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17254&amp;p=179178#p179178"><![CDATA[
Cześć<br /><br />Mam kłopot, wykonuję ćwiczenia według &quot;Poradnik STM32 v1_9&quot; z elektrody,Chodzi o cykl STM32 bez bibliotek SPL.<br />Problem jest kiedy staram się odebrać dane w przerwaniu, po wysłaniu jakiegoś znaku z terminala, procesor się zawiesza.<br />Natomiast jeśli wyłączę przerwania NVIC_EnableIRQ(USART1_IRQn); a  całą procedurę obsługi przerwania przeniosę do<br /> głównej pętli while to wszystko śmiga wyśmienicie.<br />Ktoś ma może jakieś sugestie?<br /><br />[syntax=c]#include &quot;stm32f10x.h&quot;<br /><br />int main(void)<br />{<br /> RCC-&gt;APB2ENR = RCC_APB2ENR_USART1EN | RCC_APB2ENR_IOPAEN | RCC_APB2ENR_IOPBEN;<br /><br /> gpio_pin_cfg(GPIOB, PB1, gpio_mode_output_PP_2MHz);<br /><br /> gpio_pin_cfg(GPIOA, PA9, gpio_mode_alternate_PP_2MHz);<br /> gpio_pin_cfg(GPIOA, PA10, gpio_mode_input_floating);<br /><br /> SysTick_Config(8000000/2);<br /><br /> USART1-&gt;BRR = 8000000/9600;<br /> USART1-&gt;CR1 = USART_CR1_UE | USART_CR1_RXNEIE | USART_CR1_TE | USART_CR1_RE;<br /><br /> NVIC_EnableIRQ(USART1_IRQn);<br /><br /><br />while(1)<br />  {<br />//__WFI();<br /><br />  }<br />}<br /><br />__attribute__((interrupt)) void USART1_IRQHandler(void)<br />{<br />if ( USART1-&gt;SR &amp; USART_SR_RXNE)<br />{<br />USART1-&gt;SR &amp;= ~USART_SR_RXNE;<br />uint16_t tmp;<br />tmp = USART1-&gt;DR;<br />USART1-&gt;DR = tmp+1;<br />}<br />}<br /><br />__attribute__((interrupt)) void SysTick_Handler(void){<br />GPIOB-&gt;ODR ^= PB1;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12486">mrmiikeee</a> — 5 sty 2017, o 18:51</p><hr />
]]></content>
</entry>
</feed>