- 博客(15)
- 收藏
- 关注
原创 ATSAM9260 NORFLASH Boot solution research
1. 概述 本文档描述AT91SAM9260 NORFLASH系统启动的设计方案; AT91SAM9260 支持多种boot策略,具体取决于系统reset时BMS的状态,当BMS=0时系统从连接到CS0上的外部静态非易失性存储器boot。Norflash接口和SRAM类似,并且数据读取操作简单,CPU的SMC(静态存储控制器)
2009-03-07 16:07:00
3725
3
原创 方法论、工具和人
没有什么新的东西,,对应魔幻三角的三个边:流程+技术+人;流程就是方法论,,是指导性的,,告诉我们应该怎么去做一件事情,按照什么步骤去做;之所以称之为理论是因为它具有一定的普遍有效性;软件的方法论即所谓的Rational UP也好,敏捷开发,或者是传统的瀑布模型,,都是告诉我们开发软件的一个步骤或者说流程,,再说细一点也就是告诉我们:1. 需要做分成那些步骤; 2. 先做什么,后做什么;
2009-02-06 11:09:00
1775
原创 OpenGL学习笔记
所谓的渲染就是填充colorbuffer;colorbuffer默认使用前后两个,frontbuffer即显示屏幕,在back buffer中绘制场景(渲染),之后通过swap前后buffer显示所绘制的内容;可以直接在FrontBuffer中绘制,一般用于显式的描述绘制过程,,有2种方法可以达到这个效果,一种是通过glDrawBuffer直接告诉OpenGL你需要在GL_FRONT中绘
2009-01-15 15:26:00
910
原创 代码变更策略分析
当产品功能渐渐向多元和多变的方向发展时,往往希望新修改的部分不会对之前的已经稳定的部分产生影响。如何提高软件的可扩展性,使软件稳定性在版本间保持独立是一个值得讨论的问题。这里有几种方案可供选择,一种就是为每个产品都维护一套代码,各个产品的代码之间相互独立,这样当为某一个产品修改或者添加新功能时不会影响到其他已经稳定的代码。弊端也很明显,就是会产生大量的冗余代码,当有些修改和扩展是针对多数产品的
2008-12-19 14:21:00
1278
原创 ARM中断处理分析
中断是CPU提供的一个基本的功能;中断的基本含义应该是允许CPU在执行某个代码序列的过程中停下来执行另外一个代码序列,这里有两层意思,一个是要切换到另一个场景,另一个是当执行完毕之后必须能够恢复原来的场景。首先讨论如何才能切换到一个新的场景,当一条指令的执行完之后,CPU会检查有没有中断产生,如果有就halt当前流水线。重载PC寄存器后重新启动流水线。ARM7一般为3级流水线价格,
2008-12-08 16:17:00
2149
原创 实践出真知
1. 如果你发现Debug时,断点无法设置,或者说是汇编代码可以设置,但C代码无法设置(一RUN断点就无效了),那么检查C语言编译器有没有生成debug信息。2. 如果你发现程序运行到某一句语句之后就跑飞了,暂停程序发现在执行死循环,或者在异常中断处理程序中,那么请检查该语句是不是访问了不该访问的内存地址,或者说访问了某个没有被赋值的变量;3. 如果你发现程序一直在中断,(一直在跑中
2008-11-24 21:16:00
811
原创 基于状态机模型的编程方法及其框架软件设计
1. 基于状态机模型的编程方法 1.1 经典编程方法学 结构化方法即所谓面对过程方法,将所有系统抽象(封装)成3个过程,即输入流+处理流+输出流(其实这是一种很优雅的模型,非常具有一般性,试想所有能被计算机解决的问题都可以被这个非常简单模型所描述,而OO想做到这一点可能需要使用更加复杂和更加多的模型),然后再对每个流程按照这个模式(输入+处理+输
2008-11-21 10:19:00
5116
3
原创 如何正确使用控件的方法——使用“继承”思想的重要性
控件的设计思想就是将一些应用程序中常用的功能封装起来从应用中分离出来成为一个独立通用的模块,这个跟中间件的思想有些类似,其实在嵌入式系统中很多控件就是作为一个中间件来定义的,比如串口中间件,USB中间件等,而在PC平台上往往只是一个控件的概念,因为PC平台对于中间件的定义可能要更大一些,控件可以理解为轻量级的中间件。 既然设计目标是通用,就应该尽量做到与具体应用无关。这个跟框架软件的设计
2008-11-18 10:49:00
980
原创 拷贝构造函数与赋值操作符的具体实现
前面一篇blog提到过对含有指针成员变量的类来说,使用默认的拷贝构造和赋值操作是不安全的,具体的原因是默认的函数都属于浅拷贝,所谓浅拷贝就是指只对指针本身进行拷贝操作而对于指针所指向的内容不进行任何操作,这显然至少会带来2个问题,第一个是内存泄漏,因为指针本身被一个新值所覆盖,造成指针原先指向的内存将无法得到释放的机会。另一个问题就是重复引用问题,两个(或者更多)的指针指向同一块内存,当对其中一个
2008-09-20 23:56:00
2407
原创 error C2248: 'CObject::operator =' : cannot access private member declared in class 'CObject'
1>e:/program files/microsoft visual studio 9.0/vc/atlmfc/include/afxtempl.h(776) : error C2248: CObject::operator = : cannot access private member declared in class CObject1> e:/program fil
2008-09-19 10:11:00
14794
2
原创 一种利用并发提高系统数据吞吐率的模型及其分析
在实时系统常见的一种应用模式就是,在一个有限的时间段内cpu须要完成数据采集,数据处理以及数据输出的工作,输入和输出一般属于IO操作相对而言会占用比较多的时间资源;这时可以引入并发机制来提高系统的吞吐率; 我们知道对于两个不同速度的设备之间通讯时,往往会引入缓冲机制,比如由于CPU和RAM之间的速度差异,所以很多体系结构在对RAM进行读写时都加入了写buffer和读buffer,即c
2008-09-09 15:04:00
1599
原创 IBM软件开发高峰论坛 2008 李靖 演讲摘录
伟创力(中国)电子设备有限公司质量管理系统部资深总监 李靖女士 : 非常感谢IBM能我这个机会。现在整个质量管理的方向和发展所以我整个演讲跟大家主要分享是广泛的管理和经验。讲到奥运会我们的Daniel Sabbah博士,和我们讲到我们中美合作可以赢得200枚金牌的梦想,这是有一个这是有一个小小的笑话。美国的一些同事他们也开玩笑,他们把铜牌看成金牌了,如果我们合作的话,也是可以做到200枚
2008-09-05 12:46:00
1929
原创 基于AT91SAM7X平台的应用开发笔记——之一
写这个东西旨在分享一些开发经验,希望能对新接触ARM平台开发的人有所帮助;1.ARM7和ARM9的区别 在决定开发一个应用之初,必须对开发平台进行选择,选择的一个重要依据就是要了解平台的本质特征; 除了像CPU速度、片上资源等“量”上的区别之外,ARM7和ARM9(或者更高版本的ARM内核平台)之间比较本质的区别在于:ARM7是单片机,而ARM9是单板机;所
2008-08-28 09:03:00
1876
原创 实时&并发系统分析及实现
1.实时系统所谓实时系统即对时间有要求的系统,比如说运动控制系统,必须在一个采样周期内完成采样、计算、输出 任务,显然采样周期取的越小,或者说cpu运算速度越低,对与软件设计的要求就苛刻。对于桌面软件设计一般不会存在这个问题。2.并发系统什么是并发系统?就是在同一时间(宏观上)必须同时进行的任务,cpu在同一时刻只能执行一条指令,也就是说要想用软件实现并发,无非3种方法:1.将需要
2007-04-30 13:55:00
1406
原创 什么时候该使用多线程,以及更恰当的多线程编程方法之讨论
大约在写了一年左右的应用程序以后开始发生了一些困惑,在我写的程序中很多使用了多线程,我们了解使用线程的必要性,但是什么时候使用,以及该如何更好使用和管理多线程方面,我觉得值得思考。先讨论一下CApp类的实质。App就是一个用户界面线程。众所周知,CApp类继承于CWinThread类,是一个线程类,它的实例就是应用程序的主线程(一个用户界面线程)。App 实例化一个WinThread以后,
2006-07-21 16:14:00
7554
6
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人