用VC6开发嵌入式LINUX程序

    首先说明一下,VC6自然不能直接开发LINUX程序,主要使用的是它的编辑环境而已,但是作为一个一直在WINDOWS上使用VC6的开发者,不以VC6作为开发的核心是多么地不习惯啊。

    还要说明的是,自己对linux是门外汉,提到的linux的事情都是门外汉的看法,仅供参考。

    2015年突然有点雄心壮志,准备把自己的车牌识别系列软件移植到LINUX系统中,这样可以固化在摄像头里面,也可以做成嵌入式的硬件。经过简单的考察,选择了INTEL公司的EDISON平台。优点是(1)体积小,自带wifi模块;(2)速度快于同期的树莓派;(3)x86体系,原来算法里面的特殊指令优化(如MMX指令)可以继续有效;(4)有官方论坛和技术支持;缺点也是很明显,价格高,Edison模块+Braekout底板的价格至少是树莓派的2倍。但由于是在LINUX下开发,所以更换平台应该比较容易。

    下面的链接是Intel的Edison主页:

http://www.intel.com/content/www/us/en/do-it-yourself/edison.html

     对于一直在WIN下一直用VC6集成环境开发的人来说,搞清楚linux编程的make就是一个挑战,找对整个工具链并能够正确配置也有难度,特别对于没有积累,没有老师,完全靠网络资源的情况下。

    刚开始使用爱迪生开发的标准工具链,使用Eclipse,配合爱迪生的交叉编译器,实现爱迪生的开发。但发现很多不习惯的地方,一个是Eclipse运行慢,绝不像Vc6那样行云流水;另外一个是Eclipse必须使用intel的插件,但是收费的(因为Intel编译器有一个 --sysroot 选项,标准的Eclipse里面好像无法处理;不过现在好像有个Eclipse的Intel专版)。

    后来决定用VC6的集成环境来编写程序,具体采用了如下的措施:

(1)每个程序建立一个VC的工程,管理并编辑修改源文件和头文件;

(2)程序要在win32先编译成功,并能正确运行。在这一步之后再用交叉编译器编译为linux下的程序。为了实现这一点,要(1)尽量用纯C的库函数,保证大部分代码在两个平台通用;(2)尽量减少平台相关的代码;(3)确实需要的平台相关的代码,封装一下,通过条件编译调用不同的代码;(4)所有通讯尽量都用网络通讯,封装统一的SOCKET通讯模块;

    由于是嵌入式程序,因此上面对于代码实现的这些要求容易实现。

(3)自己做了一个调用intel交叉编译器的工具,自动读取vc6工程的文件列表,进行编译连接;并把编译信息和错误显示在VC6的输出窗口里面。下图是我的编译工具的参数设置界面。

    我的编译工具把Intel交叉编译器的编译消息也输出到VC6的编译输出窗口里面,如下图:

      工具程序自动修改intel编译器的输出消息里面的源文件名和行号的格式,可以实现在VC6编译信息输出窗口里面双击编译错误消息自动跳到对应的源代码。

(4)在编译完成之后自动通过网络发布到爱迪生板子上

(5)下面就是最重要的部分了,在线调试程序

    实现在线调试还是很复杂的,没有打算自己实现,目前在win下先实现功能,并进行测试,然后再到linux下运行验证;此外程序尽量多输出调试信息。如果非要在线单步调试,那要按照标准的linux远程调试方法来操作了。

    顺便提一下,这个项目已经取消了,因为突然就厌倦了编程……

时间: 2024-10-24 21:04:54

用VC6开发嵌入式LINUX程序的相关文章

使用Qtcreator开发嵌入式linux程序

http://qt-project.org/doc/qtcreator-3.0/creator-project-cmake.html 方法1: 使用 qmake编辑  工程文件 xxxx.pro添加 equals (QT_ARCH, "arm")  {    target.path=/tmp/$${TARGET}/bin    INSTALLS += target } CONFIG(debug, debug|release) { message(this is debug versio

5.2嵌入式linux程序编译与调试

实验二 嵌入式linux程序编译与调试 实验目的: 学会使用及配置vim 掌握gcc编译器使用 掌握使用Gdb单步调试程序的方法 实验要求: 熟悉使用该节所介绍的vim创建.编辑.保存文件. 分别用gcc实现预处理.编译.汇编.链接四个过程: 使用gcc编译多文件工程,并制作编译脚本. 利用Gdb单步调试修正结果错误的程序 实验步骤: 用gcc实现预处理.编译.汇编.链接四个过程,使用gcc编译多文件工程,并制作编译脚本. 1.gcc处理编译的四个过程 .源代码 ? (2).预处理 生成main

VC6开发对话框应用程序,菜单快捷按键不能使用

周末用MFC编写一个对话框程序,因此需要菜单,并且考虑菜单要添加快捷按键(比如:alt+G,alt+X,alt+C). 问题: 刚开始创建菜单及快键键,是可以使用的:然后创建窗体及控件,快捷键就失灵了,baidu找了很多办法都没有效果,也不知道什么原因. 解决: 隔了一天,无意间在测试的时候发现,把窗体和控件先创建完毕,最后加菜单资源,没想到可以了,测试了多次,都是可以的.一阵高兴之余,认为在VC6下创建对话框应用程序,要想菜单响应快捷键(alt+)可以使用,必须得: (先窗体及控件,后菜单,工

嵌入式Linux学习小结

这两个月一直在学习Linux.作为一名刚開始学习的人,学习期间难免磕磕碰碰.走弯路,可是,抱着不怕失败.多尝试的信念,终于还是坚持下来了. 如今已经清楚Linux的框架,知道怎么去开发一个Linux程序.同一时候.随着学习的深入,我发觉自己已经爱上Linux了. 以下简单谈谈我的Linux学习体会,也算是对这段时间的一个小小总结. 嵌入式Linux(ARM+Linux)学习步骤: 1.  在PC上安装虚拟机(如VMware.VirtualBox等),在虚拟机上安装Linux操作系统(如Red H

使用VS+VisualGDB编译调试Linux程序

Linux程序开发变得越来越多,越来越多的程序.产品需要跨平台,甚至有些开源项目只支持Linux平台,所以掌握Linux开发变得越来越重要. 但是对于习惯了Windows下的开发,使用了VS这个宇宙第一IDE后,觉得Linux下的纯命令行开发调试,还是有些不习惯,效率有些低(大神除外).那么能不能用VS来开发调试Linux程序呢,经过各种查找,找到了VisualGDB这个神奇的插件,通过VS+VisualGDB就可以编译调试Linux程序. 下面我们来看一下创建demo的过程吧. 配置虚拟机 V

嵌入式Linux应用程序开发详解------(创建守护进程)

嵌入式Linux应用程序开发详解 华清远见 本文只是阅读文摘. 创建一个守护进程的步骤: 1.创建一个子进程,然后退出父进程: 2.在子进程中使用创建新会话---setsid(): 3.改变当前工作目录---chdir(): 4.重新设置文件权限掩码---umask(): 5.关闭所有的文件描述符---close(fdx): 6.设置daemon程序的任务---此例主要在while循环中体现. 下面是一个例子程序: /* daemon * how to create a daemon proce

嵌入式Linux之旅——环境搭建篇之搭建基本开发环境

我们在学习开发Linux前,必须要搭建好编译开发环境.但由于环境与工具的选择,每个人的习惯和爱好不同,所以本篇我会贴出来一些必要的软件的安装,若个人还有些软件需要安装配置的,大家可以在需要用的时候上网搜索或者查找书本配置. 在安装具体的软件前,有必要介绍我使用的环境和工具.首先,我用两台电脑,一个是win7的系统,另一个是ubuntu 14.04的系统,当然主要的开发是在ubuntu下完成的.大家如果没有条件的话,可以安装虚拟机或者直接安装Linux系统也未尝不可.另外,我手里正好有一套2440

嵌入式linux QT开发(四)——QT Creator工程管理

嵌入式linux QT开发(四)--QT Creator工程管理 一.QT Creator工程管理 QT Creator以工程项目的方式对源码进行管理,一个QT工程中包含不同类型的文件如下: A..pro项目描述文件 B..pro.user用户描述文件 C..h头文件 D..cpp源文件 E..ui界面描述文件 F.资源文件(图片.音频等) 二..pro项目描述文件 1..pro项目描述文件基本构成如下: A.#注释起始符 B.QT模块声明 C.TARGET可执行文件名 D.TEMPLATE程序

如何使用eclipse进行嵌入式Linux的开发

如何使用eclipse进行嵌入式Linux的开发 作者:曾宏安,华清远见嵌入式学院高级讲师. 如何使用eclipse进行嵌入式Linux的开发 习惯了在windows环境下开发的程序员在转到Linux平台时经常会抱怨没有一个好用的集成开发环境.和windows下常用的一些开发软件相比,Linux自带的一些开发环境使用起来要么界面和操作不够方便.友好,要么功能不全.其实我们完全可以在开源社区上找到操作方便,功能强大的开发环境.下面就向大家介绍一个能在Linux上运行,界面和功能与windows上同