can_ssp_router.h
00001 #ifndef __CAN_SSP_ROUTER_H__
00002 #define __CAN_SSP_ROUTER_H__
00003
00004
00005
00006
00007
00008
00009
00010 typedef __packed struct csr_routing_entry {
00011 int destinations : 5;
00012 int source : 3;
00013 } CSR_ROUTE;
00014
00015
00016
00017 #define CSR_TIMER_TICKS_PER_MS 5 //e.g., if timer interrupts occur at 100 uS intervals, this = 10.
00018 void csr_clock_tick(void);
00019 unsigned long int csr_elapsed_ms(void);
00020 void csr_send_can_time_packets(long unsigned int time);
00021
00022 unsigned short int csr_can1_tx_push_frame(CAN_FRAME * frameptr);
00023 unsigned short int csr_can2_tx_push_frame(CAN_FRAME * frameptr);
00024 unsigned short int csr_can3_tx_push_frame(CAN_FRAME * frameptr);
00025 unsigned short int csr_can4_tx_push_frame(CAN_FRAME * frameptr);
00026
00027 unsigned short csr_can_rx_pop_frame(CAN_FRAME * frameptr);
00028
00029
00030
00031
00032
00033
00034 void csr_can1_tx(void);
00035 void csr_can2_tx(void);
00036 void csr_can3_tx(void);
00037 void csr_can4_tx(void);
00038
00039
00040
00041
00042
00043
00044
00045 void csr_can_rx1_fiq(void);
00046 void csr_can_rx2_fiq(void);
00047 void csr_can_rx3_fiq(void);
00048 void csr_can_rx4_fiq(void);
00049
00050 unsigned short can_get_error_1(CAN_FRAME * frame);
00051 unsigned short can_get_error_2(CAN_FRAME * frame);
00052 unsigned short can_get_error_3(CAN_FRAME * frame);
00053 unsigned short can_get_error_4(CAN_FRAME * frame);
00054
00055 void can_error_isr(void) __irq;
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069 void csr_can1_red_led_blink(short unsigned int time);
00070 void csr_can1_green_led_blink(short unsigned int time);
00071 void csr_can2_red_led_blink(short unsigned int time);
00072 void csr_can2_green_led_blink(short unsigned int time);
00073 void csr_can3_red_led_blink(short unsigned int time);
00074 void csr_can3_green_led_blink(short unsigned int time);
00075 void csr_can4_red_led_blink(short unsigned int time);
00076 void csr_can4_green_led_blink(short unsigned int time);
00077 void csr_mcu_red_led_blink(short unsigned int time);
00078 void csr_mcu_green_led_blink(short unsigned int time);
00079 void csr_mcu_blue_led_blink(short unsigned int time);
00080
00081
00082 void csr_update_mcu_leds(void);
00083 void csr_update_can_leds(void);
00084
00085
00086 void csr_synchronize_arm9(void);
00087 void csr_global_variable_init(void);
00088 void csr_routing_table_init(void);
00089 void csr_ssp_isr(void);
00090
00091 unsigned short int csr_route_frame(CAN_FRAME * frame);
00092 unsigned short int csr_push_ssp_frame(CAN_FRAME * frame);
00093 unsigned short int csr_pop_ssp_frame(CAN_FRAME * frame);
00094 unsigned short int csr_can1_tx_push_frame(CAN_FRAME * frameptr);
00095
00096 unsigned short int csr_can2_tx_push_frame(CAN_FRAME * frameptr);
00097
00098 unsigned short int csr_can3_tx_push_frame(CAN_FRAME * frameptr);
00099
00100 unsigned short int csr_can4_tx_push_frame(CAN_FRAME * frameptr);
00101
00102
00103 #endif// __CAN_SSP_ROUTER_H__
00104