自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 任务调度管理-保存现场和恢复现场

在FreeRTOS移植到ARM Cortex-A9,关于任务调度的模块,前面的文章中讲到了任务调度的原理,这里讲一下如何保存现场和恢复现场;保存现场保存上文信息汇编实现的函数为portSAVE_CONTEXT。在Arm Cortext-A9平台保护现场都通过system模式进行访问,因为system mode和usr mode看到的是一份寄存器内容,能反应usr模式下的运行状态,又不会影响其他特权模式;针对每个任务,在其创建的时候都会在栈内开辟一段固定大小的空间用来保存任务的上下文(包括CPU状态,运

2021-04-07 20:01:43 2467

原创 任务调度管理-触发任务调度的机制

FREERTOS 移植到ARM Cortex-A9触发任务调度的机制有两种中断;1.OSTaskRun/OSTaskSaveRun/OSTaskLoadRun/OSTaskSaveLoadRun这种机制是通过调用软中断ARM SWI异常触发任务切换。调用软中断:#define OSTaskRun(PRunTcb) osek_switch_type = 1; __asm volatile ( "SWI 0");#define OSTaskSaveRun(PSavedTcb,PRunTcb) os

2021-04-07 19:56:47 967

原创 任务调度管理-任务切换机制

在ARM Cortex-A9上移植AUTOSAR。任务切换是移植工作的核心内容,在理解OSEK任务调度机制的基础上,分析目标平台中需要保存的上下文内容和任务返回方法。任务调度包含三个部分:1.保存上文;2.选择下一个执行的任务(任务初始化);3.恢复下文。根据是否保存上文和恢复下文,任务切换分为四种不同的调度方法;调度方式保存旧任务的上下文恢复新任务的上下文OSTaskRun否否OSTaskSaveRun是否OSTaskLoadRun否是OSTaskS

2021-04-07 19:52:18 1338

原创 任务调度管理-任务堆栈空间

根据FreeRTOS porting AUTOSAR到ARM Cortex-A9,看了下任务堆栈空间管理;每个任务拥有各自独立的堆栈区,任务的上下文是保存在各自的堆栈上的。如下图1所示,除了系统栈,每个任务都有各自独立的堆栈,因此发生任务切换的时候,需要切换任务的堆栈指针。图1在ARM Cortex-A9体系结构下,任务堆栈空间由高至低依次保存着CPSR、task,因为在初始化时不需要恢复上下文,所以不需要对R0~R12、LR做有效初始化,在做任务切换时使PC指针指向task入口。初始状态的堆

2021-04-07 19:41:59 933

原创 Xilinx SDK 汇编文件函数单步调试设置

Xilinx SDK 汇编函数单步调试设置在Xilinx SDK中调试Debug汇编文件在Xilinx SDK中调试Debug汇编文件选中工程右键选择“C/C++ building setting”;打开gcc assembler配置页面,在Expert settings加上-g选项,如下图;我加的是-g3 debug的最大level然后clean project->build project,加断点,即可单步调试...

2021-03-05 11:03:21 2108 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除