<?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=30&amp;t=16210&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-09-14T17:32:56+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=30&amp;t=16210&amp;mode</id>
<entry>
<author><name><![CDATA[_damian]]></name></author>
<updated>2016-09-14T17:32:56+01:00</updated>
<published>2016-09-14T17:32:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16210&amp;p=168745#p168745</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16210&amp;p=168745#p168745"/>
<title type="html"><![CDATA[Re: STM32F4 - nazwy wektorów przerwań]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16210&amp;p=168745#p168745"><![CDATA[
Dzieki !<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9619">_damian</a> — 14 wrz 2016, o 17:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[QuadMan]]></name></author>
<updated>2016-09-14T17:20:07+01:00</updated>
<published>2016-09-14T17:20:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16210&amp;p=168743#p168743</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16210&amp;p=168743#p168743"/>
<title type="html"><![CDATA[Re: STM32F4 - nazwy wektorów przerwań]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16210&amp;p=168743#p168743"><![CDATA[
Witam,<br /><br />Zasada jest w sumie taka sama w większości ( jeśli nie we wszystkich) uC. To co masz w RM ta tablica skoków do wektorów obsługi poszczególnych przerwań. Ich nazwy w zasadzie mogą być dowolne, byle by się zgadzały z nazwami w tablicy skoków w pliku startup.s  Twojego uC. Masz w nim coś takiego:[syntax=asm]/******************************************************************************<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 />  .type  g_pfnVectors, %object<br />  .size  g_pfnVectors, .-g_pfnVectors<br />    <br />g_pfnVectors:<br />  .word  _estack<br />  .word  Reset_Handler<br />  .word  NMI_Handler<br />  .word  HardFault_Handler<br />  .word  MemManage_Handler<br />  .word  BusFault_Handler<br />  .word  UsageFault_Handler<br />  .word  0<br />  .word  0<br />  .word  0<br />  .word  0<br />  .word  SVC_Handler<br />  .word  DebugMon_Handler<br />  .word  0<br />  .word  PendSV_Handler<br />  .word  SysTick_Handler<br />  <br />  /* External Interrupts */<br />  .word     WWDG_IRQHandler                   /* Window WatchDog              */                                        <br />  .word     PVD_IRQHandler                    /* PVD through EXTI Line detection */                        <br />  .word     TAMP_STAMP_IRQHandler             /* Tamper and TimeStamps through the EXTI line */            <br />  .word     RTC_WKUP_IRQHandler               /* RTC Wakeup through the EXTI line */                      <br />  .word     FLASH_IRQHandler                  /* FLASH                        */                                          <br />  .word     RCC_IRQHandler                    /* RCC                          */                                            <br />  .word     EXTI0_IRQHandler                  /* EXTI Line0                   */                        <br />  .word     EXTI1_IRQHandler                  /* EXTI Line1                   */                          <br />  .word     EXTI2_IRQHandler                  /* EXTI Line2                   */                          <br />  .word     EXTI3_IRQHandler                  /* EXTI Line3                   */                          <br />  .word     EXTI4_IRQHandler                  /* EXTI Line4                   */                          <br />  .word     DMA1_Stream0_IRQHandler           /* DMA1 Stream 0                */                  <br />  .word     DMA1_Stream1_IRQHandler           /* DMA1 Stream 1                */                   <br />  .word     DMA1_Stream2_IRQHandler           /* DMA1 Stream 2                */                   <br />  .word     DMA1_Stream3_IRQHandler           /* DMA1 Stream 3                */                   <br />  .word     DMA1_Stream4_IRQHandler           /* DMA1 Stream 4                */                   <br />  .word     DMA1_Stream5_IRQHandler           /* DMA1 Stream 5                */                   <br />  .word     DMA1_Stream6_IRQHandler           /* DMA1 Stream 6                */                   <br />  .word     ADC_IRQHandler                    /* ADC1, ADC2 and ADC3s         */                   <br />  .word     0                 /* Reserved                      */                         <br />  .word     0                /* Reserved                     */                          <br />  .word     0                                 /* Reserved                     */                          <br />  .word     0                                 /* Reserved                     */                          <br />  .word     EXTI9_5_IRQHandler                /* External Line&#91;9:5&#93;s          */                          <br />  .word     TIM1_BRK_TIM9_IRQHandler          /* TIM1 Break and TIM9          */         <br />  .word     TIM1_UP_TIM10_IRQHandler          /* TIM1 Update and TIM10        */         <br />  .word     TIM1_TRG_COM_TIM11_IRQHandler     /* TIM1 Trigger and Commutation and TIM11 */<br />  .word     TIM1_CC_IRQHandler                /* TIM1 Capture Compare         */                          <br />  .word     TIM2_IRQHandler                   /* TIM2                         */                   <br />  .word     TIM3_IRQHandler                   /* TIM3                         */                   <br />  .word     TIM4_IRQHandler                   /* TIM4                         */                   <br />  .word     I2C1_EV_IRQHandler                /* I2C1 Event                   */                          <br />  .word     I2C1_ER_IRQHandler                /* I2C1 Error                   */                          <br />  .word     I2C2_EV_IRQHandler                /* I2C2 Event                   */                          <br />  .word     I2C2_ER_IRQHandler                /* I2C2 Error                   */                            <br />  .word     SPI1_IRQHandler                   /* SPI1                         */                   <br />  .word     SPI2_IRQHandler                   /* SPI2                         */                   <br />  .word     USART1_IRQHandler                 /* USART1                       */                   <br />  .word     USART2_IRQHandler                 /* USART2                       */                   <br />  .word     0                 /* Reserved                       */                   <br />  .word     EXTI15_10_IRQHandler              /* External Line&#91;15:10&#93;s        */                          <br />  .word     RTC_Alarm_IRQHandler              /* RTC Alarm (A and B) through EXTI Line */                 <br />  .word     OTG_FS_WKUP_IRQHandler            /* USB OTG FS Wakeup through EXTI line */                       <br />  .word     0                                 /* Reserved       */         <br />  .word     0                                 /* Reserved         */         <br />  .word     0                                 /* Reserved   */<br />  .word     0                                 /* Reserved                     */                          <br />  .word     DMA1_Stream7_IRQHandler           /* DMA1 Stream7                 */                          <br />  .word     0                                 /* Reserved                     */                   <br />  .word     SDIO_IRQHandler                   /* SDIO                         */                   <br />  .word     TIM5_IRQHandler                   /* TIM5                         */                   <br />  .word     SPI3_IRQHandler                   /* SPI3                         */                   <br />  .word     0                                 /* Reserved                     */                   <br />  .word     0                                 /* Reserved                     */                   <br />  .word     0                                 /* Reserved                     */                   <br />  .word     0                                 /* Reserved                     */<br />  .word     DMA2_Stream0_IRQHandler           /* DMA2 Stream 0                */                   <br />  .word     DMA2_Stream1_IRQHandler           /* DMA2 Stream 1                */                   <br />  .word     DMA2_Stream2_IRQHandler           /* DMA2 Stream 2                */                   <br />  .word     DMA2_Stream3_IRQHandler           /* DMA2 Stream 3                */                   <br />  .word     DMA2_Stream4_IRQHandler           /* DMA2 Stream 4                */                   <br />  .word     0                      /* Reserved                     */                   <br />  .word     0                /* Reserved                     */                     <br />  .word     0                /* Reserved                     */                          <br />  .word     0               /* Reserved                     */                          <br />  .word     0                /* Reserved                     */                          <br />  .word     0                /* Reserved                     */                          <br />  .word     OTG_FS_IRQHandler                 /* USB OTG FS                   */                   <br />  .word     DMA2_Stream5_IRQHandler           /* DMA2 Stream 5                */                   <br />  .word     DMA2_Stream6_IRQHandler           /* DMA2 Stream 6                */                   <br />  .word     DMA2_Stream7_IRQHandler           /* DMA2 Stream 7                */                   <br />  .word     USART6_IRQHandler                 /* USART6                       */                    <br />  .word     I2C3_EV_IRQHandler                /* I2C3 event                   */                          <br />  .word     I2C3_ER_IRQHandler                /* I2C3 error                   */                          <br />  .word     0                                 /* Reserved                     */                   <br />  .word     0                                 /* Reserved                     */                   <br />  .word     0                                 /* Reserved                     */                         <br />  .word     0                                 /* Reserved                     */                   <br />  .word     0                                 /* Reserved                     */                   <br />  .word     0                                 /* Reserved                     */                   <br />  .word     0                                 /* Reserved                     */<br />  .word     FPU_IRQHandler                    /* FPU                          */<br />  .word     0                                 /* Reserved                     */                   <br />  .word     0                                 /* Reserved                     */<br />  .word     SPI4_IRQHandler                   /* SPI4                         */<br />  .word     SPI5_IRQHandler                   /* SPI5                         */  <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 />   .weak      NMI_Handler<br />   .thumb_set NMI_Handler,Default_Handler<br />  <br />   .weak      HardFault_Handler<br />   .thumb_set HardFault_Handler,Default_Handler<br />  <br />   .weak      MemManage_Handler<br />   .thumb_set MemManage_Handler,Default_Handler<br />  <br />   .weak      BusFault_Handler<br />   .thumb_set BusFault_Handler,Default_Handler<br /><br />   .weak      UsageFault_Handler<br />   .thumb_set UsageFault_Handler,Default_Handler<br /><br />   .weak      SVC_Handler<br />   .thumb_set SVC_Handler,Default_Handler<br /><br />   .weak      DebugMon_Handler<br />   .thumb_set DebugMon_Handler,Default_Handler<br /><br />   .weak      PendSV_Handler<br />   .thumb_set PendSV_Handler,Default_Handler<br /><br />   .weak      SysTick_Handler<br />   .thumb_set SysTick_Handler,Default_Handler              <br />  <br />   .weak      WWDG_IRQHandler                   <br />   .thumb_set WWDG_IRQHandler,Default_Handler      <br />                  <br />   .weak      PVD_IRQHandler      <br />   .thumb_set PVD_IRQHandler,Default_Handler<br />               <br />   .weak      TAMP_STAMP_IRQHandler            <br />   .thumb_set TAMP_STAMP_IRQHandler,Default_Handler<br />            <br />   .weak      RTC_WKUP_IRQHandler                  <br />   .thumb_set RTC_WKUP_IRQHandler,Default_Handler<br />            <br />   .weak      FLASH_IRQHandler         <br />   .thumb_set FLASH_IRQHandler,Default_Handler<br />                  <br />   .weak      RCC_IRQHandler      <br />   .thumb_set RCC_IRQHandler,Default_Handler<br />                  <br />   .weak      EXTI0_IRQHandler         <br />   .thumb_set EXTI0_IRQHandler,Default_Handler<br />                  <br />   .weak      EXTI1_IRQHandler         <br />   .thumb_set EXTI1_IRQHandler,Default_Handler<br />                     <br />   .weak      EXTI2_IRQHandler         <br />   .thumb_set EXTI2_IRQHandler,Default_Handler <br />                 <br />   .weak      EXTI3_IRQHandler         <br />   .thumb_set EXTI3_IRQHandler,Default_Handler<br />                        <br />   .weak      EXTI4_IRQHandler         <br />   .thumb_set EXTI4_IRQHandler,Default_Handler<br />                  <br />   .weak      DMA1_Stream0_IRQHandler               <br />   .thumb_set DMA1_Stream0_IRQHandler,Default_Handler<br />         <br />   .weak      DMA1_Stream1_IRQHandler               <br />   .thumb_set DMA1_Stream1_IRQHandler,Default_Handler<br />                  <br />   .weak      DMA1_Stream2_IRQHandler               <br />   .thumb_set DMA1_Stream2_IRQHandler,Default_Handler<br />                  <br />   .weak      DMA1_Stream3_IRQHandler               <br />   .thumb_set DMA1_Stream3_IRQHandler,Default_Handler <br />                 <br />   .weak      DMA1_Stream4_IRQHandler              <br />   .thumb_set DMA1_Stream4_IRQHandler,Default_Handler<br />                  <br />   .weak      DMA1_Stream5_IRQHandler               <br />   .thumb_set DMA1_Stream5_IRQHandler,Default_Handler<br />                  <br />   .weak      DMA1_Stream6_IRQHandler               <br />   .thumb_set DMA1_Stream6_IRQHandler,Default_Handler<br />                  <br />   .weak      ADC_IRQHandler      <br />   .thumb_set ADC_IRQHandler,Default_Handler<br />            <br />   .weak      EXTI9_5_IRQHandler   <br />   .thumb_set EXTI9_5_IRQHandler,Default_Handler<br />            <br />   .weak      TIM1_BRK_TIM9_IRQHandler            <br />   .thumb_set TIM1_BRK_TIM9_IRQHandler,Default_Handler<br />            <br />   .weak      TIM1_UP_TIM10_IRQHandler            <br />   .thumb_set TIM1_UP_TIM10_IRQHandler,Default_Handler<br />      <br />   .weak      TIM1_TRG_COM_TIM11_IRQHandler      <br />   .thumb_set TIM1_TRG_COM_TIM11_IRQHandler,Default_Handler<br />      <br />   .weak      TIM1_CC_IRQHandler   <br />   .thumb_set TIM1_CC_IRQHandler,Default_Handler<br />                  <br />   .weak      TIM2_IRQHandler            <br />   .thumb_set TIM2_IRQHandler,Default_Handler<br />                  <br />   .weak      TIM3_IRQHandler            <br />   .thumb_set TIM3_IRQHandler,Default_Handler<br />                  <br />   .weak      TIM4_IRQHandler            <br />   .thumb_set TIM4_IRQHandler,Default_Handler<br />                  <br />   .weak      I2C1_EV_IRQHandler   <br />   .thumb_set I2C1_EV_IRQHandler,Default_Handler<br />                     <br />   .weak      I2C1_ER_IRQHandler   <br />   .thumb_set I2C1_ER_IRQHandler,Default_Handler<br />                     <br />   .weak      I2C2_EV_IRQHandler   <br />   .thumb_set I2C2_EV_IRQHandler,Default_Handler<br />                  <br />   .weak      I2C2_ER_IRQHandler   <br />   .thumb_set I2C2_ER_IRQHandler,Default_Handler<br />                           <br />   .weak      SPI1_IRQHandler            <br />   .thumb_set SPI1_IRQHandler,Default_Handler<br />                        <br />   .weak      SPI2_IRQHandler            <br />   .thumb_set SPI2_IRQHandler,Default_Handler<br />                  <br />   .weak      USART1_IRQHandler      <br />   .thumb_set USART1_IRQHandler,Default_Handler<br />                     <br />   .weak      USART2_IRQHandler      <br />   .thumb_set USART2_IRQHandler,Default_Handler<br />                                  <br />   .weak      EXTI15_10_IRQHandler               <br />   .thumb_set EXTI15_10_IRQHandler,Default_Handler<br />               <br />   .weak      RTC_Alarm_IRQHandler               <br />   .thumb_set RTC_Alarm_IRQHandler,Default_Handler<br />            <br />   .weak      OTG_FS_WKUP_IRQHandler         <br />   .thumb_set OTG_FS_WKUP_IRQHandler,Default_Handler<br />            <br />   .weak      DMA1_Stream7_IRQHandler               <br />   .thumb_set DMA1_Stream7_IRQHandler,Default_Handler<br />                     <br />   .weak      SDIO_IRQHandler            <br />   .thumb_set SDIO_IRQHandler,Default_Handler<br />                     <br />   .weak      TIM5_IRQHandler            <br />   .thumb_set TIM5_IRQHandler,Default_Handler<br />                     <br />   .weak      SPI3_IRQHandler            <br />   .thumb_set SPI3_IRQHandler,Default_Handler<br />                     <br />   .weak      DMA2_Stream0_IRQHandler               <br />   .thumb_set DMA2_Stream0_IRQHandler,Default_Handler<br />               <br />   .weak      DMA2_Stream1_IRQHandler               <br />   .thumb_set DMA2_Stream1_IRQHandler,Default_Handler<br />                  <br />   .weak      DMA2_Stream2_IRQHandler               <br />   .thumb_set DMA2_Stream2_IRQHandler,Default_Handler<br />            <br />   .weak      DMA2_Stream3_IRQHandler               <br />   .thumb_set DMA2_Stream3_IRQHandler,Default_Handler<br />            <br />   .weak      DMA2_Stream4_IRQHandler               <br />   .thumb_set DMA2_Stream4_IRQHandler,Default_Handler<br />            <br />   .weak      OTG_FS_IRQHandler      <br />   .thumb_set OTG_FS_IRQHandler,Default_Handler<br />                     <br />   .weak      DMA2_Stream5_IRQHandler               <br />   .thumb_set DMA2_Stream5_IRQHandler,Default_Handler<br />                  <br />   .weak      DMA2_Stream6_IRQHandler               <br />   .thumb_set DMA2_Stream6_IRQHandler,Default_Handler<br />                  <br />   .weak      DMA2_Stream7_IRQHandler               <br />   .thumb_set DMA2_Stream7_IRQHandler,Default_Handler<br />                  <br />   .weak      USART6_IRQHandler      <br />   .thumb_set USART6_IRQHandler,Default_Handler<br />                        <br />   .weak      I2C3_EV_IRQHandler   <br />   .thumb_set I2C3_EV_IRQHandler,Default_Handler<br />                        <br />   .weak      I2C3_ER_IRQHandler   <br />   .thumb_set I2C3_ER_IRQHandler,Default_Handler<br />                        <br />   .weak      FPU_IRQHandler                  <br />   .thumb_set FPU_IRQHandler,Default_Handler  <br /><br />   .weak      SPI4_IRQHandler                  <br />   .thumb_set SPI4_IRQHandler,Default_Handler<br /><br />   .weak      SPI5_IRQHandler                  <br />   .thumb_set SPI5_IRQHandler,Default_Handler[/syntax]<br /><br />i stąd możesz wziąć nazwy procedury obsługi przerwań. To funkcja, jak każda inna: void jakaśtamnazwa(void). Oczywiście, możesz zmodyfikować nazwy wektorów przerwań według własnego widzimisię, ważne aby te nazwy zgadzały się z tymi z pliku startup.s. Aha,  __attribute__((interrupt)) możesz sobie w tej chwili darować ( korzystając ze współczesnych kompilatorów).<br />Pozdrawiam, QuadMan.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5291">QuadMan</a> — 14 wrz 2016, o 17:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[_damian]]></name></author>
<updated>2016-09-14T16:03:09+01:00</updated>
<published>2016-09-14T16:03:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16210&amp;p=168740#p168740</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16210&amp;p=168740#p168740"/>
<title type="html"><![CDATA[STM32F4 - nazwy wektorów przerwań]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16210&amp;p=168740#p168740"><![CDATA[
Witam. Nie wiem czy to odpowiednie forum ale moze ktos z was programuje STMy. Moje pytanie brzmi: gdzie moge znaleźć nazwy wektorów przerwań dla STM32F411RE i jak powiedzieć prockowi ze to własnie tutaj ma byc procedura obsługi przerwania ? Gdyby nie wiadomo było o co chodzi to wytłumacze to w inny sposób. W AVR wpisywałem nazwe wektora dla odpowiedniego przerwania i pisałem procedure obsługi takiego przerwania , np. dla timera 0:<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">ISR(TIMER0_OVF_vect)<br />{<br />// jakis kod<br />}</div><br />Pomijam czy to od przepełnienia(jak wyzej) czy porównania itd. W przypadku stm znalazłem tylko table vector w reference manualu, natomiast w internetach wystepuje np. <br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">__attribute__((interrupt)) void SysTick_Handler(void){<br />// jakis kod<br />}</div><br />Skąd to się bierze ? Czy zasada jest taka ze piszemy to magiczne &quot;__attribute__((interrupt))&quot; nastepnie do nazwy konkretnego przerwania z wspomnianej wyzej tablicy wektorów dopisujemy &quot;_Handler&quot; i dodatkowo całośc traktujemy jako funkcje która nic nie zwraca i nic nie przyjmuje ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9619">_damian</a> — 14 wrz 2016, o 16:03</p><hr />
]]></content>
</entry>
</feed>