底层开发应注意的若干问题

 1.写驱动时候底层时一定要注意compiler对你代码的优化,因为一般底层代码对写内存外围设备都有先后次序的要求。如果compiler对你某一条读写指令提前了,那会发生让你捉摸不透的错误。

 2.对于内存拷贝,尽量按机器字长来拷贝。

 3.并发程序切勿在 event函数中调用系统函数。因为很多系统函数内部都有锁,这及有可能导致死锁。比如在malloc过程中,收到signal,在signal处理函数中是千万不能调用malloc!这样会导致死锁。

 4.不少系统库都是线程安全的,所以浪费比较严重。对于效率要求高的地方,可以重写这些函数。可以写自己的内存分配函数以及尝试无锁编程(lock-free)。

 5.omparison is always false due to limited range. 编译器的自动优化问题。这个错误来自类型提升

char a='a';

if( 0xfe==a){//永远为假,会被编译自动优化掉

}

else{

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值