ucos基于stm32上的移植Word格式.docx

上传人:b****3 文档编号:15857858 上传时间:2022-11-16 格式:DOCX 页数:11 大小:19.72KB
下载 相关 举报
ucos基于stm32上的移植Word格式.docx_第1页
第1页 / 共11页
ucos基于stm32上的移植Word格式.docx_第2页
第2页 / 共11页
ucos基于stm32上的移植Word格式.docx_第3页
第3页 / 共11页
ucos基于stm32上的移植Word格式.docx_第4页
第4页 / 共11页
ucos基于stm32上的移植Word格式.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

ucos基于stm32上的移植Word格式.docx

《ucos基于stm32上的移植Word格式.docx》由会员分享,可在线阅读,更多相关《ucos基于stm32上的移植Word格式.docx(11页珍藏版)》请在冰豆网上搜索。

ucos基于stm32上的移植Word格式.docx

16 

INT16S;

int 

INT32U;

32 

INT32S;

float 

FP32;

Single 

precision 

floating 

point*/

double 

FP64;

Double 

point 

OS_STK;

堆栈类型为32位 

Each 

stack 

entry 

is 

32-bit 

wide 

OS_CPU_SR;

Define 

size 

of 

CPU 

status 

register 

(PSR 

bits) 

与ARM 

处理器相关的代码

#define 

OS_CRITICAL_METHOD 

//进入临界段的方法

#if 

== 

3

OS_ENTER_CRITICAL() 

{cpu_sr 

OS_CPU_SR_Save();

}//关中断

OS_EXIT_CRITICAL() 

{OS_CPU_SR_Restore(cpu_sr);

}//开中断

#endif

OS_CRITICAL_METHOD 

OS_CPU_SR 

OS_CPU_SR_Save(void);

void 

OS_CPU_SR_Restore(OS_CPU_SR 

cpu_sr);

OSCtxSw(void);

OSIntCtxSw(void);

OSStartHighRdy(void);

设置堆栈的增长方向

OS_STK_GROWTH 

/*堆栈由高地址向低地址增长*/

OS_CPU_C.C

用C 

语言编写六个操作系统相关的函数

OS_STK 

*OSTaskStkInit 

(void 

(*task)(void 

*p_arg), 

*p_arg, 

*ptos,

INT16U 

opt)

{

*stk;

(void)opt;

'

opt'

not 

used, 

prevent 

warning 

stk 

ptos;

Load 

pointer 

Registers 

stacked 

as 

if 

auto-saved 

on 

exception 

*(stk) 

(INT32U)0x01000000L;

xPSR 

*(--stk) 

(INT32U)task;

Entry 

Point 

(INT32U)0xFFFFFFFEL;

R14 

(LR) 

(init 

value 

will 

cause 

fault 

ever 

used)*/

(INT32U)0x12121212L;

R12 

(INT32U)0x03030303L;

R3 

(INT32U)0x02020202L;

R2 

(INT32U)0x01010101L;

R1 

(INT32U)p_arg;

R0 

:

argument 

Remaining 

registers 

saved 

process 

(INT32U)0x11111111L;

R11 

(INT32U)0x10101010L;

R10 

(INT32U)0x09090909L;

R9 

(INT32U)0x08080808L;

R8 

(INT32U)0x07070707L;

R7 

(INT32U)0x06060606L;

R6 

(INT32U)0x05050505L;

R5 

(INT32U)0x04040404L;

R4 

return 

(stk);

}

OSTaskCreateHook 

(OS_TCB 

*ptcb) 

{ptcb=ptcb;

//防止编译时出现警告 

OSTaskDelHook 

*ptcb) 

 

ptcb=ptcb;

OSTaskSwHook 

(void) 

OSTaskStatHook 

OSTimeTickHook 

后5 

个函数为钩子函数,可以不加代码。

OS_CPU_A.ASM

用汇编语言编写四个与处理器相关的函数

;

// 

引用外部变量的声明

EXTERN 

OSRunning 

OSPrioCur

OSPrioHighRdy 

OSTCBCur

OSTCBHighRdy 

OSIntNesting 

OSTaskSwHook

OSRdyGrp

OSRdyTbl

OSPrioHighRdy

外部可以调用的函数

PUBLIC 

OS_CPU_SR_Save

OS_CPU_SR_Restore

OSStartHighRdy

OSCtxSw

OSIntCtxSw;

//以上5个函数在os_cpu_c.c文件下有声明

PendSVC 

//此函数在stm3210x_it.c 

stm32f10x_it.h 

stm32f10x_vector.c文件下有声明

//***********************************************************************************************

PendSV 

所使用的几个寄存器

NVIC_INT_CTRL 

EQU 

0xE000ED04 

中断控制及状态寄存器

NVIC_SYSPRI14 

0xE000ED22 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 机械仪表

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1