CDA写访问也称为资源更新服务,资源更新服务提供操作来更新那些可以通过GDA读访问获取的数据。
差异模型
差异模型(Difference Model)描述了资源更新服务中方法 apply_ updates()调用之前(B1)和成功执行之后(B2)模型的差异。一个差异模型由四组声明构成,每一组声明编码成一个资源描述序列。这些声明中的任何一个或全部都可以为空。差异模型的结构定义如下:
struct DifferenceModel
{
DAFDescriptions:: ResourceDescriptionSequence headers;
DAFDescriptions:: ResourceDescriptionSequence preconditions;
DAFDescriptions:: ResourceDescriptionSequence forwardDifferences;
DAFDescriptions::ResourceDescriptionSequence reverseDifferences;
};
其中 headers成员包括头部声明,由关于差异模型自身的声明组成,可以表示作者、时间及目的。头部声明是可选的,被用来帮助跟踪和审核模型更新。 preconditions成员包括预处理声明。当有不止一个客户在做更新时,预处理是并发控制的基础。每个预处理都是客户在更新之前关于资源状态的假设。一个预处理失败意味着另一个客户已经完成了一个相冲突的更新。forwardDifferences成员包括前向差异声明。指在B2中存在,在B1中则不存在的部分。reverseDifferences成员包括反向差异声明,指在B1中存在,而在B2中找不到的部分。
相关拓展
EEPROM读/写访问
在程序中,对 EEPROM的访问是通过位于I/O空间的寄存器的访问来实现的。
ATMega8采用芯片内部可校准的
RC振荡器的1MHz作为访问 EEPROM的定时器时钟。EEPROM编程时间典型为8.5ms。自定时功能让用户软件监测何时可以开始写下一字节。用户操作 EEPROM需要注意如下问题:在电源滤波时间常数比较大的电路中,上电/掉电时Vcc上升/下降速度会比较低。此时,CPU可能工作于低于晶振所要求的电源电压。
为了防止无意间对 EEPROM的写操作,需要执行一个特定的写时序。具体参看EEPROM控制寄存器的内容。执行 EEPRON读操作时,CPU会停止工作4个周期,然后再执行后续指令;执行 EEPROM写操作时,CPU会停止工作2个周期,然后再执行后续指令。
读/写访问描述
子句:
write u_1,u_2,…,u_m
read v_1,v_2,…,v_n
被称为访问描述。它们是潜在的副作用一部分,规定了全函数和部分函数基调。
value
tf: typ_ex_a→acc_des_1,..., acc_des_n typ_ex-r
pf: typ_ex_a→~acc_des_1,..., acc_des_n typ_ex-r
文件读/写访问常量
这些常量指定文件需要的访问类型(“a”、“r”或“w”),转换模式(“b”或“t”)和提交到磁盘模式(“c”或“n”)可以用访问类型指定。
这些访问类型描述如下:
“a” 打开文件用于在文件末尾写(添加);如果该文件不存在,首先建立它。所有的写操作出现在文件末尾。虽然文件指针可以使用fseek或rewind重新定位,在执行任何写操作之前总是将指针移回到文件末尾。
“a+” 同上,但还允许读。
”r” 打开用于读,如果该文件不存在或不能找到,打开文件调用失败。
“r+” 打开一个空文件用于读和写,如果该文件不存在或不能找到,打开文件调用失败。
“w” 打开一个空文件用于写,如果给定的文件存在,其内容被消毁。
“w+” 打开一个空文件用于读和写,如果给定的文件存在,其内容被消毁。