系统集成向来是一项复杂并且具有挑战性的工作。
复杂性在于,对系统资源的利用分析,带宽的占用,潜在的软件和硬件冲突……
希望这篇文章能帮助你避免一些常规的缺陷,从而建立一个高效而健壮的系统。
一 资源占用评估
DSP是一个资源受到限制的系统,必须认真分析每个部件所消耗的资源,
那么常规的资源分析就有内存占用,带宽占用,中断,DMA,集成系统就得详细
了解每一部件。
二 软件冲突和硬件冲突
从软件方面来看:
系统的集成必然涉及到中断管理,DMA管理,设备管理,加入新的部件就有可能需要
给这些管理器更多的内存,同时集成之后就只需要一套初始化过程了,有必要删减掉多余的。
从硬件方面来看:
内部总线有一个最大吞吐率,比如总线是133MHZ的频率,32bit宽,那么最大吞吐率就是
532Mbyte/s,不要被这个巨大的数字迷惑,实际的系统中,很多的因素会减小这个最大可用的吞吐率,比如
读写切换,bank冲突,仲裁延迟,CPU和DMA冲突,等等。
另外使用出错处理,比如Exception,HWERROR,能让你迅速定位硬件错误。
三 系统优化
先立后快,系统能够跑起来后,你会感到如释重负,系统优化就可以自由发挥了,无非是减少延迟,
最大可能地并行流水,微程序流水,指令流水,模块流水,部件流水。每种DSP的帮助都会有大量的
文档来讲系统优化的,照着文档做就行,能深入系统某个底层的程序员比较少,能站在系统的高度
做全局优化的更少。
四 DEBUG工具
就象修车需要工具一样,好的程序员应该能够熟练运用各种软件工具。
使用这些工具,你可以看到你的系统在干些什么,它又占用什么资源,它到底和哪些外界的东西打交道。
让你郁闷好几天的问题可能通过某个工具就能轻松搞定,可惜你就是不知道。
不要沉迷于重新编译,也不要依赖printf,赶快熟悉你所能使用的工具。下面列出了DSP程序员常用的
debug工具如果说你都没接触过,那我要建议你赶快跳槽吧。
.源码级调试器[Source-level Debugger]
.简单实用的打印显示工具[printf]
.ICE或JTAG调试器[In-circuit Emulator]
.Data监视器[Data Monitor]
.OS监视器[Operating System Monitor]
.性能分析工具[Profiler]
.内存测试工具[Memory Teseter]
.运行跟踪器[Execution Tracer]
.覆盖工具[Coverage Tester]
.GUI测试工具[GUI Tester]
.自制工具[Home-made tester]
//-----------------------
YANGHAIJIAN 2007.12.5
all right reserved!