分享

如何直接在Windows下进行ARM-Linux应用程序开发调试

 西北望msm66g9f 2020-01-07

偷个懒,不安装虚拟机,直接在Windows下开发

ARM Linux应用程序。

友情提醒1:本篇适合在嵌入式软件开发已经有一定基础的读者。

1

缘由

在嵌入式行业摸爬滚打了八年有余,一直都没在Linux进行嵌入式软件开发。因为之前都是开发工业领域的产品,对于人机交互、网络应用、文件管理等方面的需求并不迫切,此外受限于成本、行业领域专用芯片以及实时性的要求,所以开发模式一般都是裸跑或者移植轻量级的RTOS(以FreeRTOS)进行简单的任务管理。

刚好前一阵需要在ARM Linux下进行应用程序的开发,所以摸索了开发模式,把一些经验和感悟分享下。

友情提醒2:此篇不涉及Linux底层驱动开发和移植,只讲在已经移植好Linux内核的目标板上开发应用程序的方法。

友情提醒3:市面上已经有许多专业做ARM Linux核心板的厂家,并已经做好了外围电路和移植好了比较稳定的Linux内核,如果读者朋友只想快速开发产品的应用程序,没必要自己从零开始设计ARM板电路,移植Linux系统,编写底层驱动等,直接购买ARM-Linux核心板,专注于应用层的开发即可。

2

必备基础概念-万物皆文件

在切入主题之前,先从Linux的万物皆文件说起。因为这个是习惯在Windows下开发的工程师们要立马扭转过来的观念。不要问我为什么,咱啥也不敢说,啥也不知道,要问就去问Linux本人吧。

Linux 中所有内容都是以文件的形式保存和管理的,普通文件是文件,目录(Windows 下称为文件夹)是文件,硬件设备(键盘、监视器、硬盘、打印机)是文件,就连套接字(socket)、网络通信等资源也都是文件。

这样做最明显的好处是,开发者仅需要使用一套 API 和开发工具即可调取 Linux 系统中绝大部分的资源。举个简单的例子,Linux 中几乎所有读(读文件,读系统状态,读 socket,读 PIPE)的操作都可以用 read 函数来进行;几乎所有更改(更改文件,更改系统参数,写 socket,写 PIPE)的操作都可以用 write 函数来进行。---上述这段话摘自网路,供大家参考理解。

3

必备基础概念-应用程序开发流程与方法

以下图片摘自ZLG 《嵌入式Linux开发教程 (上册)

开发模型

开发的一般步骤

下文提到的主机为开发人员电脑的Windows系统,目标板即为ARM Linux板。后续不再赘述。另外需要注意的是,如果需要直接在Windows下与目标板进行远程调试,目标板的Linux内核需要具备SSH功能。

4

Windows下环境搭建

最开始完整跑了一下全过程:使用windows下安装VMware,加载Linux镜像创建Linux虚拟机,然后在虚拟机下使用VIM编辑代码,编译生成执行文件,接着传送到ARM-Linux核心板中运行调试。因为之前都是Windows下开发,所以切换到Linux下不太适应,尤其经常需要使用Terminal进行命令操作。在命令不熟悉的情况下,开发效率较低。后来偶然发现原来在Windows平台下,不使用虚拟机也可以搭建开发所需环境, 省去了来回折腾和Makefile的撰写。

友情提醒4:如果读者朋友是专注于ARM-Linux开发,建议还是在Linux下进行开发。

 作者:跨界程序员Vincent

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多