返回主站 | 设为首页 | 加入收藏      
   
 
  首页 关于我们 产品展示 方案设计 技术分享 行业资讯 联系我们  
 
无线收发IC
2.4G无线收发IC
315MHz/433MHz无线遥控器发射接收IC
功放IC
电源管理IC
马达驱动IC/步进电机控制芯片
数模(DAC)/模数(ADC)转换芯片
智能处理器
音量控制IC
模拟开关IC
电容式触摸感应IC
RGB LED呼吸趣味灯驱动IC
音频CODEC IC
方案设计
电压电平转换器IC
运算放大器
I/O扩展器IC
 
名称:
种类:
类别:

业务洽谈:

联系人:张顺平 
手机:17727550196(微信同号) 
QQ:3003262363
EMAIL:zsp2018@szczkjgs.com

联系人:鄢先辉 
手机:17727552449 (微信同号)
QQ:2850985542
EMAIL:yanxianhui@szczkjgs.com

负责人联络方式:
手机:13713728695(微信同号) 
QQ:3003207580 
EMAIL:panbo@szczkjgs.com
联系人:潘波

 
当前位置:首页 -> 技术分享
浅谈软件硬件联系
文章来源: 更新时间:2016/6/23 17:08:00

软件硬件看似两个分家的东西,其实内在有千丝万缕的联系。我举一些小例子:

开关电源的电感在一个时钟周期内,要满足伏秒平衡。物理意义是,开关周期内电感吸收的能量和释放的能量应该是相等的。否则,系统不会平衡,不稳定。对于软件系统,特别是复杂的大型系统,虽然有严谨的理论去判断一个软件模块的稳定性。但对于程序员调试,并不是一个简单轻松的过程。可以借鉴伏秒平衡的思路,一个大型的代码在一个状态结束时,除了一些统计变量之外,应该是回到最初的状态,具体的体现:内存释放与申请,系统输出的结果等应和最初状态一致。栈在没有中断回到初始位置时,应该也是回到最初位置的。否则,系统会不稳定。

关于初始化,一直不被软件工程师所重视。硬件工程师有时候也会忽视这个问题。软件中的初始化,从宏观上讲,模块的初始化;启动操作系统的准备工作;任务栈,堆的准备。从微观上讲,变量的初始化,全局构造函数,全局变量初始化。对于硬件,上电的顺序;芯片管脚上电的状态。数字芯片的初始逻辑状态。模拟信号的初始范围等等。有一些音箱,开机的时候会砰一声。这个是上电产生的电流冲击,比较难抑制。消音电路很难做好。一些高级的CPU,会有上电顺序要求。一些可靠的系统,要求上电,掉电,信号都必须有确定的状态。单纯的硬件去做,有时候很困难。可能需要软件硬件一起结合着做。Bootloader 为了后续的应用代码做了很多初始化工作。

在软件抽象一些客观事物时,可以参考硬件的抽象。比如说以太网相对于处理器是个低速设备,为了解决无休止的中断,DMA 可以大大缓解处理器的压力。如果处理器抽象成一个类、以太网抽象成一个类,那么DMA可以看作一个通信关联类了。其参数的抽象和深入的分析,对软件设计和硬件设计都是个极大的促进。

芯片是别人给你的库函数。完成各种各样的功能。软件开发过程中,需要了解库函数的执行行为,参数范围,使用技巧,应用场景。其实,芯片的应用也是一样的。需要了解管脚的功能定义,芯片的动作行为,应用场景,功耗等等各方面的信息。了解得越细,对应用越有帮助。

软件硬件的结合,主要是洞悉背后解决问题的方法,处理实际的工程问题。

 
 
深圳市永阜康科技有限公司 粤ICP备17113496号  服务热线:0755-82863877 手机:13242913995