找回密码
 注册
关于网站域名变更的通知
查看: 340|回复: 1
打印 上一主题 下一主题

成为一名合格嵌入式程序员应知道的0x10个基本问题(下)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-7-19 14:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
成为一名合格嵌入式程序员应知道的0x10个基本问题(中)$ ^1 S8 o$ y0 f: W# y

/ ]7 i; p$ E$ u3 v6 s0 W# u2 e
; y+ [: H6 I/ ~( l3 X7 q
位操作(Bit manipulation) 0 [2 L9 J$ N4 s8 {# A

! j( u2 S2 q- X  b9. 嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。4 K) ~& j" r& J7 E! f$ q; V4 O+ t
对这个问题有三种基本的反应
$ p- Q' Z0 C- ^0 `( [* n% x" n$ n1)不知道如何下手。该被面者从没做过任何嵌入式系统的工作。
# Z( [/ L1 R' s8 V+ G; n( q2) 用bit fields。Bit fields是被扔到C语言死角的东西,它保证你的代码在不同编译器之间是不可移植的,同时也保证了的你的代码是不可重用的。我最近不幸看到 Infineon为其较复杂的通信芯片写的驱动程序,它用到了bit fields因此完全对我无用,因为我的编译器用其它的方式来实现bit fields的。从道德讲:永远不要让一个非嵌入式的家伙粘实际硬件的边。. D1 b/ C& M" t  p3 f- H# [  k
3) 用 #defines 和 bit masks 操作。这是一个有极高可移植性的方法,是应该被用到的方法。最佳的解决方案如下:
& q2 W0 _  H  p; O

+ q; B( c+ S% K% _
游客,如果您要查看本帖隐藏内容请回复
+ |7 n% k; M# h! l* V
( M7 s' C: B) _0 e

该用户从未签到

2#
发表于 2019-7-19 18:30 | 只看该作者
看看成为一名合格嵌入式程序员应知道的哪些基本问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 20:04 , Processed in 0.187500 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表