打印

关于硬件设计的几点思考(原创)

[复制链接]
1881|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
thougt888|  楼主 | 2011-9-13 20:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
几点思考2011.04.21:
1.
要使用软件工程的思想完成程序!分析需求——>功能模块划分(总体功能流程图)——>函数细化(功能函数列表,变量列表,功能和流程图/N-S图)——>编写程序。

2.
要注意习惯写法:全局变量的首字母大写;除主函数外,各个函数的功能单一,相互关联性要小!避免在函数定义使用全局变量。

3.
对于基本功能函数,只实现基本功能,在函数中减少对全局变量的调用,方便移植。

4.
对于系统的流程控制,要在主函数中实现。

5.
需要将所有函数的运行都控制在程序规定的条件下,并通过程序的顺序,给不同的函数不同的优先级!!!
6.
关于程序调试:
1)仿真:对于固件程序,需要接收外接动作,读写器件的寄存器值,产生相应的响应。首先要对写好的程序进行仿真,使用IDE自带的仿真器,通过调试窗口,查看硬件寄存器的值在程序运行过程中是否按照设计意图改变?程序的运行顺序是否正确?是否存在逻辑错误?
2)函数功能仿真:当程序运行流程基本运行正确后,需要仿真函数是否完成了预定的功能。由于在仿真中实时触发判决条件有一定困难,因此可以采用局部仿真的办法:首先假定需要仿真的函数之前的运行结果都是正确的(将需要返回值的程序注释掉,直接返回一个正确的结果值),然后开始仿真函数的功能,如果能够得到正确的结果,那么函数可以时间基本功能,如果不能产生预期的结果,需要一步步调试,查找问题!通过局部仿真,就可以判断程序是否能够正常运行。如果想要看函数的异常处理能力,只需要发送一个错误的返回值即可!
3)硬件联调:程序最终需要下载到实际的硬件中运行。有些程序仿真虽然正确,但是实际运行中还是会出现各种问题。当与硬件联调时首先要保证硬件设备供电正常,硬件已经调试完成。当下载到硬件时,分以下步骤进行调试:(a)空载运行,不执行任何操作,程序空载运行,测量关键输出(比如时钟和数据),如果关键输出都不正常,查看程序,如果程序没有问题,则很有可能硬件出现问题!(b)正常负载:测试关键输出,通过示波器观察关键输出,如果输出异常(与预期的不相同),分析异常原因,修改相应的程序,再测试,直到问题解决。(c)异常输入:测试程序的异常处理能力和抗干扰能力。
4)硬件联调时要特别注意观测关键信号的波形(时钟!!),如果有条件可以通过逻辑分析仪查看相应的寄存器的值。当波形异常时,要分析程序可能出现异常的地方,进行修改,并调试!!!
7.
先进行需要分析,写出总体流程图后再进行实际程序的编程!!要有TOP—Down的设计思想!!

相关帖子

沙发
HWM| | 2011-9-13 20:54 | 只看该作者
“关于硬件设计的几点思考(原创)....”

这到底说的是硬件还是软件啊?....


不过,任何系统的设计都得遵循系统工程的思想倒是没错,无论是软件还是硬件。

使用特权

评论回复
板凳
XZL| | 2011-9-14 09:14 | 只看该作者
:lol软硬兼施,软中有硬,硬中有软;
软件能处理的尽量用软件实现,可以降低成本;
硬件是骨骼和肌肉,是软件的载体;

使用特权

评论回复
地板
门口徘徊| | 2013-5-30 19:23 | 只看该作者
全才呀。。。。硬件的设计,总是纠结,都是网上找。。。有自己设计的体会?分享一下???楼主

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:小零件爱视频

0

主题

2

帖子

1

粉丝