Forum : ARM
Original Post
| Post Information | Post |
|---|---|
|
June 21, 2011 - 11:42am
|
Hello, I use an Olimex H103 board with STM32.
/* Includes ------------------------------------------------------------------*/
#include "stm32f10x.h"
/* board defines ------------------------------------------------------------*/
/* example defines ------------------------------------------------------------*/
/* example function prototypes -----------------------------------------------*/
void RCC_Configuration( void );
void NVIC_Configuration( void );
void Delay( vu32 nCount );
/* example global variables --------------------------------------------------*/
/*these variables could (and should, maybe) be defined as local to the main
function, but declaring them as global and volatile helps for debugging.
*/
GPIO_InitTypeDef GPIO_InitStructure;
volatile int delayvar = 0xFFFF;
volatile unsigned char toggle = 0;
/* example functions ---------------------------------------------------------*/
/*******************************************************************************
* Function Name : main
* Description : Main program.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
int main( void )
{
#ifdef DEBUG
debug();
#endif
// System Clocks Configuration
RCC_Configuration();
// NVIC Configuration
NVIC_Configuration();
// Enable LEDs GPIO clock
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE );
// Configure PC.12 as output
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init( GPIOC, &GPIO_InitStructure );
while ( 1 )
{
//toggle=1-toggle;
Delay( 0x7FFF );
GPIO_WriteBit(GPIOC,GPIO_Pin_12,Bit_RESET);
Delay( 0x7FFF );
GPIO_WriteBit(GPIOC,GPIO_Pin_12,Bit_SET);
}
}
void RCC_Configuration( void )
{
// RCC system reset(for debug purpose)
RCC_DeInit();
// Enable HSE
RCC_HSEConfig( RCC_HSE_ON );
// Wait till HSE is ready
while ( RCC_GetFlagStatus( RCC_FLAG_HSERDY ) == RESET )
{;}
// Enable Prefetch Buffer
FLASH_PrefetchBufferCmd( FLASH_PrefetchBuffer_Enable );
// Flash 2 wait state
FLASH_SetLatency( FLASH_Latency_2 );
// HCLK = SYSCLK
RCC_HCLKConfig( RCC_SYSCLK_Div1 );
// PCLK2 = HCLK
RCC_PCLK2Config( RCC_HCLK_Div1 );
// PCLK1 = HCLK
RCC_PCLK1Config( RCC_HCLK_Div1 );
// Select HSE as system clock source
RCC_SYSCLKConfig( RCC_SYSCLKSource_HSE );
// Wait till HSE is used as system clock source
while ( RCC_GetSYSCLKSource() != 0x04 )
{;}
}
void NVIC_Configuration( void )
{
#ifdef VECT_TAB_RAM
// Set the Vector Table base location at 0x20000000
NVIC_SetVectorTable( NVIC_VectTab_RAM, 0x0 );
#else // VECT_TAB_FLASH
// Set the Vector Table base location at 0x08000000
NVIC_SetVectorTable( NVIC_VectTab_FLASH, 0x0 );
#endif
}
void assert_failed( u8* file, u32 line )
{
while ( 1 )
{
}
}
/*******************************************************************************
* Function Name : Delay
* Description : Inserts a delay time.
* Input : nCount: specifies the delay time length.
* Output : None
* Return : None
*******************************************************************************/
void Delay( vu32 nCount )
{
for ( ; nCount != 0; nCount-- );
}
|
I can't use JTAG interface with RLink (in the configuration window). I can only use SWD, maybe a first step for the solution...
Hi,
These problems sound like known situations...
For the debug jumps, please see this:
http://forum.raisonance.com/viewtopic.php?id=2694
For the JTAG/SWD thing, please read this:
http://forum.raisonance.com/viewtopic.php?id=3394
If these do not allow you to understand and solve the issue, we will need more information for helping you. Please then fill this form and send the answers to :
http://forum.raisonance.com/viewtopic.php?id=2231
Best Regards,
Vincent
It's ok for the JTAG/SWD thing. I just had to switch power OFF and ON with the good option checked.
Debugging in JTAG instead of SWD doesn't change the PC jump.
I now use the new 3.5 ST firmware library. It's ok now. I guess there's a compatibility problem between all versions installed with Rkit ARM (2.03, 3.40 and now 3.5 by me).
I also use the template by ST to create the project.