找回密码
 注册
关于网站域名变更的通知
查看: 383|回复: 1
打印 上一主题 下一主题

浅谈软件硬件联系

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-2-27 13:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
浅谈软件硬件联系
4 H/ [% E1 T" N9 M) W
8 z& s8 l8 Q. n4 |
软件硬件看似两个分家的东西,其实内在有千丝万缕的联系。我举一些小例子:
* X6 g  D5 ]1 H9 f
3 |8 s7 L- D& H: E* r开关电源的电感在一个时钟周期内,要满足伏秒平衡。物理意义是,开关周期内电感吸收的能量和释放的能量应该是相等的。否则,系统不会平衡,不稳定。对于软件系统,特别是复杂的大型系统,虽然有严谨的理论去判断一个软件模块的稳定性。但对于程序员调试,并不是一个简单轻松的过程。可以借鉴伏秒平衡的思路,一个大型的代码在一个状态结束时,除了一些统计变量之外,应该是回到最初的状态,具体的体现:内存释放与申请,系统输出的结果等应和最初状态一致。栈在没有中断回到初始位置时,应该也是回到最初位置的。否则,系统会不稳定。( y( s$ B+ }: s
! `2 }5 m1 i; C$ m. @
关于初始化,一直不被软件工程师所重视。硬件工程师有时候也会忽视这个问题。软件中的初始化,从宏观上讲,模块的初始化;启动操作系统的准备工作;任务栈,堆的准备。从微观上讲,变量的初始化,全局构造函数,全局变量初始化。对于硬件,上电的顺序;芯片管脚上电的状态。数字芯片的初始逻辑状态。模拟信号的初始范围等等。有一些音箱,开机的时候会砰一声。这个是上电产生的电流冲击,比较难抑制。消音电路很难做好。一些高级的CPU,会有上电顺序要求。一些可靠的系统,要求上电,掉电,信号都必须有确定的状态。单纯的硬件去做,有时候很困难。可能需要软件硬件一起结合着做。Bootloader 为了后续的应用代码做了很多初始化工作。
% z, r# }7 r! \2 N% E! C: l, n8 e% c- V
在软件抽象一些客观事物时,可以参考硬件的抽象。比如说以太网相对于处理器是个低速设备,为了解决无休止的中断,DMA 可以大大缓解处理器的压力。如果处理器抽象成一个类、以太网抽象成一个类,那么DMA可以看作一个通信关联类了。其参数的抽象和深入的分析,对软件设计和硬件设计都是个极大的促进。
7 s9 z$ s* {7 ~
4 T& z6 T, }9 M9 ?$ l  o3 u1 |9 P+ ?芯片是别人给你的库函数。完成各种各样的功能。软件开发过程中,需要了解库函数的执行行为,参数范围,使用技巧,应用场景。其实,芯片的应用也是一样的。需要了解管脚的功能定义,芯片的动作行为,应用场景,功耗等等各方面的信息。了解得越细,对应用越有帮助。
$ m: Y# b6 G, m) O! a
6 p/ _+ x( j6 J7 N3 q: q软件硬件的结合,主要是洞悉背后解决问题的方法,处理实际的工程问题。

4 _2 {8 q3 ^: T( o8 E3 g5 j

该用户从未签到

2#
发表于 2019-2-27 15:34 | 只看该作者
看看软件硬件有什么联系
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-21 06:44 , Processed in 0.078125 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表