加入收藏
举报
当前仅显示指定条件回帖 [ 展开查看全部 ]
02-14 20:03
#
文件名称:
kal.md
所在目录:
Openharmony v1.0 / docs / docs-en / api / api-LinkIoT
文件大小:
41.35 KB
下载地址:
fenwii/OpenHarmony
   
免责声明:本网站仅提供指向 GitHub 上的文件的链接,所有文件的版权归原作者所有,本网站不对文件内容的合法性、准确性或安全性承担任何责任。
文本预览:
# KAL
## **Overview**
Defines the kernel adaptation layer \(KAL\), which provides compatible interfaces across different types of OpenHarmony devices.
**Since:**
1.0
**Version:**
1.0
## **Summary**
## Files









File Name


Description


kal.h


Defines the kernel adaptation layer (KAL), which provides compatible interfaces across different types of OpenHarmony devices.



## Data Structures












Data Structure Name


Description


ThreadInfo


Describes a thread.


MemInfo


Describes a memory pool.



## Macros









Macro Name and Value


Description


KAL_TASK_NAME_LEN 32


Indicates the maximum length of a thread name.



## Enumerations












Enumeration Name


Description


KalTimerType { KAL_TIMER_ONCE = 0, KAL_TIMER_PERIODIC = 1 }


Enumerates timer types.


KalErrCode { KAL_OK = 0, KAL_ERR_PARA = 1, KAL_ERR_INNER = 2, KAL_ERR_TIMER_STATE = 0x100 }


Enumerates return values of the KAL function.



## Functions







































Function Name


Description


KalThreadGetInfo (unsigned int threadId, ThreadInfo *info)


unsigned int


Obtains thread information.


KalDelayUs (unsigned int us)


void


Delays a thread.


KalTimerCreate (KalTimerProc func, KalTimerType type, void *arg, unsigned int ticks)


KalTimerId


Creates a timer.


KalTimerStart (KalTimerId timerId)


KalErrCode


Starts a timer.


KalTimerChange (KalTimerId timerId, unsigned int ticks)


KalErrCode


Changes the duration of a timer.


KalTimerStop (KalTimerId timerId)


KalErrCode


Stops a timer.


KalTimerDelete (KalTimerId timerId)


KalErrCode


Deletes a timer.


KalTimerIsRunning (KalTimerId timerId)


unsigned int


Checks whether a timer is running.


KalTickToMs (unsigned int ticks)


unsigned int


Converts system ticks into milliseconds.


KalMsToTick (unsigned int millisec)


unsigned int


Converts milliseconds into system ticks.


KalGetMemInfo (MemInfo *pmemInfo)


KalErrCode


Obtains memory information.



## **Details**
## **Enumeration Type Documentation**
## KalErrCode
```
enum [KalErrCode](kal.md#ga595e811b5dcad5dc834be507d6839c36)
```
**Description:**
Enumerates return values of the KAL function.


















Enumerator


Description


KAL_OK


A successful execution



KAL_ERR_PARA


Incorrect parameter



KAL_ERR_INNER


Internal execution error



KAL_ERR_TIMER_STATE


Timer status error




## KalTimerType
```
enum [KalTimerType](kal.md#gacde4b0c553c297f66311b87c4bbbb27d)
```
**Description:**
Enumerates timer types.












Enumerator


Description


KAL_TIMER_ONCE


One-shot timer



KAL_TIMER_PERIODIC


Repetitive timer




## **Function Documentation**
## KalDelayUs\(\)
```
void KalDelayUs (unsigned int us)
```
**Description:**
Delays a thread.
The delay unit is microsecond. The actual delay precision can reach only the tick level.
**Parameters:**









Name


Description


us


Indicates the number of microseconds to delay. The actual delay precision is one tick.



## KalGetMemInfo\(\)
```
[KalErrCode](kal.md#ga595e811b5dcad5dc834be507d6839c36) KalGetMemInfo ([MemInfo](meminfo.md) * pmemInfo)
```
**Description:**
Obtains memory information.
**Parameters:**









Name


Description


pmemInfo


Indicates the pointer to the memory information.



**Returns:**
Returns an enumerated value defined by [KalErrCode](kal.md#ga595e811b5dcad5dc834be507d6839c36), where [KAL\_OK](kal.md#gga595e811b5dcad5dc834be507d6839c36a249642877a22187565c646fcb4c43228) indicates a success.
## KalMsToTick\(\)
```
unsigned int KalMsToTick (unsigned int millisec)
```
**Description:**
Converts milliseconds into system ticks.
**Parameters:**









Name


Description


millisec


Indicates the milliseconds to convert.



**Returns:**
Returns the system ticks generated.
## KalThreadGetInfo\(\)
```
unsigned int KalThreadGetInfo (unsigned int threadId, [ThreadInfo](threadinfo.md) * info )
```
**Description:**
Obtains thread information.
**Parameters:**












Name


Description


threadId


Indicates the thread ID.


info


Indicates the pointer to the buffer for storing the obtained thread information.



**Returns:**
Returns **0** if the thread information is obtained; returns a negative value otherwise.
## KalTickToMs\(\)
```
unsigned int KalTickToMs (unsigned int ticks)
```
**Description:**
Converts system ticks into milliseconds.
**Parameters:**









Name


Description


ticks


Indicates the number of ticks to convert.



**Returns:**
Returns the milliseconds generated.
## KalTimerChange\(\)
```
[KalErrCode](kal.md#ga595e811b5dcad5dc834be507d6839c36) KalTimerChange (KalTimerId timerId, unsigned int ticks )
```
**Description:**
Changes the duration of a timer.
The timer duration can be changed only before the timer is started.
**Parameters:**












Name


Description


timerId


Indicates the ID of the timer whose duration is to change, which is the value returned by KalTimerCreate.


ticks


Indicates the new duration of the timer.



**Returns:**
Returns an enumerated value defined by [KalErrCode](kal.md#ga595e811b5dcad5dc834be507d6839c36), where [KAL\_OK](kal.md#gga595e811b5dcad5dc834be507d6839c36a249642877a22187565c646fcb4c43228) indicates a success.
## KalTimerCreate\(\)
```
KalTimerId KalTimerCreate (KalTimerProc func, [KalTimerType](kal.md#gacde4b0c553c297f66311b87c4bbbb27d) type, void * arg, unsigned int ticks )
```
**Description:**
Creates a timer.
**Parameters:**


















Name


Description


func


Indicates the entry to timer callback. The callback is triggered when the timer expires.


type


Indicates the timer type.


arg


Indicates the pointer to the argument used in timer callback.


ticks


Indicates the duration of the timer to create.



**Returns:**
Returns the timer ID; returns **NULL** in the case of an error.
## KalTimerDelete\(\)
```
[KalErrCode](kal.md#ga595e811b5dcad5dc834be507d6839c36) KalTimerDelete (KalTimerId timerId)
```
**Description:**
Deletes a timer.
**Parameters:**









Name


Description


timerId


Indicates the ID of the timer to delete, which is the value returned by KalTimerCreate.



**Returns:**
Returns an enumerated value defined by [KalErrCode](kal.md#ga595e811b5dcad5dc834be507d6839c36), where [KAL\_OK](kal.md#gga595e811b5dcad5dc834be507d6839c36a249642877a22187565c646fcb4c43228) indicates a success.
## KalTimerIsRunning\(\)
```
unsigned int KalTimerIsRunning (KalTimerId timerId)
```
**Description:**
Checks whether a timer is running.
**Parameters:**









Name


Description


timerId


Indicates the ID of the timer to check, which is the value returned by KalTimerCreate.



**Returns:**
Returns **1** if the timer is running; returns **0** if the timer is not running or the input parameter is incorrect.
## KalTimerStart\(\)
```
[KalErrCode](kal.md#ga595e811b5dcad5dc834be507d6839c36) KalTimerStart (KalTimerId timerId)
```
**Description:**
Starts a timer.
**Parameters:**









Name


Description


timerId


Indicates the ID of the timer to start, which is the value returned by KalTimerCreate.



**Returns:**
Returns an enumerated value defined by [KalErrCode](kal.md#ga595e811b5dcad5dc834be507d6839c36), where [KAL\_OK](kal.md#gga595e811b5dcad5dc834be507d6839c36a249642877a22187565c646fcb4c43228) indicates a success.
## KalTimerStop\(\)
```
[KalErrCode](kal.md#ga595e811b5dcad5dc834be507d6839c36) KalTimerStop (KalTimerId timerId)
```
**Description:**
Stops a timer.
**Parameters:**









Name


Description


timerId


Indicates the ID of the timer to stop, which is the value returned by KalTimerCreate.



**Returns:**
Returns an enumerated value defined by [KalErrCode](kal.md#ga595e811b5dcad5dc834be507d6839c36), where [KAL\_OK](kal.md#gga595e811b5dcad5dc834be507d6839c36a249642877a22187565c646fcb4c43228) indicates a success.
## **Variable Documentation**
## bottomOfStack
```
unsigned int ThreadInfo::bottomOfStack
```
**Description:**
Thread stack bottom
## currUsed
```
unsigned int ThreadInfo::currUsed
```
**Description:**
Current stack space usage
## eventMask
```
unsigned int ThreadInfo::eventMask
```
**Description:**
Thread event mask
## eventStru
```
unsigned int ThreadInfo::eventStru[3]
```
**Description:**
Thread event
## free
```
unsigned int MemInfo::free
```
**Description:**
Available space of the memory pool, in bytes
## freeLmp
```
unsigned int MemInfo::freeLmp
```
**Description:**
Available space of the small memory pool, in bytes
## freeNodeNum
```
unsigned int MemInfo::freeNodeNum
```
**Description:**
Number of available nodes in the memory pool
## id
```
unsigned int ThreadInfo::id
```
**Description:**
Thread ID
## mallocFailCount
```
unsigned int MemInfo::mallocFailCount
```
**Description:**
Number of memory allocation failures
## maxFreeNodeSize
```
unsigned int MemInfo::maxFreeNodeSize
```
**Description:**
Size of the largest available node in the memory pool, in bytes
## mepc
```
unsigned int ThreadInfo::mepc
```
**Description:**
Current thread MEPC
## mstatus
```
unsigned int ThreadInfo::mstatus
```
**Description:**
Current thread status
## name
```
char ThreadInfo::name[[KAL_TASK_NAME_LEN](kal.md#ga5c36b53bd6e8cbdbcd79f702eda94fdc)]
```
**Description:**
Thread name
## overflowFlag
```
unsigned int ThreadInfo::overflowFlag
```
**Description:**
Thread stack overflow flag
## peakUsed
```
unsigned int ThreadInfo::peakUsed
```
**Description:**
Peak stack space usage
## peekSize
```
unsigned int MemInfo::peekSize
```
**Description:**
Peak memory usage of the memory pool
## priority
```
unsigned short ThreadInfo::priority
```
**Description:**
Thread priority
## ra
```
unsigned int ThreadInfo::ra
```
**Description:**
Current thread RA
## sp
```
unsigned int ThreadInfo::sp
```
**Description:**
Thread stack pointer
## stackSize
```
unsigned int ThreadInfo::stackSize
```
**Description:**
Thread stack size
## status
```
unsigned short ThreadInfo::status
```
**Description:**
Thread status
## taskMutex
```
void* ThreadInfo::taskMutex
```
**Description:**
Thread mutex
## taskSem
```
void* ThreadInfo::taskSem
```
**Description:**
Thread semaphore
## topOfStack
```
unsigned int ThreadInfo::topOfStack
```
**Description:**
Thread stack top
## total
```
unsigned int MemInfo::total
```
**Description:**
Total space of the memory pool, in bytes
## totalLmp
```
unsigned int MemInfo::totalLmp
```
**Description:**
Total space of the small memory pool, in bytes
## tp
```
unsigned int ThreadInfo::tp
```
**Description:**
Current thread TP
## used
```
unsigned int MemInfo::used
```
**Description:**
Used space of the memory pool, in bytes
## usedLmp
```
unsigned int MemInfo::usedLmp
```
**Description:**
Used space of the small memory pool, in bytes
## usedNodeNum
```
unsigned int MemInfo::usedNodeNum
```
**Description:**
Number of used nodes in the memory pool
点赞 回复
回帖
支持markdown部分语法 ?