2019独角兽企业重金招聘Python工程师标准>>>

ARM的开发与X86还是有不少区别的,这里做了一些简单的介绍,以方便X86下的开发者能更快地切换到Linux on ARM的体系下面来。

ARM近年来的发展可谓如日中天,苹果和Android的使用是最为快速的推动力,而今Windows也支持ARM了,而更小型的树莓派和一些超低功耗模块也都有使用ARM的内核了。

尽管微软已经耐不住寂寞,大部分使用ARM的设备还是Linux或是类Linux的系统内核,因为Linux的可裁剪性非常好,而且可用的资源非常非常多了。在“软件定义世界”的思路引领下,Linux on ARM必将是未来的大潮流。

Linux on ARM与X86体系下的不同点是采用“设备”的概念,“X86下的BIOS”是可以自己烧进去的(就是那个启示时按个烧写键,就把引导区少到Flash的指定区域了,这个地址在给定板子上是不能变的),这个叫boot-loader,一般用的u-boot。当然,因为u-boot是开源的,因此出现了很多变体,但基本上都是大同小异。

boot-loader启动后,就会跳转到下一个地址,开始载入Linux内核,这里头最重要的是文件系统。有了文件系统,就不用再去读写Flash的裸扇区了,而是通过文件系统进行数据文件的操作。然后将会进入命令行界面,有一个叫Busy-box的小程序把常用的一些命令都打包到了一起,使用起来更方便、体积更小、运行更快。这时候,几乎能干shell下能干的所有事情了。通过ssh就可以实现远程管理了。

如果要进入图形界面,就需要运行一个X11的Server程序,还可以安装xrdp服务,然后通过“远程桌面”进行登录、管理,就跟运行一个普通的Linux桌面设备一模一样了。因为ARM的功耗和发热量都比较小,甚至大部分都不需要风扇散热、完全静音,非常适合各种设备的开发。以后的各种智能设备可能都会成为这个样子,其实就是一台运行Linux的电脑。

既然是一台Linux电脑,那么开发软件也就很简单了。但是,且慢! 因为ARM的设备性能还是低一些,一般不适合拿来运行IDE,进行代码编辑、编译、打包等工作,所以一般就在PC机上建一个“交叉编译环境”,编译完程序,打成二进制包,再烧写进去。比如Android的ADK就是一套这样的工具集,可以完成编辑、调试、编译、打包等等工作。而OpenWRT是采用的另外一套思路,直接可以在X86上面编译生成多个版本的ipk文件,然后通过包管理程序下载安装即可(Android现在也有X86的版本了)。

当然,这个步骤还是有点麻烦的。很多牛人直接运行Python或者LUA、JavaScript的脚本,可以直接在所有的平台上运行,现在基于ARM Cortex M0的脚本引擎都已经出来了(完全开源的,但还在发展中,有的功能还无法完全调用),比如NodeMCU、MicroPython等等。

但要在嵌入式设备上得到完全相同的结果,命令行没有什么问题,图形界面就要费点劲了。可以通过支持HTML5的引擎来完成(这个已经蔚然成风了,如nodejs/PhoneGap/Kendo/React等等)。

Ubuntu Touch通过QML完成类似的功能,使用的是QT来封装的,可以混合HTML和本地API调用,无论显示效果和一致性都是非常好的。

如果以本地显示为主,还可以直接使用QT或者Pyqt进行开发,可以使用同一套代码,支持从时钟到工作站、集群级别的应用开发和运行(不同CPU和Linux内核版本需要重新编译,如果CPU和内核相同可以二进制兼容)。

转载于:https://my.oschina.net/u/2306127/blog/407054

Linux On ARM开发纪要相关推荐

  1. 【linux】ARM开发板上设置RTC时间,断电重启后,设置失效的原因分析

    问题描述 linux中使用date设置时间后用hwclock -w同步到RTC,断电重启后,有时会失效 原因分析 保存时间戳 1.使用命令关机(halt)会调用rc0.d中的脚本: 2.使用命令重启( ...

  2. linux上 arm开发环境搭建,详解 LINUX下QT For ARM开发环境搭建过程

    LINUX下QT For ARM开发环境搭建过程是本文介绍的内容,不多说,先来看内容.在PC上,我们需要得到两个版本的Qt,分别是:Qt-4.5.2和QtEmbedded-4.5.2-arm.前者包括 ...

  3. 在Vmware下linux与ARM开发板的NFS系统搭建【ZT】

    终于在Vmware下将arm_linux平台搭建好了,也不知道花了多少时间,查了多少资料.其实是很简单的,走了不少的弯路,现在总结下,希望对后学者有所帮助. 基本环境: 主机OS:Windows XP ...

  4. 学习嵌入式linux与ARM开发板入门方法(一)

    嵌入式开发板(Embedded development board)就是半导体行业分工合作的载体之一,它为开发产品的厂商提供基本的底层硬件.系统和驱动等资源,使得用户不需要再投入人力和时间来完成这些底 ...

  5. 嵌入式linux与ARM开发板的入门建议

    2019独角兽企业重金招聘Python工程师标准>>> 第一,学习基本的裸机编程. 对于学硬件的人而言,必须先对硬件的基本使用方法有感性的认识,更必须深刻认识该硬件的控制方式,如果一 ...

  6. Linux下ARM开发环境搭建

    本人的系统环境:Linux ubuntu 3.8.0-35-generic #50-Ubuntu SMP Tue Dec 3 01:25:33 UTC 2013 i686 i686 i686 GNU/ ...

  7. 云linux搭建 arm开发,arm集成开发环境搭建

    弹性云服务器 ECS 弹性云服务器(Elastic Cloud Server)是一种可随时自助获取.可弹性伸缩的云服务器,帮助用户打造可靠.安全.灵活.高效的应用环境,确保服务持久稳定运行,提升运维效 ...

  8. windows、虚拟机和ARM开发板3者互ping

    嵌入式开发中常用的开发方式:windows上做实际开发,虚拟机上装Linux当服务器交叉编译程序, ARM开发板运行程序.通常三者连接时,会遇到各种问题,此文档就是从分析到实例解决该问题. 更多详情, ...

  9. 【Qt开发】【VS开发】【Linux开发】OpenCV、Qt-MinGw、Qt-msvc、VS2010、VS2015、Ubuntu Linux、ARM Linux中几个特别容易混淆的内容...

    [Qt开发][VS开发][Linux开发]OpenCV.Qt-MinGw.Qt-msvc.VS2010.VS2015.Ubuntu Linux.ARM Linux中几个特别容易混淆的内容 标签:[Qt ...

最新文章

  1. 【Effective Java】1.静态工厂方法来替换构造函数
  2. AI到底如何改变教育?好未来重金押注AI的背后逻辑
  3. 存储过程学习笔记(SQL数据库
  4. Java 基本数据类型 sizeof 功能
  5. 初级算法——两个物种(蓝桥杯)
  6. C#中读写Xml配置文件常用方法工具类
  7. Comptia Strata认证考点相关情况【2018.06.05更新】
  8. Auto type deducing
  9. Centos7 Kubernetes(k8s) 开发服务器(单服务器)部署 zipkin 链路跟踪
  10. 手机、电脑录制内部声音的方法
  11. OA实施周期:易用性才是关键因素
  12. shning friends---歌词
  13. 【牛客刷题-SQL大厂面试真题】NO5.某宝店铺分析(电商模式)
  14. Linux系统如何替换新硬盘
  15. c++逆天改命进阶--二叉树练习题
  16. 内网自建yum源和apt源(含各信创系统)
  17. 阿里巴巴与蚂蚁集团开源框架SOFA Boot
  18. 糖友低碳水、高蛋白饮食可行吗
  19. 在x86_64架构+VMware16.2.3 Pro+openEuler20.3-LTS上快速部署(一键安装)openGauss 3.1.1企业版数据库指导手册
  20. YDOOK: ANSYS 命令 定义线性材料属性 TB, TBPT

热门文章

  1. 30万条数据,搜索文本字段的各种方式对比
  2. SEO之Google--PageRank优化剖析(一)
  3. Magento的基本架构
  4. insmod module_param 模块参数
  5. Linux(debian7)操作基础(十五)之systemd下lightdm免密登录
  6. 【AI视野·今日CV 计算机视觉论文速览 第173期】Wed, 25 Dec 2019
  7. Kubernetes-PersistentVolume(PV)介绍(八)
  8. DirectoryInfo类 c# 1614534016
  9. pip修改下载源为国内源 linux系统
  10. linux-用户-进程-文件的关系