acpu_ctrl.h

Defines

ACPU_ERR_OK
ACPU_ERR_ASSERT
ACPU_TASK_INVALID

ACPU task name macro

ACPU_TASK_0
ACPU_TASK_1
ACPU_TASK_opus_encoder_init
ACPU_TASK_opus_encoder_ctl
ACPU_TASK_opus_encode
ACPU_TASK_opus_decoder_init
ACPU_TASK_opus_decoder_ctl
ACPU_TASK_opus_decode
ACPU_TASK_audio_3a_open
ACPU_TASK_audio_3a_close
ACPU_TASK_read
ACPU_TASK_write
ACPU_TASK_epic_rl
ACPU_TASK_COUNT
HCPU_TASK_INVALID

HCPU task name

HCPU_TASK_MALLOC
HCPU_TASK_FREE
HCPU_TASK_PRINTF

Functions

void acpu_power_on(void)

Power on ACPU, no need to be called by user

void acpu_power_off(void)

Power off ACPU, no need to be called by user

void *acpu_run_task(uint8_t task_name, void *param, uint32_t param_size, uint8_t *error_code)

Call ACPU to run specified task

Parameters:
  • task_name[in] task name, 0 is invalid task name, any number greater than 0 is a valid task name, e.g. macro ACPU_TASK_0 defined above use 1 as the value

  • param[in] parameter buffer pointer, the param content is copied to shared buffer which would be read by ACPU, the param buffer format is defined by each task

  • param_size[in] parameter buffer size, max size is limited by ACPU_TASK_INPUT_PARAM_SIZE

  • error_code[out] error code pointer, it’s used to save error code returned by ACPU, 0 means no error happens, other value means some error happens

Returns:

ACPU returned result buffer pointer, its length is limited by ACPU_TASK_OUTPUT_VAL_SIZE. buffer format is defined by each task.

void acpu_main(uint8_t task_name, void *param)

ACPU entry function

User needs to implement this function to provide customized ACPU functionality.

Parameters:
  • task_name[in] task name, 0 is invalid task name, any number greater than 0 is a valid task name, e.g. macro ACPU_TASK_0 defined above use 1 as the value

  • param[in] parameter given by HCPU

void acpu_send_result(uint32_t err_code, uint32_t ret_value)

ACPU send result to HCPU

It can be called by ACPU to return task result to HCPU

Parameters:
  • err_code[in] error code needs to be sent to HCPU.

  • ret_value[in] return value needs to be sent to HCPU.

struct opus_encode_init_arg_t

Public Members

void *st
int fs
int channels
int application
struct opus_encode_ctl_arg_t

Public Members

void *st
int id
struct opus_decode_init_arg_t

Public Members

void *st
int fs
int channels
struct opus_decode_ctl_arg_t

Public Members

void *st
int id
struct opus_encode_arg_t

Public Members

void *st
const int16_t *pcm
int analysis_frame_size
uint8_t *data
int32_t max_data_bytes
struct opus_decode_arg_t

Public Members

void *st
const uint8_t *data
int32_t len
int16_t *pcm
int frame_size
int decode_fec
struct rw_buffer_arg_t

Public Members

uint32_t rw_addr
uint32_t rw_size
uint8_t *buffer
struct epic_rl_arg_t

Public Members

void *p_drv_epic
void *p_render_list
void *p_scaled_area