模块化开发
在我们学习电子电路、单片机电路及嵌入式软件开发的时候,总喜欢一块一块的学,一块一块的研究调试,这样我们能更快更好的掌握。
同样在做产品设计开发的时候,我们也应该发扬这种模块化开发的思想。比如一个产品的硬件有电源模块电路、主控单元的最小系统、外部数据存储、外部的各种通信接口,以及外围的各种模拟量数字量的采集与控制电路,有的还少不了显示电路等等。所以一个产品会有很多种模块化电路组成,这些功能模块又会对应相应的驱动程序及功能模块程序。
所以在产品开发的过程中我一直要求自己遵循模块化开发的的理念,因为这样会给我们带来很多好处,比如:
1.在产品开发过程中软硬件的调试,我们能更快更好的找出模块内存在的BUG,能更好的避免在做整合的时候出现更多的问题。
2.能更好的优化和升级产品。我们在优化产品的时候只需要优化和调试一部分模块而不会牵一发而动全身,这样对优化后的产品的稳定性也能有更好的保证。
3.能做好更多的技术积累,对公司和对工程师个人而言能做到双赢。积累的技术功能模块能为公司保存更多的技术实力,对新产品的开发和已有产品的维护升级都至关重要。而我们工程师也能积累更多产品开发所需要的功能模块设计。我们可以把这些积累作为一个个我们已经打造好的工具,等到用的时候可以直接拿来用,既方便又稳定可靠。
工具性总结
我一直主张在开发和学习的时候,不要盲目的做和学,要有效的利用我们上面说的模块化,把可以重复利用的电路或程序代码有效的模块化接口化,经过测试和稳定性验证的程序模块,是可以有效重复利用的,我们把这些模块工具化。
我在做开发的时候都针对不同的MCU,都会自己封装一套对应的底层驱动库,比如GPIO,我就做一个gpio.c和一个gpio.h的文件,在不同的项目开发中,我就只需要包含这两个文件,用的时候,只要调用gpio的初始化和操作函数就可以了,如果我们每次都在程序中直接对io的寄存器操作,那么这些代码是不是在其他项目中就不能重复利用了呢,每次我们还都要重复的编写这些代码,这样也会带来很多问题,比如程序的可读性,可修改性以及可测试性等。
随着我们不断的学习总结,我们会积累更多的电路或程序模块工具,在以后的开发过程中,我们就可以拿出我们为自己打造的这些工具,像搭积木一样的来开发产品。
这样一来,我们的产品开发是不是变得更加高效,而且每一个工具化的模块都是以前经过测试验证的,这样也能为我们在产品开发过程中节省大量的测试调试和验证的时间。
做很多事情都是这样,立足当下,思考未来,总结规划,今天的点滴付出,肯定能换来明天的美好结果。
关键字:嵌入式 软硬件 开发 工具性
引用地址:
嵌入式软硬件模块化开发和工具性总结
推荐阅读最新更新时间:2024-05-03 02:22
手机应用开发面临三座大山:盗版泛滥税收太高
“研发苹果iPhone应用软件的成本太贵了,不但要买iPhone还需要买Mac Book苹果电脑。”来自华南理工大学的梁建辉指着手上的三星品牌中国移动定制手机向记者表示,他研发软件都必须先买手机再研发。面对庞大的手机应用软件市场,越来越多的开发者选择以“单干”的方式投入这个有巨大前景的市场。但终端的缺乏、盗版的猖獗以及高昂的税收成为制约投入这个创意产业的三座大山。有手机应用开发者向记者表示,国内运营商需要牵头协助开发者解决相关问题。
障碍1:不缺创意缺手机
经过2010年的充分市场培养,国内专家观点均认为中国智能手机市场在2011年将呈现爆发性增长。而智能手机的增长,包括手机游戏和手机应用程序在内的手机软件
[手机便携]
基于WinCE操作系统的通用USB数控键盘设计
引言
随着网络时代的到来,机械制造行业也面临着如何适应网络化制造的问题。于是将计算机技术、网络技术和传统的控制技术相结合,以嵌入式系统为主的数控系统正日益成为机械制造领域的热点。对于一个具体的数控系统,在通过键盘作为人机交互工具时,按键的数目与功能上与其他的数控系统是不同的,实时性和高速率是工业现场所重视的,USB数控键盘相对于传统的PS/2键盘具有高速率、支持热插拔、可灵活配置等特点,所以要为嵌入式数控设备研发出通用的数控键盘,来满足现代化数控系统的需求。具体设计方案如图1所示。
图1 系统框图
系统硬件电路设计
系统(图1)有四个模块组成:键盘模块、USB接口模块、USB和MCU
[嵌入式]
基于ARM920T内核的16/32位RISC嵌入式CPU的解析方案
1 前言 在当今后PC时代,嵌入式系统应用得越来越广泛,嵌入式产品充斥着许多领域,日常生活的手机,MP4,PDA等都属于典型的嵌入式系统。在嵌入式系统中,微处理器和操作系统是进行应用开发的基础。在微处理器方面,S3C2410是Samsung公司推出的一款基于ARM920T内核的16/32位 RISC嵌入式CPU,主要面向手持设备以及高性价比、低功耗的应用。在操作系统方面,Windows CE 5.0是由微软提供的一款嵌入式操作系统,在Windows CE 4.2基础上,它又加入了一些新特性以满足市场需求。板级支持包 (Board Support PACkage,BSP)是操作系统的一个组成部分,提供对硬件的支持。BSP的开
[单片机]
嵌入式问题(codewarrior编译、下载程序)
开始学习arm裸机程序,之前就在准备着,可是一直进展的不是很顺;原因是自己效率不是很高,怕失败;不过突然顿悟了,与其慢慢的做自己会的东西不如突破下自己往前走因为怕失败的人终究是要失败的;但是有个前提--得有目标不能今天学linux,明天又学arm裸机;所以从今天开始学arm裸机程序。于是决定,早睡早起,遇到问题勇于尝试而不是死命的想,做技术的可以先会做了再明白为什么这么做。 前面开题,下面说说学习过程中遇到的问题,无论是硬件问题还是软件问题,无论是板子的问题还是自身的问题都将记录在日志中便于今后学习。 今天遇到问题:1.ads编译不出arm可执行的二进制文件2.bin程序下不近开发板。 解决方案: 问题1:
[单片机]
苹果给开发者推送macOS Big Sur Beta 8/特斯拉发布全新动力电池
在特斯拉的电池日活动上,该公司发布了多个有关电池技术的创新。马斯克揭晓了全新动力电池,所谓“真正革命性”的 4680 型,即高度 80mm,直径 46mm。其能量密度相比以往的电池提升了 5 倍,功率提升了 6 倍,在使用新电池之后,电动汽车的续航里程可以提升 16%。 苹果向开发者推送 macOS Big Sur Beta 8 今天苹果向开发者推送了 macOS Big Sur 的第 8 个测试版本,开发者可以通过 Apple 开发者中心下载 macOS Big Sur Beta,一旦安装了适当的配置文件,便可以通过“系统偏好设置”中的“软件更新”机制获得后续 Beta 更新。随着正式版本发布的临近,Beta 版本的变化
[手机便携]
基于PXA255和嵌入式QT的IP视频电话设计
传统的IP电话是将语音信号转变成数字信号,进行打包和压缩,在数据网上进行传输。但近年来,人们已经不满足于只能听到语音,还希望能见到对方的图像。本系统就是针对人们的这一需求,在Intel的PXA255平台上利用QT/Embedded图形开发工具设计的一个IP视频电话系统。 1 硬件系统结构 整个系统主要是在Intel PXA255评估平台Sitsang板上实现的。PXA255是基于Intel的Xscale架构的嵌入式处理器,该平台配备了大量的硬件资源。整个系统的硬件结构如图1所示。 2 软件系统结构 系统中采用的是基于Qt/Embedded 2.3.10版本的嵌入式图形库。该图形库是基于Linux系统的F
[网络通信]
DSP软硬体双管齐下 图像处理开发挑战有解
随着人们对生活质量要求提升、全球反恐大势所需,以及数位化技术的不断进步,指纹、虹膜、人脸等生物识别方案和视频监控方案等,正逐步成为提升个人、家庭、企业和社会安全性的重要手段。 生物识别方案主要包括图像采集、图像预处理、特征取样及匹配分析四个步骤;而视频监控方案则主要包括图像采集、图像预处理、图像处理与传输、图像显示及图像管理等。不难看出,无论是生物识别还是视频监控,图像预处理都不可或缺。事实上,图像预处理算法的灵活度、复杂度、对图像处理晶片资源的占用度,以及处理时间的长度,将直接对整个系统运作产生举足轻重的影响。因此,图像预处理对于整个安防方案来说,是一项艰巨而又关键的任务,直接决定后续图像处理与分析的准确性和便捷性。
[嵌入式]
【嵌入式】从零开始移植U-boot到mini2440(二)——烧录篇
烧录 相关工具:j-link 软件:j-flash ARM V4.70 在编译成功之后,会生成u-boot.bin在output目录下,这个二进制文件就可以直接用于烧录。 烧录位置的确定方法 烧录的时候,我这里选择直接烧写在NOR中,看S3C2440的SPEC和开发板的原理图(找NOR的CE接口和S3C2440哪个引脚相连),当我们选择从NOR启动的时候,NOR Flash被映射到内存0x0000_0000 ~ 0x0800_0000,也就是说我们直接把bin文件烧录到0地址即可。 这里有一篇写的蛮好的blog,解释了ARM是如何通过NOR和NAND启动的。 https://www.cnblogs.com/aaron
[单片机]