偷个懒,不安装虚拟机,直接在Windows下开发
ARMLinux应用程序。
友情提醒1:本篇适宜在嵌入式软件开发早已有一定基础的读者。
原因
在嵌入式行业摸爬滚打了八年有余linux命令vi,始终都没在Linux进行嵌入式软件开发。由于之前都是开发工业领域的产品,对于人机交互、网络应用、文件管理等方面的需求并不急切,再者受限于成本、行业领域专用芯片以及实时性的要求,所以开发模式通常都是裸跑或则移植轻量级的RTOS(以FreeRTOS)进行简单的任务管理。
正好前一阵须要在ARMLinux下进行应用程序的开发,所以摸索了开发模式,把一些经验和感受分享下。
友情提醒2:此篇不涉及Linux底层驱动开发和移植,只讲在早已移植好Linux内核的目标板上开发应用程序的方式。
友情提醒3:市面上早已有许多专业做ARMLinux核心板的厂家,并早已做好了外围电路和移植好了比较稳定的Linux内核,假如读者同学只想快速开发产品的应用程序,没必要自己从零开始设计ARM板电路,移植Linux系统,编撰底层驱动等,直接订购ARM-Linux核心板,专注于应用层的开发即可。
必备基础概念-万物皆文件
在切入主题之前,先从Linux的万物皆文件说起。由于这个是习惯在Windows下开发的工程师们要立刻扭转过来的观念。不要问我为何,咱啥也不敢说,啥也不晓得,要问就去问Linux本人吧。
Linux中所有内容都是以文件的方式保存和管理的,普通文件是文件linux桌面,目录(Windows下称为文件夹)是文件,硬件设备(鼠标、监视器、硬盘、打印机)是文件,就连套接字(socket)、网络通讯等资源也都是文件。
这样做最显著的益处是,开发者仅须要使用一套API和开发工具即可调阅Linux系统中绝大部份的资源。举个简单的事例,Linux中几乎所有读(读文件linux arm开发,读系统状态,读socket,读PIPE)的操作都可以用read函数来进行;几乎所有修改(修改文件,修改系统参数,写socket,写PIPE)的操作都可以用write函数来进行。---上述这段话摘自网络,供你们参考理解。
必备基础概念-应用程序开发流程与技巧
以下图片摘自ZLG《嵌入式Linux开发教程(下册)》
开发模型
开发的通常步骤
下文提及的主机为开发人员笔记本的Windows系统,目标板即为ARMLinux板。后续不再赘言。另外须要注意的是,假如须要直接在Windows下与目标板进行远程调试,目标板的Linux内核须要具备SSH功能。
Windows下环境搭建
最开始完整跑了一下全过程:使用windows下安装VMware,加载Linux镜像创建Linux虚拟机,之后在虚拟机下使用VIM编辑代码,编译生成执行文件,接着传送到ARM-Linux核心板中运行调试。由于之前都是Windows下开发,所以切换到Linux下不太适应,尤其时常须要使用Terminal进行命令操作。在命令不熟悉的情况下,开发效率较低。后来碰巧发觉原先在Windows平台下,不使用虚拟机也可以搭建开发所需环境,省去了来回折腾和Makefile的撰写。
友情提醒4:假如读者同学是专注于ARM-Linux开发,建议还是在Linux下进行开发。
下文的提及的搭建方式来源自ZLG《嵌入式Linux开发教程(下册)》,该书籍可以抵达书城订购或则公众号对话框回复“Linux环境搭建”获取部份章节。
安装交叉编译环境:arm-none-linux-gnueabi
早已有高手汇总了安装方式和下载链接:
须要注意的是,arm-none-linux-gnueabi中的libstdc++.so.6的版本要与目标板的一致,否则主机中编译生成的执行文件copy到目标板的时侯会报如下错误
目标板中查看该版本的方式如下:
建议主机中先安装此版本(比较老的版本,够用即可):
安装完成自序住你安装到了那个目录,后续Eclipse中创建工程时须要选择该路径。
安装JDK:按照自己系统的位数,选择合适JavaSEDevelopmentKit进行安装,一路next即可。
安装EclipseIDEforC/C++Developers:
直接去官网下载即可
借助Eclipse创建并编译工程
参看《嵌入式Linux开发教程(下册)》章节10.5linux arm开发,不再赘言通常性的内容,这儿补充一点:
工程创建好之后,编译选项有一处须要更改,否则会报:g/g++notfound之类的错误
将编译生成的可执行文件加载到目标板并远程调试
参看《嵌入式Linux开发教程(下册)》章节10.5,不再赘言通常性的内容,这儿补充两点:
1.目标板与主机须要在同一个公网
2.Debug选项中,红框处默认会关联一个不存在gdb调试文件,会报错,直接删掉留空即可,
关注公众号,后台回复“Linux环境搭建”获取嵌入式Linux开发教程(下册)。