FreeRTOS 移植到ST Cortex-3芯片
2010-08-16 14:36
330 查看
首先下载FreeRTOS 6.02
解压后,将源文件中的portmacro.h中增加以下三行宏定义
#define vPortSVCHandler SVC_Handler
#define xPortSysTickHandler SysTick_Handler
#define xPortPendSVHandler PendSV_Handler
然后修改FreeRTOSconfig.h文件中的以下宏定议的值
#define configUSE_PREEMPTION 1 //抢先式内核
#define configUSE_IDLE_HOOK 0 //不使用空闲钩子
#define configUSE_TICK_HOOK 0 //不使用时间片钩子
#define configCPU_CLOCK_HZ ( ( unsigned long ) 48000000 ) //内部处理器执行的频率
#define configTICK_RATE_HZ ( ( portTickType ) 1000 ) // 1000Hz的时间片频率,高时间片频率意味着将减少给予每个任务的时间份额
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 1 )//应用程序任务中可用优先级的数目,不应分配高于实际使用的优先数目,占用内存
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 128 ) //空闲任务使用的堆栈大小
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 10 * 1024 ) ) //内核总共可用的RAM数量
#define configMAX_TASK_NAME_LEN ( 16 ) //当创建一个任务,能够给予描述任务名称的最大容许长度,包括NULL终止字节
#define configUSE_TRACE_FACILITY 0 //不使用可视化追踪功能,如果使用可视化追踪,必须提供追踪缓冲区.
#define configUSE_16_BIT_TICKS 0 //时间片计数器定义为可用的portTickType,1将使portTickType定义为16位无符号类型,0将是32位无符号类型
#define configIDLE_SHOULD_YIELD 1 //控制任务与空闲任务优先级相同时的行为,1时当其他在空闲优先级的任务准备运行时,空闲任务将立刻让出CPU,0空闭任务执行完后才让出时间
#define configKERNEL_INTERRUPT_PRIORITY 255 //应该设置为最低优先级的数值
#define configMAX_SYSCALL_INTERRUPT_PRIORITY 191
#define configLIBRARY_KERNEL_INTERRUPT_PRIORITY 15
其它就参照正常的项目就可以了
解压后,将源文件中的portmacro.h中增加以下三行宏定义
#define vPortSVCHandler SVC_Handler
#define xPortSysTickHandler SysTick_Handler
#define xPortPendSVHandler PendSV_Handler
然后修改FreeRTOSconfig.h文件中的以下宏定议的值
#define configUSE_PREEMPTION 1 //抢先式内核
#define configUSE_IDLE_HOOK 0 //不使用空闲钩子
#define configUSE_TICK_HOOK 0 //不使用时间片钩子
#define configCPU_CLOCK_HZ ( ( unsigned long ) 48000000 ) //内部处理器执行的频率
#define configTICK_RATE_HZ ( ( portTickType ) 1000 ) // 1000Hz的时间片频率,高时间片频率意味着将减少给予每个任务的时间份额
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 1 )//应用程序任务中可用优先级的数目,不应分配高于实际使用的优先数目,占用内存
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 128 ) //空闲任务使用的堆栈大小
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 10 * 1024 ) ) //内核总共可用的RAM数量
#define configMAX_TASK_NAME_LEN ( 16 ) //当创建一个任务,能够给予描述任务名称的最大容许长度,包括NULL终止字节
#define configUSE_TRACE_FACILITY 0 //不使用可视化追踪功能,如果使用可视化追踪,必须提供追踪缓冲区.
#define configUSE_16_BIT_TICKS 0 //时间片计数器定义为可用的portTickType,1将使portTickType定义为16位无符号类型,0将是32位无符号类型
#define configIDLE_SHOULD_YIELD 1 //控制任务与空闲任务优先级相同时的行为,1时当其他在空闲优先级的任务准备运行时,空闲任务将立刻让出CPU,0空闭任务执行完后才让出时间
#define configKERNEL_INTERRUPT_PRIORITY 255 //应该设置为最低优先级的数值
#define configMAX_SYSCALL_INTERRUPT_PRIORITY 191
#define configLIBRARY_KERNEL_INTERRUPT_PRIORITY 15
其它就参照正常的项目就可以了
相关文章推荐
- FreeRtos在RH850 D1L芯片上移植
- FreeRTOS 在STM32上的移植 V1.0
- 具有代码移植专利技术的加密芯片
- FreeRTOS在STM32上移植--详尽篇
- Linux芯片级移植与底层驱动(基于3.7.4内核)
- Broadcom芯片53262的SDK移植
- 网络驱动移植之简述CS8900A网络芯片的基本原理
- STM32移植FreeRTOS的Tips
- FreeRTOS学习笔记一:移植FreeRTOS与使用规范
- FreeRtos——移植
- FreeRTOS STM32移植笔记
- 如何将FreeRTOS移植到飞思卡尔K60?
- 具有代码移植专利技术的加密芯片
- Linux芯片级移植与底层驱动(基于3.7.4内核)
- 网络驱动移植之简述CS8900A网络芯片的基本原理
- STM32硬件IIC 9轴MPU9250传感器DMP库在FreeRTOS上的移植,输出欧拉角
- FreeRTOS STM32移植笔记
- freeRTOS 在arm926ejs上的移植
- Linux芯片级移植与底层驱动(基于3.7.4内核)
- 移植USB无线网卡到mini2440(TP-LINK的TL-WN721N,使用的芯片型号是rtl8192cu)