关于DSP6000 CCS BOIS 的原子操作-数据保护
来源:互联网 发布:手机映射软件下载 编辑:程序博客网 时间:2024/06/10 15:45
1,目的,
在两个task之间保护共享数,或task与interrupt 程序的共享数据.
2,解决
查spu430d.pdf,可以有找到 ATM Moudle 是关于这类的功能:
ATM provides a set of assembly language functions that are used to manipulate variables with interrupts disabled.
These functions can therefore be used on data shared between tasks, and on data shared between tasks and interrupt routines
其函数如下:
ATM_andi, ATM_andu. AND memory and return previous value
ATM_cleari, ATM_clearu. Clear memory and return previous value
ATM_deci, ATM_decu. Decrement memory and return new value
ATM_inci, ATM_incu. Increment memory and return new value
ATM_ori, ATM_oru. OR memory and return previous value
ATM_seti, ATM_setu. Set memory and return previous value
可以实保护中对数据区进运运算,可惜能查到例子,不知道保护一个数组操作时如何实现?
另外C62 和C64 是用C6x_disableIR和C6x_enableIR可以实现对所有中断进和行屏蔽,屏蔽哪此由参数mask决定;注意这里面不不有任务睡眠,阻塞之类的操作,
.include c64.h64
...
// disable interrupts specified by IEMASK
C64_disableIER IEMASK, b0, b1
...do some critical operation`
// enable interrupts specified by IEMASK
C64_enableIER IEMASK, b0, b1
HWI_disable 和 HWI_enable 可是对hardware interrupt进行管理,同SWI moudle 一样.
如果是 在两个task之间保护共享数,可以用TSK_disable();TSK_enable();来实现,这两函数不适用于中断程序,只能是TASK1 与TASK2 之间的数据操作保护。
在要修改数据的TASK里面,做如下处理
TSK_disable();
//data opertoin;
TSK_enable();
待续...
- 关于DSP6000 CCS BOIS 的原子操作-数据保护
- 数据操作的原子性
- 关于原子操作的一些总结
- 关于atomic_t 原子变量的操作
- 关于文件I/o的原子操作
- 关于c#中数据的原子操作及让人郁闷的InterLocked类
- HELLO三:CCS的操作
- 关于DEP(数据执行保护)的分析
- linux中关于原子操作
- bois的应用
- 关于单CPU,多CPU上的原子操作
- 关于单CPU 多CPU上的原子操作
- (转)关于volatile和原子操作研究的插曲
- 关于volatile和原子操作研究的插曲
- 关于单CPU,多CPU上的原子操作
- 关于单CPU,多CPU上的原子操作
- 关于单CPU,多CPU上的原子操作
- 关于Java自增操作的原子性
- Eclipse JDBC 驱动程序设置
- 页面传值
- WARNING 15 (MULTIPLE CALL TO SEGMENT)---keil_52
- 2005 分頁 新利器 row_Number()
- DBA的内容挺多啊【转帖】
- 关于DSP6000 CCS BOIS 的原子操作-数据保护
- Hyper-V,虚拟多元化
- 闰年因果分析图
- 三十岁以后程序员的发展之路
- vc 动态菜单
- 字符串流
- Ant 學習資源
- 实现在sql中的类型转换
- xwork.xml的Result Type