
UCOS
liukais
这个作者很懒,什么都没留下…
展开
-
UCOS-II之字节对齐问题 sprintf
用到ucos这个操作系统,简单容易移植,占用资源少。一般来说,在ucos上运行标准C函数应该是没有什么问题的。这时候问题就出现了 当ucos运行到Cortex-M3上时候,这个时候使用sprintf进行浮点数格式化输出的时候就会有些问题,无法正常输出浮点数,操作系统也会停止运行,处于崩溃状态。 操作系统崩溃有很多原因,我遇到的两个原因是:堆栈溢出和数据对齐。不知道首先遇到的是哪个问题,如果使用MD转载 2017-01-26 17:38:30 · 2592 阅读 · 1 评论 -
uc/os程序设计点滴记录
任务有切换,但切换到某个任务,总是出现hardfault错误? 【现象:给出错的任务换一个大小一样但名字不一样的堆栈就可以,使用原来名字的堆栈就是出错】 解决: 查看hardfault寄存器,找到出错的原因–>提示是fault上报导致查看其它的fault寄存器,发现是用法fault–>具体为异常返回时试图非法加载EXC_RETURN到PC…明确中断发生时使用的堆栈是PSP还是MSP转载 2017-08-08 20:37:44 · 434 阅读 · 0 评论 -
使用uc/os开发要明确的几个堆栈
uc/os启动前的堆栈和uc/os启动后的堆栈 1、uc/os启动前所使用的堆栈 该堆栈为启动文件第一行指定的堆栈,在IAR中,由人工指定该堆栈的大小,标号为CSTACK。在keil中只好像没看到。其位置由编译器指定,一般是紧跟静态存储区的末尾。 在处理器的启动代码中,在向量表首部放置CSTACK指针 DCD sfe(CSTACK)11 M3复位启动后第一件事就是转载 2017-08-08 20:39:01 · 666 阅读 · 0 评论 -
初学者EFM32上移植uC/OSII
前言 之前大学接触过uc/os,大学开了ARM这门课程,用的是周立功的教材,好像是大四开的,你懂的,实验只带手不带脑,复制–编译–下载–嘿,灯亮了–走人。 最近在接触EFM32系列MCU,就想弥补一下大学的遗憾。为时间4天的准备和移植工作终于完成,还是,嘿灯亮了。 硬件:EFM32G890F128 IDE : IAR 准备工作 两本书:Cortex-M3权威指南,uc转载 2017-08-08 20:41:08 · 664 阅读 · 0 评论 -
ucos在M3中的中断嵌套机制
M3的中断控制器特性 可嵌套中断支持的作用范围很广,覆盖了所有的外部中断和绝大多数系统异常。外在表现是,这些异常都可以被赋予不同的优先级。当前优先级被存储在xPSR的专用字段中。当一个异常发生时,硬件会自动比较该异常的优先级是否比当前的异常优先级更高。如果发现来了更高优先级的异常,处理器就会中断当前的中断服务例程(或者是普通程序),而服务新来的异常——即立即抢占。 在CM3内核以及NVI转载 2017-08-08 20:42:01 · 755 阅读 · 1 评论