embedded linux学习中几个需要明确的概念

  有些童鞋可能很奇怪,为何我一开始说BBB,后来反而尽扯一些无关的呢?其它,一开始我写关于BBB的blog是仅是想记录我的一些历程,现在想做点有用的、对大家有帮助的事,开始的记录的顺序可能就不合适了,反正BBB也很熟悉了,现在是补记录,要补还是补全一点,还有,希望不误导人!

  我做测量系统做了十五年,最早是最硬件和下位机软件,因此对硬件的东西很熟悉,从51到cortexM3(但cortex-A8不熟悉!),后来做上位机软件多一点,再后来偏于管理。不谦虚的说,我写的测试软件不是最好的,但其可靠性是一流的,因为我的产品测试是很全面的,从静态到动态,一个软件下来,测试用例用比软件本身还庞大。为什么突然说这个呢,因为我发现许多朋友,是因为好玩才玩BBB,并不定有我这样的经历,因此才想说一定要清楚几个概念。

一、linux

  它仅仅是一个核心(内核),其它的redhat/debian/ubuntu等都是在其之上的一功能软件的集合体。

二、编译内核、uboot等

  初学者没有必要一开始就干这个吃力不讨好的事情,因为你很可能都不知道你为什么需要做这个事儿。

  只有原生的系统内核中,你需要的功能没有,或者你想将你需要的功能加入内核,让系统一启动就自动运行(当然这也有其它方法实现),才会做这个事儿。

  编译uboot是你的硬件系统改变,比如说是Nand的地址、MCU类型等与系统启动相关的东西发生改变,你需要适应性的修改才会做这些事。

三、cross-toolchain是什么?

  你使用的x86架构(不管用win还是linux),而你用写的应用程序想在ARM架构下运行(不管是embedded linux还是ucOS),怎么办?

  当开发和应用的系统架构不同时,你需要一个工具,这个工具能够将架起不同平台之间的桥,这就是cross-toolchain。简单的例子,用x86平台的宿主机,开发出运行于ARM架构目标机的应用程序,这期间所需要的编译、调试等工具就是一个cross-toolchain。

  很多的BBB的开发是基于linux,通过cross-toolchain,生成应用,通过ftp或其它共享工具,发布应用到目标系统,这是一个典型的cross-toolchain的应用。其实,在win下一样可以通过cross-toolchain开发、发布BBB的应用(我也经常这样做)。

  因此cross-toolchain的本质是硬件系统架构不同,而非OS系统架构不同!

四、SDK一定要用吗?

  我的建议是,你在初期(或熟悉期)最好不用,如果你对linux本身比较熟悉了,你可以使用,这会使效率提高。

  初期其实最重要的工作是熟悉硬件和软件平台,而非应用接口,何况这个应用接口还是硬件相关的。

  当你自己能够熟练的使用、搭建自己的工作环境,你会发现,你对系统的了解上了一层楼。


  欢迎猛拍!

PS:后续,我开始说正事儿,当然,也基本是离不开BBB的使用,不想多说firmware开发的事儿,基本的顺序是:建立基本的开发环境——测试一下应用程序开发——结合一个cape的开发,简单说点硬件和系统——再回到应用开发,说点linux环境上位机和下位机软件开发——如果我后续时间允许的话,我结合BBB和一个产品的开发,详细说一个产品的全生命周期中的相关技术问题和解决的历程。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值