打印
[其他ST产品]

STM32w的zigbee里面的emberInit()都初始化什么了?

[复制链接]
4862|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汇编代码:

emberInit:
    0x8010654: 0xb580         PUSH      {R7, LR}
    0x8010656: 0x481c         LDR.N     R0, [PC, #0x70]         ; [0x80106c8] 0x8040796 (134481814)
    0x8010658: 0x7801         LDRB      R1, [R0]
    0x801065a: 0xb911         CBNZ      R1, 0x8010662
    0x801065c: 0x7941         LDRB      R1, [R0, #0x5]
    0x801065e: 0x2980         CMP       R1, #128                ; 0x80
    0x8010660: 0xd00a         BEQ.N     0x8010678
    0x8010662: 0x7801         LDRB      R1, [R0]
    0x8010664: 0x2901         CMP       R1, #1
    0x8010666: 0xd105         BNE.N     0x8010674
    0x8010668: 0x78c1         LDRB      R1, [R0, #0x3]
    0x801066a: 0x2900         CMP       R1, #0
    0x801066c: 0xd102         BNE.N     0x8010674
    0x801066e: 0x7940         LDRB      R0, [R0, #0x5]
    0x8010670: 0x0600         LSLS      R0, R0, #24
    0x8010672: 0xd401         BMI.N     0x8010678
    0x8010674: 0x20b0         MOVS      R0, #176                ; 0xb0
    0x8010676: 0xbd02         POP       {R1, PC}
    0x8010678: 0xf7f7 0xfaa4  BL        emCheckAvailableMemory  ; 0x8007bc4
    0x801067c: 0xf001 0xfee4  BL        emDebugInit             ; 0x8012448
    0x8010680: 0xf7f1 0xf868  BL        halStackInitTokens      ; 0x8001754
    0x8010684: 0x2800         CMP       R0, #0
    0x8010686: 0xd11d         BNE.N     0x80106c4
    0x8010688: 0xf7f1 0xff52  BL        halStackProcessBootCount ; 0x8002530
    0x801068c: 0xf7fb 0xfc34  BL        emSecurityReadFrameCounterToken ; 0x800bef8
    0x8010690: 0xf002 0xf824  BL        emRadioSeedRandom       ; 0x80126dc
    0x8010694: 0x480d         LDR.N     R0, [PC, #0x34]         ; [0x80106cc] emHaveFullZdo
    0x8010696: 0x7800         LDRB      R0, [R0]
    0x8010698: 0xb108         CBZ       R0, 0x801069e
    0x801069a: 0xf001 0xf8df  BL        emInitializeBindingTable ; 0x801185c
    0x801069e: 0xf7fe 0xfcf3  BL        emInitializeAddressTable ; 0x800f088
    0x80106a2: 0xf7f3 0xfc9d  BL        halGetResetInfo         ; 0x8003fe0
    0x80106a6: 0xf002 0xf82b  BL        emDebugResetInfo        ; 0x8012700
    0x80106aa: 0xf7f4 0xfb97  BL        emMacInit               ; 0x8004ddc
    0x80106ae: 0xf7f4 0xfca9  BL        emNetworkInit           ; 0x8005004
    0x80106b2: 0xf000 0xff41  BL        emInitializeCbke        ; 0x8011538
    0x80106b6: 0x2001         MOVS      R0, #1
    0x80106b8: 0xf7f1 0xfb4e  BL        emRadioInit             ; 0x8001d58
    0x80106bc: 0x2000         MOVS      R0, #0
    0x80106be: 0xf7fd 0xfb57  BL        emSetNodeType           ; 0x800dd70
    0x80106c2: 0x2000         MOVS      R0, #0
    0x80106c4: 0xbd02         POP       {R1, PC}
    0x80106c6: 0xbf00         NOP
    0x80106c8: 0x08040796     DC32      134481814               ; '....'
    0x80106cc: 0x200009da     DC32      emHaveFullZdo

使用特权

评论回复
5
uc_efm32| | 2011-9-16 09:39 | 只看该作者
本帖最后由 uc_efm32 于 2011-9-16 09:49 编辑

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

#include "app/sensor/common.h"
void emCheckAvailableMemory(void);
void emDebugInit(void);
EmberStatus halStackInitTokens(void);
void halStackProcessBootCount(void);
void emSecurityReadFrameCounterToken(void);
void emRadioSeedRandom(void);
extern unsigned char emHaveFullZdo[];
void emInitializeBindingTable(void);
void emInitializeAddressTable(void);
int8u halGetResetInfo(void);
void emDebugResetInfo(void);
void emMacInit(void);
void emNetworkInit(void);
void emInitializeCbke(void);
void emRadioInit(int);
void emSetNodeType(int);

EmberStatus my_emberInit(void)
{     
  EmberStatus   Status;
  
  if( ((*((unsigned char *)(0x8040796+0))) == 0)  && ((*((unsigned char *)(0x8040796+5))) == 128))
  {
    goto __my_emberInit_do;   
  }
  else
  {
    if((((*((unsigned char *)(0x8040796+0))) != 1) || (*((unsigned char *)(0x8040796+3))) != 0) || ( ((*((unsigned char *)(0x8040796+5))) & (1<<7))  == 0))
    {
      return 176;
    }
    else
    {      
      goto __my_emberInit_do;
    }
  }
  
__my_emberInit_do:   
  emCheckAvailableMemory();
  emDebugInit();
  Status=halStackInitTokens();
  if(Status!=0)
  {
    return Status;
  }
  halStackProcessBootCount();
  emSecurityReadFrameCounterToken();
  emRadioSeedRandom();
  if(emHaveFullZdo[0]!=0)
  {
    emInitializeBindingTable();
  }
  emInitializeAddressTable();
  halGetResetInfo();
  emDebugResetInfo();
  emMacInit();
  emNetworkInit();
  emInitializeCbke();
  emRadioInit(1);  
  emSetNodeType(0);
  return 0;
}

使用特权

评论回复
6
yinyangdianzi| | 2011-9-16 09:49 | 只看该作者
有木有!!!!

使用特权

评论回复
7
火箭球迷| | 2011-9-16 15:10 | 只看该作者
4楼大侠汇编学的不错啊

使用特权

评论回复
8
dfsa| | 2011-9-16 21:22 | 只看该作者
5楼大侠很给力啊

使用特权

评论回复
9
lwj006|  楼主 | 2011-9-21 17:44 | 只看该作者
结贴,散分。。。感谢uc_efm32,呵呵

使用特权

评论回复
10
arm菜鸟人| | 2011-9-26 21:50 | 只看该作者
五楼大侠有没有注释呀?

zigbee应该怎样学呀?

使用特权

评论回复
11
you0065| | 2011-12-14 22:53 | 只看该作者
:(纯手工翻译

使用特权

评论回复
12
you0065| | 2011-12-14 22:56 | 只看该作者
Fatal Error[Pe005]: could not open source file "app/sensor/common.h"

这个.h文件如何加如IAR里面去?

使用特权

评论回复
13
无冕之王| | 2011-12-14 23:17 | 只看该作者
给注释一下就更完美了

使用特权

评论回复
14
nikita-fuck| | 2011-12-16 11:11 | 只看该作者
刚接触ZIGBEE?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

116

帖子

1

粉丝