eCos Configuration Tool build on ubuntu 10.04 AMD64

发布者:eta17最新更新时间:2024-06-26 来源: elecfans关键字:eCos  Configuration  Tool  build  ubuntu  AMD64 手机看文章 扫描二维码
随时随地手机看文章

这篇主要解决eCos的配置工具运行在Ubuntu 64bit上的诸多问题。

先放截图,要不然大家看到代码头疼就看不到真相了。可以从Linux公社的资源服务器中下载打包的文件。 免费的

免费下载地址在 http://linux.linuxidc.com/

用户名与密码都是www.linuxidc.com

具体下载目录在 /2011年资料/嵌入式Linux/eCos Configuration Tool build on ubuntu 10.04 AMD64/

我们暂且把ecoscentric提供的方法附上

需要的资源

  • hg clone http://hg-pub.ecoscentric.com/ecos/
  • wxGTK-2.8.8.tar.bz2 (for Linux/GTK+)

Building for Linux/GTK+

The following instructions assume that you are working at a bash prompt and that the GTK+ and Tcl libraries have been installed from your Linux distribution. First, extract the wxWidgets sources:

  • mkdir ~/src cd ~/src bunzip2 -c wxGTK-2.8.8.tar.bz2 | tar xf - cd wxGTK-2.8.8

Configure wxWidgets for static linking without socket support, then build and install:

  • mkdir ~/wx-build cd ~/wx-build $HOME/src/wxGTK-2.8.8/configure --disable-shared /     --disable-sockets --prefix=$HOME/wxGTK-2.8.8 make make install

Configure, build and install the eCos host infrastructure:

  • mkdir ~/infra-build cd ~/infra-build $HOME/cvs/ecos/host/configure --prefix=$HOME/ecos-tools make make install

Build and install the eCos Configuration Tool (INSTALLDIR must match the eCos host infrastructure prefix):

  • mkdir ~/configtool-build cd ~/configtool-build make -f ~/cvs/ecos/host/tools/configtool/standalone/wxwin/makefile.gnu /     install WXDIR=$HOME/wxGTK-2.8.8 ECOSSRCDIR=$HOME/cvs/ecos/host /     INSTALLDIR=$HOME/ecos-tools

The eCos Configuration Tool binary should now be located at: ~/ecos-tools/bin/configtool

 

实际过程中,因为操作系统是64位的问题,会有int指针类型和tcl,tk的错误。

1)遇到tcl,tk错误的时候

你需要做如下的link

 

ricky@ricky-laptop:/usr/local/libexec/ecos/hal/synth/arch/share$ ls -al

总用量 8

drwxr-xr-x 2 root root 4096 2011-01-28 11:58 .

drwxr-xr-x 4 root root 4096 2011-01-28 11:45 ..

lrwxrwxrwx 1 root root   23 2011-01-28 11:58 tcl8.3 -> /usr/local/share/tcl8.3

lrwxrwxrwx 1 root root   22 2011-01-28 11:58 tk8.3 -> /usr/local/share/tk8.3

ricky@ricky-laptop:/usr/local/libexec/ecos/hal/synth/arch/share$ 


2)编译错误,大致需要修改以下一些文件

 

Revision: 3019

Branch: default

Author: Ricky Wu  2011-01-31 10:00:18

Committer: Ricky Wu  2011-01-31 10:00:18

Parent: 3018:d45320ea4f56 (first add minigui to ecos hg version)

Child:  3027:4bc997522efd (merge ricky soluation)

 

    1.fix configtool on linux 64bit issue

    2.use firefox as default web browser

    3.fix mw driver bitblit issue

 

    user: Ricky Wu

    branch 'default'

    changed host/tools/Utils/common/eCosSerial.cpp

    changed host/tools/Utils/common/eCosSocket.cpp

    changed host/tools/Utils/common/eCosTrace.cpp

    changed host/tools/configtool/standalone/wxwin/packagesdlg.cpp

    changed host/tools/configtool/standalone/wxwin/propertywin.cpp

    changed host/tools/ecostest/common/TestResource.cpp

    changed host/tools/ecostest/common/eCosTestDownloadFilter.cpp

    changed packages/hal/synth/arch/current/host/ecosynth.tcl

    changed packages/services/gfx/mw/current/src/drivers/scr_synth_ecos.c

 

 

-------------------- host/tools/Utils/common/eCosSerial.cpp --------------------

@@ -36,7 +36,7 @@

 // Usage:

 //

 //####DESCRIPTIONEND####

-

+#include

 #include 'eCosStd.h'

 #include 'eCosSerial.h'

 #include 'eCosThreadUtils.h'

@@ -340,7 +340,7 @@

 

 bool CeCosSerial::Close()

 {

-  bool rc=m_pHandle && (-1!=close((int)m_pHandle));

+  bool rc=m_pHandle && (-1!=close((intptr_t)m_pHandle));

   m_pHandle=0;

   return rc;

 }

@@ -427,7 +427,7 @@

   TRACE(_T('Changing configuration.../n'));

 

   // Get current settings.

-  if (tcgetattr((int) m_pHandle, &buf)) {

+  if (tcgetattr((intptr_t) m_pHandle, &buf)) {

     fprintf(stderr, _T('Error: tcgetattr/n'));

     return false;

   }

@@ -494,7 +494,7 @@

   }

 

   // Set the new settings

-  if (tcsetattr((int) m_pHandle, TCSADRAIN, &buf)) {

+  if (tcsetattr((intptr_t) m_pHandle, TCSADRAIN, &buf)) {

     fprintf(stderr, _T('Error: tcsetattr/n'));

     return false;

   }

@@ -503,7 +503,7 @@

   // error if _all_ settings fail. If just a few settings are not

   // supported, the call returns true while the hardware is set to a

   // combination of old and new settings.

-  if (tcgetattr((int) m_pHandle, &buf_verify)) {

+  if (tcgetattr((intptr_t) m_pHandle, &buf_verify)) {

     fprintf(stderr, _T('Error: tcgetattr/n'));

     return false;

   }

@@ -522,7 +522,7 @@

 

 bool CeCosSerial::Flush (void)

 {

-  return 0==tcflush((int) m_pHandle, TCIOFLUSH);

+  return 0==tcflush((intptr_t) m_pHandle, TCIOFLUSH);

 }

 

 bool CeCosSerial::Read (void *pBuf,unsigned int nSize,unsigned int &nRead)

@@ -530,7 +530,7 @@

 

   if (!m_bBlockingReads) {

     nRead = 0;

-    int n = read((int)m_pHandle, pBuf, nSize);

+    int n = read((intptr_t)m_pHandle, pBuf, nSize);

     if (-1 == n) {

       if (EAGAIN == errno)

         return true;

@@ -558,7 +558,7 @@

 

   fd_set rfds;

   FD_ZERO(&rfds);

-  FD_SET((int)m_pHandle, &rfds);

+  FD_SET((intptr_t)m_pHandle, &rfds);

 

   // Start with total timeout.

   struct timeval tv;

@@ -568,10 +568,10 @@

   unsigned char* pData = (unsigned char*) pBuf;

   nRead = 0;

   while (nSize) {

-    switch(select((int)m_pHandle + 1, &rfds, NULL, NULL, &tv)) {

+    switch(select((intptr_t)m_pHandle + 1, &rfds, NULL, NULL, &tv)) {

     case 1:

       {

-        int n = read((int)m_pHandle, pData, nSize);

+        int n = read((intptr_t)m_pHandle, pData, nSize);

         if (-1 == n && EAGAIN != errno) {

           ERROR(_T('Read failed: %d/n'), errno);

           return false;           // FAILED

@@ -608,7 +608,7 @@

 bool CeCosSerial::Write(void *pBuf,unsigned int nSize,unsigned int &nWritten)

 {

   bool rc;

-  int n=write((int)m_pHandle,pBuf,nSize);

+  int n=write((intptr_t)m_pHandle,pBuf,nSize);

   if(-1==n){

     nWritten=0;

     if (errno == EAGAIN)

 

-------------------- host/tools/Utils/common/eCosSocket.cpp --------------------

@@ -36,7 +36,7 @@

 // Usage:

 //

 //####DESCRIPTIONEND####

-

+#include

 #include 'eCosStd.h'

 #include 'eCosSocket.h'

 #include 'eCosSerial.h'

@@ -96,7 +96,7 @@

 m_nSock(-1),

 m_nClient(0)

 {

-  VTRACE(_T('Create socket instance %08x/n'),(unsigned int)this);

+  VTRACE(_T('Create socket instance %08x/n'),(uintptr_t)this);

 }

 

 CeCosSocket::CeCosSocket (int sock /*result of previous call of Listen*/, bool *pbStop):

@@ -104,7 +104,7 @@

 m_nSock(-1),

 m_nClient(0)

 {

-  VTRACE(_T('Create socket instance %08x/n'),(unsigned int)this);

+  VTRACE(_T('Create socket instance %08x/n'),(uintptr_t)this);

   Accept(sock,pbStop);

 }

 

@@ -113,7 +113,7 @@

 m_nSock(-1),

 m_nClient(0)

 {

-  VTRACE(_T('Create socket instance %08x/n'),(unsigned int)this);

+  VTRACE(_T('Create socket instance %08x/n'),(uintptr_t)this);

   Connect(pszHostPort,dTimeout);

 }

 

@@ -312,7 +312,7 @@

 CeCosSocket::~CeCosSocket()

 {

   Close();

-  VTRACE(_T('Delete socket instance %08x/n'),(unsigned int)this);

+  VTRACE(_T('Delete socket instance %08x/n'),(uintptr_t)this);

 }

 

 bool CeCosSocket::CloseSocket(int &sock)

 

-------------------- host/tools/Utils/common/eCosTrace.cpp --------------------

@@ -61,7 +61,7 @@

       fclose(OutInfo.f);

     }

     if(nVerbosity>=TRACE_LEVEL_TRACE){

-      _ftprintf(stderr,_T('Output -> %s (%08x)/n'),pszFilename,(unsigned int)f);

+      _ftprintf(stderr,_T('Output -> %s (%08x)/n'),pszFilename,(uintptr_t)f);

     }

     OutInfo.f=f;

     OutInfo.strFilename=pszFilename;

 

------------ host/tools/configtool/standalone/wxwin/packagesdlg.cpp ------------

@@ -507,7 +507,7 @@

             int itemIndex = -1;

             if (toDelete > -1)

             {

-                itemIndex = (int) from -> GetClientData(toDelete);

+                itemIndex = (intptr_t) from -> GetClientData(toDelete);

                 from -> Delete(toDelete);

             }

 

@@ -686,7 +686,7 @@

         wxString str = versionChoice->GetString(versionChoice->GetSelection());

 

         // itemIndex is the index into the list of item names. It gets stored with all the listbox items.

-        int itemIndex = (int) pListBox->GetClientData((*selected)[nIndex]);

[1] [2]
关键字:eCos  Configuration  Tool  build  ubuntu  AMD64 引用地址:eCos Configuration Tool build on ubuntu 10.04 AMD64

上一篇:eCos DM9000网卡在MINI2440 QEMU的测试
下一篇:RTEMS Hello World for MINI2440 QEMU

推荐阅读最新更新时间:2024-11-12 16:41

2020胡润中国10强消费电子企业最新发布
近日,胡润百富发布了《2020 胡润中国 10 强消费电子企业》,其中华为以 1.1 万亿元价值成为中国最值钱消费电子企业,而小米紧随其后。 图源:胡润研究院 榜单显示,小米以 4340 亿元价值排名第二;VIVO 价值首次超过 OPPO,以 1750 亿元排名第三;OPPO 以 1700 亿元排名第四;十强中 5 家做手机,包括前四名以及第六名传音;五家公司去年智能手机出货总量 6.2 亿部,占全球 40%。 据悉,报告中指出,上市公司市值按照 2020 年 9 月 30 日的收盘价计算,非上市公司估值参考已公开的、最新一轮融资估值,或参考同类上市公司估值,而上述报告仅包括中国大陆民营企业,同时榜单不包括格力、美的
[嵌入式]
2020胡润中国<font color='red'>10</font>强消费电子企业最新发布
R&S示波器RTE1204超差维修
R&S示波器RTE1204维修麻烦吗?R&S示波器RTE1204出故障该怎么办?你有遇到过R&S示波器RTE1204超差情况吗? 相信长期从事电测行业的朋友们都知道R&S示波器RTE1204超差处于常见的故障,但是罗德与施瓦茨RTE1204属于进口的高端品牌示波器,一般人不建议自行拆机维修,因为里面都是今昔的部件,稍微操作不当,可能导致R&S示波器RTE1204出现其他更严重的故障。那么,这个时候该怎么办呢?为了不影响其他工作,安泰R&S示波器维修中心小编建议来找安泰维修,安泰维修是一家专业的电测类仪器维修中心。下面,请跟着安泰R&S示波器维修中心小编一起看下下面这台R&S示波器RTE1204维修的案例,希望能帮到您! 仪
[测试测量]
R&S示波器RTE12<font color='red'>04</font>超差维修
64GiPhone作古?苹果今秋5G iPhone存储128GB起步
据国外媒体报道,由于芯片等方面的原因,苹果公司未能在去年推出支持5G网络的iPhone,iPhone 11系列最高仍只支持4G。 但在同高通和解并达成多年的专利授权协议和芯片供应协议之后,分析师和研究机构普遍预计苹果今年将推出4款支持5G的iPhone 12。 对于苹果今年将推出的iPhone 12,外媒近日披露了存储、价格等方面的细节信息,售价最低649美元,最高则达到了1399美元。 外媒的报道显示,苹果今秋将推出的4款iPhone,分别是iPhone 12、iPhone 12 Max、iPhone 12 Pro和iPhone 12 Pro Max,前两款的运行内存
[手机便携]
64GiPh<font color='red'>on</font>e作古?苹果今秋5G iPh<font color='red'>on</font>e存储128GB起步
拆解!荣耀Note10 !The NINE液冷技术让你游戏降5℃
     如果说今年全面屏进入革新阶段,从以往的18:9到19:9再到今年彻底进入“真”全面屏时代。屏幕技术的发展似乎到此就要结束了。紧接而来就是所谓的“散热革命”。 有人说散热有什么用处,温度的高低对我们正常使用手机并没有设么影响。那我要向这部分人说“不”,手机温度的高低直接影响CPU与GPU的协调运作,最直观的影响就是手机卡顿。手机温度过高,CPU与GPU运载负荷变大,从而降低手机处理频率,最终导致手机卡顿。 为什么手机玩游戏一发热就卡顿? 手机日常使用过程中不卡顿,一玩游戏就卡顿,这是为什么?其实也是这个道理,目前手机大型游戏对于画面和动作的协调处理性越来越高,高画质的快速渲染则需要GPU高强度的进行渲染处理。而CPU则保
[手机便携]
OK6410A 开发板 (七) 7 buildroot-2021.02 OK6410A 用户空间的浮点处理过程
从一个示例开始 https://blog.csdn.net/u011011827/article/details/117488268 从这篇文章中的例子可以看出 -mfloat-abi=aaa 来指定浮点运算处理方式 -mfpu=bbb来指定浮点协处理的类型 aaa 可取 soft softfp hard bbb 可取 vfp neon vfpv3 vfpv4 vfpv3-d16 vfpv4-d16 -mfloat-abi=soft // -msoft-float 与 -mfloat-abi 功能类似 // 用cpu寄存器(不用vfp寄存器),将除0 在用户空间用 浮点软件库 实现 // 有没有fpu都不会陷入
[单片机]
Onshape共同创始人谈3D打印行业下一个五年发展方向
  随着 3D打印 技术的不断发展,关于 3D打印 行业下一个五年发展的话题从未间断。今天, Onshape 的共同创始人John McEleney分享了他对下一个五年 3D打印 行业发展的观点。下面就随医疗电子小编一起来了解一下相关内容吧。 Onshape共同创始人谈3D打印行业下一个五年发展方向   John McEleney在机械设计/软件行业拥有30多年的经验。此前,其担任过SolidWorks的CEO和CloudSwitch的首席执行官(CloudSwitch是Verizon收购的云计算企业软件公司)。目前,其也是Stratasys公司的董事。John拥有罗切斯特大学机械工程学士学位、波士顿大学制造系统工程硕
[医疗电子]
<font color='red'>On</font>shape共同创始人谈3D打印行业下一个五年发展方向
STM32F103的复位及时钟控制模块头文件
在处理器正常工作前,肯定要做一些初始化工作,其中最主要的一个就是初始化各种时钟。通过对STM32F103的复位及时钟控制(RCC)模块分析之后,自己写了一个RCC的头文件,这样使用起来更方便。头文件中首先定义了最基本的几个寄存器,然后再对每个寄存器中的域使用结构体做了定义,可以直接使用寄存器中的位来操作。注意设置系统时钟时要先设置好FLASH的等待周期,不然程序就可能会跑飞。 该测试工程是在以前的GPIO实验的基础上增加系统时钟初始化代码,设置系统时钟为72M。通过流水灯可以看到,比未配置系统时钟之前(8M)流水灯的速度快了很多。 从这里下载完整的测试工程: 系统时钟初始化的代码如下: //以下时钟配置为最高性能 void
[单片机]
7年烧光1000亿!欧洲最大电池企业暴雷,曾毓群一语成谶
宁德时代 创始人曾毓群,表示欧洲 电池 企业在设计、工艺、设备方面,都存在巨大问题。 话音刚落,7年烧了上千亿元的欧洲最大电池企业,就撑不住宣布大裁员了。 曾毓群一语成谶,就连美媒体都认为,欧洲电池企业陷入困境,难以与中企抗衡。 1. 曾毓群一语成谶 曾毓群一手创办的宁德时代,早已成为 特斯拉 、宝马、理想、蔚来等的电池供应商,堪称全球 动力电池 行业无可争议的龙头。 9月18日,曾毓群接受挪威主权基金CEO尼古拉·唐根的采访,他表示自己曾与包括欧洲电池制造商在内的很多人讨论,为何欧洲电池企业无法生产出好的电池。 他认为:“欧洲电池企业在(电池)设计方面就存在问题,其次工艺是错误的,最后他们的设备也有问题。
[汽车电子]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved