
实时操作系统
eCos,FreeRTOS,Zephyr
半斗米
嵌入式系统设计师 & 电子工程师
展开
-
从源码生成 Zephyr 文档
生成的过程大约需要10分钟。pdf 格式的文档生成失败,html 格式的文档生成成功。原创 2019-05-09 11:06:03 · 1030 阅读 · 0 评论 -
Ubuntu 16.04 配置 zephyr 1.14 开发环境
Ubuntu 16.04 环境下配置 zephyr 1.4 开发环境,主要参考官方文档,解决部分依赖包的版本太低的问题。原创 2019-04-28 10:47:49 · 1414 阅读 · 1 评论 -
Protothreads 和 FreeRTOS Coroutine 的对比
Protothreads 和 FreeRTOS Coroutine 都实现了协程(Coroutine),但在实现的具体细节上是有很大的区别的,这里做个对比,以便做选择。原创 2019-05-08 11:53:11 · 1401 阅读 · 0 评论 -
学习FreeRTOS(2):初始化阶段的中断状态
学习FreeRTOS(2):初始化阶段的中断状态分析FreeRTOS的Cortex-M4F移植版(portable/GCC/ARM_CM4F)在初始化阶段CPU中断状态的变化。复位后中断默认处于开启状态,当创建第一个任务时中断被关闭,开启调度器时重新开启中断。总体上也适用于其它Cortex-M,部分细节可能略有差别。http://blog.youkuaiyun.com/zoomdy/article/d...原创 2017-01-29 22:16:59 · 3794 阅读 · 0 评论 -
学习FreeRTOS(1):实验环境
学习FreeRTOS(1):实验环境FreeRTOS实验环境:指导手册《Mastering the FreeRTOS Real Time Kernel A Hands-On Tutorial Guide》;开发板NUCLEO-F303K8;代码生成器STM32CubeMX;集成开发环境TrueSTUDIO。http://blog.youkuaiyun.com/zoomdy/article/detail...原创 2017-01-29 09:50:37 · 1180 阅读 · 0 评论 -
学习FreeRTOS(3):两种中断
学习FreeRTOS(3):两种中断典型情况下,程序进入临界区将关闭所有中断。FreeRTOS则提供了一种机制,在进入临界区时仅关闭部分中断,另一部分中断可以继续响应。这种机制让系统享有多任务特性的同时保证极高的实时性。http://blog.youkuaiyun.com/zoomdy/article/details/50659822 mingdu.zheng at gmail dot com...原创 2016-02-21 10:03:53 · 7572 阅读 · 1 评论 -
解决eCos系统的lwIP存在的bug,该bug导致TCP重发失效,最终导致TCP拒绝服务
跑 eCos + lwIP 的设备作为 TCP 服务器,在网络不繁忙不丢包的情况下,一切正常,在网络繁忙会出现丢包的情况下,重试几次后 TCP 拒绝服务(对 SYN 包都不会有任何响应, ping 功能可能正常也可能无响应),其它任务正常。原因是少了一个定时器,TCP 超时处理需要定时器。原创 2020-11-21 18:53:31 · 1985 阅读 · 2 评论 -
eCos需要Synthetic虚拟目标板的理由
mingdu.zheng <at> gmail <dot> comhttp://blog.youkuaiyun.com/zoomdy/article/details/8914419eCos提供了Synth虚拟目标板(Synthetic Target),为什么要使用虚拟目标板呢?1.在没有硬件的条件下学习eCoseCos是非常优秀的嵌入式操作系统,如果希望学习e...原创 2013-05-11 15:00:18 · 1320 阅读 · 0 评论 -
eCos、RTEMS、RT-Thread、FreeRTOS在中文书籍方面的比较
mingdu.zheng <at> gmail <dot> comhttp://blog.youkuaiyun.com/zoomdy/article/details/8914656通过在当当网、博库网、亚马逊、京东搜索操作系统名称查找相应的书籍, 以中文书籍作为比较面对eCos、RTEMS、RT-Thread、FreeRTOS这四种开源的实时操作系统进行比较。比...原创 2013-05-11 16:05:27 · 9232 阅读 · 7 评论 -
eCos Synthetic实践(一)——Hello World!
mingdu.zheng <at> gmail <dot> comhttp://blog.youkuaiyun.com/zoomdy/article/details/89169671.简介eCos提供了Linux Synthetic Target,通过Synthetic Target可以将eCos应用作为一个普通进程在Linux系统内运行, 这既提供了体验eCos的机会...原创 2013-05-12 14:51:05 · 3183 阅读 · 0 评论 -
eCos Synthetic实践(二)——简单外设
mingdu.zheng <at> gmail <dot> comhttp://blog.youkuaiyun.com/zoomdy/article/details/89434801.简介Synthetic Target同样包含多种硬件设备,当然它们都是虚拟的, 其中一部分设备通过Linux系统调用就可以实现,不需要I/O辅助进程的参与, 这类设备包括Disk、ADC、...原创 2013-05-18 12:17:34 · 2512 阅读 · 0 评论 -
eCos Synthetic实践(三)——I/O辅助进程
mingdu.zheng <at> gmail <dot> comhttp://blog.youkuaiyun.com/zoomdy/article/details/91012911.简介I/O辅助进程为eCos Synthetic提供不能简单通过系统调用实现的设备模拟。 I/O辅助进程为eCos和虚拟设备之间提供了标准接口,通过该接口可以模拟数据读写和中断。 I/O辅...原创 2013-06-15 14:31:33 · 1864 阅读 · 0 评论 -
eCos编译Synthethic Target程序时无法解析__sprintf_chk的解决办法
mingdu.zheng <at> gmail <dot> comhttp://blog.youkuaiyun.com/zoomdy/article/details/10615853官方已解决此问题:详见:http://hg-pub.ecoscentric.com/ecos/rev/a1df75458e13问题描述:在Xubuntu 12.04下编译eCos Sy...原创 2020-12-07 15:09:20 · 4073 阅读 · 0 评论 -
eCos Synthetic实践(四)——网络和VNC服务器
mingdu.zheng <at> gmail <dot> comhttp://blog.youkuaiyun.com/zoomdy/article/details/112953411.简介实现eCos Synthetic网络意味着可以在Linux系统下验证、调试eCos协议栈和网络应用,例如http服务等。实现VNC服务器相当于为eCos实现了显示器、鼠标和键盘,这使得在验证...原创 2013-09-07 10:53:36 · 1786 阅读 · 0 评论 -
eCos疑问——两个cyg_user_start函数
mingdu.zheng <at> gmail <dot> comhttp://blog.youkuaiyun.com/zoomdy/article/details/12622639两个cyg_user_start函数在阅读eCos代码的过程中发现整个系统定义了两个cyg_user_start函数,一个位于packages /infra /<version> ...原创 2013-10-11 19:51:22 · 2473 阅读 · 0 评论 -
eCos仿真目标机(1)——简介
原文:http://ecos.sourceware.org/docs-latest/ref/synth.html译文:http://blog.youkuaiyun.com/zoomdy/article/details/8887459mingdu.zheng <at> gmail <dot> com通常情况下,eCos运行在针对特定应用定制的板子上,或者是最终的板子出来之前就能够...翻译 2013-05-05 18:23:49 · 1639 阅读 · 0 评论 -
eCos中的externC和__THROW
mingdu.zheng <at> gmail <dot> comhttp://blog.youkuaiyun.com/zoomdy/article/details/88848251.externCeCos中使用C++源文件组织的需要给C代码调用的函数均添加了externC或__externC。 例如:(kernel/../src/intr/intr.cxx:33...原创 2013-05-04 20:14:26 · 1547 阅读 · 0 评论 -
eCos的HAL接口采用宏定义形式的优势
mingdu.zheng <at> gmail <dot> comhttp://blog.youkuaiyun.com/zoomdy/article/details/8884820eCos的HAL接口为eCos其它组件提供访问硬件的统一接口,所有的HAL接口都是以宏定义的形式提供的, 采用宏定义的形式有如下优势:1.实现接口的形式是多样化的实现接口的形式是多样...原创 2013-05-04 20:13:31 · 1771 阅读 · 0 评论 -
在Windows 7下配置eCos开发环境的问题和解决方法
在Windows 7系统下配置eCos开发环境时碰到一些问题,权限的问题和fork的问题,这里总结一下解决方法以便需要的朋友参考。我的环境是Windows 7 SP1,64位,中文,旗舰版,Cygwin-1.7.28 32位,eCos配置工具ecos-tools-bin-120425.cygwin.tar.bz2,GCC编译器ecoscentric-gnutools-arm-eabi-200812...原创 2014-03-01 10:32:37 · 3125 阅读 · 0 评论 -
eCos入门开发环境eCosBox简介
eCosBox是集成了eCos开发所需的所有开发工具及源代码的虚拟机映像。eCosBox的基本目标是为eCos初学者提供一个简单便捷的入门途径,同时也可以作为一般的eCos开发环境使用。eCos官网:http://ecos.sourceware.orgeCos中文技术网:http://www.52ecos.neteCos交流QQ群:144940146。http://blog.csdn.n...原创 2015-05-17 07:56:58 · 11502 阅读 · 0 评论 -
eCosBox使用说明(1)——快速入门
下载运行eCosBox,并开始调试第一个eCos示例应用——星星点灯原创 2015-05-17 09:38:02 · 3514 阅读 · 0 评论 -
eCosBox搭建过程
这里记录了eCosBox的搭建过程,一方面做个记录免得自己忘记,另一方面给需要自己搭建eCos开发环境的同学做个参考。如果对VirtualBox不熟,请下载已经创建好的虚拟机映像,请阅读《eCosBox使用说明(1)——快速入门》eCos官网:http://ecos.sourceware.orgeCos中文技术网:http://www.52ecos.neteCos交流QQ群:144940...原创 2015-05-17 07:55:10 · 2504 阅读 · 0 评论 -
eCosBox文档集
简介eCos入门开发环境eCosBox简介使用说明eCosBox使用说明(1)——快速入门推荐阅读《嵌入式可配置实时操作系统eCos软件开发》京东当当 《嵌入式可配置实时操作系统eCos开发与应用(第2版)》京东当当 《嵌入式系统编程:使用C和GNU开发工具(第2版)》京东当当更多内容eCosBox搭建过程...原创 2015-05-10 15:31:14 · 1514 阅读 · 0 评论 -
eCos 动态内存分配简介
mingdu.zheng <at> gmail <dot> comhttp://blog.youkuaiyun.com/zoomdy/article/details/88234281.eCos 动态内存分配简介动态内存分配是实现复杂算法的基础组件,eCos 提供了4种动态内存分配组件, 分别为:固定长度块分配、可变长块分配、元数据分离的可变长块分配,传统的 malloc...原创 2013-04-19 12:51:47 · 2523 阅读 · 0 评论 -
eCos嘀嗒定时器
mingdu.zheng <at> gmail <dot> comhttp://blog.youkuaiyun.com/zoomdy/article/details/88698431.概述嘀嗒定时器(Tick)是操作系统的核心部件之一,操作系统使用嘀嗒定时器实现时间片轮、延时、超时判断等特性。 本文介绍eCos系统中的嘀嗒定时器的使用和实现,以及需要考虑的一些问题。...原创 2013-04-30 16:17:05 · 4636 阅读 · 0 评论 -
eCos内核API与内核实现的衔接
mingdu.zheng <at> gmail <dot> comhttp://blog.youkuaiyun.com/zoomdy/article/details/8884815eCos内核API是以C函数以及C结构体的形式提供的,eCos的内核是使用C++类实现的,kernel/.../src/common/kapi.cxx将C++类实现衔接到C函数及C结构体,实现C...原创 2013-05-04 20:12:16 · 1629 阅读 · 0 评论 -
为eCos安装扩展组件包
mingdu.zheng <at> gmail <dot> comhttp://blog.youkuaiyun.com/zoomdy/article/details/11830209eCos组件包是以epk为扩展名的本质上为按照指定规则组织目录和文件的tar.gz文件。类似于Linux系统的rpm和deb软件包,可以为eCos安装第三方epk组件包。这里以NAND Flash组件包为...原创 2013-09-19 14:22:30 · 1933 阅读 · 0 评论 -
eCos中的main函数
mingdu.zheng <at> gmail <dot> comhttp://blog.youkuaiyun.com/zoomdy/article/details/12622843eCos提供了标准的main函数支持,这给程序移植提供了便利,函数原型int main(int argc, char* argv[]);输入参数通过CYGDAT_LIBC_ARGU...原创 2013-10-11 20:07:05 · 1937 阅读 · 0 评论 -
eCos中的同步原语简要
eCos提供的同步原语包括信号量、互斥量、条件变量、事件标志、邮箱以及消息队列。每种同步原语都有特别之处,不同的同步原语满足了应用对不同的线程间同步和消息传递需求。eCos官网http://ecos.sourceware.org,eCos中文技术网http://www.52ecos.net,eCos交流QQ群144940146。mingdu.zheng<at>gmail<...原创 2014-02-15 19:29:51 · 2059 阅读 · 0 评论 -
eCos系统的VSR支持(VSR Support)
eCos系统为应用开发人员提供了抽象的中断处理机制,在这种抽象机制的帮助下,应用开发人员不需要知道特定硬件架构的中断机制就可以编写中断处理函数(ISR),但是这种机制会增加中断延迟,如果某个中断的实时性要求非常高,eCos可以提供替换掉这种机制直接处理中断从而最小化中断延迟的解决办法。eCos官网:http://ecos.sourceware.orgeCos中文技术网:http://www...翻译 2014-02-15 20:30:19 · 1643 阅读 · 0 评论 -
内核——eCos内核概览
转载自:http://blog.youkuaiyun.com/bakiya/article/details/2329124,原文是对eCos参考手册内核简介部分的翻译,英文原文:http://ecos.sourceware.org/docs-latest/ref/kernel-overview.html。eCos官网:http://ecos.sourceware.orgeCos中文技术网:http:/...转载 2014-02-15 20:58:49 · 2015 阅读 · 0 评论 -
eCos系统的lwIP驱动及lpc2xxx网卡驱动bug的解决办法
eCos系统的lwIP驱动存在一个bug,该bug导致用于数据发送同步的信号量计数值不断增长,当超出32位整数所能表示的最大值时将会从0xffffffff回滚到0,这时可能会导致lwIP协议栈核心线程永久挂起。eCos官网:http://ecos.sourceware.orgeCos中文技术网:http://www.52ecos.neteCos交流QQ群:144940146。http:/...原创 2014-02-22 10:32:32 · 2871 阅读 · 0 评论 -
eCos模块动态加载支持——objloader组件
eCos包含了2个用于模块动态加载的组件,一个叫loader,另一个叫objloader。loader出现比较早,在2000年的时候由eCos的开发团队添加到eCos系统中,loader的实现原理与应用程序的动态链接库(.so,.dll)是一样的,动态链接库的实现需要编译器的支持,通常情况下只有为Linux等系统准备的编译器才支持动态链接库编译,eCos使用的编译器大多数是不支持动态链接库的。ob...原创 2014-02-23 18:02:09 · 3160 阅读 · 0 评论 -
支持Cortex-M处理器的objloader组件
objloader是eCos系统提供的用于支持模块动态加载的组件,经过移植后,现已支持Cortex-M处理器架构。eCos官网:http://ecos.sourceware.orgeCos中文技术网:http://www.52ecos.neteCos交流QQ群:144940146。http://blog.youkuaiyun.com/zoomdy/article/details/20200355m...原创 2014-03-01 09:41:35 · 2025 阅读 · 0 评论 -
I/O辅助进程用户界面——控制I/O辅助进程
eCos是功能完备的开源实时操作系统,eCos提供的仿真目标机可以将eCos系统作为Linux下的进程执行,这为学习和开发eCos都提供了便捷。本文是eCos参考手册仿真目标机部分的第4节,其它章节在这里。eCos官网:http://ecos.sourceware.orgeCos中文技术网:http://www.52ecos.neteCos交流QQ群:144940146。原文:http...翻译 2014-03-15 18:30:20 · 1746 阅读 · 0 评论 -
eCos仿真目标机(eCos Linux Synthetic Target)
eCos官网:http://ecos.sourceware.orgeCos中文技术网:http://www.52ecos.neteCos交流QQ群:144940146。原文:http://ecos.sourceware.org/docs-latest/ref/hal-synth-arch.html译文:http://write.blog.youkuaiyun.com/postedit/1712396...翻译 2014-03-15 18:32:54 · 1400 阅读 · 0 评论 -
eCos系统无法正确链接到在C++源文件中自定义的cyg_user_start函数的问题和解决办法
在C++源文件中定义cyg_user_start函数前,将其声明成C函数,即可解决问题。eCos官网:http://ecos.sourceware.orgeCos中文技术网:http://www.52ecos.neteCos交流QQ群:144940146。http://blog.youkuaiyun.com/zoomdy/article/details/39396085mingdu.zheng&...原创 2014-09-19 11:39:36 · 1411 阅读 · 0 评论 -
Cygwin环境使用第三方ARMGCC编译eCos系统
第三方ARMGCC通常是基于Mingw32的,使用的是Windows路径,如C:\ecos\packages\infra\current\src\startup.cxx;而eCos配置工具生成的Makefile是基于Cygwin的,使用的是POSIX路径,如/cygdrive/c/packages/infra/current/src/startup.cxx。路径格式上的差别导致不能直接使用第三方A...原创 2014-09-25 16:28:38 · 2631 阅读 · 2 评论 -
eCos移植到Cortex-M7执行swi 0导致异常
mingdu.zheng at gmail dot com http://blog.youkuaiyun.com/zoomdy/article/details/78623283问题描述eCos移植到Cortex-M7后,每次运行到hal_reset_vsr函数的swi指令就会产生异常(IACCVIOL),连接仿真器进行单步调试则没有问题。解决办法在hal_reset_vsr函数的sw...原创 2017-11-24 12:52:37 · 750 阅读 · 0 评论 -
J-Link仿真Cortex-M架构eCos停留在swi 0的解决办法
mingdu.zheng <at> gmail <dot> comhttp://blog.youkuaiyun.com/zoomdy/article/details/17590097解决办法下载完程序之后在GDB中输入monitor reset对MCU进行复位即可解决问题,查看J-Link GDB Server的输出窗口是否有Resetting target字样,只有出现该字样...原创 2013-12-26 19:48:40 · 2293 阅读 · 1 评论