如何编译第一个eCos应用程序

使用ECOS求解凸优化问题 凸优化库ECOS基本概念介绍以及基本使用流程。 阅读详情

这是一个给eCos初学者的简单说明,放在这里方便大家在下载和编译好eCos的库文件以后知道如何开始自己的eCos之旅。

(本文原创转载请注明出处)

环境配置

指定eCos repository和所需编译器的路径(其实这个也是要编译eCos库文件必须做的一个步骤)

PATH="/opt/ecos/gnutools/arm-eabi/bin:${PATH}" ;
PATH="/opt/ecos/ecos-tools/bin:${PATH}" ;
ECOS_REPOSITORY="/opt/ecos/ecos-hg/packages" ;


选择应用程序模板

在eCos的软件包中有一个examples目录

opt/ecos/ecos-hg/examples

里面有hello serial simple-alarm twothreads等几个参考应用程序,我们可以把这个目录copy到一个你想要开始eCos的一个地方。

我们现在看一下这个目录中的Makefile文件

# Mostly written by Jonathan Larmour, Red Hat, Inc.
# Reference to ecos.mak added by John Dallaway, eCosCentric Limited, 2003-01-20
# This file is in the public domain and may be used for any purpose



# Usage:   make INSTALL_DIR=/path/to/ecos/install


INSTALL_DIR=$$(INSTALL_DIR) # override on make command line


include $(INSTALL_DIR)/include/pkgconf/ecos.mak


XCC           = $(ECOS_COMMAND_PREFIX)gcc
XCXX          = $(XCC)
XLD           = $(XCC)


CFLAGS        = -I$(INSTALL_DIR)/include
CXXFLAGS      = $(CFLAGS)
LDFLAGS       = -nostartfiles -L$(INSTALL_DIR)/lib -Ttarget.ld


# RULES


.PHONY: all clean


all: hello twothreads simple-alarm serial


clean:
-rm -f hello hello.o twothreads twothreads.o
-rm -f simple-alarm simple-alarm.o serial serial.o
-rm -f instrument-test instrument-test.o


%.o: %.c
$(XCC) -c -o $*.o $(CFLAGS) $(ECOS_GLOBAL_CFLAGS) $<


%.o: %.cxx
$(XCXX) -c -o $*.o $(CXXFLAGS) $(ECOS_GLOBAL_CFLAGS) $<


%.o: %.C
$(XCXX) -c -o $*.o $(CXXFLAGS) $(ECOS_GLOBAL_CFLAGS) $<


%.o: %.cc
$(XCXX) -c -o $*.o $(CXXFLAGS) $(ECOS_GLOBAL_CFLAGS) $<


hello: hello.o
$(XLD) $(LDFLAGS) $(ECOS_GLOBAL_LDFLAGS) -o $@ $@.o


twothreads: twothreads.o
$(XLD) $(LDFLAGS) $(ECOS_GLOBAL_LDFLAGS) -o $@ $@.o


simple-alarm: simple-alarm.o
$(XLD) $(LDFLAGS) $(ECOS_GLOBAL_LDFLAGS) -o $@ $@.o


serial: serial.o
$(XLD) $(LDFLAGS) $(ECOS_GLOBAL_LDFLAGS) -o $@ $@.o


instrument-test: instrument-test.o
$(XLD) $(LDFLAGS) $(ECOS_GLOBAL_LDFLAGS) -o $@ $@.o


只要在编译的时候 make INSTALL_DIR=your_ecos_install_folder(指你编译好的ecos install的目录)就可以编译以上几个应用程序了。

其中 instrument-test是对eCos的kernel的一个测试,如果要编译这个应用程序需要你在eCos的配置中开打kernel测试选项。

如果你的ecos的install目录指定正确就可以生成hello twothreads simple-alarm serial几个可执行性文件了。


简单分析

下面几句话表示会把Makefile所在目录的.c,.cxx,.C,.cc文件编译成名字和原名相同扩展名为.o的目标文件(object file)

%.o: %.c
$(XCC) -c -o $*.o $(CFLAGS) $(ECOS_GLOBAL_CFLAGS) $<


%.o: %.cxx
$(XCXX) -c -o $*.o $(CXXFLAGS) $(ECOS_GLOBAL_CFLAGS) $<


%.o: %.C
$(XCXX) -c -o $*.o $(CXXFLAGS) $(ECOS_GLOBAL_CFLAGS) $<


%.o: %.cc
$(XCXX) -c -o $*.o $(CXXFLAGS) $(ECOS_GLOBAL_CFLAGS) $<


分析一下hello这个target,需要稍微的学下Makefile的规则,Makefile中以target为执行单元并且是顶行写的。

那么hello就是一个target,当Makefile顺序的执行到hello这里的时候会通过hello下面的这个以tab开始的命令串连接hello后面指定的.o文件。

如果你的项目中有多个文件,那么就应该写hello1.o hello2.o

$@ 表示最后生成的可执行文件的名字就是hello

hello: hello.o
$(XLD) $(LDFLAGS) $(ECOS_GLOBAL_LDFLAGS) -o $@ $@.o


在QEMU中测试

首先参考emboslab中的qemu编译方法编译出 qemu-system-arm.exe

然后可以写一个简单的bat脚本(这是一个cygwin在windows上qemu运行ecos的推荐方法)

qemu-system-arm.exe -M mini2440 -kernel %1 -show-cursor -serial file:CON
我们把它保存成run-mini2440.bat

这样当我们要仿真某个程序的时候只要 run-mini2440.bat 后面跟上你要运行的程序就可以了,不过这里有点需要注意。
因为在windows上我们要想从终端中看到程序的运行结果,必须在cmd终端上,意思就是说不能用xterm和mintty。


eCOS的开发环境的搭建(使用Cygwin) 在Windows平台使用Cygwin下载、编译及配置eCos。 立即下载

相关推荐

ecos 开发环境 搭建

ecos 开发环境搭建 交叉编译工具 windows cygwin 源码下载 配置工具下载

使用cygwin建立eCos开发环境(验证通过)

转至:http://velep.com/archives/750.html 本文主要介绍在cygwin中建立eCos开发环境。在开始之前,请先安装好cygwin,参考本博文章:cygwin介绍、安装及其使用的详细说明。 eCos开发环境除了cygwin外,还可在linux进行eCos开发,linux的eCos开发环境搭建请参考本博文章:ubuntu9.10中安装eCos并建立eCo

davidlinux的专栏 2769

eCos编译环境安装

详细描述了嵌入式系统bootloader引导eCos开发环境的安装。

ecos

好久没有来写了,最近变动太大。想看看ecos操作系统。linux和uclinux做嵌入式问题还是很大,内核过于庞大,不过在接触ecos的过程当中一直都很迷惑,当然和我没怎么仔细看有关系,不过我觉得一个主要的问题是,我以一个通用操作系统的思维来看待ecos,导致陷入了死角主要需要明白的问题有如下一些首先引导程序是怎么弄到板子上面的,以linux在pc上的思维来理解的话比如lilo和grub,这些往往

aaaaatiger--寻路 2785

从零构建MAVLink通信:PX4飞控与QGC的协议握手全解析

本文详细解析了PX4飞控与QGC地面站通过MAVLink协议进行通信的全过程,重点介绍了航点传输协议的状态机设计、INT类型消息的优化优势以及异常处理与调试技巧。通过实战案例和性能优化建议,帮助开发者高效构建无人机通信系统,提升数据传输效率与稳定性。

weixin_29209805的博客 504

SC8F073单片机串口通信保姆级教程:从寄存器配置到完整收发Demo(附避坑指南)

本文详细解析了SC8F073单片机串口通信的寄存器配置与调试技巧,涵盖TXSTA、RCSTA和SPBRG寄存器的逐位设置,提供精确的波特率计算方法和工业级抗干扰策略。通过完整的收发Demo和避坑指南,帮助开发者快速掌握底层串口通信技术,适用于工业控制等严苛环境。

weixin_33724046的博客 484

VM+ubuntu 安装ecos系统

1)获取ecos系统安装文件  ecos-install.tclwget --passive-ftp ftp://sources.redhat.com/pub/ecos/ecos-install.tcl2)运行安装文件sh  ecos-install.tcl3)选择下载的网址我选择的是15  直接在后面输入15即可4)选择安装文件夹回车  默认5)选择GNU Tools选择  【3】i386-el...

zxlin_的博客 871

Python爬虫实战:如何高效抓取拼多多商品信息、销量与价格数据,破解反爬虫挑战

**摘要:**本文介绍利用Python爬虫技术抓取拼多多商品数据(价格、销量等)的方法与应用价值。通过分析拼多多商品页面的HTML结构,使用Requests和Selenium获取数据,并应对反爬虫机制(IP代理、请求头伪装等)。数据可存储于MongoDB或CSV用于市场监控、竞品分析等场景。文章涵盖技术选型、实战代码示例及反爬策略,为电商数据分析提供实用指导。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1671

如何通过hg(水银)代码管理系统搭建完整的ecos源码平台

1. 官方下载ecos的方法ecos 的自由软件的官方网站是http://ecos.sourceware.org/我们可以从这个链接 http://ecos.sourceware.org/getstart.html 看到如何的安装和下载ecos的realse版本从这个链接http://ecos.sourceware.org/anoncvs.html 我们可以看到如何下载cvs版本cvs开发版本下载方法cvs -z3 -d :pserver:anoncvs@ecos.sourceware.org:/cvs/e

嵌入式虚拟系统实验室 4474

Unity UGUI深度优化

Unity UGUI优化相关

不定时分享所学所得,包括游戏开发和其他收获! 2717

4.7W防削顶单声道D类音频功率放大器HT6872介绍

HT6872是一款低EMI,防削顶失真,单声道免滤波D类音频功率放大器。在6.5V电源,10%THD+N,4Ω负载条件下,输出4.71W功率,在各类音频终端应用中维持高效率并提供AB类放大器的性能。

weichen_78的博客 4698

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万+

极智AI | 谈谈为什么卷积加速更喜欢 NHWC Layout

本文主要讨论一下为什么卷积加速更加喜欢 NHWC 的数据排布。

极智视界 2970

eCos 3.0的编译和运行

<br />上一篇把Redboot编译好后,还没有把eCos  跑起来,今天接着把后面的部分记录下来。<br /> <br />首先需要编译目标平台的库,我试过用Redboot编译出来的库是不行的,在Configure tool 里面新建一个工程vmware.ecc,然后进入模板选择i386 PC target(vmware) 下的default<br /><br /> <br />正常情况下,这个编译不会有问题,编译完后在vmware_install目录下产生include和lib两个目录,后面程序的编译

easonxiang的专栏 2447

如何在Ubuntu 22.04系统上安装CUDA 12.9

本文提供Ubuntu22.04系统上安装CUDA12.9的简明指南:1)确认已安装适配575驱动;2)清理旧版本后安装必需依赖库;3)通过deb包方式添加英伟达源并安装CUDA12.9工具包;4)配置环境变量;5)通过nvcc-V和nvidia-smi命令验证安装。文中包含常见问题解决方法及多显卡使用说明,全程约需10分钟完成安装。

2501_93651177的博客 1480

基于混合智能框架的景区边界范围预测与补全系统

摘要 本文提出一种混合智能框架,结合随机森林模型和GIS规则约束,解决景区边界缺失问题。系统基于Python和ArcGIS平台,利用多源地理空间数据训练随机森林分类器预测景区范围,并集成地形、水文、道路等GIS规则进行优化。实验结果表明,该方法能有效预测15000个景区的边界,精度优于单一模型。创新点在于: 1)数据驱动与知识驱动相结合的混合智能范式; 2)面向全国尺度的大规模边界补全; 3)提供完整的Python+ArcGIS实现方案。该系统为景区精细化管理提供了技术支撑,具有实用价值。

huanghm88的专栏 281

eCos 3.0中redboot的编译

最近项目需要用到eCos,由于硬件板还没有准备好,所以准备先把移植到虚拟机上跑起来。   eCos的官方文档很详细,地址如下:http://ecos.sourceware.org/docs-latest/,按照上面的步骤一步一步的来,中间也出了不少问题,把记录下来,方便以后查阅。   搭建环境基本上没有什么问题,我的环境是这样的:   系统:Ubuntu9.10 ECOS:3.0

easonxiang的专栏 3151

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

在vmware上运行ecos

目前关于在vmware虚拟机上运行ecos的文章应该是有,我会放到文章最后面的资源链接,所以写这篇文章的目的有两点,一是补充原有文章的不足,在实际操作中遇到的困难。 二是提供其中相关的资源链接,因为ecos大多是资源站点都在境外,下载的速度实在不咋地。 首先搞清楚ecos的系统结构,如图所示,其结构很像Linux的结构,所以在编译方式上也和linux相似,对于有Linux基础人上手就比较容易。主要...

遥远的星星 696

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

使用eCos图形化配置工具管理eCos应用程序

mingdu.zheng <at> gmail <dot> comhttp://blog.youkuaiyun.com/zoomdy/article/details/12908559 思路 eCos图形化配置工具可以说是eCos的核心和亮点之一。图形化配置工具为开发人员提供了模板、组件管理、配置、单元测试、自动生成Makefile等功能,同时提供了非常友好的操作界面和非常便捷的配置...

zoomdy's blog 2678

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

搭建ecos开发环境

<br />虽然可以按照ecos官方网站的文档说明来安装ecos的开发环境,但我仍然自己手动完成了ecos开发环境的建立,就算是练练手吧。<br /> <br />按照ecos文档的安装方法:<br /> <br />wget --passive-ftp ftp://ecos.sourceware.org/pub/ecos/ecos-install.tcl<br /> <br />sh ecos-install.tcl<br /> <br />手动安装:<br /> <br />1、下载ecos源码,用cv

newkelt的专栏 3904

使用eCos图形化配置工具管理eCos应用程序 .

mingdu.zheng gmail com http://blog.youkuaiyun.com/zoomdy/article/details/12908559 思路 eCos图形化配置工具可以说是eCos的核心和亮点之一。图形化配置工具为开发人员提供了模板、组件管理、配置、单元测试、自动生成Makefile等功能,同时提供了非常友好的操作界面和非常便捷的配置手段。 eCos图形化配置工具是

mrwangwang的专栏 1428

eCos学习之Redboot篇

首先声明,以下所用开发环境皆在ubuntu下,window用户请注意其中的差别。 1 开发环境的建立:  ubuntu下开发环境的建立是相当容易的事情。  首先下载安装所需的脚本,在ecos的官方网店上有。   wget --passive-ftp ftp://ecos.sourceware.org/pub/ecos/ecos-install.tcl 使用手册上建议安装在/opt目录下,对于ubu

嵌入式Linux开发@Python学习 3236

MT7628K eCos开发入门

MT7628K eCos开发入门

汽车以太网和SOA 3606

eCos

ECOS由Redhat推出的小型即时操作系统(Real-Time operating system),最低编译核心可小至10K的级别,适合用于作bootloader增强,微小型系统。此系统和嵌入式Linux系统的差异是他将操作系统做成静态连结(static library)的方式,让应用程式透过连结(linker)产生出具有操作系统的特性的应用程式。 转载自:http://www.se

760

eCos学习笔记(转自suncilang.21ic.org)

1、 编译一个 C、C++ 应用程序因为各个目标的编译选项各不相同,参考examples/Makefile 文件或“Global compiler flags” option (CYGBLD_GLOBAL_CFLAGS) 编写 Makefile文件; 2、 Debugging Techniques(调试技巧)A、Tracing;B、Kernel Instrumentation;Instrument

jeketl的专栏 1685

eCos配置工具在MSYS2上的编译方法

eCos配置工具在MSYS2上的编译方法 目录 1. 为什么要在MSYS2开发eCos2. 利用MingW64和MSYS2编译出可用的ecosconfig工具3. 利用ecosconfig在MingW64中编译ecos4. 结论 1 为什么要在MSYS2开发eCos eCos这样的操作系统,是从GNU的环境中诞生的。正因为如此,它最初的开发环境都是在Linux上

嵌入式虚拟系统实验室 2665
上一篇: eCos FrameBuffer driver
下一篇: 如何应用条件变量实现eCos字符设备驱动的阻塞读
知秋一叶
博客等级 码龄19年 196粉丝 68原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值