Linux嵌入式开发的一些总结

 

Linux嵌入式开发的一些总结

作者: 宋立新

Emailzjujoe@yahoo.com

前言

做了几年 Linux 底层嵌入式开发, 有一些心得, 这里记录下来,作为进一步学习 Linux 之前的一个总结。

 

每日构建

Daily Build 是指利用自动化脚本,每天从版本库里提取代码及相关工具,生成可以下载到板子的系统镜像。大的公司比如Nokia/Microsoft等,都采用了该机制。是终端产品开发中一个Best Practise. 其好处有:

ü       构建脚本在一定的稳定周期后可以保证无差错的编译出版本。 避免人工编译的偶发性错误。

ü       节约人力成本。DailyBuild通常在深夜执行。不占用白天宝贵的人力、机器时间。

ü       便于版本回溯。出了新问题时,只要取出历史版本,进行二分查找,即可快速定位问题的初现版本。

ü       可以快速推出版本。 必要时,可以人工执行脚本。

使用版本管理工具

       相信很少有人开发软件不使用版本管理工具。版本管理是每日构建,快速开发的基础。

 

目前可选的版本管理工具有: CC/Git/Svn

ü       CC 由于没有深入研究(没有机会进行服务器端管理及二次开发等),目前个人看到了两个缺点:

1.       价格昂贵,一般只有 Windows 客户端, 很难获得符合要求的 Linux 客户端(比如, 某版本只支持 Redhat Linux) 所以,提交等操作必须在 Windows 下执行。而我们的代码都是在 Linux 主机上编译的。 手工地进行 Windows/Linux 拷贝容易出问题。比如, 链接文件问题。

2.       Windows 下的 CC 无法支持事后取出每个版本(指以 commit 为最小区分的版本,也可能是我不知道, 至少我请教过的所有人都不知道)这导致在出了问题时很难快速定位。

ü       Git 的好处是非常快速, 由于所有代码都在本地,任何操作都不依赖服务器。缺点有:

1.       不支持权限管理。由于任何一个客户端其实就是服务器端得一份拷贝。所以人都对等地获得所以源代码。

2.       不支持子目录操作。 你无法只是取出某个感兴趣的子目录。 Android Git 的基础上使用了 Repo

ü       Svn 的好处是支持非常精细的权限管理(当然,可能不如CC, 但足够了),可以控制某个人对某个目录的权限。缺点有:

1.       由于基于 CS (客户、服务器)架构,如果服务器崩溃了,则历史信息就丢失了。这一点跟CC类似。Git 则没有此问题。

 

通常, 我们对版本管理工具的需求有:

1) 支持 Dailybuild/Autobuild, 因为人工操作经常出错,我们应该尽量把能够自动化的操作交给脚本自动执行。

2) 支持高效的回归测试。

3) 支持权限管理。

4) 支持 linux/windows 双操作系统下的便捷操作。

目前看来, Svn 比较合适。

 

单元测试

       现在应用层开发单元测试的思想已经很流行,有人提出了测试驱动开发。 其实我认为底层开发同样适合使用测试驱动的方法。 测试可以是一个脚本, 一段代码,或者一个过程描述。

       可以运行/执行的测试程序比一份使用说明更加令人放心,一个驱动的测试代码可以用作:

1)   应用层开发人员代码集成时的示例代码。

2)   测试人员进行测试时的起点代码。

3)   后续维护人员熟悉代码的切入点。

4)   原作者在添加新代码后检查新代码是否会有影响的工具。

5)   硬件同事用来测试硬件特性的工具。

 

单元测试可以分为功能测试,性能测试,稳定性测试等。丰富的单元测试用例是开发人员给自己的代码加上的一道保险,也是提高系统迭代效率的利器。

注重记录

       工作过程中的很多细节,包括测试数据,调试信息,查到的参考资料,想法等,事后再去回忆,其实是很难跟当时一样详细的。 养成记录的好习惯,对以后整理文档、 复现问题、工作交接等都有很大的帮助。

注重优化

在实现了产品定义的基本功能后,我们就开始做优化了! 优化就是定义一些关键指标,然后将这些指标做的足够好。

Linux 下已经有很多工具,可以帮助我们来实现基于度量的优化。这里不讲细节,只是强调要有优化意识。脑海里总是想着该如何能够做得更好,一有想法要尽快去尝试,不断把事情做得更好。

       优化不仅仅局限于把一个模块、一个产品做好, 流程、工作方式的优化是更重要的优化。

持续学习

山外有山,人外有人。身处信息时代,我们每天都可以快速获得全世界的信息。

新的技术、新的工具可以提高我们的开发效率。有时你正在努力制造的轮子其实别人已经提供了一个完美的版本。

技术进步实在太快,我们应该努力跟上。也唯有持续学习,才能保持旺盛的工作能力,立于不败之地。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值