自己DIY了一块STM32F042C6的DemoBoard。% u; e/ q0 u/ \$ O" u 一天突发奇想,想要把FreeRTOS移植到板子上。 头一次移植,苦恼于网上找不断Keil CM0 下移植的直接例程,程序调试也老是在xTaskCreate失败。& x% P% L# R! N# B* w4 g 今天程序终于调好了,能够开始跑FreeRTOS了。3 I8 E' ]( f% v: P0 A 程序功能:4 P; B& _) B' t/ u7 A 1.LED指示灯 2.USART1 & USART2 中断接收,轮询发送( F; X' ]2 M' z 3.CAN 中断接收,轮询发送# c) }; C; x* n3 @+ x - J! k3 n; g" q. u 4.RTC( v# o& Y- L h: i e ; X& ~* H, x% b2 l7 c) P% U 献上代码,请多指点。& Q5 l' V0 o$ v* m. F6 z8 Q7 Q 代码未经整理,比较乱,请各位看官见谅。(该文件可直接导入eclipse C/C++工程,方便浏览。)1 N& [" B, v/ q0 |& H |
STM32固件库分享,超全系列整理
三创电子(Tcreate)-STM32F030核心板代码
STM32F0 ADC(DMA中断)多通道,注释超详细
FreeRTOS在STM32F030上的移植
基于STM32移植而引发的疑问经验分享
分享STM32F051中文参考手册(重制书签版)
游名:STM32F0+Trinamic智能步进驱动芯片TMC5160(最高20A)参考原...
【MCU实战经验】+STM32F030的步进电机加减速
STM32F0的中文技术参考手册(标签处理过)
基于STM32F030硬件SPI经验分享
RE:FreeRTOS V8.1.2移植到Cortex-M0(STM32F042C6)
--------------------------------------
#define configUSE_PREEMPTION 1( {: T: O* r" C3 A% k! O
#define configUSE_IDLE_HOOK 0 $ H9 T5 c" O: M
#define configUSE_TICK_HOOK 0
#define configCPU_CLOCK_HZ ( ( uint32_t ) 48000000 )* ?. G) }% o9 S# X4 N7 `
#define configTICK_RATE_HZ ( ( TickType_t ) 1000 ) ! d, c% l! n8 E/ M( p
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 10 ) 1 x: P P4 f2 Z4 v# E4 Z; V
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 60 )
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 3400 ) ) /* 计算入Keil-ZI. */& {( C! A; g" y0 \" v- O/ |: s
#define configMAX_TASK_NAME_LEN ( 16 )
#define configUSE_TRACE_FACILITY 1
#define configUSE_16_BIT_TICKS 07 r5 x5 C8 @2 S) n( v6 H) e$ @" N
#define configIDLE_SHOULD_YIELD 1
#define configUSE_MUTEXES 1; \+ |5 w0 K6 a9 m
#define configQUEUE_REGISTRY_SIZE 8
#define configCHECK_FOR_STACK_OVERFLOW 0. a1 T: _8 Q6 x. S* B; o
#define configUSE_RECURSIVE_MUTEXES 1
#define configUSE_MALLOC_FAILED_HOOK 0
#define configUSE_APPLICATION_TASK_TAG 0
#define configUSE_COUNTING_SEMAPHORES 1
#define configGENERATE_RUN_TIME_STATS 0
/* Co-routine definitions. */% Z3 x! z4 G3 x; j9 f+ ]# _
#define configUSE_CO_ROUTINES 0' F; p+ G: B# a3 p
#define configMAX_CO_ROUTINE_PRIORITIES 2
/* Software timer definitions. */9 w+ s6 H" V! h# s
#define configUSE_TIMERS 1( R$ R8 T( v* I9 u
#define configTIMER_TASK_PRIORITY ( 2 )
#define configTIMER_QUEUE_LENGTH 5; S0 p4 H. K: I2 k& P, b" c( U3 l
#define configTIMER_TASK_STACK_DEPTH ( 80 )
/* Set the following definitions to 1 to include the API function, or zero' V/ t, v) D2 a* A% J. t
to exclude the API function. */8 C' \* G0 v* a# q
#define INCLUDE_vTaskPrioritySet 1- X8 d# Z, u; n, p4 ?
#define INCLUDE_uxTaskPriorityGet 1
#define INCLUDE_vTaskDelete 1) O& H: i8 ^, U L$ X
#define INCLUDE_vTaskCleanUpResources 18 G/ \7 ~: G4 R9 i
#define INCLUDE_vTaskSuspend 1( x8 M7 l0 G7 b# ]# x: m |
#define INCLUDE_vTaskDelayUntil 19 D: G* E9 C2 p* y% M
#define INCLUDE_vTaskDelay 1
/* Normal assert() semantics without relying on the provision of an assert.h
header file. */9 U9 O: b0 i; K
#define configASSERT( x ) if( ( x ) == 0 ) { taskDISABLE_INTERRUPTS(); for( ;; ); }
RE:FreeRTOS V8.1.2移植到Cortex-M0(STM32F042C6)
RE:FreeRTOS V8.1.2移植到Cortex-M0(STM32F042C6)
RE:FreeRTOS V8.1.2移植到Cortex-M0(STM32F042C6)