Hi,

I'm trying to restart my arm-embedded project.
A few years ago I had a working compiler, with some utility-files.

I made a new cross-compiler (fpc svn 31290). But I don't find where the interrupt-numbers of an STM32F103xx processor are defined. So I made an inc-file and added that to e.g. rtl/embedded/arm/stm32f10x_md.pp, because that's the processor I'm working with. The inc-file does contain ifdef's for the different STM32F10x processors though, so all stm32F10x files could contain that inc-file.

Is this the way to do it ? Or is there better way ? Or does this exist already ?

Comments please.

If that's a proper way to do this, how could this be included in a next version of fpc ? Do I make a bug-report including the new file, with diffs for the modified files ?
How do I make a proper diff ?

Thanks,

Koenraad.

Code snippet of the interrupt-numbers :

const
NonMaskableInt_IRQn = -14; // 2 Non Maskable // interrupt HardFault_IRQn = -13; // 4 Cortex-M3 Memory Management // interrupt MemoryManagement_IRQn = -12; // 4 Cortex-M3 Memory Management // interrupt BusFault_IRQn = -11; // 5 Cortex-M3 Bus Fault // interrupt UsageFault_IRQn = -10; // 6 Cortex-M3 Usage Fault // interrupt SVCall_IRQn = -5; // 11 Cortex-M3 SV Call // interrupt DebugMonitor_IRQn = -4; // 12 Cortex-M3 Debug Monitor // interrupt PendSV_IRQn = -2; // 14 Cortex-M3 Pend SV // interrupt SysTick_IRQn = -1; // 15 Cortex-M3 System Tick // interrupt WWDG_IRQn = 0; // Window WatchDog // interrupt PVD_IRQn = 1; // PVD through EXTI Line detection // interrupt TAMPER_IRQn = 2; // Tamper // interrupt RTC_IRQn = 3; // RTC global // interrupt FLASH_IRQn = 4; // FLASH global // interrupt RCC_IRQn = 5; // RCC global // interrupt EXTI0_IRQn = 6; // EXTI Line0 // interrupt EXTI1_IRQn = 7; // EXTI Line1 // interrupt EXTI2_IRQn = 8; // EXTI Line2 // interrupt EXTI3_IRQn = 9; // EXTI Line3 // interrupt EXTI4_IRQn = 10; // EXTI Line4 // interrupt DMA1_Channel1_IRQn = 11; // DMA1 Channel 1 global // interrupt DMA1_Channel2_IRQn = 12; // DMA1 Channel 2 global // interrupt DMA1_Channel3_IRQn = 13; // DMA1 Channel 3 global // interrupt DMA1_Channel4_IRQn = 14; // DMA1 Channel 4 global // interrupt DMA1_Channel5_IRQn = 15; // DMA1 Channel 5 global // interrupt DMA1_Channel6_IRQn = 16; // DMA1 Channel 6 global // interrupt
  DMA1_Channel7_IRQn          = 17;  // DMA1 Channel 7 global // interrupt

  {$ifdef stm32f10x_ld}
ADC1_2_IRQn = 18; // ADC1 et ADC2 global // interrupt USB_HP_CAN1_TX_IRQn = 19; // USB High Priority or CAN1 TX Interrupts USB_LP_CAN1_RX0_IRQn = 20; // USB Low Priority or CAN1 RX0 Interrupts CAN1_RX1_IRQn = 21; // CAN1 RX1 // interrupt CAN1_SCE_IRQn = 22; // CAN1 SCE // interrupt EXTI9_5_IRQn = 23; // External Line[9:5] Interrupts TIM1_BRK_IRQn = 24; // TIM1 Break // interrupt TIM1_UP_IRQn = 25; // TIM1 Update // interrupt TIM1_TRG_COM_IRQn = 26; // TIM1 Trigger and Commutation // interrupt TIM1_CC_IRQn = 27; // TIM1 Capture Compare // interrupt TIM2_IRQn = 28; // TIM2 global // interrupt TIM3_IRQn = 29; // TIM3 global // interrupt I2C1_EV_IRQn = 31; // I2C1 Event // interrupt I2C1_ER_IRQn = 32; // I2C1 Error // interrupt SPI1_IRQn = 35; // SPI1 global // interrupt USART1_IRQn = 37; // USART1 global // interrupt USART2_IRQn = 38; // USART2 global // interrupt EXTI15_10_IRQn = 40; // External Line[15:10] Interrupts RTCAlarm_IRQn = 41; // RTC Alarm through EXTI Line // interrupt USBWakeUp_IRQn = 42; // USB WakeUp from suspend through EXTI Line // interrupt
  {$endif}

  {$ifdef STM32F10X_LD_VL}
ADC1_2_IRQn = 18; // ADC1 et ADC2 global // interrupt EXTI9_5_IRQn = 23; // External Line[9:5] Interrupts TIM1_BRK_IRQn = 24; // TIM1 Break // interrupt TIM1_UP_IRQn = 25; // TIM1 Update // interrupt
....
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to