如何编译第一个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

机器学习面试笔试求职必背!八股文(1/5)

算法工程师,技术软件类求职机器学习必背八股文 更多算法/业务/HR面等笔试题面试题 —— >个性签名自取! 1. 特征工程: 1.1 为什么要对特征做归一化处理: Feature scaling,常见的提法有“特征归一化”、“标准化”,是数据预处理中的重要技术。特征间的单位(尺度)可能不同,比如身高和体重,比如摄氏度和华氏度,比如房屋面积和房间数,一个特征的变化范围可能是[ 1000 , 10000 ] [1000, 10000][1000,10000],另一个特征的变化范围可能是[ −.

大厂offer宝典 1万+

一阶电路基础知识

一阶电路(First-order circuit)是指由一个电感(L)或一个电容(C)和一个电阻(R)组成的电路。根据电感或电容的位置,一阶电路可以分为RC电路、RL电路、LC电路、RLC电路。一阶电路常用于滤波、放大、时序控制等各种电子设备和系统中。通过调整电阻、电容或电感的数值,可以改变电路的频率响应、滞后/提前相位等特性,实现不同的功能和性能一阶、二阶电路区别一阶电路由一个电容或一个电感与一个电阻组成,而二阶电路则由两个电容或两个电感与一个电阻组成。

weixin_45365488的博客 1万+

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

用于可靠的钙钛矿薄膜瞬时光致发光模拟的拟合程序

简介 对光激发后的电荷载流子动态的研究对于确定太阳能电池的几个特性至关重要,例如,体和界面重组的数量以及向电荷传输层转移过程的速度。 瞬态光致发光(trPL)是用于研究这些特性的最流行的表征方法之一。 该实验是通过在样品上照射几纳秒的激光脉冲,并记录一段时间内的发光情况来进行的。辐射性重组的光生电荷载流子将引起太阳能电池的光子发射,而非辐射性重组的电荷载流子将不会对发光作出贡献。因此,可以测量到强度随时间递减的光致发光瞬态。(见图1表示trPL的测量和它的输出)。 图1. 一...

FluximAG的博客 2362

如何通过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

统信UOS服务器上,达梦DM8数据库安装避坑全记录(附大小写敏感设置)

本文详细介绍了在统信UOS服务器版上部署达梦DM8数据库的全过程,包括环境准备、安装流程、数据库实例初始化及关键参数配置,特别是大小写敏感设置的注意事项。提供了从系统配置到性能优化的完整指南,帮助用户避免常见问题,确保数据库稳定运行。

weixin_30647423的博客 332

Netapp FAS2750更换磁盘后不同步问题处理

netapp fas2750磁盘更换后不同步问题处理

jetliu05的博客 1256

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

不用公网IP!用Ollama+Chatbox搭建家庭AI助手(内网穿透方案对比)

本文详细介绍了如何利用Ollama和Chatbox在家庭局域网中搭建本地AI助手,无需公网IP即可实现内网穿透。通过对比不同穿透方案(如Tailscale、FRP等),提供最优配置建议,帮助用户低成本部署隐私安全的家庭AI系统,适用于智能家居、儿童教育等多种场景。

weixin_26765287的博客 460

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

Allegro负片层不显示反盘的原因和解决办法

在用Allegro做PCB设计的时候,负片设计是较为常用的一种方式,有时会出现打开负片层却看不到反盘的情况,如下图。如何才能看到反盘显示的效果,具体操作如下。负片层不显示反盘的原因和解决办法。L2层仍然只能看到盘。

weixin_54787054的博客 2160

Vue3 - 实现用户上传本地视频文件到服务器+上传进度条+暂停续传+中断取消上传等,视频上传后可在线播放预览已上传的视频,视频文件上传视频回显示例代码(支持Element、Antd等upload组件

实现视频上传和视频预览,vue3实现视频上传功能,上传视频回显,视频流上传播放功能,vue与axios上传视频并显示上传进度,upload组件实现视频文件上传视频回显,upload组件实现视频上传及进度条展示,视频上传及实时进度条显示,视频上传过程中如何中断上传,VUE3+element 上传视频,大文件分片上传+断点续传,axios大文件切片上传,Vue3上传视频后如何播放预览,上传本地视频到后端服务器及在线预览播放视频+移除视频+进度条上传,将已选视频上传服务端并可预览视频,详细实现选择视频并上传到服务

🏆 前端领域优质创作者 3113

eCos 3.0中redboot的编译

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

easonxiang的专栏 3151

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

在vmware上运行ecos

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

遥远的星星 696

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

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

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

zoomdy's blog 2678

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

搭建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、付费专栏及课程。

余额充值