新手上路,多以摘抄、整合为主。
可以参考的博客:
https://blog.csdn.net/zhzht19861011/article/details/50072033
2018-10-18
1、 在Cortex-M3硬件下,FreeRTOS使用SysTick作为系统节拍时钟,使用SVC和PendSVC进行上下文切换。异常中断服务代码位于port.c文件中,其入口地址可以在启动文件中设置。打开启动文件startup.s,并在__heap_limit下面添加:
PRESERVE8
THUMB
IMPORT xPortPendSVHandler
IMPORT xPortSysTickHandler
IMPORT vPortSVCHandler
用“DCD vPortSVCHandler”替换“DCD SVC_Handler”;
用“DCD xPortPendSVHandler”替换“DCD PendSV_Handler”;
用“DCD xPortSysTickHandler”替换“DCD SysTick_Handler”;
说明:
SVC(SVCall),即Service Call,是软件触发中断,有两个作用:
- 允许在无中断情况执行一段代码;
- 从非特权模式跳转到特权模式。
具体参考:https://www.cnblogs.com/shangdawei/archive/2013/04/30/3052597.html