课程关键词:长沙宁乡县嵌入式培训
学员将了解到qt坐标系统、绘画系统的概念,同时会掌握qt进行图形绘制的编写方法;通过下午课程的学习,学员将了解到文件、流的基本概念,同时会掌握qt访问文件的编写方法。 |
2.1 qt坐标系统 2.2 访问屏幕信息 2.3 绘画系统 2.3.1 图形的绘画 2.3.2 图形填充 2.3.3 创建绘画设备 2.3.4 写入一个图片文件 2.3.5 绘画样式 2.4 图形视图框架 2.4.1 图形视图框架的结构 2.4.2 图形视图坐标系统 2.5 实例:基本绘画操作 2.6 实例:符合图形绘画 |
3.1 文件系统介绍 3.2 文件的访问 3.2.1 抽象文件引擎类 3.2.2 读写文件界面 3.2.3 获得文件信息 3.2.4 监视一个文件与目录 3.3 文本流与二进制数据流 3.4 文件与设备 3.4.1 访问输入/输出设备基础界面 3.4.2 访问目录结构内容 3.4.3 设备与文件图片读界面 3.4.4 设备与文件图片写界面 3.5 实例:一个简单的文本浏览的例子 3.6 实例:在指定文件系统中寻找一个文件 |
SWP和SWPB是ARM指令集中对存储单元的原子操作,即对存储单元的一次读和一次不可被分割。SWP和SWPB分别完成存储器和寄存器之间 一个字(32bit)和一个字节(8bit)的数据交换。
SWP指令主要是完成ARM体系架构处理器的同步操作,在Linux操作系统中实现信号量的操作。但是此指令在ARMv6架构后就没有采用了,而是通过扩展的LDREX和STREX实现。本片文章主要介绍SWP的功能,对于LDREX和STREX以后再介绍。
SWP的指令格式如下:
SWP {<cond>}{B} Rd, Rm, [Rn]
其中Rd 是目的寄存器,从存储器中读到的值存放于此寄存器中
Rm寄存器是操作数,会将此寄存器中的值存放于存储单元中
[Rn] 是寄存器间接寻址,Rn保存的是某个存储单元的地址
假设[Rn]中存放的是信号量,当某程序要修改信号量时,则会调用SWP指令完成对信号量的操作,即对这个存储单元的读和写是一个原子操作,不会被打断,命令的执行过程
当多个程序要访问他们共享的资源时,我们*须要做好同步机制以增加数据的安全。通常,共享的资源可以是一段共享内存或者是外部设备,访问这些资源的可以使CPU、进程或者是线程。为了完成同步机制,会采用一个原子变量来保存资源的状态。例如下图所示,用一个二元信号量(0或者1)来实现共享资源的同步,当进程A 和 进程B都要访问信号量Semaphore。
对于A进程, 先访问到信号量Semaphore发现状态可用,应该马上会修改Semaphore的状态,告诉其他进程此资源正在被使用。但是可能由于时间片恰好用完,系统调度到进程B。 进程B访问到信号量时发现状态也可用,于是 修改Semaphore告诉其他进程此资源正在被使用,等到系统再次调度到进程A时,进程A却不知道进程B已修改了Semaphore并且使用了公共资源,于是接着上次未完成的任务, 开始修改Semaphore并且开始使用公共资源。因此,遇到这种情况的话,信号量形同虚设并没有起到同步的作用。所以如果使用SWP指令,通过上面的介绍,SWP指令时完成对存储单元的一次读和写的原子操作,就可以避免这样的情况。
更多培训课程,学习资讯,课程优惠等学校信息,请进入 长沙芙蓉区嵌入式培训长沙天心区嵌入式培训 网站详细了解,免费咨询电话:400-998-6158