ucos学习笔记---001任务切换

这篇博客主要探讨了UCOS实时操作系统中任务切换的概念。从裸机程序的局限性出发,阐述了RTOS如何提供任务管理框架以提高CPU利用率和确保实时性。内容包括任务的内外在表现形式,以及任务切换原理,强调了任务状态数据如代码、数据区的独立性和栈空间的限制。
摘要由CSDN通过智能技术生成

001:

概述:裸机程序:单一的顺序执行代码结构----------缺点:实时性不能保证;CPU利用率不高

            RTOS:通用任务管理框架,用于控制任务的运行和任务

1.07:内核编程实践

 异常中断触发

main.c
    typedef struct _BlockType_t
    {
	unsigned long *stackPtr;
    }BlockType_t;
    BlockType_t *blockPtr;

    #define NVIC_INT_CTRL   0xE000ED04
    #define NVIC_PENDSVSET  0x10000000
    #define NVIC_SYSPRI2    0xE000ED22
    #define NVIC_PENDSV_PRI 0x000000FF

    #define MEM32(addr)  *(volatile unsigned long *)(addr)
    #define MEM8(addr)   *(volatile unsigned char *)(addr)
    void triggerPendSVC(void)
    {
	MEM8(NVIC_SYSPRI2)   = NVIC_PENDSV_PRI;  //
	MEM32(NVIC_INT_CTRL) = NVIC_PENDSVSET;   //触发
    }

    void delay(int count)
    {
	while(--count > 0);
    }
    int flag;
    unsigned long stackBuffer[1024];
    BlockType_t block;
    int main()
    {
	block.stackPtr 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值