46 #if (SUPPORT_MASTER_MODE == 1U)
65 #if (SUPPORT_MASTER_MODE == 1U)
77 l_schedule_handle schedule_iii,
88 if (entry <= prot_user_config_ptr->schedule_tbl[schedule_iii].num_slots)
90 l_u8 tmp_entry = entry;
136 if ((size <= 8U) && ((size + offset) <= LIN_FRAME_BUF_SIZE))
139 for (i = 0U; i < size; i++)
156 if ((size <= LIN_FLAG_BUF_SIZE) && ((size + offset) <= LIN_FLAG_BUF_SIZE))
159 for (i = 0U; i < size; i++)
182 l_u8 active_schedule_id;
184 const l_u8 * current_entry;
194 active_schedule_struct_ptr = (
const lin_schedule_t *)&(g_lin_protocol_user_cfg_array[iii].schedule_tbl[active_schedule_id]);
199 sch_data_ptr = &active_schedule_struct_ptr->
ptr_sch_data_ptr[*current_entry];
201 for (i = 0U; i < 8U; i++)
209 prot_user_config_ptr = &g_lin_protocol_user_cfg_array[iii];
217 for (i = 0U; i < size; i++)
219 if((flag & (1U << i)) != 0U)
247 l_u8 * current_entry;
250 l_u8 active_schedule_id;
330 *current_entry = (
l_u8)(*current_entry + 1U);
332 if (*current_entry >= active_schedule_struct_ptr->
num_slots)
349 if (*current_entry >= active_schedule_struct_ptr->
num_slots)
358 retVal = (
l_u8)(*current_entry + 1U);
424 #if (SUPPORT_MASTER_MODE == 1U)
426 static l_u8 lin_schedule_start_entry[LIN_NUM_OF_SCHD_TBL];
437 #if (SUPPORT_MASTER_MODE == 1U)
488 l_u16 tmp_word_status = 0U;
548 return tmp_word_status;
579 #if (SUPPORT_TRANSPORT_LAYER != 1U)
static void lin_master_update_frame_before_transmit(l_ifc_handle iii, l_u8 cur_id, l_u8 frame_index)
l_u8 * list_identifiers_RAM_ptr
lin_sch_tbl_type_t sch_tbl_type
lin_tl_event_id_t
Transport layer event IDs Implements : lin_tl_event_id_t_Class.
l_ifc_master_handle master_ifc_handle
#define EVENT_TRIGGER_COLLISION_SET
unsigned int go_to_sleep_flg
lin_word_status_str_t word_status
lin_tl_callback_return_t
Transport layer event IDs Implements : lin_tl_callback_return_t_Class.
l_u8 l_sch_tick(l_ifc_handle iii)
This function follows a schedule. When a frame becomes due, its transmission is initiated. When the end of the current schedule is reached, this function starts again at the beginning of the schedule.
lin_protocol_state_t g_lin_protocol_state_array[LIN_NUM_OF_IFCS]
void l_sch_set(l_ifc_handle iii, l_schedule_handle schedule_iii, l_u8 entry)
Set up the next schedule to be followed by the l_sch_tick function for a certain interface. The new schedule will be activated as soon as the current schedule reaches its next schedule entry point.
LIN schedule structure Implements : lin_schedule_data_t_Class.
void lin_collision_resolve(l_ifc_handle iii, l_u8 pid)
Switch to collision resolve table.
#define ERROR_IN_RESPONSE
lin_master_data_t g_lin_master_data_array[LIN_NUM_OF_MASTER_IFCS]
void lin_update_word_status_lin21(l_ifc_handle iii, lin_lld_event_id_t event_id)
Update node status flags.
l_u8 lin_lld_tx_header(l_ifc_handle iii, l_u8 id)
This function sends frame header for the input PID.
l_diagnostic_mode_t diagnostic_mode
l_bool send_slave_res_flg
LIN master configuration structure Implements : lin_master_data_t_Class.
l_u8 previous_schedule_id
Schedule table description Implements : lin_schedule_t_Class.
const lin_frame_t * frame_tbl_ptr
l_u8 g_lin_frame_data_buffer[LIN_FRAME_BUF_SIZE]
lin_tl_queue_t tl_queue_data
lin_tl_descriptor_t g_lin_tl_descriptor_array[LIN_NUM_OF_IFCS]
#define SUCCESSFULL_TRANSFER
void lin_switch_sch_table(l_ifc_handle iii)
l_u8 lin_lld_int_disable(l_ifc_handle iii)
Disable the interrupt related to the interface.
l_bool lin_lld_init(l_ifc_handle iii)
This function initializes a LIN hardware instance for operation. This function will initialize the ru...
Configuration structure Implements : lin_protocol_user_config_t_Class.
void l_ifc_wake_up(l_ifc_handle iii)
Transmit the wake up signal.
l_bool event_trigger_collision_flg
unsigned int error_in_res
diag_interleaved_state_t diag_interleave_state
l_u8 g_lin_flag_handle_tbl[LIN_FLAG_BUF_SIZE]
void l_sys_irq_restore(l_ifc_handle iii)
Enable LIN related IRQ.
lin_frame_type_t frm_type
l_bool l_ifc_init(l_ifc_handle iii)
Initialize the controller specified by name, i.e. sets up internal functions such as the baud rate...
l_u8 * response_buffer_ptr
l_bool l_sys_init(void)
This function performs the initialization of the LIN core; is the first call a user must use in the L...
void lin_update_word_status_j2602(l_ifc_handle iii)
Update date word status.
l_u8 lin_lld_tx_wake_up(l_ifc_handle iii)
This function send a wakeup signal.
l_u8 lin_check_sporadic_update(l_ifc_handle iii, l_u8 frm_id)
LIN protocol status structure Implements : lin_protocol_state_t_Class.
l_u8 num_of_processed_frame
const lin_protocol_user_config_t g_lin_protocol_user_cfg_array[LIN_NUM_OF_IFCS]
volatile l_u8 g_buffer_backup_data[8]
static void lin_master_update_signal(l_ifc_handle iii)
l_u8 lin_get_frame_index(l_ifc_handle iii, l_u8 id)
unsigned char l_u8
Unsigned 8 bit integer Implements : l_u8_Class.
lin_tl_callback_return_t lin_tl_callback_handler(l_ifc_handle iii, lin_tl_event_id_t tl_event_id, l_u8 id)
const lin_schedule_t * schedule_tbl
void l_ifc_goto_sleep(l_ifc_handle iii)
Request slave nodes on the cluster connected to the interface to enter bus sleep mode by issuing one ...
const lin_schedule_data_t * ptr_sch_data_ptr
l_bool send_functional_request_flg
l_u8 lin_lld_int_enable(l_ifc_handle iii)
Enable the interrupt related to the interface.
lin_protocol_handle_t protocol_version
bool l_bool
0 is false, and non-zero (>0) is true Implements : l_bool_Class
l_u16 l_ifc_read_status(l_ifc_handle iii)
This function will return the status of the previous communication.
unsigned int event_trigger_collision_flg
lin_frame_response_t frm_response
l_u8 number_of_configurable_frames
volatile l_u8 g_lin_frame_updating_flag_tbl[LIN_NUM_OF_FRMS]
unsigned int save_config_flg
l_u8 master_data_buffer[8]
unsigned int successful_transfer
l_u8 * schedule_start_entry_ptr
unsigned short int l_u16
Unsigned 16 bit integer Implements : l_u16_Class.
Transport layer description Implements : lin_tl_descriptor_t_Class.
l_u16 l_sys_irq_disable(l_ifc_handle iii)
Disable LIN related IRQ.
unsigned int bus_activity