也许是先入为主的原因,时钟用不惯Keil环境,大多数的教程都是拿keil写的,尝试将官方的uc/os iii 移植到IAR环境. 1.首先尝试从官网上下载的官方移植的代码,编译通过,但是执行会报堆栈溢出警告(为何keil没有报堆栈溢出??),网上有人说不用理会,但是实际使用时发生了错误(定义的常量数组值被改变,怀疑是堆栈溢出导致),发现使用的IAR版本不能完美支持使用的STM32芯片,换用高版本测试..(高版本正确,与低版本对芯片的支持有关) 2.开始时虽然会堆栈溢出,但是能够进入异常中断,进入…
关于移植uC/OS-III 网上已经有很多教程了此处只是做个记录 首先下载源码然后解压得到下面的文件: 然后在模版工程里新建各种文件夹: 最后全部都添加进工程: OK了,编译一下,惊呆了,竟然 0错误 0 警告 然后修改下文件 startup_stm32f40xx.s DCD DebugMon_Handler ; Debug Monitor Handler DCD 0 ; Reserved ;DCD PendSV_Handler ; PendSV Handler ;DCD SysTick_Han…
多值信号量和和互斥信号量主要用来标志事件是否发生和协调资源的访问.如果要给资源赋予内容进行传递, 信号量就力有所不及了.这时候就需要用到 uC/OS 操作系统的另一个内核机制了,那就是消息队列. 2.原理 如果想要使用消息队列,就必须事先使能消息队列. 消息队列的使能位于“os_cfg.h”. 消息队列的消息都是从消息池获取的. 消息队列可以有一个或多个,但消息池却只有一个. 当有消息队列要发布消息时, 就从消息池(OS_MSG 类型数组的元素依次组成的单向列表)获取一个元素用于存放消息,并将该…
1.使用消息队列 消息队列函数: 函数名 功能 OSQCreate() 创建一个消息队列 OSQDel() 删除一个消息队列 OSQFlush() 清空一个消息队列 OSQPend() 任务等待消息 OSQPendAbort() 任务被不再等待该消息 OSQPost() 提交一个消息给消息队列 任务中消息队列函数: 函数名 功能 OSTaskQPend() 等待一个消息 OSTaskQPendAbort() 任务被不再等待该消息 OSTaskQPost() 发送一个消息给任务 OSTaskQFl…
1.任务的消息队列 uC/OS-III在任务中内建了一个消息队列.用户可以直接发送消息给任务而不通过外部消息队列. 这个特性不仅简化了代码, 还提供了效率.每个任务都内建一个消息队列. uC/OS-III中与任务消息队列相关的服务都是以OSTask???()开头的. 设置OS_CFG.H中的OS_CFG_TASK_EN使能任务的消息队列服务. 与任务消息队列相关的代码在OS_TASK.C中. 2.双向通信 两个任务可以通过两个消息队列同步,这叫做双向通信, 这两个任务间可能互相发送消息给对方.…
消息传递 有些情况下任务或ISR与另一个任务间进行通信,这种信息交换叫做作业间的通信. 可以有两种方法实现这种通信: 全局变量. 发送消息. 1.果使用全局变量,任务或ISR就须确保它独占该变量.如果防止被ISR嵌套, 那么就只有关中断这种方法来保护这个变量. 如果是任务间共享该变量, 那么可以通过关中断. 锁调度器. 信号量. mutex保护该变量. 需注意的是: 任务与ISR通信只能通过全局变量. 如果全局变量被ISR改变, 任务将不会知道全局变量被改变,除非该任务检测该变量或者ISR标记任…
在V3.0版本的Web(Mvc.WebForm)与WinForm中我们新增了“消息管理”模块.“消息管理”模块是对框架的所有消息进行管理.通过左侧的消息分类可以查看所选分类的所有消息列表.在主界面上我们还可以发送消息.广播消息.标记消息为已读以及删除指定消息,非常的方便. 欲了解V3.0版本的相关内容可查看下面的链接地址. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.0 版本发布 RDIFramework.NET — 基于.NET的快速信息化系统开发框架 — 系列…
一.写在前面的话   当用户发送消息给公众号时(或某些特定的用户操作引发的事件推送时),会产生一个POST请求,开发者可以在响应包(Get)中返回特定XML结构,来对该消息进行响应.   消息推送也是微信公众号开发更为有趣的功能,涉及到文本消息.图片消息.语音消息.视频消息.音乐消息以及图文消息.并且最为有趣的功能当属消息加解密了,当然由于篇文章篇幅的原因我会在下一篇文章中去着重说明. 二.微信消息管理 1.捕获消息信息   在文章的第一句话中,为我们指明了微信消息产生的请求方式为 POST,因…
1.概述 在微信用户和公众号产生交互的过程中,用户的某些操作会使得微信服务器通过事件推送的形式通知到开发者在开发者中心处设置的服务器地址,从而开发者可以获取到该信息.其中,某些事件推送在发生后,是允许开发者回复用户的,某些则不允许 我们在上一篇微信公众号开发C#系列-6.消息管理-普通消息接受处理中讲到,微信的消息可以大体分为两种类型,一种是包括:文本,语音,图片等的普通消息,另一种就是本篇要将的事件类型.包括:关注/取消关注事件,扫描带参数二维码事件,上报地理位置事件,自定义菜单相关事件等,本…
1.概述 通过前面章节的学习,我们已经对微信的开发有了基本的掌握与熟悉,基本可以上手做复杂的应用了.本篇我们将详细讲解微信消息管理中普通消息的接收与处理.当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上.接收普通消息微信官方文档参考:接收普通消息文档API 消息接收后,就有一个处理或回复的过程,单单发送消息了没有响应也是不人性化的,下面我们就对接收到微信各类型消息分别讲解处理的方法. 2.消息接收 当普通微信用户向公众账号发消息时,微信服务器会先接收…