Help Center > > Developer Guide> SDK Usage Guide on the Device Side> LiteOS SDK Integration Development Guide> Overview> Integration Strategies> Portability

Portability

Updated at: Jun 26, 2019 GMT+08:00

The adapter layer of device-cloud interconnect components provides common hardware and network adapter APIs. Device or module vendors can complete the porting of device-cloud interconnect components after adapting their hardware to these APIs. The following table lists the to-be-ported APIs and related functions.

Table 1 APIs to which the to-be-ported device-cloud interconnect components need adapt

API Category

API

Description

Network socket API

atiny_net_connect

Creates a socket network connection.

atiny_net_recv

Receives packets.

atiny_net_send

Sends packets.

atiny_net_recv_timeout

Receives packets in a blocking manner.

atiny_net_close

Closes a socket network connection.

Hardware API

atiny_gettime_ms

Obtains the system time (ms).

atiny_usleep

Delay function, measured in μs.

atiny_random

Hardware random number function.

atiny_malloc

Applies for dynamic memory.

atiny_free

Releases dynamic memory.

atiny_snprintf

Formats character strings.

atiny_printf

Outputs logs.

API for resource exclusion

atiny_mutex_create

Creates a mutual exclusion lock.

atiny_mutex_destroy

Destroy a mutual exclusion lock.

atiny_mutex_lock

Obtains a mutual exclusion lock.

atiny_mutex_unlock

Releases a mutual exclusion lock.

NOTE:

Device-cloud interconnect components can be ported in OS and non-OS modes. The OS mode is recommended.

Device-cloud interconnect components support firmware upgrade. The components need to adapt to the atiny_storage_device_s object.

atiny_storage_device_s *atiny_get_hal_storage_device(void); 
struct atiny_storage_device_tag_s; 
typedef struct atiny_storage_device_tag_s  atiny_storage_device_s; 
struct atiny_storage_device_tag_s 
{ 
//Device initialization
int (*init)( storage_device_s *this); 
//Begin to write
int (*begin_software_download)( storage_device_s *this); 
//Write software, and start from offset. buffer indicates the content, and len indicates the length.
int (*write_software)( storage_device_s *this , uint32_t offset, const char *buffer, uint32_t len); 

//Download completed
int (*end_software_download)( storage_device_s *this); 
//Activate software
int (*active_software)( storage_device_s *this); 
//Activated results are obtained. O indicates successful. 1 indicates failed.
int (*get_active_result)( storage_device_s *this); 
//Write update_info, and start from offset. buffer indicates the content, and len indicates the length.
int (*write_update_info)( storage_device_s *this, long offset, const char *buffer, uint32_t len); 
//Read update_info, and start from offset. buffer indicates the content, and len indicates the length.
int (*read_update_info)( storage_device_s *this, long offset, char *buffer, uint32_t len); 
};

Did you find this page helpful?

Submit successfully!

Thank you for your feedback. Your feedback helps make our documentation better.

Failed to submit the feedback. Please try again later.

Which of the following issues have you encountered?







Please complete at least one feedback item.

Content most length 200 character

Content is empty.

OK Cancel