空格带来的郁闷---让Pxa270支持大容量SD卡

你小看什么,什么就会让你吃惊,让你从此不敢小看!

 

本来我们的pxa270的BSP是支持大容量SD卡的,我们这里的一位高人直接修改的public下面的代码然后把它移植到BSP下面实现的,这之前他还不知道MS的补丁已经解决了这个问题。这2天领导说要打上所有的CE5的补丁,说这样对系统的性能可能会有提升,比如稳定性啊以及对一些还没有发现的问题的解决。然后要我直接用MS提供的补丁来解决大容量SD卡的支持问题而不用移植public下面的代码来实现。

 

打完所有补丁后,按照release note的说明,我修改了bsp下的SD卡驱动中函数SDHBusRequestHandler()的一行代码:


在case ResponseR6:后面添加了一句case ResponseR7:  //就是对cmd7的支持


然后打开PB,在platform->setting->environment 中添加环境变量IMGSDBUS2,并将其值设为1,设置这个环境变量是要使能SDBUS2这个dll,因为在common.bib中有如下声明:


#if defined 
IMGSDBUS2 
; @CESYSGEN IF CE_MODULES_SDBUS2 
  sdbus.dll      $(_FLATRELEASEDIR)/
sdbus2.dll                NK  SH 
; @CESYSGEN ENDIF CE_MODULES_SDBUS2 
#else 
; @CESYSGEN IF CE_MODULES_SDBUS 
  sdbus.dll      $(_FLATRELEASEDIR)/sdbus.dll                  NK  SH 
; @CESYSGEN ENDIF CE_MODULES_SDBUS 
#endif



最后sysgen整个project,完事。

 

 

本来上面的一切做完之后是成功实现了对大容量SD卡的支持的,但是测试的结果却相反,还是不能够支持大容量SD卡。难道MS在忽悠我???于是马上在Google上搜索,发现有很多blog上都有对这个的说明,做法也跟我上面的一样,但是为什么人家的可以OK,而我的不行呢???


开始郁闷了!!!


通过查看工程最终生成的ce.bib文件后发现如下代码:

; @CESYSGEN IF CE_MODULES_SDBUS

sdbus.dll    D:/WINCE500/PBWorkspaces/Apollo/RelDir/Apollo_ARMV4I_Release/sdbus.dll        NK  SH

; @CESYSGEN ENDIF CE_MODULES_SDBUS


这说明最终link的sdbus.dll还是去link了sdbus.dll而不是sdbus2.dll,因为只要我们使能了IMGSDBUS2,common.bib中的下面这句话就应该起作用啊!

  sdbus.dll      $(_FLATRELEASEDIR)/sdbus2.dll                NK  SH 

而最终ce.bib中应该是这个样子:

; @CESYSGEN IF CE_MODULES_SDBUS

sdbus.dll    D:/WINCE500/PBWorkspaces/Apollo/RelDir/Apollo_ARMV4I_Release/sdbus2.dll       NK  SH

; @CESYSGEN ENDIF CE_MODULES_SDBUS


于是我怀疑这个宏IMGSDBUS2没有起作用,后来在cmd窗口查看这个环境变量的时候发现它是这样的:

IMGSDBUS2 =1

而不是

IMGSDBUS2=1


多了个空格!!!难道是空格搞的鬼,怎么会多了个空格呢?马上查看platform->setting->environment下这个宏的设置,发现它后面确实有一个空格,删掉空格,重新makimg,重新更新OS,验证,一切OK!!


原来是我copy这个宏的时候直接双击选中后copy的,没有发现它后面带了一个空格,这个空格导致这个环境变量设置不成功,从而没有使能sdbus2.dll。


后来我把这个宏直接设置在了平台的bat文件中,也故意加上空格试了一下,还是不行,去掉空格就ok了。

这样不行:set IMGSDBUS2 =1

这样才行:set IMGSDBUS2=1


呵呵。。。总算是搞清楚问题所在了,这个郁闷也是值得的。不过是由于自己疏忽导致的,这样也好,算是明白了这些环境变量设置的严格性了!


吃一堑长一智!!!

 

@Hzh 2009-05-14

 


 

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值