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

浅谈软件硬件联系

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
浅谈软件硬件联系& k- u8 |: N1 v! u( n" Z" h

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

' K; k3 S, h4 N6 i: i6 W7 o软件硬件的结合,主要是洞悉背后解决问题的方法,处理实际的工程问题。
& [! f# C! G+ a% K/ J# h

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-21 09:25 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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