搜索
bottom↓
回复: 5

【经验分享】KL25官方第10版sample code中BME代码补丁

[复制链接]

出0入0汤圆

发表于 2014-1-24 16:16:14 | 显示全部楼层 |阅读模式
本帖最后由 FSL_TICS_Robin 于 2014-7-18 13:48 编辑

大家如果在调试KL25第10版sample code代码的BME工程时,发现打印出的结果显示BME代码确没有普通C代码跑的快,请不要惊慌,本文教您如何解决!

由于第10版SC中BME.h 头文件写的比较冗余,不利于体现BME的优势,先将头文件做如下改写:
这里以BME_AND_W 函数为例。
原描写方式为:
  1. _BME_INLINE void BME_AND_W (volatile uint32_t *addr, register uint32_t wdata)
  2. {       
  3.         *(volatile uint32_t*)((uint32_t)addr | BME_AND_MASK) = wdata;
  4. }
复制代码


先修改为宏定义的方式:
  1. #define  BME_AND_W(addr, wdata)    \
  2.           *(volatile uint32_t*)((uint32_t)addr | BME_AND_MASK) = wdata;
复制代码


最终的打印结果显示为:
  1. Running the LQRUG_bme_ex1 project.

  2. systick start value: 0xFFFFF2

  3. systick end value: 0xFFFFEE

  4. systick current value read overhead: 0x4

  5. systick start value: 0xFFFFD6

  6. systick end value: 0xFFFFC2

  7. actual execution cycle for logic operation with normal C code: 0x10

  8. systick start value: 0xFFFFD7

  9. systick end value: 0xFFFFC9

  10. actual execution cycle for logic operation with BME macros: 0xA

  11. systick start value: 0xFFFFE7

  12. systick end value: 0xFFFFD3

  13. actual execution cycle for BFI operation with normal C: 0x10

  14. systick start value: 0xFFFFEE

  15. systick end value: 0xFFFFE0

  16. actual execution cycle for BFI operation with BME macro: 0xA

  17. load_bit is 1

  18. systick start value: 0xFFFFDF

  19. systick end value: 0xFFFFCB

  20. actual execution cycle for LAC1 operation with normal C: 0x10

  21. load bit is 1

  22. systick start value: 0xFFFFE4

  23. systick end value: 0xFFFFD6

  24. actual execution cycle for LAC1 operation with BME macro: 0xA

  25. load_bit is 0

  26. systick start value: 0xFFFFEA

  27. systick end value: 0xFFFFD7

  28. actual execution cycle for LAS1 operation with normal C: 0xF

  29. load bit is 0

  30. systick start value: 0xFFFFE3

  31. systick end value: 0xFFFFD4

  32. actual execution cycle for LAS1 operation with bme macro: 0xB

  33. extracted data is 2

  34. systick start value: 0xFFFFE9

  35. systick end value: 0xFFFFD8

  36. actual execution cycle for UBFX operation with normal C: 0xD

  37. extracted data is 2

  38. systick start value: 0xFFFFEF

  39. systick end value: 0xFFFFE2

  40. actual execution cycle for UBFX operation with bme macro: 0x9
复制代码


结果体现了使用BME模块的优势。
附件为修改后的BME.h,需要的网友可以下载下来将代码包中的头文件直接替换即可。





PS:本帖可从飞思卡尔版块置顶帖:飞思卡尔Kinetis资料大本营飞思卡尔论坛支持小组【经验分享】帖汇总链接进入。

本帖子中包含更多资源

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

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2014-1-24 16:47:30 | 显示全部楼层
谢谢楼主分享!

出0入0汤圆

 楼主| 发表于 2014-1-24 16:51:20 | 显示全部楼层
lcofjp 发表于 2014-1-24 16:47
谢谢楼主分享!

不客气,我以后会把我自己写的代码,以及看到的学到的好的经验都分享出来!

出0入0汤圆

发表于 2014-2-12 16:28:52 | 显示全部楼层
mark         

出0入0汤圆

发表于 2014-3-19 10:13:04 | 显示全部楼层
谢谢楼主分享!

出0入0汤圆

 楼主| 发表于 2014-3-20 11:37:47 | 显示全部楼层
不客气,感谢大家的支持!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 15:45

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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