Riot: рдбреНрд░рд╛рдЗрд╡рд░ xbee рдФрд░ uart

рдХреЛ рдирд┐рд░реНрдорд┐рдд 2 рдлрд╝рд░ре░ 2016  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: RIOT-OS/RIOT

рдирдорд╕реНрддреЗ, рдореИрдВ рдПрдХ arduino-рджреЗрдп рдмреЛрд░реНрдб рдХреЗ рд╕рд╛рде xbee рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
xbee рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдбреНрд░рд╛рдЗрд╡рд░ рдмреЛрд░реНрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдбреНрд░рд╛рдЗрд╡рд░ xbee.c рдХреА рд▓рд╛рдЗрди 126 рдкрд░ рд░реБрдХрддрд╛ рд╣реИ:
while (dev->resp_limit != dev->resp_count) { mutex_lock(&(dev->resp_lock)); }

рджрдВрдЧрд╛ рд░рд┐рд▓реАрдЬ 2015.09 рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рдмреЛрд░реНрдб рдХрд╛ рдХрд╛рдоред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ uart рдбреНрд░рд╛рдЗрд╡рд░ рдореЗрдВ рд╣реЛ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ xbee рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдЕрдм рджрдВрдЧрд╛ рдмрдВрдж рд╣реИ рдФрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЬрд╛рдирдХрд╛рд░реА рд▓реЙрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

drivers network ARM question

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ #4445 рдХреЛ рдорд░реНрдЬ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╕рднреА 7 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Created PR #4734.

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд┐рдЯ рдЕрддрд┐рд░рд┐рдХреНрдд рдбрд┐рдмрдЧ рдЖрдЙрдЯрдкреБрдЯ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред

https://github.com/Yonezawa-T2/RIOT/commit/0b437f440d114a28bbc63c3c6a7ff9dc4ded4bfd
https://github.com/Yonezawa-T2/RIOT/commit/c16cd9281821aaec8c9dd8260a3a98db659e8ef5

ENABLE_DEBUG рдФрд░ XBEE_ENABLE_DETAILED_DEBUG рдХреЛ 1 рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВред

рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ #4445 рдореЗрдВ рднреА рд░реБрдЪрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдореИрдВрдиреЗ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ arduino-рджреЗрдп рдХреЗ рд╕рд╛рде рдЖрдЬрд╝рдорд╛рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЕрднреА рднреА рд╡рд┐рдлрд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ uart рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИред
рд▓реЗрдХрд┐рди xbee рдбреНрд░рд╛рдЗрд╡рд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:
xbee_init рд╡рд┐рдлрд▓ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдпрджрд┐ _api_at_cmd рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрджрд┐ _get_addr_long рдПрдХ рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИ <0 xbee_init рд╡рд┐рдлрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреБрдЫ рдЗрд╕ рддрд░рд╣:

if(_get_addr_long(dev, dev->addr_long.uint8, 8) < 0) {
        DEBUG("xbee: Initialization failed\n");
        return -1;
}

рдЕрдВрдд рдореЗрдВ, рдбреАрдмрдЧ рдЬрд╛рдирдХрд╛рд░реА "xbee: response timeout" рдХреЛ isr_resp_timeout рдореЗрдВ рд▓реЙрдЧ рди рдХрд░реЗрдВ рдмрд▓реНрдХрд┐ рдЗрд╕реЗ _api_at_cmd рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдВ, рдХреНрдпреЛрдВрдХрд┐ рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рджреВрд╕рд░реЗ рдереНрд░реЗрдб рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╣рдореЗрд╢рд╛ рдбреАрдмрдЧ рдкреНрд░рд┐рдВрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

Created PR #4749.

рдЕрдЪреНрдЫрд╛, рдореИрдВрдиреЗ рдирдП рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╡рд╛рдВрдЫрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдореИрдВрдиреЗ xbee рдбреНрд░рд╛рдЗрд╡рд░ рдкрд░ рд╕реЗрдВрдб рдлрдВрдХреНрд╢рди рдореЗрдВ рдХреБрдЫ рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛рдУрдВ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рд╣реИ:

    dev->tx_buf[0] = API_START_DELIMITER;
    dev->tx_buf[4] = 0;         /* set to zero to disable response frame */
    /* set size, API id and address field depending on dst address length  */
    if (_is_broadcast(hdr)) {
        dev->tx_buf[1] = (uint8_t)((size + 5) >> 8);
        dev->tx_buf[2] = (uint8_t)(size + 5);
        dev->tx_buf[3] = API_ID_TX_SHORT_ADDR;
        dev->tx_buf[4] = 0xff;
        dev->tx_buf[5] = 0xff;
    }
    if (hdr->dst_l2addr_len == 2) {
        dev->tx_buf[1] = (uint8_t)((size + 5) >> 8);
        dev->tx_buf[2] = (uint8_t)(size + 5);
        dev->tx_buf[3] = API_ID_TX_SHORT_ADDR;
        memcpy(dev->tx_buf + 5, gnrc_netif_hdr_get_dst_addr(hdr), 2);
        pos = 7;
    }
    else {
        dev->tx_buf[1] = (uint8_t)((size + 11) >> 8);
        dev->tx_buf[2] = (uint8_t)(size + 11);
        dev->tx_buf[3] = API_ID_TX_LONG_ADDR;
        memcpy(dev->tx_buf + 5, gnrc_netif_hdr_get_dst_addr(hdr), 8);
        pos = 13;
    }
  1. рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЕрдЧрд░: tx_buf[4] рдУрд╡рд░рд░рд╛рдЗрдЯ рд╣реИ, рдЧрдВрддрд╡реНрдп рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдкрддрд╛ рдЗрдВрдбреЗрдХреНрд╕ 5 рдФрд░ 6 рдкрд░ рд╣реИ
  2. рджреВрд╕рд░рд╛ рдЕрдЧрд░ рд╢рд╛рдпрдж рдпрд╣ else if (hdr->dst_l2addr_len == 2)

рдЕрдВрддрд┐рдо рдкреНрд░рд╢реНрди: рдЧрдВрддрд╡реНрдп рд▓рдВрдмрд╛ рдкрддрд╛ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ xbee рдХреЗ рд╕рд╛рде рдпрд╣ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ред

@l3nko

рдореИрдВрдиреЗ xbee рдбреНрд░рд╛рдЗрд╡рд░ рдкрд░ рд╕реЗрдВрдб рдлрдВрдХреНрд╢рди рдореЗрдВ рдХреБрдЫ рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛рдУрдВ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рд╣реИ:
рд╣рд╛рдБред #4445 рджреЗрдЦреЗрдВред

рдЕрдВрддрд┐рдо рдкреНрд░рд╢реНрди: рдЧрдВрддрд╡реНрдп рд▓рдВрдмрд╛ рдкрддрд╛ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ xbee рдХреЗ рд╕рд╛рде рдпрд╣ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЖрдкрдХреЗ рдкреНрд░рд╢реНрди рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВред XBee рдЕрдкрдиреЗ рд╕реНрд░реЛрдд рдкрддреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдкрддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рддрдХ рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЗрд╕рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдкрддрд╛ 0xFFFF рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рднреА #4445 рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ #4445 рдХреЛ рдорд░реНрдЬ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕