Fix cc2420 driver
This commit is contained in:
parent
f28054d844
commit
d51816d2e0
@ -176,11 +176,3 @@ uint16_t cc2420_get_pan(void)
|
|||||||
cc2420_read_ram(CC2420_RAM_SHORTADR, (uint8_t *)&pan, sizeof(pan));
|
cc2420_read_ram(CC2420_RAM_SHORTADR, (uint8_t *)&pan, sizeof(pan));
|
||||||
return pan;
|
return pan;
|
||||||
}
|
}
|
||||||
|
|
||||||
void cc2420_swap_fcf_bytes(uint8_t *buf)
|
|
||||||
{
|
|
||||||
uint8_t tmp;
|
|
||||||
tmp = buf[0];
|
|
||||||
buf[0] = buf[1];
|
|
||||||
buf[1] = tmp;
|
|
||||||
}
|
|
||||||
|
|||||||
@ -32,7 +32,6 @@ void cc2420_rx_handler(void)
|
|||||||
uint8_t buf[cc2420_rx_buffer[rx_buffer_next].length-2];
|
uint8_t buf[cc2420_rx_buffer[rx_buffer_next].length-2];
|
||||||
cc2420_read_fifo(buf, cc2420_rx_buffer[rx_buffer_next].length-2);
|
cc2420_read_fifo(buf, cc2420_rx_buffer[rx_buffer_next].length-2);
|
||||||
|
|
||||||
cc2420_swap_fcf_bytes(buf);
|
|
||||||
/* read rssi, lqi and crc */
|
/* read rssi, lqi and crc */
|
||||||
cc2420_read_fifo(rssi_crc_lqi, 2);
|
cc2420_read_fifo(rssi_crc_lqi, 2);
|
||||||
|
|
||||||
@ -47,7 +46,7 @@ void cc2420_rx_handler(void)
|
|||||||
}
|
}
|
||||||
ieee802154_frame_read(buf,
|
ieee802154_frame_read(buf,
|
||||||
&cc2420_rx_buffer[rx_buffer_next].frame,
|
&cc2420_rx_buffer[rx_buffer_next].frame,
|
||||||
cc2420_rx_buffer[rx_buffer_next].length-2);
|
cc2420_rx_buffer[rx_buffer_next].length);
|
||||||
if(cc2420_rx_buffer[rx_buffer_next].frame.fcf.frame_type != 2) {
|
if(cc2420_rx_buffer[rx_buffer_next].frame.fcf.frame_type != 2) {
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
ieee802154_frame_print_fcf_frame(&cc2420_rx_buffer[rx_buffer_next].frame);
|
ieee802154_frame_print_fcf_frame(&cc2420_rx_buffer[rx_buffer_next].frame);
|
||||||
|
|||||||
@ -37,18 +37,18 @@ int16_t cc2420_send(cc2420_packet_t *packet)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(packet->frame.fcf.src_addr_m == 2) {
|
if(packet->frame.fcf.src_addr_m == 2) {
|
||||||
packet->frame.src_addr[1] = (uint8_t)(cc2420_get_address() >> 8);
|
packet->frame.src_addr[0] = (uint8_t)(cc2420_get_address() >> 8);
|
||||||
packet->frame.src_addr[0] = (uint8_t)(cc2420_get_address() & 0xFF);
|
packet->frame.src_addr[1] = (uint8_t)(cc2420_get_address() & 0xFF);
|
||||||
}
|
}
|
||||||
else if (packet->frame.fcf.src_addr_m == 3) {
|
else if (packet->frame.fcf.src_addr_m == 3) {
|
||||||
packet->frame.src_addr[7] = (uint8_t)(cc2420_get_address_long() >> 56);
|
packet->frame.src_addr[0] = (uint8_t)(cc2420_get_address_long() >> 56);
|
||||||
packet->frame.src_addr[6] = (uint8_t)(cc2420_get_address_long() >> 48);
|
packet->frame.src_addr[1] = (uint8_t)(cc2420_get_address_long() >> 48);
|
||||||
packet->frame.src_addr[5] = (uint8_t)(cc2420_get_address_long() >> 40);
|
packet->frame.src_addr[2] = (uint8_t)(cc2420_get_address_long() >> 40);
|
||||||
packet->frame.src_addr[4] = (uint8_t)(cc2420_get_address_long() >> 32);
|
packet->frame.src_addr[3] = (uint8_t)(cc2420_get_address_long() >> 32);
|
||||||
packet->frame.src_addr[3] = (uint8_t)(cc2420_get_address_long() >> 24);
|
packet->frame.src_addr[4] = (uint8_t)(cc2420_get_address_long() >> 24);
|
||||||
packet->frame.src_addr[2] = (uint8_t)(cc2420_get_address_long() >> 16);
|
packet->frame.src_addr[5] = (uint8_t)(cc2420_get_address_long() >> 16);
|
||||||
packet->frame.src_addr[1] = (uint8_t)(cc2420_get_address_long() >> 8);
|
packet->frame.src_addr[6] = (uint8_t)(cc2420_get_address_long() >> 8);
|
||||||
packet->frame.src_addr[0] = (uint8_t)(cc2420_get_address_long() & 0xFF);
|
packet->frame.src_addr[7] = (uint8_t)(cc2420_get_address_long() & 0xFF);
|
||||||
}
|
}
|
||||||
packet->frame.src_pan_id = cc2420_get_pan();
|
packet->frame.src_pan_id = cc2420_get_pan();
|
||||||
packet->frame.seq_nr = sequenz_nr;
|
packet->frame.seq_nr = sequenz_nr;
|
||||||
@ -115,5 +115,4 @@ static void cc2420_gen_pkt(uint8_t *buf, cc2420_packet_t *packet)
|
|||||||
buf[index] = packet->frame.payload[index - offset];
|
buf[index] = packet->frame.payload[index - offset];
|
||||||
index += 1;
|
index += 1;
|
||||||
}
|
}
|
||||||
cc2420_swap_fcf_bytes(buf);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -222,14 +222,6 @@ void cc2420_rx_handler(void);
|
|||||||
*/
|
*/
|
||||||
int16_t cc2420_send(cc2420_packet_t *packet);
|
int16_t cc2420_send(cc2420_packet_t *packet);
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Changes the byte order of the two fcf bytes in a buffer.
|
|
||||||
*
|
|
||||||
* @param[in] *buf The Packet to swap.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
void cc2420_swap_fcf_bytes(uint8_t *buf);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The PID of the transceiver thread.
|
* The PID of the transceiver thread.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user