Arm-2D  
2D Image Processing Library for Cortex-M Processors
1 Kernel

Data Structures

struct  arm_2d_runtime_feature_t
 
struct  arm_2d_version_t
 

Functions

void arm_2d_init (void)
 initialise arm-2d More...
 
arm_2d_tile_tarm_2d_set_default_frame_buffer (const arm_2d_tile_t *ptFrameBuffer)
 set the default frame buffer More...
 
arm_2d_tile_tarm_2d_get_default_frame_buffer (void)
 get the default frame buffer More...
 
void arm_2d_set_user_param (arm_2d_op_core_t *ptOP, uintptr_t pUserParam)
 attach a user param (which could be a pointer) to specified OP More...
 
bool arm_2d_op_wait_async (arm_2d_op_core_t *ptOP)
 wait asynchronouse operation complete More...
 
arm_2d_op_status_t arm_2d_get_op_status (arm_2d_op_core_t *ptOP)
 get the status of a specified OP, More...
 
arm_fsm_rt_t arm_2d_task (arm_2d_task_t *ptTask)
 arm-2d pixel pipeline task entery More...
 

Variables

arm_2d_runtime_feature_t ARM_2D_RUNTIME_FEATURE
 
const arm_2d_version_t ARM_2D_VERSION
 

arm-2d version

#define ARM_2D_VERSION_MAJOR   1
 
#define ARM_2D_VERSION_MINOR   0
 
#define ARM_2D_VERSION_PATCH   0
 
#define ARM_2D_VERSION_STR   "preview"
 
#define ARM_2D_VERISON
 

Description


Data Structure Documentation

◆ arm_2d_runtime_feature_t

struct arm_2d_runtime_feature_t
Data Fields
uint8_t TREAT_OUT_OF_RANGE_AS_COMPLETE: 1

if the target region is out of the target tile, return arm_fsm_rt_cpl

uint8_t HAS_DEDICATED_THREAD_FOR_2D_TASK: 1

indicate that there is a dedicated thread to run arm_2d_task() in RTOS env

◆ arm_2d_version_t

struct arm_2d_version_t
Data Fields
uint8_t Major
uint8_t Minor
uint8_t Patch

Macro Definition Documentation

◆ ARM_2D_VERISON

#define ARM_2D_VERISON
Value:
( ARM_2D_VERSION_MAJOR * 10000ul \
+ ARM_2D_VERSION_MINOR * 100ul \
ARM_2D_VERSION_PATCH)

Function Documentation

◆ arm_2d_init()

void arm_2d_init ( void  )

initialise arm-2d

◆ arm_2d_set_default_frame_buffer()

arm_2d_tile_t * arm_2d_set_default_frame_buffer ( const arm_2d_tile_t ptFrameBuffer)

set the default frame buffer

Parameters
ptFrameBufferthe new frame buffer,
Note
Passing NULL means using no default framebuffer
Returns
arm_2d_tile_t* the address of the old frame buffer

◆ arm_2d_get_default_frame_buffer()

arm_2d_tile_t * arm_2d_get_default_frame_buffer ( void  )

get the default frame buffer

Returns
arm_2d_tile_t* the address of the default frame buffer

◆ arm_2d_set_user_param()

void arm_2d_set_user_param ( arm_2d_op_core_t ptOP,
uintptr_t  pUserParam 
)

attach a user param (which could be a pointer) to specified OP

Parameters
ptOPthe address of the target OP (NULL means using the default OP)
pUserParama user parameter (it can be used as a pointer)

◆ arm_2d_op_wait_async()

bool arm_2d_op_wait_async ( arm_2d_op_core_t ptOP)

wait asynchronouse operation complete

Return values
truesync up with operation
falseoperation is busy

◆ arm_2d_get_op_status()

arm_2d_op_status_t arm_2d_get_op_status ( arm_2d_op_core_t ptOP)

get the status of a specified OP,

usually, it is used after calling arm_2d_op_wait_async(). E.g.

//! wait for previous operation complete
do {
if (tStatus.bIOError) {
//! error detected
...
} else if (tStatus.bOpCpl) {
break;
}
} while(true);
Parameters
ptOPthe address of the target OP (NULL means using the default OP)
Returns
arm_2d_op_status_t the operation status

◆ arm_2d_task()

arm_fsm_rt_t arm_2d_task ( arm_2d_task_t ptTask)

arm-2d pixel pipeline task entery

Note
This function is TRHEAD-SAFE
Parameters
ptTaskthe address of an arm-2d task control block
Return values
arm_fsm_rt_cplThe sub-task FIFO is empty, the caller can wait for a semaphore set by arm_2d_notif_sub_task_fifo_task_arrive()
arm_fsm_rt_on_goingThe arm_2d_task yields
arm_fsm_rt_asyncYou shouldn't see this value
arm_fsm_rt_wait_for_objhardware accelerator wants to sync-up with applications.
(<0)Serious error is detected.