HPM APP
HPMicro Application solution
monitor.c File Reference
#include <stdlib.h>
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
#include "hpm_soc.h"
#include "usbd_core.h"
#include "usbd_cdc.h"
#include "usb_config.h"
#include "monitor_task.h"
#include "monitor.h"

Macros

#define CDC_IN_EP   0x81
 
#define CDC_OUT_EP   0x01
 
#define CDC_INT_EP   0x83
 
#define USB_CONFIG_SIZE   (9 + CDC_ACM_DESCRIPTOR_LEN)
 

Functions

static const uint8_t * device_descriptor_callback (uint8_t speed)
 
static const uint8_t * config_descriptor_callback (uint8_t speed)
 
static const uint8_t * device_quality_descriptor_callback (uint8_t speed)
 
static const uint8_t * other_speed_config_descriptor_callback (uint8_t speed)
 
static const char * string_descriptor_callback (uint8_t speed, uint8_t index)
 
static int usbd_channel_input (uint8_t *data, uint32_t length)
 
static void usbd_event_handler (uint8_t busid, uint8_t event)
 
int usbd_channel_output (uint8_t *data, uint32_t length)
 
void usbd_cdc_acm_bulk_out (uint8_t busid, uint8_t ep, uint32_t nbytes)
 
void usbd_cdc_acm_bulk_in (uint8_t busid, uint8_t ep, uint32_t nbytes)
 
void USBD_IRQHandler (uint8_t busid)
 
void cdc_acm_init (uint8_t busid, uint32_t reg_base)
 
int monitor_init (void)
 
void monitor_handle (void)
 
bool monitor_send_is_idle (void)
 

Variables

static const uint8_t device_descriptor []
 
static const uint8_t config_descriptor_hs []
 
static const uint8_t config_descriptor_fs []
 
static const uint8_t device_quality_descriptor []
 
static const uint8_t other_speed_config_descriptor_hs []
 
static const uint8_t other_speed_config_descriptor_fs []
 
static const char * string_descriptors []
 
const struct usb_descriptor cdc_descriptor
 
static USB_NOCACHE_RAM_SECTION USB_MEM_ALIGNX uint8_t read_buffer [MONITOR_PROFILE_MAXSIZE]
 
static volatile bool ep_tx_busy_flag
 
struct usbd_endpoint cdc_out_ep
 
struct usbd_endpoint cdc_in_ep
 
static struct usbd_interface intf0
 
static struct usbd_interface intf1
 

Macro Definition Documentation

◆ CDC_IN_EP

#define CDC_IN_EP   0x81

< endpoint address

◆ CDC_INT_EP

#define CDC_INT_EP   0x83

config descriptor size

◆ CDC_OUT_EP

#define CDC_OUT_EP   0x01

◆ USB_CONFIG_SIZE

#define USB_CONFIG_SIZE   (9 + CDC_ACM_DESCRIPTOR_LEN)

Function Documentation

◆ cdc_acm_init()

void cdc_acm_init ( uint8_t  busid,
uint32_t  reg_base 
)

◆ config_descriptor_callback()

static const uint8_t* config_descriptor_callback ( uint8_t  speed)
static

◆ device_descriptor_callback()

static const uint8_t* device_descriptor_callback ( uint8_t  speed)
static

◆ device_quality_descriptor_callback()

static const uint8_t* device_quality_descriptor_callback ( uint8_t  speed)
static

◆ monitor_handle()

void monitor_handle ( void  )

◆ monitor_init()

int monitor_init ( void  )

◆ monitor_send_is_idle()

bool monitor_send_is_idle ( void  )

◆ other_speed_config_descriptor_callback()

static const uint8_t* other_speed_config_descriptor_callback ( uint8_t  speed)
static

◆ string_descriptor_callback()

static const char* string_descriptor_callback ( uint8_t  speed,
uint8_t  index 
)
static

◆ usbd_cdc_acm_bulk_in()

void usbd_cdc_acm_bulk_in ( uint8_t  busid,
uint8_t  ep,
uint32_t  nbytes 
)

endpoint call back

◆ usbd_cdc_acm_bulk_out()

void usbd_cdc_acm_bulk_out ( uint8_t  busid,
uint8_t  ep,
uint32_t  nbytes 
)

◆ usbd_channel_input()

int usbd_channel_input ( uint8_t *  data,
uint32_t  length 
)
static

◆ usbd_channel_output()

int usbd_channel_output ( uint8_t *  data,
uint32_t  length 
)

◆ usbd_event_handler()

static void usbd_event_handler ( uint8_t  busid,
uint8_t  event 
)
static

◆ USBD_IRQHandler()

void USBD_IRQHandler ( uint8_t  busid)

Variable Documentation

◆ cdc_descriptor

const struct usb_descriptor cdc_descriptor
Initial value:
= {
.device_descriptor_callback = device_descriptor_callback,
.config_descriptor_callback = config_descriptor_callback,
.device_quality_descriptor_callback = device_quality_descriptor_callback,
.other_speed_descriptor_callback = other_speed_config_descriptor_callback,
.string_descriptor_callback = string_descriptor_callback,
}
static const uint8_t * config_descriptor_callback(uint8_t speed)
Definition: monitor.c:69
static const uint8_t * device_quality_descriptor_callback(uint8_t speed)
Definition: monitor.c:80
static const uint8_t * device_descriptor_callback(uint8_t speed)
Definition: monitor.c:62
static const char * string_descriptor_callback(uint8_t speed, uint8_t index)
Definition: monitor.c:98
static const uint8_t * other_speed_config_descriptor_callback(uint8_t speed)
Definition: monitor.c:87

◆ cdc_in_ep

struct usbd_endpoint cdc_in_ep
Initial value:
= {
.ep_addr = 0x81 ,
void usbd_cdc_acm_bulk_in(uint8_t busid, uint8_t ep, uint32_t nbytes)
Definition: monitor.c:167

◆ cdc_out_ep

struct usbd_endpoint cdc_out_ep
Initial value:
= {
.ep_addr = 0x01 ,
void usbd_cdc_acm_bulk_out(uint8_t busid, uint8_t ep, uint32_t nbytes)
Definition: monitor.c:158

◆ config_descriptor_fs

const uint8_t config_descriptor_fs[]
static
Initial value:
= {
USB_CONFIG_DESCRIPTOR_INIT( (9 + CDC_ACM_DESCRIPTOR_LEN) , 0x02, 0x01, USB_CONFIG_BUS_POWERED, USBD_MAX_POWER),
CDC_ACM_DESCRIPTOR_INIT(0x00, 0x83 , 0x01 , 0x81 , USB_BULK_EP_MPS_FS, 0x02),
}

◆ config_descriptor_hs

const uint8_t config_descriptor_hs[]
static
Initial value:
= {
USB_CONFIG_DESCRIPTOR_INIT( (9 + CDC_ACM_DESCRIPTOR_LEN) , 0x02, 0x01, USB_CONFIG_BUS_POWERED, USBD_MAX_POWER),
CDC_ACM_DESCRIPTOR_INIT(0x00, 0x83 , 0x01 , 0x81 , USB_BULK_EP_MPS_HS, 0x02),
}

◆ device_descriptor

const uint8_t device_descriptor[]
static
Initial value:
= {
}

◆ device_quality_descriptor

const uint8_t device_quality_descriptor[]
static
Initial value:
= {
USB_DEVICE_QUALIFIER_DESCRIPTOR_INIT(USB_2_0, 0xEF, 0x02, 0x01, 0x01),
}

◆ ep_tx_busy_flag

volatile bool ep_tx_busy_flag
static

◆ intf0

struct usbd_interface intf0
static

◆ intf1

struct usbd_interface intf1
static

◆ other_speed_config_descriptor_fs

const uint8_t other_speed_config_descriptor_fs[]
static
Initial value:
= {
USB_OTHER_SPEED_CONFIG_DESCRIPTOR_INIT( (9 + CDC_ACM_DESCRIPTOR_LEN) , 0x02, 0x01, USB_CONFIG_BUS_POWERED, USBD_MAX_POWER),
CDC_ACM_DESCRIPTOR_INIT(0x00, 0x83 , 0x01 , 0x81 , USB_BULK_EP_MPS_HS, 0x02),
}

◆ other_speed_config_descriptor_hs

const uint8_t other_speed_config_descriptor_hs[]
static
Initial value:
= {
USB_OTHER_SPEED_CONFIG_DESCRIPTOR_INIT( (9 + CDC_ACM_DESCRIPTOR_LEN) , 0x02, 0x01, USB_CONFIG_BUS_POWERED, USBD_MAX_POWER),
CDC_ACM_DESCRIPTOR_INIT(0x00, 0x83 , 0x01 , 0x81 , USB_BULK_EP_MPS_FS, 0x02),
}

◆ read_buffer

USB_NOCACHE_RAM_SECTION USB_MEM_ALIGNX uint8_t read_buffer[MONITOR_PROFILE_MAXSIZE]
static

◆ string_descriptors

const char* string_descriptors[]
static
Initial value:
= {
(const char[]){ 0x09, 0x04 },
"HPMicro",
"HPMicro CDC DEMO",
"2024051702",
}