📄 l_target.h
字号:
/* ************************************************************************ */
/* */
/* Volcano Communications technologies AB */
/* All rights reserved */
/* */
/* ************************************************************************ */
/* File: l_target.h */
/* Author: Anders Kallerdahl/VCT AB */
/* Description: Target specific definitions for the hc08 microcontroller */
/* */
/* Date: Author: Description: */
/* ----- ------- ------------ */
/* 020925 VCT-AKl + Copied from Star12 */
/* */
/* Assumptions: - */
/* */
/****************************************************************************/
#ifndef __L_TARGET_H__
#define __L_TARGET_H__
#include <l_types.h>
#include <ld2_slave.h>
#include <ld2_master.h>
typedef volatile unsigned char l_reg8;
/* Struct that can be layed over a Star8 UART */
typedef struct
{
l_reg8 SCPSC; /* base + 0 0x0009 */
l_reg8 SCIACTL; /* base + 1 0x000A */
l_reg8 SCIADAT; /* base + 2 0x000B */
l_reg8 not_used1; /* base + 3 0x000C */
l_reg8 not_used2; /* base + 4 0x000D */
l_reg8 not_used3; /* base + 5 0x000E */
l_reg8 not_used4; /* base + 6 0x000F */
l_reg8 not_used5; /* base + 7 0x0010 */
l_reg8 not_used6; /* base + 8 0x0011 */
l_reg8 not_used7; /* base + 9 0x0012 */
l_reg8 SCC1; /* base + 10 0x0013 */
l_reg8 SCC2; /* base + 11 0x0014 */
l_reg8 SCC3; /* base + 12 0x0015 */
l_reg8 SCS1; /* base + 13 0x0016 */
l_reg8 SCS2; /* base + 14 0x0017 */
l_reg8 SCDR; /* base + 15 0x0018 */
l_reg8 SCBR; /* base + 16 0x0019 */
} *l_UART_handle;
/* Define the target specific UART descriptor for the hc08 */
typedef struct
{
l_UART_handle sreg_base; /* Base address to SCI controller */
l_reg8* port_ddr_reg; /* Data direction register for RX and TX pin */
l_reg8* port_data_reg; /* Data in/out register for RX and TX pin */
l_u8 ddr_rx_mask; /* One bit set mask, masks RX pin in the DDR */
l_u8 ddr_tx_mask; /* One bit set mask, masks TX pin in the DDR */
l_u16 bit_rate_normal; /* Bit rate for normal operation */
l_u16 bit_rate_break; /* Bit rate for sending BREAK character */
} l_uart_ram_descriptor, *l_uart_ram_descriptor_handle;
typedef const l_uart_ram_descriptor l_uart_descriptor;
typedef l_uart_descriptor *l_uart_descriptor_handle;
/* LIN API function prototypes for master */
L_LIB_PREFIX l_bool l_hc08esci_ifc_m_connect (l_ifc_master_handle iii);
L_LIB_PREFIX l_bool l_hc08esci_ifc_m_disconnect (l_ifc_master_handle iii);
L_LIB_PREFIX void l_hc08esci_ifc_m_init (l_ifc_master_handle iii, void *uuu, l_master_rom_handle rom);
L_LIB_PREFIX l_u16 l_hc08esci_ifc_m_ioctl (l_ifc_master_handle iii,
l_ioctl_op op, void *pv);
L_LIB_PREFIX void l_hc08esci_ifc_m_rx (l_ifc_master_handle iii);
L_LIB_PREFIX void l_hc08esci_ifc_m_tx (l_ifc_master_handle iii);
L_LIB_PREFIX void l_hc08esci_sch_set (l_ifc_master_handle iii,
l_schedule_handle sch, l_u8 ent);
L_LIB_PREFIX l_u8 l_hc08esci_sch_tick (l_ifc_master_handle iii);
L_LIB_PREFIX void l_hc08esci_ifc_m_goto_sleep (l_ifc_master_handle iii);
L_LIB_PREFIX l_u16 l_hc08esci_ifc_m_read_status(l_ifc_master_handle iii);
/* LIN API function prototypes for slave */
L_LIB_PREFIX l_bool l_hc08esci_ifc_s_connect (l_ifc_slave_handle iii);
L_LIB_PREFIX l_bool l_hc08esci_ifc_s_disconnect (l_ifc_slave_handle iii);
L_LIB_PREFIX void l_hc08esci_ifc_s_init (l_ifc_slave_handle iii, void* uuu, l_slave_rom_handle rom);
L_LIB_PREFIX l_u16 l_hc08esci_ifc_s_ioctl (l_ifc_slave_handle iii,
l_ioctl_op op, void *pv);
L_LIB_PREFIX void l_hc08esci_ifc_s_rx (l_ifc_slave_handle iii);
L_LIB_PREFIX void l_hc08esci_ifc_s_tx (l_ifc_slave_handle iii);
L_LIB_PREFIX l_u16 l_hc08esci_ifc_s_read_status(l_ifc_slave_handle iii);
L_LIB_PREFIX void l_hc08esci_ifc_s_wakeup(l_ifc_slave_handle iii);
/* LIN API function prototypes for master & slave */
L_LIB_PREFIX l_bool l_hc08esci_sys_init(void);
L_LIB_PREFIX void l_hc08esci_bytes_wr( l_u8 skip, l_u8 count, const l_u8* const data, l_u8* dest);
L_LIB_PREFIX void l_hc08esci_bytes_rd(l_u8 skip, l_u8 count, l_u8* const data, l_u8 *src);
L_LIB_PREFIX void ld2_init_slave (ld2_ifc_slave_handle d_ifc);
L_LIB_PREFIX l_bool ld2_header_slave (ld2_ifc_slave_handle d_ifc);
L_LIB_PREFIX l_bool ld2_response_slave (ld2_ifc_slave_handle d_ifc, l_bool success);
L_LIB_PREFIX void ld2_init_master (ld2_ifc_master_handle d_ifc);
L_LIB_PREFIX l_bool ld2_header_master (ld2_ifc_master_handle d_ifc);
L_LIB_PREFIX l_bool ld2_response_master (ld2_ifc_master_handle d_ifc, l_bool success);
#endif /* __L_TARGET_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -