<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.arm.com/utility/feedstylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS</title><link>https://community.arm.com/developer/tools-software/tools/f/keil-forum/19044/error-l104-multiple-public-definitions</link><description> I am using the following code: 
 
// Timer3 IRQ: Executed each 10ms 
void T3TIMI_IRQHandler (void) __irq 
 { 
 
 GPIO_BitWrite(GPIO2, 15, ~GPIO_BitRead(GPIO2, 15)); 
 
 TIM_FlagClear(TIM3, TIM_TO_IT); 
 
 EIC-&amp;gt;IPR = 1 &amp;lt;&amp;lt; T3TIMI_IRQChannel; 
 
} 
 
And</description><dc:language>en-US</dc:language><generator>Telligent Community 10</generator><item><title>RE: *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS</title><link>https://community.arm.com/thread/97570?ContentTypeID=1</link><pubDate>Mon, 17 Oct 2005 11:45:07 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:2749f7a4-69fd-4b13-b3f7-d9852f907e5a</guid><dc:creator>Reinhard Keil</dc:creator><description>&lt;p&gt;I recommend that you directly access the peripherals (which is anyway more efficient than using the software wrappers provided by ST).&lt;br /&gt;
&lt;br /&gt;
Reinhard&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS</title><link>https://community.arm.com/thread/73561?ContentTypeID=1</link><pubDate>Mon, 17 Oct 2005 05:57:07 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:baa3df15-fc31-4247-90b0-a0fb7c023ac5</guid><dc:creator>Jan Kist</dc:creator><description>&lt;p&gt;My evalboard is: MCBSTR7 &amp;gt; STR710F2 microcontroller from ST microelectronics&lt;br /&gt;
&lt;br /&gt;
my code:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
HELLO.C:  Hello World Example&lt;br /&gt;&lt;br /&gt;
&amp;lt;&lt;br /&gt;&lt;br /&gt;
// Timer3 IRQ: Executed each 10ms&lt;br /&gt;&lt;br /&gt;
void T3TIMI_IRQHandler (void) __irq&lt;br /&gt;&lt;br /&gt;
 {&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
  GPIO_BitWrite(GPIO2, 15, ~GPIO_BitRead(GPIO2, 15));&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
  TIM_FlagClear(TIM3, TIM_TO_IT);&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
  EIC-&amp;gt;IPR = 1 &amp;lt;&amp;lt; T3TIMI_IRQChannel;&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
}&amp;gt;&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&amp;lt;&lt;br /&gt;&lt;br /&gt;
  // Timer 3 Configuration: Periodic Interrupts at aprox. 10ms&lt;br /&gt;&lt;br /&gt;
  TIM_Init (TIM3);                                  // Initialization&lt;br /&gt;&lt;br /&gt;
  TIM_PrescalerConfig (TIM3, 256);                    // Prescaler&lt;br /&gt;&lt;br /&gt;
  TIM_ITConfig (TIM3, TIM_TO_IT, ENABLE);           // Enable Overflow Interrupt&lt;br /&gt;&lt;br /&gt;
  TIM_CounterConfig (TIM3,TIM_START);               // Start Timer&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
  // Configure and enable IRQ for Timer 3&lt;br /&gt;&lt;br /&gt;
  EIC-&amp;gt;IVR = (u32)T3TIMI_IRQHandler;&lt;br /&gt;&lt;br /&gt;
  EIC-&amp;gt;SIR[T3TIMI_IRQChannel] = ((u16)T3TIMI_IRQHandler &amp;lt;&amp;lt; 16);&lt;br /&gt;&lt;br /&gt;
  EIC_IRQChannelConfig(T3TIMI_IRQChannel, ENABLE);&lt;br /&gt;&lt;br /&gt;
  EIC_IRQChannelPriorityConfig(T3TIMI_IRQChannel, 1);&lt;br /&gt;&lt;br /&gt;
&amp;gt;&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
UART.c&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;
void UART_ByteSend(UART_TypeDef *UARTx, u8 *Data)&lt;br /&gt;
{&lt;br /&gt;
  while (!(UARTx-&amp;gt;SR &amp;amp; UART_TxEmpty)); // while the transmit shift register not empty&lt;br /&gt;
  UARTx-&amp;gt;TxBUFR = *Data;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GPIO.c&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
void GPIO_BitWrite(GPIO_TypeDef *GPIOx, u8 Port_Pin, u8 Port_Val)&lt;br /&gt;
{&lt;br /&gt;
  if (Port_Val&amp;amp;0x01)&lt;br /&gt;
   GPIOx-&amp;gt;PD |= 1&amp;lt;&amp;lt;Port_Pin;&lt;br /&gt;
  else&lt;br /&gt;
   GPIOx-&amp;gt;PD &amp;amp;= ~(1&amp;lt;&amp;lt;Port_Pin);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Include path is : C:\Keil\ARM\INC\ST&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS</title><link>https://community.arm.com/thread/44868?ContentTypeID=1</link><pubDate>Mon, 17 Oct 2005 04:18:30 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:ab556630-3826-43e1-8f09-26c1e5098e70</guid><dc:creator>Reinhard Keil</dc:creator><description>&lt;p&gt;We need a bit more information about the problem (processor, how is the function defined, ect.).  However it looks similar to this:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.keil.com/support/docs/2929.htm"&gt;http://www.keil.com/support/docs/2929.htm&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reinhard&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>