Page MenuHomec4science

sbcp_slave.c
No OneTemporary

File Metadata

Created
Sun, Apr 13, 17:41

sbcp_slave.c

#include "sbcp_slave.h"
#include <sbcp-uc/sbcp_common.h>
#include <sbcp-uc/register.h>
#include <sbcp-uc/instruction.h>
#include <sbcp-uc/buffers.h>
#include "config.h"
#include "register.h"
void sbcp_master_init_registers(){
sbcp_add_register(FRAME_SIZE,
SBCP_FRAME_SIZE,
SBCP_REG_READABLE,
SBCP_REG_NO_CALLBACK);
sbcp_add_register(PACKET_SIZE,
SBCP_PACKET_SIZE,
SBCP_REG_READABLE,
SBCP_REG_NO_CALLBACK);
sbcp_add_register(SLAVE_RSP_TIMEOUT,
156,
SBCP_REG_READABLE | SBCP_REG_WRITABLE | SBCP_REG_PERSISTENT,
SBCP_REG_NO_CALLBACK);
sbcp_add_register(SLAVE_LL_RSP_TIMEOUT,
4,
SBCP_REG_READABLE | SBCP_REG_WRITABLE | SBCP_REG_PERSISTENT,
SBCP_REG_NO_CALLBACK);
}
void sbcp_master_init_instructions(){
//do nothing no special instructions (yet)
}
void init_sbcp_slave(){
sbcp_init_registers(0x00,
0x42,
SBCP_MASTER_FIRMWARE_VERSION,
0);
sbcp_master_init_registers();
sbcp_init_instructions(&sbcp_master_init_instructions);
}
void sbcp_slave_process_pck(const packet_mdata * inc_pck, packet_mdata * rsp_pck){
//we can cast out the volatile because nobody will touch our data.
set_r_packet_buffer((unsigned int *)(rsp_pck->data));
sbcp_process_instruction(inc_pck->data[SBCP_INSTRUCTION_POS],
(unsigned int *)(inc_pck->data));
}

Event Timeline