eCos可配置性的一点解释

UCOS_II与ecos之对比 个人觉得用ecos更有前景,无论是从实时性,还是驱动支持(有网络驱动),以及功能上(支持文件系统),都比uCOS2强,尤其是其灵活,高效的可配置性。当然uCOS_II的确非常适合于用来学习嵌入式实时操作系统的原理。uCOS提供的支持太少,仅仅包括内核一点而且收费不便宜,光一个2.52的内核商用就要上W,不过用来学习操作系统原来倒是很不错的选择。μC/OS-IIμC/OS-II的前射 阅读详情

上周末参加了上海开源软件的活动,认识了RT-Thread的发起者,为身边有那么多技术的狂热者感到高兴。

他们在几年的时间把RT-Thread做的这么优秀真的很辛苦,在这里支持他们一下。

会议中讨论到了RTOS的配制性,觉得这个问题可以讨论的更清晰些,这里针对eCos可配置性的实现稍作介绍。

1.编译文件可配置

eCos操作系统是一个结构化相对清晰的RTOS,按照不同的功能把系统的分为若干组件,这些组件分布在eCos代码的不同目录中。
通过eCos的CDL配置脚本,可以选择那些组件那些文件需要编译到eCos系统中。
因为这个配置是文件级别的,我认为这部分是编译的文件可配置。

这里如果我们在配置界面中把Nano-X Server/Client方式选择后,就可以把nano-x的代码加入到eCos的microwindows中了

图形配置界面


CDL代码的实现
	cdl_component CYGBLD_MICROWINDOWS_NANOX_SERVER {
	    display   "Nano-X Server/Client"
	    default_value 1
	    implements CYGBLD_MICROWINDOWS_NANOX_SETUP
	    # NANO X
            compile					\
            nanox/srvmain.c				\
            nanox/srvfunc.c				\
            nanox/srvutil.c				\
            nanox/srvevent.c			\
            nanox/srvclip.c				\
            nanox/srvnet.c				\
            nanox/clientfb.c			\
            nanox/client.c				\
            nanox/error.c				\
            nanox/nxdraw.c				\
            nanox/nxproto.c				\
            nanox/nxutil.c

2.预编译可配置

我所提到的预编译主要是指我们通常所说的预编译宏,我们可以在代码中根据这些宏定义决定在程序中编译那部分代码。

图形配置界面


实现配置的脚本

    description "Touch screen driver for the MINI2440"
	cdl_option CYGPKG_DEVS_TOUCH_BLOCKREAD {
        display       "touch driver is blockread method"
 		flavor		    bool
        default_value	0
        description "
        This option modifies the touch driver read method to blockread or not."
    }

代码中是如何根据配置来编译的

static Cyg_ErrNo 
ts_lookup(struct cyg_devtab_entry **tab, 
          struct cyg_devtab_entry *st, 
          const char *name)
{
    if (!_is_open) {
        _is_open = true;
		
#if CYGPKG_DEVS_TOUCH_BLOCKREAD
		cyg_drv_mutex_init(&res_lock);
		cyg_drv_cond_init(&res_wait,&res_lock);
#endif

       cyg_drv_interrupt_create(CYGNUM_HAL_INTERRUPT_ADC,
                             0,
                             (CYG_ADDRWORD)0,
                             cyg_mini2440_ts_isr,
                             cyg_mini2440_ts_dsr,
                             &ts_thread_handle,
                             &ts_thread_data);
       cyg_drv_interrupt_attach(ts_thread_handle);
       cyg_drv_interrupt_unmask(CYGNUM_HAL_INTERRUPT_ADC);
    }
    return ENOERR;
}

3.编译选项的可配置

有时候为了提高运行效率或者打开编译器的某些调试选项,我们常常要为编译器加入特定的参数。

比如 -O2 为GCC加入2级优化, -g 开启调试选项,在编译好的可执行文件中加入更多的调试信息。

配置界面


实现配置脚本

cdl_component CYGPKG_MICROWINDOWS_OPTIONS {
        display "Build options"
        flavor  none
        no_define
        description   "
	    Package specific build options including control over
	    compiler flags used only in building this package,
	    and details of which tests are built."


        cdl_option CYGPKG_MICROWINDOWS_CFLAGS_ADD {
            display "Additional compiler flags"
            flavor  data
            no_define
            default_value { "-I$(PREFIX)/include/microwin -D__ECOS=1 -DMSDOS=0 -DELKS=0 -D__rtems__=0 -D_MINIX=0 -DNOTYET=0 -DUNIX=1 -DHAVE_FILEIO -DHAVE_BMP_SUPPORT=1 -DHAVE_PNM_SUPPORT=1 -DHAVE_XPM_SUPPORT=1 -DxHAVE_JPEG_SUPPORT=1 -DHAVESELECT=1" }
            description   "
                This option modifies the set of compiler flags for
                building the MicroWindows package.
                These flags are used in addition to the set of global flags."
        }

        cdl_option CYGPKG_MICROWINDOWS_CFLAGS_REMOVE {
            display "Suppressed compiler flags"
            flavor  data
            no_define
            default_value { "" }
            description   "
                This option modifies the set of compiler flags for
                building the MicroWindows package.
                These flags are removed from the set of global flags
                if present."
        }
    }


Ecos操作系统:嵌入式实时系统的开源源代码学习指南 Ecos操作系统是一种开源的实时操作系统(RTOS),旨在为嵌入式系统提供高效、灵活的解决方案。作为专为资源受限的嵌入式环境设计的操作系统,Ecos以其高度可定制性和模块化设计著称,使其适用于多种硬件和应用场景。Ecos支持多种处理器架构,使得系统能够覆盖从简单嵌入式系统到复杂的多核处理器平台。实时性(Real-time)指的是系统对于外部事件在规定时间内做出响应的能力。硬实时系统必须满足绝对的时间限制,例如飞机控制系统; 阅读详情

相关推荐

eCos RTOS

介绍了嵌入式可配置操作系统的应用和结构,以及在实际中各行各业的应用情况

eCos 多线程RTOS简略介绍及与其他OS的比较

randman 发表于 2006-6-16 11:52:00 eCos 多线程RTOS简略介绍及与其他OS的比较: 1. eco

aaaaatiger--寻路 4148

ECOS3.0实时操作系统windows版的压缩包下载

由于上传容量受限这里只上传了ECOS3.0系统的压缩包,如果需要更多的相关的压缩包(400M左右),请访问下面的链接 这个链接给出的压缩包有ECOS3.0的windows版和linux版的压缩包,以及不同处理器的开发交叉编译工具toolchain和windows下的unix模拟环境cygwin的安装程序 http://blog.sina.com.cn/s/blog_574d08530100ezt9.html 优快云下载提示:下载完优快云资源后,立刻给下载的资源评分加评论(缺一不可),就可以返还下载扣去的积分1分,理论上讲优快云可以一直下载

主流嵌入式操作系统(RTOS)有哪些?看看这14种 

满足实时控制要求的嵌入式操作系统(RTOS)操作系统,以下介绍14种主流的RTOS,分别为μClinux、μC/OS-II、eCos、FreeRTOS、mbed OS、RTX、Vxworks、QNX、NuttX,而国产的嵌入式操作系统包括都江堰操作系统(djyos)、Alios Things、Huawei LiteOS、RT-Thread、SylixOS。 下面分别介绍这十四种种嵌入式操作系统的特点。 1、μClinux μClinux是一种优秀的嵌入式Linux版本,其全称为micro-contro

yb_52798321的博客 1万+

FreeSWITCH彩铃与回铃音区别详解:从183/180信令到mod_da2检测模块

本文深入解析FreeSWITCH中彩铃与回铃音的技术差异,从183/180信令机制到mod_da2智能检测模块的实现原理。通过对比SIP协议中的早期媒体传输、回铃音补偿技术及实战案例,帮助开发者掌握VoIP系统中的关键音频处理技术,提升呼叫系统稳定性和用户体验。

tree8的博客 348

Tecplot进阶:巧用公式与多Frame对比,实现CFD多工况数据差异的可视化分析

本文详细介绍了如何利用Tecplot进行CFD多工况数据差异的可视化分析,通过公式计算和多Frame对比,实现变量差值自动计算、多视图同步展示和差异量化统计。文章还提供了数据准备、基础操作、实战技巧和常见问题解决方案,帮助工程师高效完成CFD后处理工作。

weixin_29227425的博客 528

eCos、RTEMS、RT-Thread、FreeRTOS在中文书籍方面的比较

mingdu.zheng <at> gmail <dot> comhttp://blog.csdn.net/zoomdy/article/details/8914656 通过在当当网、博库网、亚马逊、京东搜索操作系统名称查找相应的书籍, 以中文书籍作为比较面对eCos、RTEMS、RT-Thread、FreeRTOS这四种开源的实时操作系统进行比较。 比...

zoomdy's blog 9411

基于ESP32的摩托车蓝牙对讲系统开发实践

蓝牙音频传输技术在现代通信中扮演着重要角色,其核心原理是通过无线射频实现数字音频信号的双向传输。在工程实践中,蓝牙HFP协议常用于语音通信场景,而ESP32等嵌入式平台因其低成本和高集成度成为DIY项目的理想选择。本项目通过ESP32-WROOM-32D开发板结合PCM5102 DAC和INMP441数字麦克风等模块,构建了一套摩托车骑行专用的蓝牙对讲系统。该系统特别针对高速移动环境下的风噪抑制和连接稳定性进行了优化,采用数字信号处理技术实现实时降噪,并通过I2S接口确保音频质量。这种方案不仅成本控制在30

weixin_33239721的博客 414

14种主流的RTOS 单片机操作系统~来学!

哈哈

qq_41854911的博客 8433

反向代理的隐形陷阱:为何你的HTTPS请求会降级为HTTP?

本文深入探讨了Nginx反向代理中HTTPS降级为HTTP的隐形陷阱及其安全风险,分析了五大降级诱因,包括协议信息丢失、重定向配置错误等,并提供了完整的防御性配置方案和实战指南,帮助开发者确保Web应用的安全性。

kotlin6android的博客 453

基于深度学习的柠檬等级检测系统 —— YOLOv8 + UI界面 + 数据集

本项目的目标是构建一个柠檬等级检测系统,通过深度学习模型自动检测柠檬的等级。自动检测柠檬等级:通过图像中的柠檬特征,自动判断其成熟度和质量。实时视频检测:通过摄像头实时监控柠檬的质量等级。用户友好的UI界面:为用户提供简洁直观的操作界面,支持图像上传、实时视频检测等功能。本项目展示了如何基于YOLOv8模型开发一个柠檬等级检测系统,结合PyQt5实现了用户友好的UI界面。通过该系统,用户可以快速上传柠檬图像并自动识别其等级,极大提升了检测效率和准确性。数据集的扩展。

YOLO 1111

关于STM32 FLASH上运行ecos的内存配置的一点解释

最近很多网友问了关于STM32上运行ecos失败的一些问题,这里简要回答。 1、选择运行方式 cortexm3的ecos,有三种运行方式ram, rom和jtag ram和jtag是用于调试的,ram方式会把你的执行代码也放到ram中,jtag的代码放在rom中,这个内存模板主要是为了解决jtag连接不上的问题。 rom运行就是我们最后完成项目时候烧入到norflash中运行的方式,代码需

嵌入式虚拟系统实验室 5454

PyTorch深度学习实战(24)——使用U-Net架构进行图像分割

图像分割 (Image segmentation) 是计算机视觉领域中的一个重要任务,旨在将图像划分为具有语义信息的不同区域或对象。与目标检测任务不同,图像分割要求像素级别的精确定位和分类,将每个像素标记为属于哪个类别或属于哪个区域。在本节中,我们将介绍图像分割的基本概念,并训练一个基于 U-Net 架构的图像分割模型。

盼小辉丶的博客 1万+

BRCM eCos下的编译及问题

王鑫宇 2015.7.15 一、引 我们一般编译ecos如下: (1)Make PROFILE=16MB oldconfig (2)Make OK了,产能了个ecos_lzma.trx 升级就行了。 比较奇它是如何产生的,产能的过程,组成的部分。如同Linux下,生成升级文件 ,只需要产生 vmlinuxz-lzma , target.squashfs 再用 BRCM的 trx工具一绑,过程还是很清楚的。 但eCos就摸不到头脑了,因为整个eCos就是一个大的可执行文件。 最近感觉一直脑袋痛

王鑫宇的博客 1万+

OpenClaw用户必看:每天0成本使用OpenClaw!NVIDIA NIM免费大模型接入教程

🚀 OpenClaw接入NVIDIA NIM免费API!glm5、minimax-m2.5等大量模型任选,0成本升级AI助手!💰

XiaoqiangClub的博客 5574

基于STM32L4XX、HAL库的ESP32-S3-WROOM-1-N4 WIFI模块驱动程序设计

/ 检查是否收到完整的一行(以\r\n结尾)// 例如: 解析AT命令响应或MQTT消息等。// UART2初始化已在CubeMX中配置。// USART2初始化函数(由CubeMX生成)// 缓冲区溢出,重置。// 如果需要等待响应。// 处理接收到的数据。// 处理接收到的数据。// 等待ESP32模块启动。// 主循环其他任务。// 启用UART全局中断。// 发送HTTP GET请求。// 发送AT测试命令。// 连接Wi-Fi。// UART中断回调函数。

zhusl6688的博客 286

eCos精典概要

转载地址:http://www.devbone.com/LeadBBS/Announce/Announce.asp?BoardID=100&ID=2247eCos 簡介介紹redboot 前,先介紹eCos 這套針對嵌入式系統所設計的即時作業系統。eCos(Embedded Configurable Operating System),是個開放原碼的軟體,開發者可用GNU 開放源碼發展工具

aaaaatiger--寻路 1562

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

eCos编译配置说明

 前两篇实验讲了如何build一个redboot,从VMWARE启动。这次,要解释一些相关配置的过程。eCos最重要特点就算是可配置(Configurable )了。所以,现在我们就看看它是怎么配置的。一、基本概念1 package在eCos里,每一组源码的集合成为package,一个package,由一些源代码文件构成,实现一个独立的功能。 还有比package更小的单位

3222

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

linux 下安装ecos开发环境,虚拟实验室eCos开发环境的配置(Linux)

1.下载eMBosLab发布的eCos源代码git clone git://emboslab.git.sourceforge.net/gitroot/emboslab/rtems-4.9.5-emboslab /opt/ecos/ecos-hg"/opt/ecos/ecos-hg" 表示你需要放置的目录,请自行设置2.下载eCos最新ARM编译器点击 arm-eabi 得到 arm eabi的编译...

weixin_39929877的博客 492

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

eCos编译配置说明 - [编译配置]

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://redboot.blogbus.com/logs/19874250.html 前两篇实验讲了如何build一个redboot,从VMWARE启动。 这次,要解释一些相关配置的过程。 eCos最重要特点就算是可配置(Configurable )了。所以,现在我们就看看它是怎么配置的。 一、基本概念 1

mrwangwang的专栏 2830

虚拟实验室eCos开发环境的配置 (Linux)

1.下载eMBosLab发布的eCos源代码git clone git://emboslab.git.sourceforge.net/gitroot/emboslab/rtems-4.9.5-emboslab /opt/ecos/ecos-hg" /opt/ecos/ecos-hg" 表示你需要放置的目录,请自行设置2.下载eCos最新ARM编译器点击 arm-eabi 得到 arm eabi的编译器,解压到 /opt/ecos/gnutools/arm-eabi/“/opt/ecos/gnutool

嵌入式虚拟系统实验室 7543

ubuntu 下达建eCos开发环境

网上找来找去,安装和使用ecos3.0的文档很少,也本着让自己记住和熟练的目的,记下本文。(系统环境:Ubuntu 8.10)1.首先安装Tcl解释器和libstdc++5:myz@ubuntu:~/work$sudo apt-get install tcl8.5 libstdc++52.然后按照ecos官网提示,下载文件ecos-install.tcl:

jianxiang54321的专栏 4364

eCos中的main函数

mingdu.zheng <at> gmail <dot> comhttp://blog.csdn.net/zoomdy/article/details/12622843 eCos提供了标准的main函数支持,这给程序移植提供了便利,函数原型 int main(int argc, char* argv[]); 输入参数通过CYGDAT_LIBC_ARGU...

zoomdy's blog 2069

php ecos框架,ECOS模板制作详细手册ForEcstoreShopexport.doc

ECOS模板制作详细手册ForEcstoreShopexportECOS模板制作详细手册For Ecstore、Shopexport目录概述1模板机制中的名词解释2挂件区域(widgets)2挂件(widget)2边框(border)2系统级区域(main)2默认模板页 (default.html)2创建一个模板包4标准模板包必要的文件41. theme.xml4每个模板页将用到的公共页面引用 (...

weixin_32657693的博客 204

UCOS_II与ecos之对比(转)

个人觉得用ecos更有前景,无论是从实时性,还是驱动支持(有网络驱动),以及功能上(支持文件系统),都比uCOS2强,尤其是其灵活,高效的可配置性。当然uCOS_II的确非常适合于用来学习嵌入式实时操作系统的原理。uCOS提供的支持太少,仅仅包括内核一点 而且收费不便宜,光一个2.52的内核商用就要上W,不过用来学习操作系统原来倒是很不错的选择。 μC/OS-II μC/OS-II的前射

mrwangwang的专栏 6063

eCos组件初始化

mingdu.zheng <at> gmail <dot> comhttp://blog.csdn.net/zoomdy/article/details/12754709 eCos组件初始化机制 eCos组件初始化利用了C++静态对象实例初始化的机制。C++对象在初始化时不像C语言中的静态变量那样只是在特定的内存单元写入特定的数值,C++对象在初始化时将会调用该对象类的...

zoomdy's blog 2246
上一篇: 如何应用条件变量实现eCos字符设备驱动的阻塞读
下一篇: eCos 3.0 版本和cvs版本的 arm-eabi toolchains的编译方法
知秋一叶
博客等级 码龄19年 196粉丝 68原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值