[其他ST产品] STM32w的zigbee里面的emberInit()都初始化什么了?

[复制链接]
5831|13
 楼主| lwj006 发表于 2011-9-14 14:49 | 显示全部楼层 |阅读模式
本帖最后由 lwj006 于 2011-9-15 10:59 编辑

如题
uc_efm32 发表于 2011-9-14 22:46 | 显示全部楼层
本帖最后由 uc_efm32 于 2011-9-15 07:59 编辑

:lol
 楼主| lwj006 发表于 2011-9-15 08:45 | 显示全部楼层
3# uc_efm32
上官金虹你一定知道吧,呵呵,给讲讲:lol
uc_efm32 发表于 2011-9-16 08:19 | 显示全部楼层
emberInit汇编代码:

  1. emberInit:
  2.     0x8010654: 0xb580         PUSH      {R7, LR}
  3.     0x8010656: 0x481c         LDR.N     R0, [PC, #0x70]         ; [0x80106c8] 0x8040796 (134481814)
  4.     0x8010658: 0x7801         LDRB      R1, [R0]
  5.     0x801065a: 0xb911         CBNZ      R1, 0x8010662
  6.     0x801065c: 0x7941         LDRB      R1, [R0, #0x5]
  7.     0x801065e: 0x2980         CMP       R1, #128                ; 0x80
  8.     0x8010660: 0xd00a         BEQ.N     0x8010678
  9.     0x8010662: 0x7801         LDRB      R1, [R0]
  10.     0x8010664: 0x2901         CMP       R1, #1
  11.     0x8010666: 0xd105         BNE.N     0x8010674
  12.     0x8010668: 0x78c1         LDRB      R1, [R0, #0x3]
  13.     0x801066a: 0x2900         CMP       R1, #0
  14.     0x801066c: 0xd102         BNE.N     0x8010674
  15.     0x801066e: 0x7940         LDRB      R0, [R0, #0x5]
  16.     0x8010670: 0x0600         LSLS      R0, R0, #24
  17.     0x8010672: 0xd401         BMI.N     0x8010678
  18.     0x8010674: 0x20b0         MOVS      R0, #176                ; 0xb0
  19.     0x8010676: 0xbd02         POP       {R1, PC}
  20.     0x8010678: 0xf7f7 0xfaa4  BL        emCheckAvailableMemory  ; 0x8007bc4
  21.     0x801067c: 0xf001 0xfee4  BL        emDebugInit             ; 0x8012448
  22.     0x8010680: 0xf7f1 0xf868  BL        halStackInitTokens      ; 0x8001754
  23.     0x8010684: 0x2800         CMP       R0, #0
  24.     0x8010686: 0xd11d         BNE.N     0x80106c4
  25.     0x8010688: 0xf7f1 0xff52  BL        halStackProcessBootCount ; 0x8002530
  26.     0x801068c: 0xf7fb 0xfc34  BL        emSecurityReadFrameCounterToken ; 0x800bef8
  27.     0x8010690: 0xf002 0xf824  BL        emRadioSeedRandom       ; 0x80126dc
  28.     0x8010694: 0x480d         LDR.N     R0, [PC, #0x34]         ; [0x80106cc] emHaveFullZdo
  29.     0x8010696: 0x7800         LDRB      R0, [R0]
  30.     0x8010698: 0xb108         CBZ       R0, 0x801069e
  31.     0x801069a: 0xf001 0xf8df  BL        emInitializeBindingTable ; 0x801185c
  32.     0x801069e: 0xf7fe 0xfcf3  BL        emInitializeAddressTable ; 0x800f088
  33.     0x80106a2: 0xf7f3 0xfc9d  BL        halGetResetInfo         ; 0x8003fe0
  34.     0x80106a6: 0xf002 0xf82b  BL        emDebugResetInfo        ; 0x8012700
  35.     0x80106aa: 0xf7f4 0xfb97  BL        emMacInit               ; 0x8004ddc
  36.     0x80106ae: 0xf7f4 0xfca9  BL        emNetworkInit           ; 0x8005004
  37.     0x80106b2: 0xf000 0xff41  BL        emInitializeCbke        ; 0x8011538
  38.     0x80106b6: 0x2001         MOVS      R0, #1
  39.     0x80106b8: 0xf7f1 0xfb4e  BL        emRadioInit             ; 0x8001d58
  40.     0x80106bc: 0x2000         MOVS      R0, #0
  41.     0x80106be: 0xf7fd 0xfb57  BL        emSetNodeType           ; 0x800dd70
  42.     0x80106c2: 0x2000         MOVS      R0, #0
  43.     0x80106c4: 0xbd02         POP       {R1, PC}
  44.     0x80106c6: 0xbf00         NOP
  45.     0x80106c8: 0x08040796     DC32      134481814               ; '....'
  46.     0x80106cc: 0x200009da     DC32      emHaveFullZdo
uc_efm32 发表于 2011-9-16 09:39 | 显示全部楼层
本帖最后由 uc_efm32 于 2011-9-16 09:49 编辑

纯手工翻译,不知道对不对,没仔细检查:

  1. #include "app/sensor/common.h"
  2. void emCheckAvailableMemory(void);
  3. void emDebugInit(void);
  4. EmberStatus halStackInitTokens(void);
  5. void halStackProcessBootCount(void);
  6. void emSecurityReadFrameCounterToken(void);
  7. void emRadioSeedRandom(void);
  8. extern unsigned char emHaveFullZdo[];
  9. void emInitializeBindingTable(void);
  10. void emInitializeAddressTable(void);
  11. int8u halGetResetInfo(void);
  12. void emDebugResetInfo(void);
  13. void emMacInit(void);
  14. void emNetworkInit(void);
  15. void emInitializeCbke(void);
  16. void emRadioInit(int);
  17. void emSetNodeType(int);

  18. EmberStatus my_emberInit(void)
  19. {     
  20.   EmberStatus   Status;
  21.   
  22.   if( ((*((unsigned char *)(0x8040796+0))) == 0)  && ((*((unsigned char *)(0x8040796+5))) == 128))
  23.   {
  24.     goto __my_emberInit_do;   
  25.   }
  26.   else
  27.   {
  28.     if((((*((unsigned char *)(0x8040796+0))) != 1) || (*((unsigned char *)(0x8040796+3))) != 0) || ( ((*((unsigned char *)(0x8040796+5))) & (1<<7))  == 0))
  29.     {
  30.       return 176;
  31.     }
  32.     else
  33.     {      
  34.       goto __my_emberInit_do;
  35.     }
  36.   }
  37.   
  38. __my_emberInit_do:   
  39.   emCheckAvailableMemory();
  40.   emDebugInit();
  41.   Status=halStackInitTokens();
  42.   if(Status!=0)
  43.   {
  44.     return Status;
  45.   }
  46.   halStackProcessBootCount();
  47.   emSecurityReadFrameCounterToken();
  48.   emRadioSeedRandom();
  49.   if(emHaveFullZdo[0]!=0)
  50.   {
  51.     emInitializeBindingTable();
  52.   }
  53.   emInitializeAddressTable();
  54.   halGetResetInfo();
  55.   emDebugResetInfo();
  56.   emMacInit();
  57.   emNetworkInit();
  58.   emInitializeCbke();
  59.   emRadioInit(1);  
  60.   emSetNodeType(0);
  61.   return 0;
  62. }
yinyangdianzi 发表于 2011-9-16 09:49 | 显示全部楼层
有木有!!!!
火箭球迷 发表于 2011-9-16 15:10 | 显示全部楼层
4楼大侠汇编学的不错啊
dfsa 发表于 2011-9-16 21:22 | 显示全部楼层
5楼大侠很给力啊
 楼主| lwj006 发表于 2011-9-21 17:44 | 显示全部楼层
结贴,散分。。。感谢uc_efm32,呵呵
arm菜鸟人 发表于 2011-9-26 21:50 | 显示全部楼层
五楼大侠有没有注释呀?

zigbee应该怎样学呀?
you0065 发表于 2011-12-14 22:53 | 显示全部楼层
:(纯手工翻译
you0065 发表于 2011-12-14 22:56 | 显示全部楼层
Fatal Error[Pe005]: could not open source file "app/sensor/common.h"

这个.h文件如何加如IAR里面去?
无冕之王 发表于 2011-12-14 23:17 | 显示全部楼层
给注释一下就更完美了
nikita-fuck 发表于 2011-12-16 11:11 | 显示全部楼层
刚接触ZIGBEE?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

116

帖子

1

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