自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一个人要像一支队伍

大海可以容纳百川,而队长则收藏各种旁门左道

  • 博客(10)
  • 资源 (1)
  • 收藏
  • 关注

原创 CoOS使用教程——中断、裁剪、移植

1、中断。在CoOS下,只使用了M3内核的时钟滴嗒和PendPV,两个中断。这说明了,其它中断可以跟裸机开发一样使用,只要中断服务函数不出问题,就不影响内核调度。注意:在中断服务函数中,不能使用CoPostSem()等函数,而使用isr_PostSem()。此外,这些内核函数(如:isr_PostSem()、isr_PostMail()、isr_PostQueueMail()、

2015-12-22 23:20:54 1936 1

原创 CoOS使用教程——软件定时器

CoOS下可以使用软件定时器,不过跟我们使用STM32下的时钟滴嗒不同,它可以通过函数指针来使用回调函数,可以降低代码的耦合度。具体效果如下图所示,而printf下的转义字符\n不起作用,极有可能是软件定时器的bug。1、CoCreateTmr(),创建软件定时器。OS_TCID CoCreateTmr(U8 tmrType, U32 tmrCnt, U

2015-12-22 20:44:02 1965

原创 CoOS使用教程——消息队列

因为消息邮箱不能存放超过一条消息,所以才弄了个消息队列,这样,不需要使用互斥量了。消息队列可以存放多条消息。具体效果跟使用互斥量的消息邮箱是一样的,如下图所示:1、CoCreateQueue(),创建一个消息队列OS_EventID  CoCreateQueue(void **qStart, U16 size ,U8 sortType);qStart

2015-12-22 18:58:15 1057

原创 CoOS使用教程——消息邮箱

消息邮箱是一种任务间通信的机制,用起来跟QQ、163的邮箱差不多。但是CoOS下的消息邮箱只能存放一条消息,所以我这里用了互斥量,以免出错。最终效果如下图所示:1、CoCreateMbox(),创建一个消息邮箱。OS_EventID CoCreateMbox(U8 sortType);sortType是在多任务中,使用多个消息邮箱时候,内核需要对

2015-12-22 18:36:06 1413

原创 CoOS使用教程——事件标志

CoOS提供了一个事件标志的机制,用起来跟信号量差不多。1、CoCreateFlag(),创建一个事件标志OS_FlagID   CoCreateFlag (BOOL bAutoReset,BOOL bInitialState);bAutoReset,为0表示手动复位,为1表示自动复位。bInitialState,为0表示初始状态是未就绪的,为1表示已就绪。

2015-12-22 17:40:12 1779 1

原创 CoOS使用教程——互斥量

在介绍互斥量之前,先说说什么是临界资源。最经典的临界资源就是打印机,在你同时让打印机打印两分文档的时候,会弹出一个窗口,上面列出打印队列。这就是说,打印机只有一个,它无法同时打印两个文档,只能排队,一个个地打。如果同时打印的话,会出错,这不是用户想要的结果。同样的,在单片机里面,串口1,也是个临界资源,为了不让它出错,必须使用互斥量。所谓互斥,就是互相排斥,任务A在使用串口1的

2015-12-22 16:43:52 1064

原创 CoOS使用教程——任务的状态

CoOS中,任务有四种状态,分别是:就绪态、运行态、等待态、休眠态。为什么要分不同的状态?目的就为了把CPU让给更有需要的任务,比如,你打开一个浏览器,又打开一个游戏(需要全屏),这样在你玩游戏的时候,就让浏览器这个任务挂起,以进入等待状态。然后整个CPU都在为游戏服务,而不会出现卡顿现象。同样的原理,也能运用在单片机当中。1、CoGetCurTaskID(),

2015-12-22 15:50:20 1291

原创 CoOS使用教程——信号量

可能你还对信号量这个名词感到些陌生,其实你在Windows下经常使用信号量,比如:Esc键就发出一个信号,它可以通知某个进程去关闭当前的窗口。那么,你也可以让按键(或其它东西)发出一个信号,使单片机去做某些事情。在CoOS下使用信号量也是非常简单的。具体步骤:创建信号量->发出信号量->处理信号量。1、信号量是怎样实现的?是使用PV操作。在任务A中使

2015-12-22 15:07:15 1290

原创 CoOS使用教程——第一个工程

CoOS跟uCOS ii差不多,也是个小型的操作系统,可以用在单片机上面。而CoOS已经给我们移植在Cortex M0、M3、M4,这三种内核上了,所以我们用起来很方便。当然,使用之前需要添加CoOS组件,其中整个系统,也就只有OsConfig.h(裁剪用的)需要修改的,其它都不用改。而OsConfig.h默认支持M3内核,所以本次示例不需要修改它。下面介绍在M3内核下

2015-12-22 11:58:53 7699 3

原创 COIDE下重定向printf

在STM32下,可能需要重定向printf到串口,而COIDE下提供了重定向printf的组件,使用起来是相当方便的。先add这个组件,然后在printf.c下稍加修改即可使用了。如果在COIDE上无法修改printf.c的话,可以使用其它编辑器,如:sublime。先添加串口的头文件。然后,修改PrintChar函数,让它使用串口发送数据。此外

2015-12-21 18:59:41 1499

空空如也

空空如也

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

TA关注的人

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