嵌入式软件开发流程图(嵌入式软件开发项目实例)

软件开发 3605
本篇文章给大家谈谈嵌入式软件开发流程图,以及嵌入式软件开发项目实例对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、嵌入式软件开发方法 2、

本篇文章给大家谈谈嵌入式软件开发流程图,以及嵌入式软件开发项目实例对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

嵌入式软件开发方法

根据使用的开发工具套件不同,软件开发流程会有差异,但主要步骤大致相同。对于使用宿主机(PC)的集成化开发环境,软件开发流程一般包括创建项目、添加文件、编译连接、下载调试等步骤,如下图所示。

图1:嵌入式软件开发流程

(1)创建工程项目:在配置硬件设备和安装软件开发工具后,就可以开始创建工程项目,通常需要选择项目文件的存储位置及目标处理器。

(2)添加项目文件:开发人员需要创建源程序文件,编写应用程序代码,并添加到工程项目中;还将使用设备驱动程序的库文件,包括启动代码、头文件和一些外设控制函数,甚至中间件(Middleware)等。这些文件也需要添加到项目中。

(3)配置工程选项:源于硬件设备的多样性和软件工具的复杂性,工程项目提供了不少选项,需要开发人员配置,如输出文件类型和位置、编译选项和优化类型等,还要根据选用的开发板和在线仿真器,配置代码调试和下载选项等。

(4)交叉编译连接:利用开发软件工具对项目的多个文件分别编译,生成相应的目标文件,然后连接生成最终的可执行文件映像,以下载到目标设备的文件格式保存。如果编译连接有错误,返回修改;如果没有错误,先进行软件模拟运行和调试,再下载到开发板运行和调试。

(5)程序下载:目前,绝大多数微控制器都使用闪存(Flash Memory)保存程序。创建可执行文件映像后,需要使用在线仿真器(或串口、网口)将其下载到微控制器的闪存中,实现闪存的编程;还可以将可执行文件下载到SRAM中运行。

(6)运行和调试:程序下载后,可以启动运行,看是否正常工作。如果有问题,连接在线仿真器,借助软件开发工具的调试环境进行断点和单步调试,观察程序操作的详细过程。如果应用程序运行有错误,返回修改。

嵌入式产品开发流程

嵌入式硬件开发流程一般分为8 个阶段:

嵌入式产品的硬件形态各异,CPU 从简单的4 位/8 位单片机到32 位的ARM 处理器,以及其他专用IC。另外,依据产品的不同需求,外围电路也各不相同。每一次硬件开发过程,都需要依据实际的需求,考虑多方面的因素,选择最合适的方案来。

硬件阶段

1:硬件产品需求 和普通的嵌入式产品需求一样。

阶段1:

产品需求。

硬件阶段2:

硬件总体设计方案

一个硬件开发项目,它的需求可能来自很多方面,比如市场产品的需要或性能提升的要求等,因此,作为一个硬件设计人员,我们需要主动去了解各个方面的需求并分析,根据系统所要完成的功能,选择最合适的硬件方案。

在这一阶段,我们需要分析整个系统设计的可行性,包括方案中主要器件的可采购性,产品开发投入,项目开发周期预计,开发风险评估等,并针对开发过程中可能遇到的问题,提前选择应对方案,保证硬件的顺利完成。

硬件阶段3:

硬件电路原理图设计

在系统方案确定后,我们即可以开展相关的设计工作,原理设计主要包括系统总体设计和详细设计,最终产生详细的设计文档和硬件原理图。

原理设计和PCB 设计是设计人员最主要的两个工作之一,在原理设计过程中,我们需要规划硬件内部资源,如系统存储空间,以及各个外围电路模块的实现。另外,对系统主要的外围电路,如电源、复位等也需要仔细的考虑,在一些高速设计或特殊应用场合,还需要考虑EMC/EMI 等。

电源是保证硬件系统正常工作的基础,设计中要详细的分析:系统能够提供的电源输入;单板需要产生的电源输出;各个电源需要提供的电流大小;电源电路效率;各个电源能够允许的波动范围;整个电源系统需要的上电顺序等等。

为了系统稳定可靠的工作,复位电路的设计也非常重要,如何保证系统不会在外界干扰的情况下异常复位,如何保证在系统运行异常的时候能够及时复位,以及如何合理的复位,才能保证系统完整的复位后,这些也都是我们在原理设计的时候需要考虑的。

同样的,时钟电路的设计也是非常重要的一个方面,一个不好的时钟电路设计,可能会引起通信产品的数据丢包,产生大的EMI,甚至导致系统不稳定。

编者按:原理图设计中要有“拿来主义”!现在的芯片厂家一般都可以提供参考设计的原理图,所以要尽量的借助这些资源,在充分理解参考设计的基础上,做一些自己的发挥。

硬件阶段4:

PCB图设计

PCB 设计阶段,即是将原理图设计转化为实际的可加工的PCB 线路板,目前主流的PCB 设计软件有PADS,Candence 和Protel 几种。

PCB 设计,尤其是高速PCB,需要考虑EMC/EMI,阻抗控制,信号质量等,对PCB 设计人员的要求比较高。为了验证设计的PCB 是否符合要求,有的还需要进行PCB 仿真。并依据仿真结果调整PCB 的布局布线,完成整个的设计。

硬件阶段5:

PCB加工文件制作与PCB打样

PCB 绘制完成以后,在这一阶段,需要生成加工厂可识别的加工文件,即常说的光绘文件,将其交给加工厂打样PCB 空板。一般1~4 层板可以在一周内完成打样。

硬件阶段6:

硬件产品的焊接与调试

在拿到加工厂打样会的 PCB 空板以后,接下来我们,需要检查PCB 空板是否和我们设计预期一样,是否存在明显的短路或断痕,检查通过后,则需要将前期采购的元器件和PCB 空板交由生产厂家进行焊接(如果PCB 电路不复杂,为了加快速度,也可以直接手工焊接元器件)。

当PCB 已经焊接完成后,在调试PCB 之前,一定要先认真检查是否有可见的短路和管脚搭锡等故障,检查是否有元器件型号放置错误,第一脚放置错误,漏装配等问题,然后用万用表测量各个电源到地的电阻,以检查是否有短路,这样可以避免贸然上电后损坏单板。调试的过程中要有平和的心态,遇见问题是非常正常的,要做的就是多做比较和分析,逐步的排除可能的原因,直致最终调试成功。

在硬件调试过程中,需要经常使用到的调试工具有万用表和示波器,逻辑分析仪等,用于测试和观察板内信号电压和信号质量,信号时序是否满足要求。

硬件阶段7:

硬件产品测试

当硬件产品调试通过以后,需要对照产品产品的需求说明,一项一项进行测试,确认是否符合预期的要求,如果达不到要求,则需要对硬件产品进行调试和修改,直到符合产品需求文明(一般都以需求说明文档作为评判的一句,当然明显的需求说明错误除外)。

硬件阶段8:

硬件产品

最终开发的硬件成功。一个完整的,完成符合产品需求的硬件产品还不能说明一个成功的产品开发过程,我们还需要按照预定计划,准时高质量的完成。才是一个成功的产品开发过程。

嵌入式开发学习步骤

我也是计算机科学与技术专业的,你要是在单片机上做开发,给你看看怎么学习。当然我们的嵌入式学习基本上都是基于Linux的啊。

开发板必须要有的啊!!呵呵。

这里声明一下,我指的嵌入式主要是偏向软件的嵌入式。学习嵌入式的重点和难点关键在操作系统,如果没有掌握操作系统,我认为很难把握一个嵌入式系统。即使在做嵌入式开发中,作应有层的开发几乎可以不知道操作系统也可以开发,我认为那是浮在表面的。很难深入和提高自己的层次。声明:一孔之见!不可深究!

在学习linux内核过程中犯了一个极其严重路线错误:对linux几乎不懂就开始学习内核。我个人推荐一个学习路线是:使用linux—〉linxu系统编程开发---〉驱动开发和分析linux内核。而我差不多相反,实际上你不会使用linux也可以学习内核,但是如果你懂了这些东西学习更有效率。

关于要不要学习内核的问题,我的回答如下:不一定。如果你是喜欢钻研的那你进入内核会满足你的欲望。同时对你以后的嵌入式系统的开发有很好的影响。如果你想从事嵌入式linux系统开发,最好对内核有所了解。如果仅仅是做应用开发没有必要。我打个比喻:c、c++、java等语言是武林中的某个武林派别的话,如什么拳法,什么刀法等,那么linux 内核应该是一个人的内功的反应。

怎么开始学linux内核:最好有三件宝物:《深入理解linux内核》《情景分析》和源代码。 先看《深入理解linux内核》,那主要讲原理,好像市场上有本讲原理性并且更浅,《linux内核设计与实现》听说不错。如果没有学习操作系统的,像我这样的,最好先看看操作系统原理的书。看了几遍后,就看情景分析,最好对着《深入理解linux内核》看。两本交叉看,《深入理解linux内核》是纲,《情景分析》是目。最后深入代码。

学习嵌入式技术,我认为两个重点,cpu和操作系统,目前市场是比较流行arm,所以推荐大家学习arm。操作系统很多,我个人对开始学习的人,特别不是计算机专业的,推荐学习ucos。那是开源的,同时很小。学习很好。为什么选linux,我不想讲太多,网上这方面的太多,但是我在工作中发现,做linux的技术路线很难,在windows几乎不会有的问题,在linux开发中几乎遍地陷阱。一掉进去划很长时间出来,一旦解决自己又长进了!相对来说开发周期长,难度大。现在资料也逐渐丰富起来,难度也降低了些!

至于怎么学习,这是他的特色地方,必须有块开发板,我是同学里最早买学习板的,虽然化钱,我认为值。对我实习和工作产生了很大的影响。

如果没有开发板,那是纸上谈兵。有人说,那要1000-2000啊,的确是,兄弟,看长远的,对您的职业和发展那点钱不算什么!有的人说我站着说话不腰痛,好吧,钱这东西对我影响很大,我在大学里扫厕所,扫的不错,奖5元/月。兄弟你有过吗?我认为教育投资是效益最有保障的!我实习拿3k,很多同学拿 1-2k,当然比我高的也有。虽然我现在没有毕业,但一家公司就签了。从事目前流行的高档的消费电子的研发。对于我两年前一无所知的我,应该有质的变化,我感谢学校收了我这个废品。当然我也非常的努力。说这么多并不是要炫耀我什么,实际上根本不值得炫耀,虽然现在工作环境和待遇比较满意,但是,我发现我很差,特别是代码能力,我希望平常大家少玩游戏,多编程。编程才是硬道理!

没有想到,一下写了这么多,其实还想写的,比如在中科院的一位老兄是怎样学习linux内核和看书的,真的很感动。他的为人我很钦佩。也想介绍毛德操的《嵌入式系统》那本书,对学习arm linux的很好,也想介绍实习和工作的东西,太长了,耽误大家时间。我也不想检查里面的错别字了,很多!

呵呵呵,我想对你应该有帮助的啊,特别是那几本书,必看的啊!!

希望你前程似锦,学习进步!!

呵呵呵呵。汇编也很重要啊,这一点对明白操作系统和CPU有重要的推进作用。

嵌入式软件开发流程图的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于嵌入式软件开发项目实例、嵌入式软件开发流程图的信息别忘了在本站进行查找喔。

扫码二维码