[嵌入式linux] “读-修改-写”与“|=”的比较

[复制链接]
 楼主| silentband 发表于 2008-3-13 11:36 | 显示全部楼层 |阅读模式
在arm7内核的MCU里跑这两个端口配置程序,哪个比较好?
程序A:
PINSEL0 |= 0x00000001;
程序B:
PINSEL0 = (PINSEL0 & 0xfffffff0)|0x01;

包括对各寄存器赋值等操作,哪种用法效率较高?
xwj 发表于 2008-3-13 12:09 | 显示全部楼层

对于位置位、清除,程序B的写法完全没必要

除非后面的0x01换成变量,即数据拼合时还差不多

A 的写**不会被编译成“读-修改-写”的指令,要看编译器做的智能程度,一般好点的编译器都能正常优化的


反正,不管怎么样,B写法完全没必要
sz_kd 发表于 2008-3-13 12:42 | 显示全部楼层

没有必要执行这个吧PINSEL0 & 0xfffffff0

您需要登录后才可以回帖 登录 | 注册

本版积分规则

78

主题

272

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部