注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

adulto的个人主页

 
 
 

日志

 
 

又是在实习  

2007-08-03 17:48:11|  分类: 技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

最近在一个软件公司实习,做软件开发。搜到的一篇文章,留着。

 

然硬件定了,就要开始考虑程序结构问题了。
  首先确定个战略方针,就是,程序结构要与硬件无关。将来就算是更换硬件,也不需要牵一发而动全身。通过了解,ARM的开发环境ADS是支持ISO C++ 的。也就是说,可以用类库来实现程序的主框架结构。  既然是与硬件无关,那液晶屏的显示怎么办呢?疯猫决定使用拿一部分内存作为显示用缓存。既然液晶屏的大小为320×240。因为是单色液晶屏,一个位表示一个点。那么,需要的缓存大小为9.4K。对类库来说,只需要对缓存操作,与硬件无关。同时,类库定义一个屏幕基类。定义好更新屏幕的函数接口。不同的硬件通过继承得到不同的实现过程。
  字库也用相同的方式处理。类库方面给字库提供一个基类。定义好所需的函数接口。而正在使用的时候,则需要对字库进行重载。因为每个字库内的字的点阵大小,取样顺序都不相同。要单独对待。
  键盘按钮,方法同字库一样处理。由于硬件设计不同。有些按钮的输入是通过串口查询下一级51芯片得到。而有些又是直接通过查询中断得到信号。对于类库来说,定义一个键盘基类,统一接口。最终的实现根据硬件的不同再重载实现。
  好了,总结一下。将来的使用者,需要做的事情有以下几点:
  1、重载键盘类。根据不同的键盘硬件实现适合自己的子类。
  2、重载字库类。根据自己的需求,实现自己的字库点阵提取功能。
  3、自己实现液晶屏更新类,类库的绘图DC只对缓存操作,然后。由屏幕子类进行写屏操作。

  好了。类库需要用户自己实现的动作经确定了。那么,类库将给用户提供什么样的功能了?首先,它有个APP基类、CWnd基类、从CWnd继承而来的CDialog基类、Control基类以及从Control基类继承而来的CButton、CStatic、CPicture、CEditBox、CComboBox、CCheckBox等一系列控件基类。类库将仿MFC的方式进行搭建。这里得感谢侯杰的《深入浅出MFC》对MFC的详细分析。程序界面以Dialog为基础。类库使用者只需从CDialog继承出自己的子类并实现其需要的功能即可。

  由于ARM是单片机平台,在没有操作系统的支持下,不可能实现多线程功能。但是,却可以通过中断得到一个当前系统启动时间的毫秒级的自增变量。有了这个变量,可以实现Clock类(计时器类)。然后通过Clock就可以实现仿CTimer类的实现。这样,CDialog就支持Timer功能了^_^。 当然这个Timer功能是虚拟出来的,在其运转的时候,不能做耗费太多CPU时间的事情。不然,就……嘿嘿

  评论这张
 
阅读(24)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017