虚拟机交叉编译心得_带你了解什么叫系统移植及交叉编译

日常生活中,我们时刻不能离手的电子设备,所见所用的办公,娱乐设施大大小小都离不开系统。离我们最近的就有手机的Android系统或IOS系统,这些系统本来并不能直接用在我们现在的商品手机上,需要一定的修改,而所谓的系统移植就是通过优化,修改使其成为符合我们使用习惯的一个过程。

交叉编译是系统移植过程中代码由高级语言转换为机器码的一个步骤,即我们在电脑或其它平台上写好的代码,需要以目标平台的工具链进行转换才可使用的一个过程(包含库移植)。

[库移植实战问题注意点1:找不到交叉工具链(建立软连接方法)时改为绝对路径 或 修改环境变量.bashrc]

下面给大家见见网上搜索到的系统移植的详细操作步骤(包含四大部分,内容较多,建议分段阅读)

http://www.cnblogs.com/jiangzhaowei/p/6136879.html

可能您所好奇的MIUI ROM 制作: http://www.miui.com/thread-842680-1-1.html

而在实际开发过程中,我们拿到新开发板(包含手机研发时)通常也会考虑板子上电及之后硬件层面会发生什么事情,都是什么工作原理,关心用的是否是uboot,与其它有什么不同等等,还会思考用这块芯片能发挥什么性能,做些什么产品。

b956e19ccde4f64d1ce32a1804e8ade8.png

电路板,承载系统的物质基础

下面列举一些可能接触到的概念及资料

1.[板级支持包](https://baike.baidu.com/item/%E6%9D%BF%E7%BA%A7%E6%94%AF%E6%8C%81%E5%8C%85)(***BSP***)(Board Support Package)是介于主板硬件和操作系统中驱动层程序之间的一层,一般认为它属于操作系统一部分,主要是实现对操作系统的支持,为上层的[驱动程序](https://baike.baidu.com/item/%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F)提供访问硬件设备寄存器的函数包,使之能够更好的运行于硬件主板。在[嵌入式系统](https://baike.baidu.com/item/%E5%B5%8C%E5%85%A5%E5%BC%8F%E7%B3%BB%E7%BB%9F)软件的组成中,就有BSP。BSP是相对于操作系统而言的,不同的操作系统对应于不同定义形式的[BSP](https://baike.baidu.com/item/BSP/74511),例如VxWorks的BSP和Linux的BSP相对于某一CPU来说尽管实现的功能一样,可是写法和接口定义是完全不同的,所以写BSP一定要按照该系统BSP的定义形式来写(BSP的编程过程大多数是在某一个成型的BSP模板上进行修改)。这样才能与上层OS保持正确的接口,良好的支持上层OS。

2.![nand擦除计算.png](http://upload-images.jianshu.io/upload_images/2636843-cbfeb5bb163f2031.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

3. ADS与GCC

都是Arm软件开发的工具,一般公司会有自己的交叉工具链。

一般LINUX、UCLINUX 的移植于开发都用GCC。

而不带OS或者移植简单的ucos,多用ADS进行开发。在Windows PC上,多用于ADS. LINUX的操作系统或者通过虚拟机的LINUX,多用GCC.

ads直接编译生成的.bin文件可以在没有os的板子上跑啊,干嘛还要什么gcc编译? 你只要设置ads的配置参数就行了呀。如果是在linux下,就要下载一个交叉编译工具,解压后把工具的路径设置成环境变量,然后arm-linux-gcc 编译,就可以生成你要的在板子上跑的代码了。

通过对部分系统源码的接触学习过程中,我个人想法是能否实现一款基于私有云同步的手机系统,既包含语言助手(可进行语言唤醒,支持本地化/方言,又能免唤醒词),希望看到本文的您也能一起努力,实现一款自己满意的作品。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值