当前位置:首页 » 编程软件 » ecos第一个程序怎么编译

ecos第一个程序怎么编译

发布时间: 2023-05-18 02:33:38

‘壹’ 嵌入式c语言重点知识点

嵌入式C语言重点知识点

嵌入式linux

嵌入式Linux 是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。Linux做嵌入式的优势,首先,Linux是开放源代码;其次,Linux的内核小、效率高,可以定制,其系统内核最小只有约134KB;第三,Linux是免费的OS,Linux还有着嵌入式操作系统所需要的很多特色,突出的就是Linux适应于多种CPU和多种硬件平台而且性能稳定,裁剪性很好,开发和使用都很容易。同时,Linux内核的结构在网络方面是非常完整的,Linux对网络中最常用的TCP/IP协议有最完备的支持。提供了包括十兆、百兆、千兆的以太网络,以及无线网络,Token Ring(令牌环网)、光纤甚至卫星的支持。

移植步骤:

1.Bootloader的移植;

2.嵌入式Linux操作系统内核的移植;

3.嵌入式Linux操作系统根文件系统的创建;

4.电路板上外设Linux驱动程序的编写。

WinCE

WinCE是微软公司嵌入式、移动计算平台的基础,它是一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统,它是精简的Windows 95,Win CE的图形用户界面相当出色。WinCE是从整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。它的模块化设计允许它对于从掌上电脑到专用的工业控制器的用户电子设备进行定制。操作系统的基本内核需要至少200K的ROM。

一般来说,一个WinCE系统包括四层结构:应用程序、WinCE内核映像、板级支持包(BSP)、硬件平台。而基本软件平台则主要由WinCE系统内核映像(OS Image)和板卡支持包(BSP)两部分组成。因为WinCE系统是一个软硬件紧密结合的系统,因此即使CPU处理器相同,但是如果开发板上的外围硬件不相同,这个时候还是需要修改BSP来完成一个新的BSP。因此换句话说,就是WinCE的移植过程主要是改写BSP的过程。

Android

Android 是一个包括操作系统,中间件以及一些重要应用程序的专门针对移动设备的层次结构的软件集。Android 作为一个完全开源的.操作系统,是由操作系统Linux、中间件以及核心应用程序组成的软件栈。通过 android SDK 提供的 API 以及相应的开发工具, 程序员可以很方便的开发android平台上的应用程序。其整个系统由应用程序,应用程序框架,应用程序库,Android运行库,Linux内核(Linux Kernel)五个部分组成。Android操作系统内置了一部分应用程序, 包括电子邮件客户端、SMS程序、日历、地图、浏览器、通讯录以及其他的程序,值得一提的是这些所有的程序都是用java编写的。

移植的主要的工作是驱动,硬件抽象层的移植。为了更好地理解和调试系统,也应该适当地了解上层对硬件抽象层的调用情况。

TinyOS

TinyOS是一个开源的嵌入式操作系统,它是由加州大学的伯利克分校开发出来的,主要应用于无线传感器网络方面。程序采用的是模块化设计,所以它的程序核心往往都很小,一般来说核心代码和数据大概在400 Bytes左右,能够突破传感器存储资源少的限制。TinyOS提供一系列可重用的组件,一个应用程序可以通过连接配置文件(A Wiring Specification)将各种组件连接起来,以完成它所需要的功能。

嵌入式实时操作系统(RTOS)

在工业控制、 军事设备、航空航天等领域对系统的响应时间有苛刻的要求,这就需要使用实时系统。当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的嵌入式操作系统。故对嵌入式实时操作系统的理解应该建立在对嵌入式系统的理解之上加入对响应时间的要求。

FreeRTOS

FreeRTOS是一个迷你操作系统内核的小型嵌入式系统。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能等,可基本满足较小系统的需要。FreeRTOS任务可选择是否共享堆栈,并且没有任务数限制,多个任务可以分配相同的优先权。相同优先级任务的轮转调度,同时可设成可剥夺内核或不可剥夺内核。

FreeRTOS 的移植主要需要改写如下三个文件。

1.portmacro.h

2.port.c

3. port.asm

μTenux

μTenux基于ARM微控制器平台,对uT最适用于ARM Cortex M0-M4系列的微控制器,代码开源、免费,是一个功能强大的抢占式实时多任务操作系统。μTenux除具有实时嵌入式操作系统的一般特性:可移植性,可固化,可裁剪等特性以外,它还具有如下优点:

(1)微内核。无MMU, ROM/RAM占用量小,所占ROM最大60KB,最小10KB;RAM最大12KB,最小2KB;

(2)开源免费;

(3)支持所有32位ARM7/9和Cortex M系列的微控制器;

(4)可配置多达到256个任务以及140个任务优先级;

(5)有良好的商业支持, T-Engine论坛进行总的维护。

移植主要包括:芯片系统时钟移植,外设移植和通用输出/输入端口的移植以及看门狗模块移植。由于考虑到内核代码的重要性以及其在整个移植中的重要意义,且为了整个系统有更好的实时性,可选用汇编语言编写操作系统的启动代码。

VxWorks

VxWorks系统提供多处理器间和任务间高效的信号灯、消息队列、管道、网络透明的套接字。实时系统的另一关键特性是硬件中断处理。为了获得最快速可靠的中断响应,VxWorks系统的中断服务程序ISR有自己的上下文。VxWorks实时操作系统由400多个相对独立的、短小精炼的目标模块组成,用户可根据需要选择适当模块来裁剪和配置系统,这有效地保证了系统的安全性和可靠性。系统的链接器可按应用的需要自动链接一些目标模块。这样,通过目标模块之间的按需组合,可得到许多满足功能需求的应用。

移植过程可以参考网络上一些BSP代码,BSP的英文全称为board support package,即板级支持包,它的作用是针对特殊的硬件平台,为VxWorks内核提供操作的接口。

μClinux

嵌入式Linux作为一个开放源代码的操作系统,以价格低廉、功能强大又易移植的特性正在被广泛应用,μClinux是专门针对没有MMU的处理器而设计的嵌入式Linux,非常适合中低端嵌入式系统的需求。 在GNU通用公共许可证的授权下,μClinux操作系统的用户可以使用几乎所有Linux的API函数,不会因为没有内存管理单元MMU而受到影响;而且,μClinux在标准的Linux基础上进行了适当的裁剪和优化,形成了一个高度优化的、代码紧凑的嵌入式Linux,体积小了,但是仍然保留了Linux的大多数的优点,比如稳定性好、强大的网络功能、良好的可移植性、完备的文件系统支持功能、以及标准丰富的应用程序接口API等,可以支持类似ARM7TDMI等类型多的小巧玲珑的中央处理器。

eCos

eCos中文翻译为嵌入式可配置操作系统或嵌入式可配置实时操作系统。适合于深度嵌入式应用,主要应用对象包括消费电子、电信、车载设备、手持设备以及其他一些低成本和便携式应用。eCos是一种开发源代码软件,无任何版权费用。 eCos最大的特点是模块化,内核可配置。如果说嵌入式Linux太庞大了,那么eCos可能就能够满足要求。它是一个针对16位、32位和64位处理器的可移植开放源代码的嵌入式RTOS。和嵌入式Linux不同,它是由专门设计嵌入式系统的工作组设计的。eCos具有相当丰富的特性和一个配置工具,后者能够让你选取你所需要的特性。

eCos的软件分了若干的模块,移植工作主要在他的hal层进行,所谓hal(硬件抽象层)就是把和硬件相关的软件凑到一起。

μC/OS-II

μC/OS-II是一个完整的、可移植、可固化、可裁剪的占先式实时多任务内核。μC/OS-II绝大部分的代码是用ANSI的C语言编写的,包含一小部分汇编代码,使之可供不同架构的微处理器使用。其结构小巧简洁且支持抢占式的多任务调度与管理。此实时操作系统管理任务数多达64个,且提供内部程序存储器管理、系统运行时间管理、多任务实时调度与管理等功能。由于它的作者占用和保留了8个任务,所以留给用户应用程序最多可有56个任务。赋予各个任务的优先级必须是不相同的。这意味着μC/OS-II不支持时间片轮转调度法。μC/OS-II为每个任务设置独立的堆栈空间,可以快速实现任务切换。

将μC/OS-II操作系统移植到目标处理器上,需要从硬件和软件两方面来考虑。硬件方面,目标处理器需满足以下条件:

①处理器的C编译器能产生可重入代码;

②用C语言可以开/关中断;

③处理器支持中断,并且能够产生定时中断(通常在10~1000 Hz之间);

④处理器能够支持容纳一定量数据的硬件堆栈;

⑤处理器有将堆栈指针和其他寄存器读出和存储到堆栈或内存中的指令。

软件方面,主要是一些与处理器相关的代码移植,其分布在OS_CPU.H、OS_CPU_C.C和OS_CPU_A.ASM这3个不同的文件中。


‘贰’ cygin不会用啊!帮忙!

它是在Windows下的编译环境,在LINUX下没用过。

ARM编译环境建立说明
安装需要的文件
Ecos目录和ecos_tools目桐启录.
其中ecos_tools目录中包括cygwin安装目录,ecosV1.3.1目录,arm-elf编译环境.
安装建议
1. 建议cygwin和ecos安装路径都单独安装在硬盘的盘符的根目录下,例如:d:\cygwin,d:\ecos
2. 安装cygwin和ecos需要大概800M左右空间.
安装cygwin
1. 进入ecos_tools目录下面的cygwin目录,运行setup.exe.
2. 点击下一步,在(图一)所示的选项中选择第三项(install from local directory)

(图一)
3. 点击下一步,在(图二)所示的窗口中填入安装路径,Default Text File Type选择局族如DOS即可,然后点击下一步,安装的源路径默认即可.

4. 点击下一步,出现的窗口让用户选择安装哪些包,这些包主要是确定开发环境,编译工具等,如果不能确定具体需要哪些包的话,而硬盘空间足够的情况下,就选择全部安装。在出现的对话框的''All''的右边点击''Default'',直到变成''Install'',如(图三)所示,然后进行安装即可.

(图三)

安装cygwin下的ARM-elf编译环境
1. 在安装好的cygwin目录里建立tools目录,例如安装的路径穗搜为d:\cygwin,那么建立tools目录即为d:\cygwin\tools.
2. 进入ecos_tools目录下的toolchain目录,解压缩arm-elf-big-endian.zip文件压缩包,然后把解压缩的arm-elf整个目录拷贝到安装的cygwin目录下的tools目录中,形成比如d:\cygwin\tools\arm-elf.
3. 打开安装的cygwin目录ect目录下面的profile文件,找到export PATH="/usr/local/bin:/usr/bin:/bin:$PATH",然后修改为export PATH="/usr/local/bin:/usr/bin:/bin:/tools/arm-elf/bin:$PATH"即可.
安装ECOS环境
1. 运行ecos_tools目录下1.3.1目录中的eCos131.exe.根据安装提示安装ECOSV1.3.1
2. 安装完毕后,把ecos目录中所有内容拷贝到安装后的ecos目录中进行覆盖.
3. 拷贝ecos_tools目录中的tcl82.dll文件到安装的cygwin目录的bin目录中.
4. 拷贝ecos_tools目录中x文件和rpx文件到安装后的ecos目录中.
5. 运行windows程序菜单中的Red Hat eCos里面的Configuration Tool,出现如(图四)所示的配置窗口.

(图四)
6. 选择build菜单中的Repository,在如(图五)所示的弹出的窗口中配置目录,点击browse按钮,选择安装的ecos目录,然后点击ok按钮.

(图五)
7. 选择tools菜单中的paths菜单,选择paths菜单中的build tools子菜单,在如(图六)所示的弹出窗口中配置目录,点击browse按钮,选择安装的cygwin目录中的tools目录下面的arm-elf目录下的bin目录,然后点击Ok按钮.

(图六)
8. 选择tools菜单中的paths菜单,选择paths菜单中的user tools子菜单,在如(图七)所示的弹出窗口中配置目录,点击browse按钮,选择安装的cygwin目录中bin目录,然后点击Ok按钮.

(图七)
9. 选择tools菜单中的shell子菜单,如果能弹出类似dos窗口的窗口,那么说明第6,7,8步配置正确,否则请重新设置路径.
10. eCos使用“/c”、“/d”等表示硬盘“c:”和“d:”,因此必须在选择shell菜单弹出窗口中执行下述命令:$ mount –f c:/ /c
$ mount –f d:/ /d
可以使用下述命令进入相应得硬盘:
$ cd /c
$ cd /d
11. 另外1.3.1版本的ecos配置工具产生的Makefile中的目录路径总是带双斜杠,如//D/eCos之类,可以用rpx这个script来校正;重新编辑rpx文件,修改安装eCos的目录,save退出。
12. 在shell中进入eCos目录./x,然后回车; ./rpx回车。注意:每次修改eCos程序进行编译之前,都要运行./rpx,否则出现//D/eCos目录带双斜杠的错误。
13. 在eCos目录下,新建一个文件夹,把boot.ecc和download.ecc文件拷到此文件夹目录下。
14. 运行Red Hat eCos,调用boot.ecc,如果此时./rpx,然后编译boot.ecc,就会出现错误,如找不到hal.h等文件,因此要先改动boot.ecc的一个选项,然后再改回,就是说让它有一个存盘的操作,eCos配置工具就会自动在boot.ecc的同一个目录下生成boot_build、boot_install、boot_mlt文件夹。然后编译就不会出错误了。
15. boot_build文件夹里存放着用于对eCos进行编译时所生成的文件,包括makefile文件、目标文件和其他一些文件;boot_install存放用于编译eCos应用程序的所有文件,包括库文件libtrget.a和头文件;boot_mlt存放内存布局文件。
16. 更改应用程序的makefile文件,把PKG_INSTALL_DIR指到boot_install目录,然后在shell中make,把生成的bin文件烧到片子里就可以了。到此ok。
注意:1、应用程序有两种运行方式,写片子方式和下载方式。(1)应用程序和操作系统捆绑运行,也就是把应用程序文件夹中的makefile文件修改,makefile文件中的PKG_INSTALL_DIR指到boot.ecc生成的boot_install文件夹,存盘;在shell中,进入应用程序目录,make后回车,编译生成的bin文件烧到片子里运行即可。(2)用/ecos/boot目录下的makefile文件,更改此文件中的PKG_INSTALL_DIR指到boot.ecc生成的boot_install文件夹;用make编译生成的bin文件烧到片子里运行,此时片子里没有应用程序;然后更改应用程序所在目录的makefile文件,修改此文件使PKG_INSTALL_DIR指到download_install文件夹,存盘,在shell下进入应用程序文件夹,make后回车,把生成的bin文件拷到ecos目录下,通过fftp.exe工具下载应用程序到板子上。
2、用make成功编译一次后,就会生成.o等过程文件,当下次再make时,就会出错,因此需要make clean,清除编译过程文件。
3、用fftp.exe工具下载时,一定去掉防火墙。

‘叁’ 嵌入式实时操作系统的特点

嵌入式实时操作系统应用十分广泛,包括数据通信、信息家电、航空航天、工业控制、生物医学电子、船舶工程、计算机外设、电信设备、交通运输、国防武器控制等领域,已经形成IT产业争夺的重点领域,它所带来的工业年产值已超过1万亿美元。在嵌入式系统开发中使用嵌入式实时操作系统已成为一种不可逆转的潮流与时尚。

1 背景

随着计算机技术的迅速发展和芯片制造工艺的不断进步,嵌入式系统的应用日益广泛:从民用的电视、手机等电路设备到军用的飞机、坦克等武器系统,到处都有嵌入式系统的身影。在嵌入式系统的应用开发中,采和嵌入式实时操作系统(简称RTOS)能够支持多任务,使得程序开发更加容易,便于维护,同时能够提高系统的稳定性和可靠性。这已逐渐成为嵌入式系统开发的一个发展方向。

2 嵌入式操作系统概述

嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件。它是嵌入式系统(包括硬、软件系统)极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器Browser等。嵌入式操作系统具有通用操作系统的基本特点,如能够有效管理越来越复杂的系统资源;能够把硬件虚拟化,使得开发人员从繁忙的驱动程序移植和维护中解脱出来;能够提供库函数、标准设备驱动程序以及工具集等。与通用操作系统相比较,嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。

嵌入式系统的出现至今已经有30多年的历史。纵观嵌入式技术的发展过程,大致经历了四个阶段。

(1)无操作系统的嵌入式算法阶段

这一阶段的嵌入式系统是以单芯片为核心的系统,具有与一些监测、伺服、指示设备相配合的功能。一般没有明显的操作系统支持,而是通过汇编语言编程对系统进行直接控制。主要特点是系统结构和功能都相对单一,针对性强,无操作系统支持,几乎没有用户接口。

(2)简单监控式的实时操作系统阶段

这一阶段的嵌入式系统主要以嵌入式式器为基础、以简单监控式操作系统为核心。系统的特点是:处理器种类繁多,通用性比较弱;开销小,效率高;一般配备系统仿真器,具有一定的兼容性和扩展性;用户界面不够友好,主要用来控制系统负载以及监控应用程序运行。

(3)通用的嵌入式实时操作系统阶段

以通用型嵌入式实时操作系统为标志的嵌入式系统,如VxWorks、pSos、Windows CE就是这一阶段的典型代表。这一阶段嵌入式系统的特点是:能运行在各种不同的微处理器上;具有强大的能用型操作系统的功能,如具备了文件和目录管理、多任务、设备驱动支持、网络支持、图形窗口以及用户界面等功能;具有丰富的API和嵌入式应用软件。

(4)以Internet为标志的嵌入式系统

伴随着通用型嵌入式实时操作系统的发展,面向Internet网络和特定应用的嵌入式操作系统正日益引起人们的重视,成为重要的发展方向。嵌入式系统与Internet的真正结合、嵌入式操作系统与应用设备的无缝结合代表着嵌入式操作系统发展的未来。

3 两种源码开放的RTOS

嵌入式实时操作系统有很多,如VxWorks、PalmOS、WindowsCE等。这些操作系统均属于商品化产品,价格昂贵且由于源泉代码不公开导致了诸如对设备的支持、应用软件的移植等一系列的问题;而开放源码的RTOS在成本和技术上有其特有的优势,在RTOS领域占有越来越重要的地位,本文将介绍μC/OS-II和eCos两种优秀的源码公开的实时操作系统,通过对它们各自的特点和性能进行分析和比较,给出相关的数据,为选择一种合适的RTOS提供参考。

3.1 μC/OS-II

μC/OS-II的前射是μC/OS,最早出自于1992年美国嵌入式系统专家Jean J.Labrosse在《嵌入式系统编程》杂志的5月和6月刊上刊登的文章连载,并把μC/OS的源码发布在该杂志的BBS上。当时就有500多人下载了这份源码。世界上数以千计的工程技术人员将μC/OS应用到了各个领域,如照相机业、发动机控制、网络接入设备、高速公路电话系统、ATM机和工业机器人等。许多大学用μC/OS作教材,用于实时系统教学。1998年,作者决定出版μC/OS的第二本书《μC/OS-II The Real Time Kernel》,并设立了正式的网站:www. ΜC/OS-II.com,给μC/OS-II增加了一些新的功能,并且增加了约200页的解释。

μC/OS和μC/OS-II是专门为计算机的嵌入式应用设计的,绝大部分代码是用C语言编写的。CPU硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU上。许多移植的范例可以从网站上得到。用户只要有标准的ANSI的C交叉编译器,有汇编器、连接器等软件工具,就可以将μC/OS嵌入到开发的产品中。

μC/OS具有执行效率高、占用空间小、实时性能优良和可扩展性能等特点,最小内核可编译至2KB。μC/OS-II已经移植到了几乎所有知名的CPU上。

3.2 eCos

eCos(embedded Configurable operating system),即嵌入式可配置操作系统,最初起源于美国的Cygnus Solutions公司。Cygnus公司于1998年11月发布了第一个eCos版本eCos1.1,当时只支持有限的几种处理器结构。1999年11月,RedHat公司以6.74亿美元收购了Cygnus公司。在此后的几年里,eCos成为其嵌入式领域的关键产品,得到了迅速的发展。2002年,RedHat公司由于财务方面的原因,裁剪了eCos开发队伍,但并没有停止eCos的发展。RedHat公司随后宣称将继续支持eCos的发展,而由原eCos主要开发人员组建了eCos Centric公司,并于2003年5月正式发布了eCos2.0。

虽然eCos是RedHat的产品,但是eCos并不是Linux或Linux的派生,eCos弥补了Linux在嵌入式应用领域的不足。目前,一个最小配置的Linux内核大概有500KB,需要占用1.5MB的内存空间,这还不包括应用程序和其它所需的服务;eCos可以提供实时嵌入式应用所需的基本运行基件,而只占用几十KB或几百KB的内存空间。eCOS是一个源码开放的可配置、可移植、无版税、面向深嵌入式应用的实时操作系统。从eCOS的名称可以看出,它最大的特点在于它是一个配置灵活的系统。ECOS的核心部分是由不同的组件组成的,包括内核、C语言库和底层运行包等。每个组件以能提供大量的可配置选项,利用eCOS提供的配置工具可以很方便地进行配置。通过不同的配置使得eCOS能够满足不同的嵌入式应用。

4 μC/OS-II与eCOS的比较

对于以上两种源泉码公开的实时操作系统,我们主要从以下几个方面进行比较。通过比较,能够为大家选择适合自己系统的RTOS提供参考。

4.1 内核调度机制

RTOS内核的核心是调度器。当系统包含多个任务或多个线程时,必须使用调度器来决定当前执行哪一个任务或线程。调度器对线程的运行进行控制,并为线程提供一种同步机制。表1列出了这两种RTOS调度器(调度机制)的比较。

表1 调度器比较

调度方法 同优先级调度 优先级数/个 任务数量/个
uC/OS-II
固定
优先级
抢占式

64
(8个保留)
56

eCos: 位图
优先级
抢占式

32
32

eCos:多级队列
优先级
抢占式

32
无限

eCos:奖券
测试中
测试中
测试中
测试中

μC/OS只支持固定优先级抢占式,不支持时间片轮转调度,调度方法简单、实时性好,用法也简单;eCOS调度方法丰富,适应性好。当然,目前的eCOS只允许在其目标系统中使用一个单独的调度器,未来的版本将可以允许多个调度器协同工作。

4.2 任务间同步、通信机制

RTOS的功能一般要通过若干任务和中断服务程序共同完成,任务与任务之间、任务与中断服务程序之间必须协调动作,互相配合,这就牵涉到任务间的同步与通信问题。表2为这两种操作系统同步与通信机制的比较。

表2 同步与通信机制的比较

uC/OS-II
eCos

同步与通信机制
信号量、邮箱、消息队列
互斥、条件变量、计数型信号量、邮箱和事件标志

4.3 任务切换时间和中断延迟时间

任务切换时间和中断延迟时间是评估RTOS性能的两个重要指标。任务切换时间可以反映出RTOS执行任务的速度,而中断延迟时间可以反映出RTOS对外界变化的反应速度。表3为这两种操作系统任务切换时间和中断延迟时间的比较。

表3 任务切换时间和中断延迟时间的比较

任务切换时间/us
中断延迟时间/μs
测试环境

μC/OS-II
29.7~34.2
78.8
Intel80186(33MHz)

eCos
15.84
19.2
MPC860A3(33MHz)

4.4 对硬件的支持

μC/OS-II和eCOS支持当前流行的大部分嵌入式CPU,都具有很好的可移植特性。μC/OS-II支持从8位到32位的CPU;而eCOS可以在16位、32位和64位等不同体系结构之间移植。μC/OS-II和eCOS由于本身内核就很小,经过裁剪后的代码最小可以分别为小于2KB和10KB,所需的最小数据RAM空间可以为4KB和10KB,因此它们对硬件的要求很低,具有极高的经济性。

结语

通过比较可以看到:μC/OS-II相对eCOS来说,源代码最小很多,特别适合学习和研究。它最大的特点是小巧,适合应用在一些RAM和ROM有限的小型嵌入式系统中,如单片机系统。ECOS最大的特点是配置灵活,适合于用在一些商业级或工业级的嵌入式系统,如一些消费电子、汽车领域等等。总之,选用什么样的操作系统,要根据目标系统的硬件条件和用户应用程序的复杂度来确定。

‘肆’ ECOS环境设置问题:invalid package database

我也遇到了tcl84.dll缺失了问题,但是没祥仔有像你铅燃这么做。可能是你解决tcl84.dll的方法不对,所以才有后面的错误。
http://ecos.sourceware.org/ml/ecos-discuss/2012-04/msg00031.html

照上面说的,去ftp下载ecos-tools-bin-120425.cygwin.tar.bz2,然后利用cygwin解压,不要在WIN7环境用RAR之类的解压软件,覆盖原来的/tools/bin/下面的四个文件,再以管理员身份运行configtool就可以了。
不过我谨激汪想你最好要恢复之前的环境,也就是删掉你网上下载的tcl84.dll和用原来的ecos.db。

‘伍’ 如何移植redboot支持nand flash

Redboot被设计用于嵌入式调试和启动环境,它是一个基于eCos的应用程序,使用eCos的硬件抽象层(HAL)作为它的基础。它一个基本的功能是作为bootloader,但可用于任何嵌入式系统或任何嵌入式实时操作系统中。也可用于产品开发周期中的调试支持或在发布的产品中提供flash或网络启动。特性有:

启动脚本支持;

管理和控制的命令行支持;

通过串口或以太网口的访问

GDB支持;

flash映像系统支持;

X/Y调制解调器的支持;

支持使用BOOTP或静态IP地址配置的网络启动;


移植redboot到仔困培stm32开发板

1.,搭建好ecos开发环境

2,打开ecos图形配置工具configtool,如下图所示。

下图中,左边窗口为ecos的配置项窗口,右边窗口从上到下分别为:冲突提示窗口、配置项属性窗口、配置项说明窗口。

‘陆’ stm32移植ecos #1,为什么要把ecos移植到stm32平台上 reille ...

作为eCos推广计划一部分,会将eCos移植到当前非常流行的stm32处理器上,在此基础上,展开一些应用开发设计,并提供工程模板。选择stm32作为eCos推广突破口,有以下几个因素:在对eCos有一点了解或有所耳闻的大多数工程师眼中,eCos可能被定位于像ucosII一样级别的嵌入式OS,换句话说,eCos的应用场合应该是类似ARM7、Cortex-M处理器之类的CPU中; 当前,STM32相比其它家的Cortex-M处理器更加流行,被广泛应用到许多低端嵌入式产品中,而且最重要的是,学者众多,开发板资源非常丰富; 目前市场上,stm32开唤宴清发板一大堆,很容易利用当前资源展开eCos的学习; 像ARM7和Cortex-M处理器之类的CPU中,使用的OS大多数是ucosII,而这个OS是收费的,不能商用,相反,eCos是开源免费使用的,如果在这众多嵌入式应用中,可使用eCos在多数产品应用中和前替换掉ucosii,那么推广效果将更加理想; 对于ARM9以上的高端处理器,工程师更宁愿使用linux、VxWorks、Windows CE、uclinux等OS,而不愿意使用免费便资源匮乏的eCos; 这里有一个关键因素是,eCos必须展现它的应用价值和它的魅力,不然凭什么人家对这个OS产生兴趣祥携并在产品中使用它。0您可能也喜欢:stm32移植ecos #3,我的stm32开发板配置stm32移植ecos #2,选购stm32开发板stm32移植ecos #7,移植ecos并成功运行helloworld程序,配置编译生成静态链接库文件stm32移植ecos #8,移植ecos并成功运行helloworld程序,编译链接生成helloworld程序stm32移植ecos #11,使用自己的模板(Template)stm32移植ecos #4,移植redboot(ROM启动方式)上篇stm32移植ecos #9,移植ecos并成功运行helloworld程序,使用redboot引导运行内存中的helloworld程序stm32移植ecos #6,redboot的疑问和问题,redboot是必需的吗?

‘柒’ Linux嵌入式的开发流程是什么呢, 具体的详细点的有吗

下面就由福州卓跃教育具体介绍下嵌入式系统开发流程。操作系统一般使用Redhat Linux,选择定制安装或全部安装,通过网络下载相应的GCC交叉编译器进行安装,或者安装产品厂家提供的相关交叉编译器;
二、配置开发主机,配置MINICOM,一般的参数为波特率115200 Baud/s,数据位8位,停止位为1,9,无奇偶校验,软件硬件流控设为无。在Windows下的超级终端的配置也是这样。MINICOM软件的作用是作为调试嵌入式开发板的信息输出的监视器和键盘输入的工具。配置网络主要是配置NFS网络文件系统,需要关闭防火墙,简化嵌入式网络调试环境设置过程。
三、建立引导装载程序BOOTLOADER,从网络上下载一些公开源代码的BOOTLOADER,如U.BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等,根据具体芯片进行移植修改。有些芯片没有内置引导装载程序,比如,三星的ARV17、ARM9系列芯片,这样就需要编写开发板上FLASH的烧写程序,可以在网上下载相应的烧写程序,也有Linux下的公开源代码的J-FLASH程序。
四、下载已经移植好的Linux操作系统,如MCLiunx、ARM-Linux、PPC-Linux等。
五、建立根文件系统,可以从http://www.busy.box.net下载使用BUSYBOX软件进行功能裁减,产生一个最基本的根文件系统,再根据自己的应用需要添加其他的程序。由于默认的启动脚本一般都不会符合应用的需要,所以就要修改根文件系统中的启动脚本,它的存放位置位于/etc目录下,包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile等,自动挂装文件系统的配置文件/etc/fstab,具体情况会随系统不同而不同。根文件系统在嵌入式系统中一般设为只读,需要使用mkcramfs genromfs等工具产生烧写映像文件。
六、建立应用程序的FLASH磁盘分区,一般使用JFFS2或YAFFS文件系统,这需要在内核中提供这些文件系统的驱动,有的系统使用一个线性FLASH(NOR型)512KB~32MB,有的系统使用非线性FLASH(NAND型)8MB~512MB,有的两个同时使用,需要根据应用规划FLASH的分区方案。

‘捌’ 如何构建eCos嵌入式系统

ECos是一个优秀的嵌入式实时操作系统。ECos的体系结构是一种分层结构ˇ硬件抽ˇ层将操作系统与硬件隔离开ˇ这为把ECos移植到不同的硬件平台提供了便捷的方法ˇ抽ˇ层就ˇ软件与硬件之间的桥梁。主要的移植思ˇ是ˇ按照ECos的模块化设计ˇ完成硬件抽ˇ层。
引言
目前ˇ嵌入式操作系统的种类较多ˇ其中比较流行的有VxWorks、Windows CE、Psos、Palm OS、嵌入式Linux等。这些嵌入式操作系统在开放性、实用性以及性能等方面各有千秋ˇ但大多数为商用产品。除了商用产品外ˇ还有一些免费的嵌入式操作系统ˇuClinux是其中比较流行的ˇ而ECos则是另一个选择。嵌入式可配置操作系统ECosˇEmbedded Configureable Operating Systemˇ的特点是可配置性、可裁减性、可移植性和实时性。它的一个主要技术特色就是功能强大的配置系宏渗统ˇ可以在源码级实ˇ对系统的配置和裁减。与Linux的配置和裁减ˇ比ˇeCos的配置方法更清晰、更方便ˇ且系统层次也比Linux清晰明了ˇ移植和增加驱动模块更加容易。正是由于这些特性ˇeCos引起了越来越多的关注ˇ同时也吸引越来越多的厂家使用ECos开发其新一代嵌入式产品。
ECosˇ在由Red Hat维护ˇ可支持的处理器包括ˇARM、StrongARM、XScale、SuperH、Intel X86、PowerPC、MIPS、 AM3X、 MOTOROLA 68/Coldfire、SPARC、Hitachi H8/300H和NEC V850等。源代码及开发工具可在Red Hat的网站上免费下载ˇ网页地址是Http:/Sources.Redhat.Com/Ecos。
1、ECos的层次结构
ECos采用模块化设计ˇ由不同的功能组件构成ˇeCos系统的层次结构如图1所示。
图1
这种层次结构的最底层是硬件抽ˇ层ˇHardware Abstraction Layerˇˇ简称为HALˇ它负责对目标系统硬件平台进行操作和控制ˇ包括对中断和例外的处理ˇ为上层软件提供硬件操作接口。只需提供新硬件的抽ˇ层ˇ就可以将整个ECos系统包括基于ECos的应用移植到新的硬件平台上。
2、构建ECos系统
构建ECos系统首先要搭建自己的硬件抽ˇ层ˇ然后创建驱动程序ˇ之后就可以编制伏启应用程序了。
3、硬件抽ˇ层的移植
硬件抽ˇ层分为三个不同的子模块ˇ体系结构抽ˇ层ˇArchitecture HALˇ、变体抽ˇ层ˇVariant HALˇ和平台抽ˇ层ˇPlatform HALˇ。
体系结构抽ˇ层。ECos所支持的不同处理器系列具有不同的体系结构ˇ如ARM系列、PowerPC系列、MIPS系列等。体系结构抽ˇ层对CPU的基本结构进行抽ˇ和定义ˇ此外它还包括中断的交付处理、上下文切换、CPU启动以及该类处理器结构的指令系统等。
变体抽ˇ层指的是处理器在该处理器系列中所具有的特殊性ˇ这些特殊性包括Cache、MMU、FPU等。ECos的变体抽ˇ层就是对这些特殊性缺绝如进行抽ˇ和封装。
平台抽ˇ层是对当前系统的硬件平台进行抽ˇˇ包括平台的启动、芯片选择和配置、定时设备、I/O寄存器访问以及中断寄存器等。
硬件抽ˇ层的这三个子模块之间没有明ˇ的界ˇ。对于不同的目标平台ˇ这种区分具有一定的模糊性。例如ˇMMU和Cache可能在某个平台上属于体系结构抽ˇ层ˇ而在另一个平台上则可能属于变体抽ˇ层的范围ˇ再比如ˇ内存和中断控制器可能是一种片内设备而属于变体抽ˇ层ˇ也可能是片外设备而属于平台抽ˇ层。 ECos的移植通过这三个子模块来完成ˇ即平台抽ˇ层的移植、变体抽ˇ层的移植和体系结构抽ˇ层的移植。对一个新的体系结构来说ˇ其系统结构抽ˇ层的建立ˇ对来说比较困难。ECos支持大部分当前广泛使用的嵌入式CPUˇ已具有了支持各种体系结构的硬件抽ˇ层。因此ˇeCos的移植很少需要进行体系结构抽ˇ层的编写。
4、平台抽ˇ层的移植
一般来说ˇ进行ECos开发时ˇ移植的主要工作在于平台抽ˇ层ˇ这是由于ECos已实ˇ了绝大多数流行嵌入式CPU的体系结构抽ˇ层和变体抽ˇ层。平台抽ˇ层主要完成的工作包括ˇ内存的布局、平台早期初始化、中断控制器以及简单串口驱动程序等。
构建一个新的平台系统ˇ最简单的方法是利用ECos源码提供的具有ˇ同体系结构和CPU型号的参考平台硬件抽ˇ层ˇ将其作为模板ˇ复制并修改所有与新平台ˇ关的文件。若ECos没有这样的平台ˇ则可用另一种体系结构或CPU型号的类似硬件抽ˇ层作为模板。比如ˇeCos提供了以三星公司ARM CPU S3C4510B为核心的平台SNDS4110ˇ当需要移植ECos到ARM CPU S3C44B0上时ˇ这将是一个很好的起点。
移植工作最好是从RedBoot开始ˇ实ˇ的第一个目标是使RedBoot运行在新平台上。RedBoot是ECos自带的启动代码ˇ它比ECos要简单ˇ没有使用中断和ˇ程机制ˇ但包含了大部分最基本的功能。
建立目标平台的RedBoot通常按以下步骤进行ˇ以构建 S3C44B0的新平台为例ˇ。
ˇ复制ECos源码中选定的参考平台ˇ根据需要对目录及文件更名。更名的主要内容有ˇ新平台的目录名、组件定义文件ˇCDLˇ、内存布局文件ˇMLTˇ、平台初始化的源文件和头文件。
ˇ调整组件定义文件ˇCDLˇ选ˇ。包括选ˇ的名字、实时时钟/计数器、CYGHWR_MEMORY_LAYOUT变量、串口参数以及其他的一些选ˇ。
ˇ在顶层Ecos.Db文件中加入所需要的包ˇ并增加对目标平台的描述。在最初ˇ该目标平台的入口可以只包含硬件抽ˇ层包ˇ其他硬件支持包以后再加入。经过修改后ˇ就可在ECos配置程序中选择新的平台进行配置。
④修改Include/Pkgconf中的内存布局ˇMLTˇ文件。按照新的硬件平台内存布局修改MLT文件。MLT文件对应每种启动类型有三个不同后缀的文件ˇ。H文件以及。Ldi文件和Mlt文件。手工修改时只需修改。H文件和。Ldi文件ˇ并保证两个文件同步修改。修改的主要内容有ROM的起始地址、ROM的大孝RAM的起始地址和RAM的大校
⑤修改平台的Io宏定义。在Include/Plt_io.H文件中完成对平台的各种IO宏定义ˇ包括各种CPU的系统配置寄存器、内存配置寄存器、串口配置寄存器、LCD配置寄存器、以太网配置寄存器等的I/O地址。
⑥修改平台的Cache代码。在Include/Hal_cache.H文件中修改有关Cache的宏定义。在开发初期ˇ最好先将Cache关闭ˇ等移植稳定后再打开。
⑦实ˇ简单的串口驱动程序。串口的初始化、接收和发送在Src/Hal_diag.C文件完成。主要的函数如下ˇ
点击看原图
⑧修改或增加平台初始化程序。平台初始化在3个文件文件中完成ˇsrc/ S3C44B0 _misc.C、Include/Hal_platform_setup.H和Include/Hal_platform_ints.H。
Hal_platform_ints.H完成系统的中断宏定义。在不同的平台中设备数量和类型不同ˇ中断的译码方式也不一致ˇ需要根据具体情况作出调整。
Hal_platform_setup.H主要完成系统硬件的初步配置ˇ这里一般要在看门狗和中断关闭后ˇ配置系统时钟频率、ROM和RAM的初始化参数。
S3C44B0 _misc.C文件完成目标板的进一步初始化、中断处理、延时例程和操作系统时钟设置。
经过以上修改ˇ底层的平台抽ˇ层就基本完成了ˇ这时可用ECos的配置工具生成RedBoot进行测试。 RedBoot测试成功后ˇ说明平台已经能正确完成初始化操作ˇ且串口驱动也能正常工作ˇ接着要完成中断和Cache等测试工作。可利用一些多ˇ程的小程序测试ˇ检测时钟配置是否正确ˇ同时也检测了中断能否正常工作。
5、驱动程序设计
平台抽ˇ层完成后ˇ接着要完成系统的设备驱动程序。ECos设备驱动程序的中断模块分为三个层次ˇ中断服务程序ISR、中断滞后服务程序DSR和中断ˇ程。ISR在ˇ应中断时立即调用ˇDSR由ISR发出调用请求后调用ˇ而中断ˇ程为驱动程序的客户程序。
硬件中断在最短的时间内交付给ISR处理。硬件抽ˇ层对硬件中断源进行译码并调用对应的中断ISR。ISR可以对硬件进行简单的操作ˇ应使ISR的处理时间尽量短。当ISR返回时ˇ它可将自己的中断滞后服务程序DSR放入操作系统的任务调度中ˇDSR可以在不妨碍调度器正常工作时安全运行。大多数情况下ˇDSR将在ISR执行完成后立即运行。ECos设备驱动程序一般可分为三个部分ˇ如图2所示。
图2
ECos的所用设备驱动程序都使用设备表入口来描述。使用宏DEVTAB_ENTRY()可生成设备表入口。其格式为ˇ
点击看原图
设备入口中的句柄Handlers包含了一组设备驱动程序接口函数ˇ是设备函数表DEVIO_TAB的指针ˇDEVIO_TAB包含了一组函数的指针。设备I/O函数表通过DEVIO_TAB宏来定义ˇ格式如下ˇ
在ECos的初始化引导过程中ˇ对系统中的所有设备调用其ˇ应的Init()函数ˇ即DEVTAB_ENTRY宏注册的初始化函数ˇˇ所有对设备的I/O操作通过Handlers完成。

‘玖’ cygwin中编译fork函数应该加入什么库

(转)从windows到linux--编程篇--cygwin,在win中开发linux程序 从windows到linux -- 编程篇 -- cygwin,在win中开发linux程序
干坤一笑[smileonce] [email protected] 2004-7-23
版权所有 转载请注明出处 http://blog.csdn.net/smileonce 很多用windows的朋友不习惯于用linux的开发环境。虽然很乐意尝试一下,但是往往怕linux系统
打乱了自己的正常生活:1〉装linux系统把windows系统给搞坏了,导致自己无法正常生活;2>linux开
发上手太难,写出第一个helloworld不亚于java的难度,环境配置摸不着头脑。 对于此,我的看法是:
路不管平还是陡,终归你要走的,如果你愿意投入到linux开发的社群中来,不会安装linux系统,不会配
置工作环境是不能想象的。(事实上,确实要了解很多东西的原理,不然很难排错:诸如,硬盘引导器的引
导原理、分区结构原理及linux分区结构和文件系统、环境变量的设置、种类繁多的压缩包安装包的解压安
装方法、用户管理权限管理等常用命令、以至于驱动安装系统中文化等等异碰灶常琐碎的东东)。本文试图跳过这个难走的步骤,启用一个win环境下的linux仿真器(和linux下面的命令行开发环境基本
一致),用短短的20分钟的时间,教你做出一个纯正的linux下gcc编译的helloworld。就象是买点心前
先尝尝味道,不也是一件很愉快的事情么?(注:cygwin事实上不仅有此模拟功能,它也是移植unix<-->
win程序的一个很有效的工具,也有人用它来做嵌入式系统开发)一、cygwin是什么?
这个问题你最好google一下"cygwin的历史",或许能够获得更为详尽的答案。简而言之,cygwin是一
个在windows平台上运行的linux模拟环境,是cygnus solutions公司开发的自由软件(该公司开发了
很多好东西,着名的还有差吵枯eCos,不过现已被Redhat收购)。插一句废话,很多朋友不明白linux和unix的
区别和联系,在此也简要介绍一下。UNIX是一个注册商标,是要满足一大堆条件并且支付可观费用才能够
被授权使用的一个操作系统;linux是unix的克隆版本,是由其创始人Linus和诸多世界知名的黑客手工打
造的一个操作系统。为什么linux和unix之间有很多软件可以很轻松的移植?因为linux也满足POSIX规
范,所以在运行机制上跟unix相近。
以下引用网上的一段话(出处:aspx"> http://blog.csdn.net/glock18/archive/2004/07/10/38275.aspx),
用于说明cygwin的工作机制:cygnus当初首先把gcc,gdb,gas等开发工具进行了改进,使他们能够生成
并解释win32的目标文件。然后,他们要把这些工具移植到windows平台上去。一种方案是基于win32 api
对这些工具的源代码进行大幅修改,这样做显然需要大量工作。因此,他们采取了一种不同的方法——他们写
了一个共享库(就是cygwin dll),把win32 api中没有的unix风格的调用(如fork,spawn,signals,
select,sockets等)封装在里面,也就是说,他们基于win32 api写了一个unix系统库的模拟层。这样,
只要把这些工具的源代码和这个共享库连接到一起,就可以使用unix主机上的交叉编译器来生成可以在
windows平台上运行的工具集。以这些移植到windows平台上的开发工具为基础,cygnus又逐步把其他的
工具(几乎不需要对源代码进行修改,只需要修改他们的配置脚本)软件移植到windows上来。这样,在
windows平台上运行bash和开发工具、用户工具,虚洞感觉好像在unix上工作。关于cygwin实现的更详细描述,
请参考 http://cygwin.com/cygwin-ug-net/highlights.html二、cygwin的安装。
cygwin的安装文件很容易通过google找到。目前国内的网站上有“网络安装版”和"本地安装版"两种。
标准的发行版应该是 网络安装版。两者并无大不同,下面介绍一下安装的过程。 step1. 下载后,点击安装文件(setup.exe)进行安装,第一个画面是GNU版权说明,点"下一步(N)—>",
进入安装模式选择画面。 step2. 安装模式有"Install from Internet"、"Download form Internet"、
"Install from Local Directory" 三种。"Install form Internet"就是直接从internet上装,
适用于网速较快的情况。如果你和我一样网速不是很快,或者说装过之后想把下载的安装文件保存起来,
下次不再下载了直接安装,就应该选择"Download form Internet",下载安装的文件(大约40M左右)。
事实上,所谓的"本地安装版",也是别人从网上下载全部文件后打的包(适用于中国国情嘛^_^)

step3. 接下来是选择安装目的路径和安装源文件所在的路径,之后就进入了选择安装包所在的路径。
注意了阿,这里可是重头戏。我第一安装的时候就是没有看清这一步,结果没有把gcc装进去,导致没法编
译文件。
+ All Default
+ Admin Default
....
+ Devel Default
+ Editors Default
....
如上图所示,你在这个TreeView的某个节点上双击,就可以改变它的状态,如Default、Install、
Uninstall、Reinstall四种状态。默认的都是Default状态,很多工具的默认状态都是不安装。
在这里我选择了在All上点Install,全部安装,以免后患。(全部安装大概不到200M的空间) step4. 点下一步,安装成功。它会自动在你的桌面上建立一个快捷方式。 好了,下面就开始我的linux旅程了。双击cygwin的快捷方式进入系统。
首先介绍几个简单的linux命令。
pwd 显示当前的路径
cd 改变当前路径,无参数时进入对应用户的home目录
ls 列出当前目录下的文件。此命令有N多参数,比如ls -al
ps 列出当前系统进程
kill 杀死某个进程
mkdir 建立目录
rmdir 删除目录
rm 删除文件
mv 文件改名或目录改名
man 联机帮助
less 显示文件的最末几行由于linux下面的命令大多都有很多参数,可以组合使用。所以,每当你不会或者记不清楚改用那个参数,
那个开关的时候,可以用man来查找,比如,我想查找ls怎么使用,可以键入
$ man ls
系统回显信息如下:
LS(1) FSF LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by
default). Sort entries alphabetically if none of -cftuSUX
nor --sort.
-a, --all
do not hide entries starting with .
-A, --almost-all
do not list implied . and ..
-b, --escape
print octal escapes for nongraphic characters
--block-size=SIZE
use SIZE-byte blocks
:
很全是吧,嘿嘿。好了,多说无意,让我们来写一个hello world程序。
# cd
进入了/home/administrator目录,我当前的登陆帐号是administrator# mkdir source
建立一个叫做source的子目录# cd source
进入 /home/administrator/source# vim hello.c 启动vim编辑器,来编写程序。好了,现在有必要简要介绍一下vim。
在linux界,有两大编辑器最有历史。其一是vi,其二是emacs。vi现在已经演化成了vim,比当前的vi
更为强大。vim和emacs是两种截然不同的东西,vim强调用简洁的命令来完成功能,无论是查找、替换、
正则表达式匹配、编译、链接、排错、函数间跳转等等等等都在命令行中完成,并且它把方向键也集成在
了hjkl四个键之上,可以说,用了vim基本上可以不用鼠标了:p emacs则是在功能强大上做文章,版本
控制、模拟多种编辑环境、对文本进行各种操作,可谓之一个强大的文本处理系统。emacs是用诸如
Ctrl+Alt+K 之类的组合键来控制的;vim则是用se(set 的缩写)等简洁命令来控制的。
由于cygwin中只提供了vim(能不能自己装emacs我还没有试过),我们就先体验一下vim吧:p
vim加载文本文件后分为命令模式和插入模式两种。插入模式,顾名思义就是输入编辑文本;命令模式,则
是输入各种控制命令,常用的有:
i 进入编辑模式
h 左移
j 下移
k 上移
l 右移
w 存盘
q 退出
! 强调执行有些命令是可以组合使用的,如果你修改了某个文件,想存盘退出,则可以使用wq;如果你想放弃存盘,
直接退出则可以使用q! 好了大家体验一下吧,记住:从编辑模式退回命令模式按"Esc",再按":",在输入指
令,从命令模式进入编辑模式用i,初次使用vim肯定很难受,嘿嘿,不过用多了就习惯了,确实很省劲。我们编辑hello.c文件,输入:
#include <stdio.h>int main(void) {
printf( "Hello World!");
}
然后,输入wq命令退到命令行。
输入编译指令:
# gcc hello.c -o hello
编译成功后可以看一下
# ls
看到hello.exe了吧,嘿嘿。
好,让我们运行看看。
# ./hello
效果如何?不错吧? :)okey,现在玩一个C++的hello world,
# vim world.cpp
输入:
#include <iostream>
using namespace std;void main() {
cout << "Hello World!";
}
编译C++程序要用g++
# g++ world.cpp -o world
运行一下哈,
# ./world如何,效果不错吧?诸位都是高手,走到这步应该编些简单程序都不成问题了吧:p
好了,关于如何编写makefile文件,如何用gdb下次再说了。

‘拾’ 如何编写不依赖操作系统的程序。就是裸机上可以运行的。汇编或c语言生成文件都是exe啊只能在win下

其实代码都差不多。
平时做的程序,生产exe是因为在编译的时候,链接了编译器给的入口,然后代码里面以main作为起始运行。
而如果编译的时候,不指定这个入口,而是采用其它的不依赖于操作系统的接口,那么就可以裸机跑了。常见的,包括uboot, ecos,ucosII,eboot等等,这些都是有类似实现的。 感兴趣可以看看uboot源码,spl阶段和uboot阶段都是类似方式处理的。

热点内容
简单的解压 发布:2025-07-15 17:42:25 浏览:146
lol最强脚本 发布:2025-07-15 17:41:45 浏览:289
安卓手机测量工具在哪里 发布:2025-07-15 17:41:39 浏览:240
易语言灰鸽子源码 发布:2025-07-15 17:37:08 浏览:868
编程代码怎么写 发布:2025-07-15 17:30:45 浏览:120
光遇安卓九游服怎么切换账号 发布:2025-07-15 17:29:07 浏览:916
sqlserverce 发布:2025-07-15 17:20:27 浏览:712
海量数据的存储管理 发布:2025-07-15 17:16:51 浏览:658
安卓手机哪个版本适合玩游戏 发布:2025-07-15 17:12:31 浏览:57
安装flexlinux 发布:2025-07-15 16:35:47 浏览:372