add stm32 cl
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@32 bbd45198-f89e-11dd-88c7-29a3b14d5316
This commit is contained in:
parent
4cd031e39f
commit
65b4117cfe
|
@ -23,14 +23,14 @@ void rt_init_thread_entry001(void *parameter)
|
||||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
||||||
GPIO_Init(LEDG_PORT,&GPIO_InitStructure);
|
GPIO_Init(LEDG_PORT,&GPIO_InitStructure);
|
||||||
|
|
||||||
while(1)
|
while (1)
|
||||||
{
|
{
|
||||||
rt_kprintf("thread001:%d\r\n",count++);
|
rt_kprintf("thread001:%d\r\n",count++);
|
||||||
GPIO_ResetBits(LEDG_PORT,LEDG_PIN);
|
GPIO_ResetBits(LEDG_PORT,LEDG_PIN);
|
||||||
rt_thread_delay(64);
|
rt_thread_delay(RT_TICK_PER_SECOND);
|
||||||
rt_kprintf("thread001:%d\r\n",count++);
|
rt_kprintf("thread001:%d\r\n",count++);
|
||||||
GPIO_SetBits(LEDG_PORT,LEDG_PIN);
|
GPIO_SetBits(LEDG_PORT,LEDG_PIN);
|
||||||
rt_thread_delay(64);
|
rt_thread_delay(RT_TICK_PER_SECOND);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,23 +48,23 @@ void rt_init_thread_entry002(void *parameter)
|
||||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
||||||
GPIO_Init(LEDR_PORT,&GPIO_InitStructure);
|
GPIO_Init(LEDR_PORT,&GPIO_InitStructure);
|
||||||
|
|
||||||
while(1)
|
while (1)
|
||||||
{
|
{
|
||||||
rt_kprintf("thread001:%d\r\n",count++);
|
rt_kprintf("thread001:%d\r\n",count++);
|
||||||
GPIO_ResetBits(LEDR_PORT,LEDR_PIN);
|
GPIO_ResetBits(LEDR_PORT,LEDR_PIN);
|
||||||
rt_thread_delay(32);
|
rt_thread_delay(RT_TICK_PER_SECOND*2);
|
||||||
rt_kprintf("thread001:%d\r\n",count++);
|
rt_kprintf("thread001:%d\r\n",count++);
|
||||||
GPIO_SetBits(LEDR_PORT,LEDR_PIN);
|
GPIO_SetBits(LEDR_PORT,LEDR_PIN);
|
||||||
rt_thread_delay(32);
|
rt_thread_delay(RT_TICK_PER_SECOND*2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int rt_application_init()
|
int rt_application_init()
|
||||||
{
|
{
|
||||||
rt_thread_init(&thread001,"led",rt_init_thread_entry001,RT_NULL,&thread001_stack[0], sizeof(thread001_stack),20,10);
|
rt_thread_init(&thread001,"led",rt_init_thread_entry001,RT_NULL,&thread001_stack[0], sizeof(thread001_stack),20,10);
|
||||||
rt_thread_init(&thread002,"led2",rt_init_thread_entry002,RT_NULL,&thread002_stack[0], sizeof(thread002_stack),20,10);
|
rt_thread_init(&thread002,"led2",rt_init_thread_entry002,RT_NULL,&thread002_stack[0], sizeof(thread002_stack),20,10);
|
||||||
rt_thread_startup(&thread001);
|
rt_thread_startup(&thread001);
|
||||||
rt_thread_startup(&thread002);
|
rt_thread_startup(&thread002);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,59 +1,6 @@
|
||||||
#include <rtthread.h>
|
#include <rtthread.h>
|
||||||
#include "stm32f10x.h"
|
#include "stm32f10x.h"
|
||||||
|
|
||||||
|
|
||||||
ErrorStatus HSEStartUpStatus;
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
* Function Name : RCC_Configuration
|
|
||||||
* Description : Configures the different system clocks.
|
|
||||||
* Input : None
|
|
||||||
* Output : None
|
|
||||||
* Return : None
|
|
||||||
*******************************************************************************/
|
|
||||||
void RCC_Configuration(void)
|
|
||||||
{
|
|
||||||
/* RCC system reset(for debug purpose) */
|
|
||||||
RCC_DeInit();
|
|
||||||
|
|
||||||
/* Enable HSE */
|
|
||||||
RCC_HSEConfig(RCC_HSE_ON);
|
|
||||||
|
|
||||||
/* Wait till HSE is ready */
|
|
||||||
HSEStartUpStatus = RCC_WaitForHSEStartUp();
|
|
||||||
|
|
||||||
if (HSEStartUpStatus == SUCCESS)
|
|
||||||
{
|
|
||||||
/* HCLK = SYSCLK */
|
|
||||||
RCC_HCLKConfig(RCC_SYSCLK_Div1);
|
|
||||||
|
|
||||||
/* PCLK2 = HCLK */
|
|
||||||
RCC_PCLK2Config(RCC_HCLK_Div1);
|
|
||||||
/* PCLK1 = HCLK/2 */
|
|
||||||
RCC_PCLK1Config(RCC_HCLK_Div2);
|
|
||||||
|
|
||||||
/* Flash 2 wait state */
|
|
||||||
FLASH_SetLatency(FLASH_Latency_2);
|
|
||||||
/* Enable Prefetch Buffer */
|
|
||||||
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
|
|
||||||
|
|
||||||
/* PLLCLK = 8MHz * 9 = 72 MHz */
|
|
||||||
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_6);
|
|
||||||
|
|
||||||
/* Enable PLL */
|
|
||||||
RCC_PLLCmd(ENABLE);
|
|
||||||
|
|
||||||
/* Wait till PLL is ready */
|
|
||||||
while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) ;
|
|
||||||
|
|
||||||
/* Select PLL as system clock source */
|
|
||||||
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
|
|
||||||
|
|
||||||
/* Wait till PLL is used as system clock source */
|
|
||||||
while (RCC_GetSYSCLKSource() != 0x08) ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Function Name : NVIC_Configuration
|
* Function Name : NVIC_Configuration
|
||||||
* Description : Configures the nested vectored interrupt controller.
|
* Description : Configures the nested vectored interrupt controller.
|
||||||
|
@ -90,8 +37,6 @@ void SysTick_Configuration(void)
|
||||||
|
|
||||||
SysTick_Config(cnts);
|
SysTick_Config(cnts);
|
||||||
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);
|
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);
|
||||||
//SysTick_CounterCmd(SysTick_Counter_Enable);
|
|
||||||
//SysTick_ITConfig(ENABLE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* init console to support rt_kprintf */
|
/* init console to support rt_kprintf */
|
||||||
|
@ -173,8 +118,6 @@ void rt_hw_console_output(const char* str)
|
||||||
|
|
||||||
void board_init(void)
|
void board_init(void)
|
||||||
{
|
{
|
||||||
RCC_Configuration();
|
|
||||||
|
|
||||||
/* NVIC Configuration */
|
/* NVIC Configuration */
|
||||||
NVIC_Configuration();
|
NVIC_Configuration();
|
||||||
|
|
||||||
|
@ -191,12 +134,12 @@ void board_init(void)
|
||||||
extern void rt_hw_interrupt_thread_switch(void);
|
extern void rt_hw_interrupt_thread_switch(void);
|
||||||
void rt_hw_timer_handler(void)
|
void rt_hw_timer_handler(void)
|
||||||
{
|
{
|
||||||
/* enter interrupt */
|
/* enter interrupt */
|
||||||
rt_interrupt_enter();
|
rt_interrupt_enter();
|
||||||
|
|
||||||
rt_tick_increase();
|
rt_tick_increase();
|
||||||
|
|
||||||
/* leave interrupt */
|
/* leave interrupt */
|
||||||
rt_interrupt_leave();
|
rt_interrupt_leave();
|
||||||
rt_hw_interrupt_thread_switch();
|
rt_hw_interrupt_thread_switch();
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,54 +15,55 @@ extern int __bss_end;
|
||||||
|
|
||||||
void rtthread_startup(void)
|
void rtthread_startup(void)
|
||||||
{
|
{
|
||||||
board_init();
|
|
||||||
|
|
||||||
/* show version */
|
/* show version */
|
||||||
rt_show_version();
|
rt_show_version();
|
||||||
|
|
||||||
/* init tick */
|
/* init tick */
|
||||||
rt_system_tick_init();
|
rt_system_tick_init();
|
||||||
|
|
||||||
/* init kernel object */
|
/* init kernel object */
|
||||||
rt_system_object_init();
|
rt_system_object_init();
|
||||||
|
|
||||||
/* init timer system */
|
/* init timer system */
|
||||||
rt_system_timer_init();
|
rt_system_timer_init();
|
||||||
|
|
||||||
#ifdef RT_USING_HEAP
|
#ifdef RT_USING_HEAP
|
||||||
#ifdef __CC_ARM
|
#ifdef __CC_ARM
|
||||||
rt_system_heap_init((void*)&Image$$RW_IRAM1$$ZI$$Limit, (void*)0x20005000);
|
rt_system_heap_init((void*)&Image$$RW_IRAM1$$ZI$$Limit, (void*)0x20005000);
|
||||||
//#warning Image$$RW_IRAM1$$ZI$$Limit
|
//#warning Image$$RW_IRAM1$$ZI$$Limit
|
||||||
#elif __ICCARM__
|
#elif __ICCARM__
|
||||||
rt_system_heap_init(__segment_end("HEAP"), (void*)0x20005000);
|
rt_system_heap_init(__segment_end("HEAP"), (void*)0x20005000);
|
||||||
#else
|
#else
|
||||||
/* init memory system */
|
/* init memory system */
|
||||||
rt_system_heap_init((void*)&__bss_end, (void*)0x20005000);
|
rt_system_heap_init((void*)&__bss_end, (void*)0x20005000);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* init scheduler system */
|
/* init scheduler system */
|
||||||
rt_system_scheduler_init();
|
rt_system_scheduler_init();
|
||||||
|
|
||||||
/* init all device */
|
/* init all device */
|
||||||
rt_device_init_all();
|
rt_device_init_all();
|
||||||
|
|
||||||
/* init application */
|
/* init application */
|
||||||
rt_application_init();
|
rt_application_init();
|
||||||
|
|
||||||
/* init idle thread */
|
/* init idle thread */
|
||||||
rt_thread_idle_init();
|
rt_thread_idle_init();
|
||||||
|
|
||||||
/* start scheduler */
|
/* start scheduler */
|
||||||
rt_system_scheduler_start();
|
rt_system_scheduler_start();
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
rt_uint32_t UNUSED level;
|
rt_uint32_t UNUSED level;
|
||||||
|
|
||||||
/* disable interrupt first */
|
/* disable interrupt first */
|
||||||
level = rt_hw_interrupt_disable();
|
level = rt_hw_interrupt_disable();
|
||||||
|
|
||||||
|
SystemInit();
|
||||||
|
board_init();
|
||||||
|
|
||||||
rtthread_startup();
|
rtthread_startup();
|
||||||
while (1);
|
while (1);
|
||||||
|
|
|
@ -575,12 +575,12 @@ extern void rt_hw_timer_handler(void);
|
||||||
|
|
||||||
void SysTickHandler(void)
|
void SysTickHandler(void)
|
||||||
{
|
{
|
||||||
/* handle os tick */
|
/* handle os tick */
|
||||||
rt_hw_timer_handler();
|
rt_hw_timer_handler();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Function Name :
|
* Function Name :
|
||||||
* Description : This function handles Usage Fault exception.
|
* Description : This function handles Usage Fault exception.
|
||||||
* Input : None
|
* Input : None
|
||||||
* Output : None
|
* Output : None
|
||||||
|
@ -912,7 +912,37 @@ void SDIO_IRQHandler(void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DMA2_Channel5_IRQHandler(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void ETH_IRQHandler(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void ETH_WKUP_IRQHandler(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CAN2_TX_IRQHandler(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CAN2_RX0_IRQHandler(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CAN2_RX1_IRQHandler(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CAN2_SCE_IRQHandler(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void OTG_FS_IRQHandler(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
/* STM32F10x Peripherals Interrupt Handlers */
|
/* STM32F10x Peripherals Interrupt Handlers */
|
||||||
|
|
|
@ -97,6 +97,7 @@ extern "C"
|
||||||
void EXTI15_10_IRQHandler(void);
|
void EXTI15_10_IRQHandler(void);
|
||||||
void RTCAlarm_IRQHandler(void);
|
void RTCAlarm_IRQHandler(void);
|
||||||
void USBWakeUp_IRQHandler(void);
|
void USBWakeUp_IRQHandler(void);
|
||||||
|
/****** HD ******/
|
||||||
void TIM8_BRK_IRQHandler(void);
|
void TIM8_BRK_IRQHandler(void);
|
||||||
void TIM8_UP_IRQHandler(void);
|
void TIM8_UP_IRQHandler(void);
|
||||||
void TIM8_TRG_COM_IRQHandler(void);
|
void TIM8_TRG_COM_IRQHandler(void);
|
||||||
|
@ -114,6 +115,15 @@ extern "C"
|
||||||
void DMA2_Channel2_IRQHandler(void);
|
void DMA2_Channel2_IRQHandler(void);
|
||||||
void DMA2_Channel3_IRQHandler(void);
|
void DMA2_Channel3_IRQHandler(void);
|
||||||
void DMA2_Channel4_5_IRQHandler(void);
|
void DMA2_Channel4_5_IRQHandler(void);
|
||||||
|
/********* CL **********/
|
||||||
|
void DMA2_Channel5_IRQHandler(void);
|
||||||
|
void ETH_IRQHandler(void);
|
||||||
|
void ETH_WKUP_IRQHandler(void);
|
||||||
|
void CAN2_TX_IRQHandler(void);
|
||||||
|
void CAN2_RX0_IRQHandler(void);
|
||||||
|
void CAN2_RX1_IRQHandler(void);
|
||||||
|
void CAN2_SCE_IRQHandler(void);
|
||||||
|
void OTG_FS_IRQHandler(void);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue